歡迎光臨
每天分享高質量文章

泡沫or趨勢?我們到底需要什麼樣的區塊鏈?

導讀:本文將分析目前主流區塊鏈平臺存在的問題和挑戰,研究思考區塊鏈平臺的典型需求和發展方向,從而更好地加強我們對區塊鏈技術認知和掌握。

01 區塊鏈架構存在的問題和挑戰

現實世界不可能是完美的,我們往往在各種三元悖論的權衡之中尋找平衡點。在經濟學上有個“蒙代爾不可能三角”(Mundellian Trilemma),指的是一個國家不可能把獨立貨幣政策(Monetary Policy)、固定匯率(Exchange Rate)和資本自由流動(Capital Mobility)三者兼顧到,往往只能三取二舍一。

在分散式計算領域,也有人們認可並熟知的CAP理論,即一致性(Consistence)、可用性(Availability)和分割槽容錯性(Network Partitioning)三者不能得兼,只能三選二,如下圖所示。

▲蒙代爾不可能三角和CAP理論

而在區塊鏈領域,目前公認的一個“不可能三角”是在去中心化(Decentralization)、安全性(Security)和擴充套件性(Scalability)上也只能三者選其二,如下圖所示。

▲區塊鏈不可能三角理論

完全去中心的區塊鏈架構會帶來效能和安全性方面的問題。傳統的分散式架構,例如雲端計算,是透過把一個任務切片,分發到多個節點來平行計算,最後將結果彙總回單一節點,因此效率很高,但中心化程度也很高。

完全去中心的區塊鏈架構是把同一個任務放在多個節點同時執行,結果最後進行共識,共識的結果成為最終狀態。可想而知,其效率會遠遠低於前者,但在安全性和可信任程度上又遠遠高於前者。

根據區塊鏈的不可能三角理論,很明顯目前以太坊架構是以犧牲擴充套件性來換取去中心和安全性的。以太坊上平均每秒大約能做15筆交易,所以至今為止,除了ICO或數字資產發行這種應用外,以太坊還沒有出現上規模的應用。2017年出現的一個區塊鏈養貓遊戲“CryptoKitties”就造成了以太坊網路的擁堵。

因此,標榜區塊鏈3.0的其他各類區塊鏈平臺專案,紛紛針對比特幣、以太坊的效能問題提出了自己的改進方案。然而,目前區塊鏈落地應用少,卻不只是因為區塊鏈效能上的問題。我們首先來看看當前區塊鏈平臺的問題和痛點。

1. 交易效能限制:比特幣的理論設計限制了其每秒只能完成7筆交易,通常每秒只能完成1~2筆;以太坊大約每秒處理10~20筆交易。另外,PoW這種最終一致性共識演演算法,使得如比特幣的交易需要獲得6個以上的確認才能在很大機率上保證交易的最終確定性,因此交易確認的時間也長。

2. 擴充套件性限制:在需要立即交易確定性的場景,例如聯盟鏈或私有鏈的場景中,一般節點數會受限。例如使用基於Paxos或BFT(拜占庭容錯)等基於狀態機複製(SMR)共識演演算法的區塊鏈平臺,參與共識的節點數一般不能超過兩位數。

3. 易用性:目前智慧合約的開發、部署和呼叫都需要由專業區塊鏈程式設計人員進行,區塊鏈在易用性和對應用的支援上還存在較大障礙。

4. 相容性和互操作性:目前大部分的區塊鏈平臺都是獨立系統,不支援區塊鏈上的資產在不同鏈之間的流轉,不同鏈上的應用也沒有辦法做到跨鏈的整合和整合。

5. 資料儲存:區塊鏈上資料儲存容量有限制,特別是每個全節點需要儲存的資料量越來越大,急需更低成本和高效的分散式儲存方案。

6. 智慧合約形式化證明:形式化證明(Formal Verification),出於成本的考慮,以前往往只應用在硬體設計中,後來慢慢被引入軟體行業。形式化證明透過數學方法來證明程式碼中是否存在漏洞或缺陷。與傳統的軟體測試不同,形式化證明能夠證明一個系統沒有任何可以想到的缺陷,這可以從根本上杜絕軟體漏洞。由於區塊鏈上的智慧合約一經部署就不能修改,安全性至關重要,一旦有未被檢測出的漏洞和缺陷,就會給駭客大肆作惡的機會。形式化證明是在未部署合約前對智慧合約程式碼做邏輯上的證明,證明合約的執行具有正確性。形式化的證明一般要求程式語言具備嚴格的邏輯完備性和自動推理能力。目前以太坊的智慧合約程式語言Solidity並不具備這種能力,而傳統上的一些形式證明工具和程式語言還沒有和區塊鏈做有效結合。

