書名: 區(qū)塊鏈社會(huì):區(qū)塊鏈助力國(guó)家治理能力現(xiàn)代化作者名: 王煥然等本章字?jǐn)?shù): 14字更新時(shí)間: 2021-03-23 16:36:32
Chapter Five
第5章 公鏈面臨的技術(shù)挑戰(zhàn)
5.1 區(qū)塊鏈技術(shù)的不可能三角
5.1.1 CAP定理
計(jì)算機(jī)科學(xué)家埃里克·布魯爾提出了關(guān)于分布式計(jì)算系統(tǒng)的一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition-tolerant)的CAP定理。CAP定理證明,當(dāng)網(wǎng)絡(luò)存在分區(qū)時(shí),一致性、可用性和分區(qū)容錯(cuò)性之間只能三取二。
先來(lái)解釋三個(gè)名詞:
1)一致性:統(tǒng)一的記錄。
2)可用性:正常節(jié)點(diǎn)響應(yīng)。
3)分區(qū)容錯(cuò)性:指的是網(wǎng)絡(luò)中允許丟失從一個(gè)節(jié)點(diǎn)發(fā)送到另一個(gè)節(jié)點(diǎn)的任意數(shù)量的消息。
在網(wǎng)絡(luò)分區(qū)發(fā)生時(shí),兩個(gè)分布式節(jié)點(diǎn)之間無(wú)法進(jìn)行通信,那么我們對(duì)一個(gè)節(jié)點(diǎn)進(jìn)行的修改操作將無(wú)法同步到另外一個(gè)節(jié)點(diǎn),所以數(shù)據(jù)的“一致性”將無(wú)法滿足,因?yàn)閮蓚€(gè)分布式節(jié)點(diǎn)的數(shù)據(jù)不再保持一致。除非我們犧牲“可用性”,也就是暫停分布式節(jié)點(diǎn)服務(wù),在網(wǎng)絡(luò)分區(qū)發(fā)生時(shí),不再提供修改數(shù)據(jù)的功能,直到網(wǎng)絡(luò)狀況完全恢復(fù)正常再繼續(xù)對(duì)外提供服務(wù)。或者為了保證可用性而犧牲數(shù)據(jù)一致性。
所謂區(qū)塊鏈技術(shù)的不可能三角,是指在區(qū)塊鏈公鏈中,很難同時(shí)做到既有很好的“去中心化”,又有良好的系統(tǒng)“安全性”,同時(shí)還能有很高的“交易處理性能”。其中“交易處理性能”也就是經(jīng)常說(shuō)的TPS(Transactions Per Second)——每秒處理交易的筆數(shù)(見(jiàn)圖5-1)。

