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

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

- LaTeX Cookbook
- Android和PHP開發(fā)最佳實踐(第2版)
- Redis Applied Design Patterns
- 看透JavaScript:原理、方法與實踐
- Python High Performance Programming
- Node.js開發(fā)指南
- Node學(xué)習(xí)指南(第2版)
- 從零開始:UI圖標(biāo)設(shè)計與制作(第3版)
- 區(qū)塊鏈架構(gòu)之美:從比特幣、以太坊、超級賬本看區(qū)塊鏈架構(gòu)設(shè)計
- Sails.js Essentials
- Greenplum構(gòu)建實時數(shù)據(jù)倉庫實踐
- Google Maps JavaScript API Cookbook
- Visual C++程序設(shè)計全程指南
- INSTANT PLC Programming with RSLogix 5000
- C/C++程序設(shè)計教程