7. 資料同步效能限制:鏈上資料每時每刻的增長,帶來的問題就是網路上資料同步的負擔越來越大,同步速度也越來越慢。

8. 共識機制數學證明:很多區塊鏈平臺使用的共識演演算法並沒有給出嚴格的數學證明,證明其在假設的網路通訊環境內,能夠在少數故障節點存在的情況下,依然能夠在有限的時間內達成共識,並保證共識結果的正確性。特別是在公有鏈情況下,很多共識演演算法,特別是基於權益的PoS共識,缺少嚴格的數學證明。

02 區塊鏈平臺的典型需求和發展方向

1. 區塊鏈平臺的典型需求

區塊鏈上的應用根據場景不同,有以下不同維度的需求。

  • 隱私保護:交易參與方和交易的細節不能洩露給交易無關方。目前比特幣、以太坊等只是提供半匿名機制,不能保證在大資料分析下隱私交易資訊不被洩露。

  • 鏈上安全性:在區塊鏈網路,特別是公有鏈場景下如何容錯,特別是拜占庭容錯,防止女巫、重放、DDoS等攻擊是一個十分重要的需求。

  • 資料真實性:雖然在區塊鏈上的資料不可篡改,但現實的資料卻沒有辦法防止人為造假。如何保障鏈下資料真實上鏈,又不重回到中心化的Oracle(預言機)機制,也是非常關鍵的需求。Oracle是一個連線鏈下鏈上的資料真實性保障機制,通常需要由權威性機構來做Oracle,但如何防止Oracle的中心化是未來預言機機制設計的關鍵考慮點。

  • 有用工作量證明:比特幣挖礦造成能源的浪費巨大,有人估算目前比特幣一年挖礦所耗費的電量已經相當於愛爾蘭一年的用電量。比特幣的工作量證明只是不停地做雜湊運算,計算結果也沒有什麼實際用途。如果既能做有用的工作量,又能提供一個比較穩定的共識機制,是非常有吸引力,但也是比較難的研究方向。

  • 密碼安全性:量子計算目前雖然還是起步的初始階段,離發展到商用可能還要一大段距離,但量子計算的Shor演演算法已經在理論上能破解公鑰加密系統,區塊鏈所基於的公鑰簽名系統都將面臨被量子計算破解的威脅。另一方面,量子計算的Grover演演算法雖然不能在數量級上降低破解雜湊演演算法的難度,但也能減少一部分破解雜湊演演算法的計算量。因此,抗量子密碼演演算法也成為目前區塊鏈的一個研究方向。

  • 治理和監管:很多區塊鏈專案目前都是依靠幾個核心開發人員維護。一些關鍵引數的修改和平臺發展方向的決策還是由幾個人決定,缺少一個比較透明、嚴格的治理架構和監管體系。如何設計一套適合於區塊鏈的治理和監管體系,使得區塊鏈平臺能健康發展,是當下很多區塊鏈專案面臨的一個問題。另一方面,一些採用常規計算的破解現有密碼學技術的演演算法也會被髮現,像2017年穀歌成功實現對SHA-1的有效碰撞,也說明即使不考慮量子計算的威脅,密碼安全性也是一個需要重點關註的問題。

  • 智慧合約升級、監控:智慧合約一經部署就不能更改,但傳統軟體都需要不斷完善和升級。另外在很多場景下,智慧合約的邏輯也需要適應需求的變化。因此如何對智慧合約升級,以及如何監控智慧合約的執行,也是一個比較常見的需求,特別是對企業客戶來說。

  • 防止算力中心化:由於比特幣的價格攀升,利益驅使比特幣挖礦成為一場算力的軍備競爭。比特幣挖礦的算力不斷趨於中心化,目前五大礦池的算力已經超過全網算力的70%。防止算力集中,目前常用的方法是設計需要儲存量大的工作量證明機制,這樣在成本上抵抗做專門的算力挖礦晶片(ASIC),使得普通人仍然可以用通用處理器,像CPU、GPU來參與挖礦共識。

  • 身份認證及許可權控制:很多區塊鏈的應用,特別是企業級的聯盟鏈應用,需要確認使用者的身份,並根據其身份來授予不同的許可權。安全高效的身份ID管理、身份認證和許可權控制是一個重要的需求。

  • 移動區塊鏈:目前區塊鏈系統都是執行在伺服器節點上,手機上只是錢包或輕節點。但未來隨著移動裝置算力以及儲存能力的提升,直接在移動裝置組成的去中心化網路成為可能,成為真正意義上的移動區塊鏈平臺。

