泡沫or趋势?我们到底需要什么样的区块链?
導(dǎo)讀:本文將分析目前主流區(qū)塊鏈平臺存在的問題和挑戰(zhàn),研究思考區(qū)塊鏈平臺的典型需求和發(fā)展方向,從而更好地加強(qiáng)我們對區(qū)塊鏈技術(shù)認(rèn)知和掌握。
01 區(qū)塊鏈架構(gòu)存在的問題和挑戰(zhàn)
現(xiàn)實世界不可能是完美的,我們往往在各種三元悖論的權(quán)衡之中尋找平衡點。在經(jīng)濟(jì)學(xué)上有個“蒙代爾不可能三角”(Mundellian Trilemma),指的是一個國家不可能把獨立貨幣政策(Monetary Policy)、固定匯率(Exchange Rate)和資本自由流動(Capital Mobility)三者兼顧到,往往只能三取二舍一。
在分布式計算領(lǐng)域,也有人們認(rèn)可并熟知的CAP理論,即一致性(Consistence)、可用性(Availability)和分區(qū)容錯性(Network Partitioning)三者不能得兼,只能三選二,如下圖所示。
▲蒙代爾不可能三角和CAP理論
而在區(qū)塊鏈領(lǐng)域,目前公認(rèn)的一個“不可能三角”是在去中心化(Decentralization)、安全性(Security)和擴(kuò)展性(Scalability)上也只能三者選其二,如下圖所示。
▲區(qū)塊鏈不可能三角理論
完全去中心的區(qū)塊鏈架構(gòu)會帶來性能和安全性方面的問題。傳統(tǒng)的分布式架構(gòu),例如云計算,是通過把一個任務(wù)切片,分發(fā)到多個節(jié)點來并行計算,最后將結(jié)果匯總回單一節(jié)點,因此效率很高,但中心化程度也很高。
完全去中心的區(qū)塊鏈架構(gòu)是把同一個任務(wù)放在多個節(jié)點同時運行,結(jié)果最后進(jìn)行共識,共識的結(jié)果成為最終狀態(tài)。可想而知,其效率會遠(yuǎn)遠(yuǎn)低于前者,但在安全性和可信任程度上又遠(yuǎn)遠(yuǎn)高于前者。
根據(jù)區(qū)塊鏈的不可能三角理論,很明顯目前以太坊架構(gòu)是以犧牲擴(kuò)展性來換取去中心和安全性的。以太坊上平均每秒大約能做15筆交易,所以至今為止,除了ICO或數(shù)字資產(chǎn)發(fā)行這種應(yīng)用外,以太坊還沒有出現(xiàn)上規(guī)模的應(yīng)用。2017年出現(xiàn)的一個區(qū)塊鏈養(yǎng)貓游戲“CryptoKitties”就造成了以太坊網(wǎng)絡(luò)的擁堵。
因此,標(biāo)榜區(qū)塊鏈3.0的其他各類區(qū)塊鏈平臺項目,紛紛針對比特幣、以太坊的性能問題提出了自己的改進(jìn)方案。然而,目前區(qū)塊鏈落地應(yīng)用少,卻不只是因為區(qū)塊鏈性能上的問題。我們首先來看看當(dāng)前區(qū)塊鏈平臺的問題和痛點。
1. 交易性能限制:比特幣的理論設(shè)計限制了其每秒只能完成7筆交易,通常每秒只能完成1~2筆;以太坊大約每秒處理10~20筆交易。另外,PoW這種最終一致性共識算法,使得如比特幣的交易需要獲得6個以上的確認(rèn)才能在很大概率上保證交易的最終確定性,因此交易確認(rèn)的時間也長。
2. 擴(kuò)展性限制:在需要立即交易確定性的場景,例如聯(lián)盟鏈或私有鏈的場景中,一般節(jié)點數(shù)會受限。例如使用基于Paxos或BFT(拜占庭容錯)等基于狀態(tài)機(jī)復(fù)制(SMR)共識算法的區(qū)塊鏈平臺,參與共識的節(jié)點數(shù)一般不能超過兩位數(shù)。
3. 易用性:目前智能合約的開發(fā)、部署和調(diào)用都需要由專業(yè)區(qū)塊鏈編程人員進(jìn)行,區(qū)塊鏈在易用性和對應(yīng)用的支持上還存在較大障礙。
4. 兼容性和互操作性:目前大部分的區(qū)塊鏈平臺都是獨立系統(tǒng),不支持區(qū)塊鏈上的資產(chǎn)在不同鏈之間的流轉(zhuǎn),不同鏈上的應(yīng)用也沒有辦法做到跨鏈的集成和整合。
5. 數(shù)據(jù)存儲:區(qū)塊鏈上數(shù)據(jù)存儲容量有限制,特別是每個全節(jié)點需要存儲的數(shù)據(jù)量越來越大,急需更低成本和高效的分布式存儲方案。
6. 智能合約形式化證明:形式化證明(Formal Verification),出于成本的考慮,以前往往只應(yīng)用在硬件設(shè)計中,后來慢慢被引入軟件行業(yè)。形式化證明通過數(shù)學(xué)方法來證明代碼中是否存在漏洞或缺陷。與傳統(tǒng)的軟件測試不同,形式化證明能夠證明一個系統(tǒng)沒有任何可以想到的缺陷,這可以從根本上杜絕軟件漏洞。由于區(qū)塊鏈上的智能合約一經(jīng)部署就不能修改,安全性至關(guān)重要,一旦有未被檢測出的漏洞和缺陷,就會給黑客大肆作惡的機(jī)會。形式化證明是在未部署合約前對智能合約代碼做邏輯上的證明,證明合約的執(zhí)行具有正確性。形式化的證明一般要求編程語言具備嚴(yán)格的邏輯完備性和自動推理能力。目前以太坊的智能合約編程語言Solidity并不具備這種能力,而傳統(tǒng)上的一些形式證明工具和編程語言還沒有和區(qū)塊鏈做有效結(jié)合。
7. 數(shù)據(jù)同步性能限制:鏈上數(shù)據(jù)每時每刻的增長,帶來的問題就是網(wǎng)絡(luò)上數(shù)據(jù)同步的負(fù)擔(dān)越來越大,同步速度也越來越慢。
8. 共識機(jī)制數(shù)學(xué)證明:很多區(qū)塊鏈平臺使用的共識算法并沒有給出嚴(yán)格的數(shù)學(xué)證明,證明其在假設(shè)的網(wǎng)絡(luò)通信環(huán)境內(nèi),能夠在少數(shù)故障節(jié)點存在的情況下,依然能夠在有限的時間內(nèi)達(dá)成共識,并保證共識結(jié)果的正確性。特別是在公有鏈情況下,很多共識算法,特別是基于權(quán)益的PoS共識,缺少嚴(yán)格的數(shù)學(xué)證明。
02 區(qū)塊鏈平臺的典型需求和發(fā)展方向
1. 區(qū)塊鏈平臺的典型需求
區(qū)塊鏈上的應(yīng)用根據(jù)場景不同,有以下不同維度的需求。
隱私保護(hù):交易參與方和交易的細(xì)節(jié)不能泄露給交易無關(guān)方。目前比特幣、以太坊等只是提供半匿名機(jī)制,不能保證在大數(shù)據(jù)分析下隱私交易信息不被泄露。
鏈上安全性:在區(qū)塊鏈網(wǎng)絡(luò),特別是公有鏈場景下如何容錯,特別是拜占庭容錯,防止女巫、重放、DDoS等攻擊是一個十分重要的需求。
數(shù)據(jù)真實性:雖然在區(qū)塊鏈上的數(shù)據(jù)不可篡改,但現(xiàn)實的數(shù)據(jù)卻沒有辦法防止人為造假。如何保障鏈下數(shù)據(jù)真實上鏈,又不重回到中心化的Oracle(預(yù)言機(jī))機(jī)制,也是非常關(guān)鍵的需求。Oracle是一個連接鏈下鏈上的數(shù)據(jù)真實性保障機(jī)制,通常需要由權(quán)威性機(jī)構(gòu)來做Oracle,但如何防止Oracle的中心化是未來預(yù)言機(jī)機(jī)制設(shè)計的關(guān)鍵考慮點。
有用工作量證明:比特幣挖礦造成能源的浪費巨大,有人估算目前比特幣一年挖礦所耗費的電量已經(jīng)相當(dāng)于愛爾蘭一年的用電量。比特幣的工作量證明只是不停地做哈希運算,計算結(jié)果也沒有什么實際用途。如果既能做有用的工作量,又能提供一個比較穩(wěn)定的共識機(jī)制,是非常有吸引力,但也是比較難的研究方向。
密碼安全性:量子計算目前雖然還是起步的初始階段,離發(fā)展到商用可能還要一大段距離,但量子計算的Shor算法已經(jīng)在理論上能破解公鑰加密系統(tǒng),區(qū)塊鏈所基于的公鑰簽名系統(tǒng)都將面臨被量子計算破解的威脅。另一方面,量子計算的Grover算法雖然不能在數(shù)量級上降低破解哈希算法的難度,但也能減少一部分破解哈希算法的計算量。因此,抗量子密碼算法也成為目前區(qū)塊鏈的一個研究方向。
治理和監(jiān)管:很多區(qū)塊鏈項目目前都是依靠幾個核心開發(fā)人員維護(hù)。一些關(guān)鍵參數(shù)的修改和平臺發(fā)展方向的決策還是由幾個人決定,缺少一個比較透明、嚴(yán)格的治理架構(gòu)和監(jiān)管體系。如何設(shè)計一套適合于區(qū)塊鏈的治理和監(jiān)管體系,使得區(qū)塊鏈平臺能健康發(fā)展,是當(dāng)下很多區(qū)塊鏈項目面臨的一個問題。另一方面,一些采用常規(guī)計算的破解現(xiàn)有密碼學(xué)技術(shù)的算法也會被發(fā)現(xiàn),像2017年谷歌成功實現(xiàn)對SHA-1的有效碰撞,也說明即使不考慮量子計算的威脅,密碼安全性也是一個需要重點關(guān)注的問題。
智能合約升級、監(jiān)控:智能合約一經(jīng)部署就不能更改,但傳統(tǒng)軟件都需要不斷完善和升級。另外在很多場景下,智能合約的邏輯也需要適應(yīng)需求的變化。因此如何對智能合約升級,以及如何監(jiān)控智能合約的運行,也是一個比較常見的需求,特別是對企業(yè)客戶來說。
防止算力中心化:由于比特幣的價格攀升,利益驅(qū)使比特幣挖礦成為一場算力的軍備競爭。比特幣挖礦的算力不斷趨于中心化,目前五大礦池的算力已經(jīng)超過全網(wǎng)算力的70%。防止算力集中,目前常用的方法是設(shè)計需要存儲量大的工作量證明機(jī)制,這樣在成本上抵抗做專門的算力挖礦芯片(ASIC),使得普通人仍然可以用通用處理器,像CPU、GPU來參與挖礦共識。
身份認(rèn)證及權(quán)限控制:很多區(qū)塊鏈的應(yīng)用,特別是企業(yè)級的聯(lián)盟鏈應(yīng)用,需要確認(rèn)用戶的身份,并根據(jù)其身份來授予不同的權(quán)限。安全高效的身份ID管理、身份認(rèn)證和權(quán)限控制是一個重要的需求。
移動區(qū)塊鏈:目前區(qū)塊鏈系統(tǒng)都是運行在服務(wù)器節(jié)點上,手機(jī)上只是錢包或輕節(jié)點。但未來隨著移動設(shè)備算力以及存儲能力的提升,直接在移動設(shè)備組成的去中心化網(wǎng)絡(luò)成為可能,成為真正意義上的移動區(qū)塊鏈平臺。
2. 區(qū)塊鏈平臺的發(fā)展方向
上述對區(qū)塊鏈平臺的行業(yè)需求,驅(qū)動著區(qū)塊鏈向?qū)嵱眯苑€(wěn)定性和安全性方向發(fā)展,而具體的技術(shù)創(chuàng)新則是在以下一些方向上拓展。
區(qū)塊鏈操作系統(tǒng):類似傳統(tǒng)電腦操作系統(tǒng)給電腦使用者和應(yīng)用開發(fā)提供底層服務(wù)一樣,區(qū)塊鏈操作系統(tǒng)也給上層去中心化應(yīng)用的開發(fā)和運行提供支撐的功能和環(huán)境,這些功能包括認(rèn)證、權(quán)限控制、數(shù)據(jù)存取、合約編譯、測試級部署等支撐性功能。操作系統(tǒng)提供易用性,降低使用區(qū)塊鏈以及開發(fā)DApp的門檻。
區(qū)塊鏈中間件:和傳統(tǒng)中間件一樣,區(qū)塊鏈中間件屏蔽不同區(qū)塊鏈平臺的接口差異,使得應(yīng)用能夠方便地開發(fā)支持不同區(qū)塊鏈的DApp,另外也提供跨鏈整合功能,使得應(yīng)用能夠集成整合多個區(qū)塊鏈平臺。
區(qū)塊鏈網(wǎng)絡(luò)(多鏈):和比特幣或以太坊的單鏈技術(shù)不一樣,區(qū)塊鏈網(wǎng)絡(luò)提供一個網(wǎng)絡(luò)平臺。在該平臺下有多條鏈,每個鏈上都可以發(fā)行自己的虛擬資產(chǎn),鏈與鏈之間也可以通過區(qū)塊鏈網(wǎng)絡(luò)平臺中的主鏈或中繼來實現(xiàn)跨鏈互連。
側(cè)鏈技術(shù):側(cè)鏈最早來自于一個無須改變主鏈(原指比特幣的主鏈),但又能通過建立一個側(cè)鏈來擴(kuò)展主鏈功能的概念。主鏈的資產(chǎn)可以安全轉(zhuǎn)移到側(cè)鏈上流通,最好也能安全地回到主鏈。
區(qū)塊擴(kuò)容:區(qū)塊容量和能打包的交易多少有關(guān),由于區(qū)塊鏈的出塊頻率相對固定,因此當(dāng)區(qū)塊擴(kuò)容之后,每秒交易量(TPS)也會相應(yīng)提高。
鏈下計算:區(qū)塊鏈的鏈上計算雖然能安全可靠,但是共識開銷很大,因此把有些計算移到鏈下來處理,從而提升交易速度是一個必然的選擇。
分區(qū)共識、分片:以太坊的性能問題讓以太坊的開發(fā)社區(qū)也意識到,當(dāng)每個交易、每步智能合約的執(zhí)行都需要在所有的共識節(jié)點去完成的時候,其擴(kuò)展性是無法支撐應(yīng)用的。因此,分片處理、采用局部共識代替全局共識不可避免。
區(qū)塊鏈存儲:區(qū)塊鏈上能存儲的空間有限,一般來說只是存儲數(shù)據(jù)的哈希值,也就是數(shù)據(jù)的指紋。因此如何解決區(qū)塊鏈數(shù)據(jù),特別是代碼或狀態(tài)數(shù)據(jù)的存儲是當(dāng)今區(qū)塊鏈平臺都面臨的一個問題。
共識機(jī)制:區(qū)塊鏈最核心的部分是其共識機(jī)制。不同的共識機(jī)制有著不同的共識屬性,同時也決定其每秒交易量,因此共識機(jī)制的設(shè)計也成為區(qū)塊鏈底層平臺設(shè)計的一個關(guān)鍵環(huán)節(jié)。
作者:鄒均 于斌 莊鵬 邢春曉 等著
本文摘編自《區(qū)塊鏈核心技術(shù)與應(yīng)用》,經(jīng)出版方授權(quán)發(fā)布。
▼長按識別,最低7折拼購
▲長按識別,最低7折拼購
更多精彩
在公眾號后臺對話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?報告?|?讀書?|?書單?|?干貨
Python?|?機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)
區(qū)塊鏈?|?揭秘?|?高考?|?福利
猜你想看
新手上路必學(xué)的Python函數(shù)基礎(chǔ)知識,全在這里了(多段代碼舉例)
百度吹過的牛實現(xiàn)了,你的呢?5本書帶你搞定AI前沿技術(shù)
給你多少錢,你才會愿意為國家生孩子?
程序猿們,如果你不想跑偏,就千萬別讀這4本書!
Q:?你最期待的區(qū)塊鏈應(yīng)用是什么?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請聯(lián)系:baiyu@hzbook.com
更多精彩,請在后臺點擊“歷史文章”查看
點擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的泡沫or趋势?我们到底需要什么样的区块链?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 醉了!用数据分析的方法帮你找到物美价廉的
- 下一篇: 360的服务器在哪个文件夹,如何卸载服务