- 區(qū)塊鏈技術(shù)與應(yīng)用
- 陳韜偉等主編
- 1164字
- 2024-08-12 15:26:08
2.4 區(qū)塊鏈技術(shù)的局限性和發(fā)展趨勢
2.4.1 區(qū)塊鏈的“不可能三角”
與很多分布式系統(tǒng)一樣,區(qū)塊鏈技術(shù)中也存在著“不可能三角”問題,即去中心化(公平性)、可擴(kuò)展性和安全性不可能同時達(dá)到最優(yōu)。據(jù)Footprint Analytics數(shù)據(jù)統(tǒng)計,截至2022年年初,累計已收錄的公鏈數(shù)量為86條,對比2021年年初的11條,數(shù)量增長近7倍。其中,以太坊生態(tài)占據(jù)96%的市場,其生態(tài)包括DeFi、NFTs、GameFi和SocialFi中數(shù)百個新的去中心化應(yīng)用(DApp)。如此龐大的以太坊生態(tài)應(yīng)用及區(qū)塊鏈系統(tǒng)本身的特點(diǎn)導(dǎo)致了共識效率低、交易費(fèi)用昂貴和惡意攻擊等一系列問題,從區(qū)塊鏈公鏈的發(fā)展可以看出,區(qū)塊鏈的“不可能三角”問題是公鏈中不可回避的問題,即無法同時滿足去中心化、可擴(kuò)展性、安全性這三個目標(biāo)。具體來看,這三個目標(biāo)相互矛盾,滿足了其中兩個,第三個則無法滿足,主流區(qū)塊鏈比特幣、以太坊都在“不可能三角”的某個特性上做了妥協(xié)。區(qū)塊鏈的“不可能三角”如圖2-3所示。

圖2-3 區(qū)塊鏈的“不可能三角”
1.滿足去中心化和安全性則無法實現(xiàn)性能上的可擴(kuò)展性
區(qū)塊鏈的去中心化分布式賬本在可追溯、防篡改方面具備安全優(yōu)勢,而去中心化意味著擁有大量參與區(qū)塊生產(chǎn)和驗證的節(jié)點(diǎn),共識機(jī)制則提供了分布式系統(tǒng)中的數(shù)據(jù)一致性同步,實現(xiàn)了區(qū)塊鏈的透明性,既滿足了系統(tǒng)的去中心化,也保障了區(qū)塊鏈系統(tǒng)的安全性。比特幣采用PoW共識機(jī)制,其設(shè)計目標(biāo)是每10分鐘產(chǎn)生一個區(qū)塊,就系統(tǒng)每秒事務(wù)處理量(Transaction Per Second,TPS,即衡量一個區(qū)塊鏈系統(tǒng)性能最重要的指標(biāo)之一,也稱系統(tǒng)吞吐量)而言,比特幣的TPS相當(dāng)于每秒7筆交易。
2020年,以太坊經(jīng)過硬分叉后,區(qū)塊鏈上的平均區(qū)塊時間從17.16秒縮短到12.96秒,TPS大約為每秒15筆,這是犧牲系統(tǒng)的執(zhí)行性能實現(xiàn)的。此外,分布式賬本在存儲方面區(qū)塊容量有限,比特幣區(qū)塊容量大小設(shè)定的上限為1 MB。以太坊區(qū)塊容量并不固定,主要由氣體燃料(Gas)費(fèi)所限定,平均大小為21 345 KB。因此,區(qū)塊鏈為提升出塊速度也犧牲了其存儲可擴(kuò)展能力。由此可以看出,區(qū)塊鏈在計算性能和存儲性能方面均與中心化的系統(tǒng)有明顯區(qū)別,使區(qū)塊鏈不適用于高并發(fā)和高存儲的業(yè)務(wù)場景。
2.滿足可擴(kuò)展性和安全性則無法實現(xiàn)去中心化
在區(qū)塊鏈技術(shù)的演化方面,除了以比特幣為代表的公有鏈技術(shù),還衍生了聯(lián)盟鏈技術(shù)和私有鏈技術(shù)。聯(lián)盟鏈技術(shù)只允許預(yù)設(shè)的節(jié)點(diǎn)進(jìn)行記賬,加入的節(jié)點(diǎn)需要申請和進(jìn)行身份驗證,這種區(qū)塊鏈技術(shù)實質(zhì)上是在確保安全和效率的基礎(chǔ)上進(jìn)行的“部分去中心化”或“多中心化”的妥協(xié);而私有鏈技術(shù)的區(qū)塊建立則掌握在一個實體手中,且區(qū)塊的讀取權(quán)限可以選擇性開放,它為了安全和效率已經(jīng)演化成為一種“中心化”的技術(shù)。
3.滿足可擴(kuò)展性和去中心化則無法實現(xiàn)安全性
區(qū)塊鏈去中心化即允許任何人查詢所有的匿名交易記錄,通過機(jī)器學(xué)習(xí)算法,可以分析和發(fā)現(xiàn)地址間的關(guān)聯(lián)關(guān)系,獲取交易記錄背后的知識,破壞數(shù)據(jù)的機(jī)密性。同時,分布式賬本為了提升區(qū)塊的驗證性能,舍去了對交易數(shù)據(jù)進(jìn)行隱私保護(hù)的功能,導(dǎo)致區(qū)塊鏈安全性的缺失。
- Puppet 4 Essentials(Second Edition)
- JavaScript語言精髓與編程實踐(第3版)
- .NET 4.0面向?qū)ο缶幊搪劊夯A(chǔ)篇
- MATLAB實用教程
- C程序設(shè)計案例教程
- AutoCAD VBA參數(shù)化繪圖程序開發(fā)與實戰(zhàn)編碼
- Oracle JDeveloper 11gR2 Cookbook
- OpenStack Orchestration
- 執(zhí)劍而舞:用代碼創(chuàng)作藝術(shù)
- Building Wireless Sensor Networks Using Arduino
- 計算機(jī)應(yīng)用基礎(chǔ)(第二版)
- 超好玩的Scratch 3.5少兒編程
- Google Adsense優(yōu)化實戰(zhàn)
- Improving your Penetration Testing Skills
- Python程序設(shè)計案例教程