圖5-1 區(qū)塊鏈技術(shù)的“不可能三角”
接下來(lái)用CAP定理,來(lái)解釋區(qū)塊鏈不可能三角為什么不可突破。
1.一致性是安全性的必要條件
當(dāng)系統(tǒng)中出現(xiàn)不一致時(shí)(兩個(gè)節(jié)點(diǎn)記錄的數(shù)據(jù)不一致),我們認(rèn)定這樣的區(qū)塊鏈系統(tǒng)是不安全的。在這樣的定義下,一致性是區(qū)塊鏈系統(tǒng)安全的基本前提,區(qū)塊鏈的安全性是比分布式系統(tǒng)的一致性更加嚴(yán)格的需求。
2.可用性是可擴(kuò)展性的必要條件
可擴(kuò)展性指的是每秒可以處理的交易量,高可擴(kuò)展性即是實(shí)現(xiàn)每秒高頻次的可讀可寫操作。在邏輯上,可用性是比可擴(kuò)展性更基礎(chǔ)的網(wǎng)絡(luò)要求,不能實(shí)現(xiàn)可用性的區(qū)塊鏈系統(tǒng),是不能實(shí)現(xiàn)可擴(kuò)展性的,即可用性是可擴(kuò)展性的前提。
3.分區(qū)容錯(cuò)性是去中心化的必要條件
在真實(shí)分布式環(huán)境中,分布式系統(tǒng)必然存在分區(qū),不可能保證系統(tǒng)中的每個(gè)節(jié)點(diǎn)都不會(huì)出現(xiàn)任何故障。也就是說(shuō),去中心化必定導(dǎo)致發(fā)生分區(qū)的可能,也就意味著分區(qū)容錯(cuò)性是實(shí)現(xiàn)去中心化的前提。
5.1.2 公鏈技術(shù)現(xiàn)狀
目前最著名的三大公鏈?zhǔn)潜忍貛拧⒁蕴缓虴OS[1](詳見(jiàn)本書第8章“熱門公鏈對(duì)比解析”)。其他公鏈要么是模仿三大公鏈,要么是從三大公鏈分叉出來(lái),在各方面都和三大公鏈很類似。因此我們主要觀察三大公鏈就可以看到公鏈技術(shù)的現(xiàn)狀。
1.比特幣
比特幣采用的是基于工作量證明的共識(shí)機(jī)制。在比特幣發(fā)展初期,一臺(tái)普通電腦就可以參與挖礦。但后來(lái),隨著幣價(jià)的猛漲,挖礦變得有利可圖,于是顯卡挖礦出現(xiàn),再后來(lái),算力更強(qiáng)的ASIC礦機(jī)出現(xiàn),并最終成為主要挖礦手段。普通電腦和顯卡挖礦徹底成為歷史。現(xiàn)在ASIC礦機(jī)的制造和生產(chǎn)幾乎被比特大陸所壟斷,而比特幣全網(wǎng)的算力也幾乎被幾大礦池所壟斷。因此比特幣的“去中心化”在很多人看來(lái)已經(jīng)名不符實(shí)。
在“交易處理性能”方面,比特幣的TPS大概只有每秒七筆,已經(jīng)完全不適合作為日常高頻小額轉(zhuǎn)賬使用。正是如此低下的交易性能,導(dǎo)致比特幣社區(qū)對(duì)比特幣未來(lái)的發(fā)展產(chǎn)生了分歧。而這個(gè)分歧并沒(méi)有得到妥善的解決,最終導(dǎo)致2017年比特幣硬分叉出了比特幣現(xiàn)金。
在安全性方面,比特幣目前來(lái)說(shuō)無(wú)疑是最好的。其全網(wǎng)算力一方面隨著ASIC礦機(jī)自身的更新?lián)Q代在不斷提高,另一方面新礦機(jī)源源不斷地加入也在持續(xù)增強(qiáng)全網(wǎng)算力。據(jù)測(cè)算,目前攻擊比特幣所需的代價(jià)是所有POW公鏈中最高的。
2.以太坊
以太坊也是基于工作量證明的共識(shí)機(jī)制。但它仍然可以采用顯卡挖礦,因此算力壟斷的情況沒(méi)有比特幣那么嚴(yán)重,所以在“去中心化”方面比比特幣要好一些。以太坊未來(lái)將徹底轉(zhuǎn)向POS共識(shí),以解決算力壟斷的問(wèn)題。
以太坊的TPS比比特幣稍微高一點(diǎn),每秒大概7~15筆。但由于以太坊是智能合約平臺(tái),它的應(yīng)用場(chǎng)景更復(fù)雜,相對(duì)比特幣更容易發(fā)生擁堵。因此以太坊爆出的性能問(wèn)題所受的關(guān)注度更高。也正因?yàn)槿绱耍庞辛撕髞?lái)備受期望和關(guān)注的EOS誕生。
以太坊在安全性方面僅次于比特幣。據(jù)測(cè)算,目前攻擊以太坊所需的代價(jià)僅次于比特幣。
3.EOS
EOS一出現(xiàn)時(shí),最大的賣點(diǎn)就是TPS高、交易性能強(qiáng)。現(xiàn)在EOS的真實(shí)性能雖然沒(méi)有達(dá)到官方曾經(jīng)宣揚(yáng)的百萬(wàn)級(jí),但在三大公鏈中是最高的,達(dá)到了3000~4000TPS。這個(gè)性能遠(yuǎn)遠(yuǎn)拋開了比特幣和以太坊。
但EOS為了達(dá)到這樣的TPS,在“去中心化”方面做出了巨大的犧牲。相對(duì)于比特幣和以太坊全網(wǎng)上萬(wàn)個(gè)節(jié)點(diǎn),它全網(wǎng)只有21個(gè)節(jié)點(diǎn)。因此在“去中心化”方面是三大公鏈中最受質(zhì)疑的。
在安全性方面,由于EOS全網(wǎng)只有21個(gè)節(jié)點(diǎn),因此比起攻擊比特幣或以太坊的幾千個(gè)節(jié)點(diǎn),攻擊21個(gè)節(jié)點(diǎn)對(duì)黑客來(lái)說(shuō)相對(duì)容易很多。所以在安全性方面EOS也是三者中最差的。
表5-1對(duì)三大公鏈的“不可能三角”進(jìn)行了總結(jié)對(duì)比。
表5-1 三大公鏈技術(shù)的對(duì)比總結(jié)

- 計(jì)算機(jī)網(wǎng)絡(luò)
- Qt 5 and OpenCV 4 Computer Vision Projects
- 零基礎(chǔ)學(xué)C++程序設(shè)計(jì)
- 程序員考試案例梳理、真題透解與強(qiáng)化訓(xùn)練
- UI智能化與前端智能化:工程技術(shù)、實(shí)現(xiàn)方法與編程思想
- aelf區(qū)塊鏈應(yīng)用架構(gòu)指南
- Learning Python Design Patterns
- R Data Analysis Cookbook(Second Edition)
- 深入理解Elasticsearch(原書第3版)
- 微信小程序開發(fā)與實(shí)戰(zhàn)(微課版)
- 零代碼實(shí)戰(zhàn):企業(yè)級(jí)應(yīng)用搭建與案例詳解
- SwiftUI極簡(jiǎn)開發(fā)
- Hacking Android
- INSTANT JQuery Flot Visual Data Analysis
- Android技術(shù)內(nèi)幕(系統(tǒng)卷)