主要影響區(qū)塊鏈的交易性能包括廣播通信、信息加解密、共識機制、交易驗證機制等幾個環(huán)節(jié)。
廣播通信:
由于區(qū)塊鏈的核心技術之一就是P2P網(wǎng)絡,因此P2P網(wǎng)絡通信的效率是對性能的影響非常重要。首先,為了能最大程度的改善交易性能,推薦你采用聯(lián)盟鏈而不是公鏈,假如你的應用是高頻應用,如果運行基于比特幣或以太坊的公鏈,那用戶體驗會比較差。由于公鏈必須保持高度的去中心化,節(jié)點軟件必須能夠在標準的消費級電腦上運行,并且每個節(jié)點機器的性能和網(wǎng)絡情況都是千差萬別的,導致交易性能形成一個天然的限制。而對于聯(lián)盟鏈,我們可以指定節(jié)點機器的物理配置和節(jié)點數(shù)量,并盡量以高速網(wǎng)絡進行連接,則可以很大程度改善區(qū)塊鏈的交易性能。
信息的加解密:信息的加解密是區(qū)塊鏈的關鍵環(huán)節(jié),主要是哈希函數(shù)和非對稱加密兩部分的算法。哈希函數(shù)目前主要有SHA家族算法、MD5、SCRYPT、RIPEMD、WHIRLPOOL、CUCKOO HASH、HAVAL、TIger、LYRA2、Equihash、Hashimoto、Dagger、Ethash(以太坊目前Pow機制下的算法)等多種算法,還有其中算法的串聯(lián)和并聯(lián)使用。由于商業(yè)應用一般都不考慮挖礦問題和更注重性能問題,更推薦大家采用常用的SHA256算法為主。而非對稱加密部分,主要有非對稱加密算法包括RSA、DSA、橢圓曲線算法等,區(qū)塊鏈一般使用橢圓曲線算法,包括ECDSA和SCHNORR,還有國密算法(SM2橢圓曲線公鑰密碼算法、SM3密碼雜湊算法、SM4分組密碼算法),其中,比特幣使用的簽名算法是ECDSA,而Schnorr簽名的驗證速度比ECDSA簽名的快,而且這種簽名體積可以更小,還原生地支持多重簽名。
共識機制:共識機制是分布式賬本為了使得所存儲信息的準確性與一致性設計的一套機制,機制的設計主要由業(yè)務與性能的需求決定,從PoW到PoS再到DPoS和各種拜占庭容錯算法,共識機制不斷創(chuàng)新,區(qū)塊鏈平臺性能也得到大幅提升。在類似DPoS或PBFT的共識機制下,區(qū)塊鏈上交易的確認很迅速,交易吞吐量也滿足現(xiàn)有的金融交易規(guī)模,部分私鏈性能達到萬筆/秒,能夠滿足絕大多數(shù)業(yè)務需求。
交易驗證:從交易驗證機制角度出發(fā),目前有幾種優(yōu)化處理方式:
1.分片處理(sharding),總體思路是每個節(jié)點只處理一部分交易,比如一部分賬戶發(fā)起的交易,從而減輕節(jié)點的計算和存儲負擔。
2.閃電網(wǎng)絡(LightningNetwork)和狀態(tài)通道(State Channels),這兩種策略是保持底層的區(qū)塊鏈協(xié)議不變,盡可能將交易放到鏈外執(zhí)行,通過改變協(xié)議用法的方式來解決擴展性問題。在這種策略下,分布式賬本上只是記錄粗粒度的賬本,而真正細粒度的雙邊或有限多邊交易明細,則不作為交易記錄在分布式賬本上。
3.北航鏈設計了獨有的ABC(賬戶區(qū)塊鏈)和TBC(交易區(qū)塊鏈),當有新的銀行成立或者原有銀行需要進行擴展時,可以設立ABC來解決;當交易量較大時,系統(tǒng)可以增加TBC來增加處理速度,通過這兩種途徑來解決可擴展性方面的需求。
從比特幣到以太坊,從Ripple到HyperLedger fabric或Corda,通過共識算法的創(chuàng)新以及聯(lián)盟鏈的部署使得吞吐量等性能得到大幅的提升,當前延時已能夠控制在秒級別,吞吐量達萬筆每秒,單節(jié)點的存儲空間需求也能夠進行相應的優(yōu)化與壓縮,性能瓶頸已經(jīng)被逐步突破。