2. 區塊鏈平臺的發展方向

上述對區塊鏈平臺的行業需求,驅動著區塊鏈向實用性穩定性和安全性方向發展,而具體的技術創新則是在以下一些方向上拓展。

  • 區塊鏈作業系統:類似傳統電腦作業系統給電腦使用者和應用開發提供底層服務一樣,區塊鏈作業系統也給上層去中心化應用的開發和執行提供支撐的功能和環境,這些功能包括認證、許可權控制、資料存取、合約編譯、測試級部署等支撐性功能。作業系統提供易用性,降低使用區塊鏈以及開發DApp的門檻。

  • 區塊鏈中介軟體:和傳統中介軟體一樣,區塊鏈中介軟體遮蔽不同區塊鏈平臺的介面差異,使得應用能夠方便地開發支援不同區塊鏈的DApp,另外也提供跨鏈整合功能,使得應用能夠整合整合多個區塊鏈平臺。

  • 區塊鏈網路(多鏈):和比特幣或以太坊的單鏈技術不一樣,區塊鏈網路提供一個網路平臺。在該平臺下有多條鏈,每個鏈上都可以發行自己的虛擬資產,鏈與鏈之間也可以透過區塊鏈網路平臺中的主鏈或中繼來實現跨鏈互連。

  • 側鏈技術:側鏈最早來自於一個無須改變主鏈(原指比特幣的主鏈),但又能透過建立一個側鏈來擴充套件主鏈功能的概念。主鏈的資產可以安全轉移到側鏈上流通,最好也能安全地回到主鏈。

  • 區塊擴容:區塊容量和能打包的交易多少有關,由於區塊鏈的出塊頻率相對固定,因此當區塊擴容之後,每秒交易量(TPS)也會相應提高。

  • 鏈下計算:區塊鏈的鏈上計算雖然能安全可靠,但是共識開銷很大,因此把有些計算移到鏈下來處理,從而提升交易速度是一個必然的選擇。

  • 分割槽共識、分片:以太坊的效能問題讓以太坊的開發社群也意識到,當每個交易、每步智慧合約的執行都需要在所有的共識節點去完成的時候,其擴充套件性是無法支撐應用的。因此,分片處理、採用區域性共識代替全域性共識不可避免。

  • 區塊鏈儲存:區塊鏈上能儲存的空間有限,一般來說只是儲存資料的雜湊值,也就是資料的指紋。因此如何解決區塊鏈資料,特別是程式碼或狀態資料的儲存是當今區塊鏈平臺都面臨的一個問題。

  • 共識機制:區塊鏈最核心的部分是其共識機制。不同的共識機制有著不同的共識屬性,同時也決定其每秒交易量,因此共識機制的設計也成為區塊鏈底層平臺設計的一個關鍵環節。

作者:鄒均 於斌 莊鵬 邢春曉 等著

本文摘編自《區塊鏈核心技術與應用》,經出版方授權釋出。

▼長按識別,最低7折拼購

長按識別,最低7折拼購

更多精彩


在公眾號後臺對話方塊輸入以下關鍵詞

檢視更多優質內容!


PPT | 報告 | 讀書 | 書單 | 乾貨

Python | 機器學習 | 深度學習 | 神經網路

區塊鏈 | 揭秘 | 高考 | 福利

猜你想看

Q: 你最期待的區塊鏈應用是什麼

歡迎留言與大家分享

覺得不錯,請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:baiyu@hzbook.com

更多精彩,請在後臺點選“歷史文章”檢視

點選閱讀原文,瞭解更多

贊(0)

分享創造快樂