論擴展去中心化區塊鏈

Nervosfans  2019-02-20  新手入門/區塊鏈知識欄目  

  每晚八點,

  我們在社區分享知識。

  樂樂:sensus113 

   美果大冰:xj73226

  備注入群,謝謝!

  摘要

  基于區塊鏈加密貨幣的日益普及使得擴展性問題的解決成了當前的燃眉之急。在對比特幣中的根本以及間接瓶頸是如何限制了其當前p2p覆蓋網絡實現更高的吞吐量、更低的延遲進行了分析之后, 我們發現對區塊大小與出塊間隔的再參量化應僅被視為實現下一代高負載區塊鏈協議的第一個增量,重要進展的取得需要重新審視技術方案。在此, 我們為各種方案提供了設計空間的結構化視角。 該視角中,我們在列舉并簡要討論了一部分新近提出的協議想法的同時,也提出了一些新的想法以及開放性挑戰。

  1. 簡介

  隨加密貨幣的廣泛采用,其擴展能力也引起了人們的擔憂。由于比特幣屬于一種以近似間隔發現區塊的方式運行的自調節體系,因此系統的最大交易吞吐量取決于最大塊大小/出塊間隔。比特幣當前不斷增加的塊大小也預示著一個潛在的問題,即系統清算交易的能力可能在2017年達到極值[47]。為此,加密貨幣社區一直在熱切討論能夠提高區塊鏈整體,特別是比特幣,擴展性的若干技術。各種嗆聲也為解決可擴展性問題的各種技術手段提供了方向。

  以比特幣為代表的當今區塊鏈確認交易需要10分鐘或以上,最大吞吐量不超過7筆交易/秒。相比之下,主流支付處理(如Visa)能在幾秒內確認交易,平均處理速度為2000筆交易/秒,峰值速率可達56000筆交易/秒[11],甩了比特幣56000/7條街。因此,問題的關鍵變成:

  去中心化的區塊鏈是否可以擴展至主流支付處理的能級? 具體怎么操作?

  本文旨在以一種科學的方式探索區塊鏈的擴展性。 我們注意到“擴展性”并非系統定義模糊的單一屬性,而是一個將幾個量化指標相互關聯的術語。

  我們為比特幣、區塊鏈擴容,實現高性能的去中心化系統提供了三點建議:

  測量研究與再參量化探索。我們對一系列指標進行了實驗性測量,這些指標表征了當今比特幣網絡的資源成本與性能。作為擴展比特幣的第一步,社區提出了修改塊大小與出塊間隔等系統關鍵參數的各種建議。通過進一步的實驗性研究,我們發現,考慮到當前比特幣p2p覆蓋網絡協議產生的網絡性能,同時保持其當前的去中心化程度(指測量出的網絡中運行peers數量),再參量化實現的擴展益處有限。

  我們的結果取決于覆蓋網絡中有效吞吐量的關鍵指標,在此我們將其定義為區塊在平均出塊間隔周期內傳播至節點的百分比。交易率超過90%有效吞吐量時,意味著網絡中將有10%的節點落后,由此導致拒絕服務用戶并降低網絡有效礦力的可能情形。為確保當前覆蓋網絡中至少有90%的節點有足夠的吞吐量,我們規定以下兩條準則:

  -  [吞吐量限制。] 考慮到當前10分鐘的平均出塊間隔(此間隔可縮短),塊大小不應超過4MB。 4MB的塊大小對應最高27筆交易/秒的吞吐量。

  -  [延遲限制。] 若要實現網絡帶寬的充分利用,出塊間隔不應小于12秒。

  需要強調的是,上述準則確實看上去較為直觀(特別事后看來)。因此,社區也提出了截然不同的擴展方案,并引入了各種機制,譬如Corallo中繼網絡這種集中式區塊傳播機制。然而,我們的貢獻之一是量化了目前比特幣在其去中心化組件中的擴展限制。注意,由于我們只考慮了眾多可能指標的一個子集(原因是其他指標難以準確測量),因此我們關于再參量化的結果可被視為上限,即其他指標可能帶來更嚴苛的限制。

  為可擴展區塊鏈繪制廣闊的設計空間。根據研究結果,我們認為重新設計區塊鏈的基礎協議可以在保持去中心化的同時實現大規模擴展。我們編譯并檢查了有助擴展區塊鏈的各種技術手段,并提供了一個廣闊的設計空間,其中不僅包括漸進式改進,還包括激進的重新架構。我們通過將區塊鏈系統劃分為不同的平面,即網絡、共識、存儲、視圖與側平面,對新的協議設計策略進行了結構化討論。我們對每個部分的屬性及其對應改進方案做出了討論,并對開放性研究挑戰作出了描述。

  提出開放性挑戰。本文的另一個目標是通過闡明開放性挑戰,希望能夠:i)更好地理解擴展瓶頸;ii)設計出更具擴展性的區塊鏈。如前所述,擴展性并非單一的指標,而是捕捉了各種性能與安全指標之間的緊張關系。目前,尚缺乏對眾多重要指標(譬如,公平以及礦力利用[26])的測量與理解,部分原因在于僅從幾個有利位置監測、測量去中心化區塊鏈存在較大挑戰。我們呼吁測量時采用更好的技術,以便能夠持續監控去中心化系統(如比特幣)的健康狀況,并回答諸如“在不犧牲安全性的前提下,能夠多大程度推動系統參數?”“系統受到攻擊時的魯棒性?”等關鍵問題。最后,盡管我們為可擴展區塊鏈繪制了更為廣泛的設計空間,但是將這些想法實例化并組合以構建具有可證安全性的完整系統則是另一項非常重要的挑戰。

  其他結果。由于空間限制,我們將實驗的諸多細節歸入[10]。

  2. 比特幣擴容:現狀核實

  我們分析了當前比特幣系統中的部分關鍵指標。

  最大吞吐量,最大吞吐量指區塊鏈確認交易的最大速率。 當前,比特幣的最大吞吐量為3.3-7筆交易/秒[1]。 此數字受塊大小上限以及區塊間隔的限制。

  延遲,指交易確認的時間。 交易入塊,即視為已確認,大約需要10分鐘。1

  引導時間,指新節點下載并處理驗證當前系統狀態所需歷史記錄的時間。 目前的比特幣中,引導時間與區塊鏈歷史大小呈線性關系,大約為4天(5個t2.medium Amazon EC2新節點做平均后得出)。

  1 盡管我們將比特幣中的延遲定義為獲得單次確認所需的時間,仍有部分支付處理認可‘零確認’交易,剩下的則遵循傳統的認可前等待6次確認。

  確認交易成本(Cost per Confirmed Transaction, CPCT),指整個比特幣系統確認單筆交易消耗的資源成本,以美元計。 CPCT包含若干不同資源,所有這些資源都可以進一步分解為運營成本(主要是電力成本)及資本設備成本:

  1. 挖礦: 礦工為每個區塊生成工作量證明產生的成本。

  2. 交易驗證:驗證交易可以花費其輸入引用的輸出所需的計算成本,主要是加密驗證。

  3. 帶寬:接收并傳輸交易、區塊及元數據所需的網絡資源成本。

  4. 存儲:(1)存儲所有當前可花費交易的成本,存儲(交易)是礦工及全節點執行交易驗證所必需的,以及(2)存儲區塊歷史數據(這個數據遠大于可花費交易)的成本,存儲(區塊鏈歷史)是引導新加入網絡的節點所必需的。

  表1列出了我們對這些成本的估算。 如表所示,大部分成本由挖礦產生。計算表明,最大吞吐量下,確認每筆交易的成本為1.4-2.9美元,其中挖礦用電量占到總數的57%,假設比特幣吞吐量為此,則CPCT高達6.2美元。 下面會對成本估算方法進行解釋。

  為測量每筆比特幣交易的成本,我們對整個網絡的電力消耗以及挖礦設備的硬件成本進行了粗略計算。硬件基于AntMiner S5 [8],是目前可用的每焦耳算力最高的硬件,根據2015年10月的一項比較研究,每1美元的算力最高[2]。 假設硬件的有效壽命為1年,根據2015年10月的統計數據,網絡的平均算力為4.5億 GH/s [3]。根據所選硬件的功耗(0.445 W/GH) ,網絡消耗的總功率約為200兆瓦。 此外,假設每千瓦時的平均價格為0.1美元[49]。

  這里出現了兩個有趣的場景:第一種情況是比特幣網絡以3.3-7筆交易/秒的最大吞吐量運行。 這個最大吞吐量主要受比特幣1MB的塊大小上限與可變交易大小的限制。 從當前平均交易大小可以推斷出最大吞吐量的下限約為500字節,上限則基于[1]中經常引用的估計值,對應的是異常小的(250字節)交易。 第二種情況是比特幣網絡的實際平均吞吐量,根據2015年10月收集的統計數據,為1.57筆交易/秒[4]。

  表1顯示了交易驗證、存儲和帶寬成本的粗估。 這些估值假設整個網絡包含5400個全節點(根據https://bitnodes.21.co/上的粗略數據)得到的。 假設每個全節點驗證交易時產生大致類似EC2微實例的運行成本(約$ 0.01/小時);或者,假設使用壽命為5年,價值500美元的處理器會產生相同的粗估(成本)。 假設交易存儲在使用壽命為5年的SSD驅動器上,目前的(存儲)成本約為0.3美元/GB。假設為維護系統的安全性,所有節點都存儲整個歷史記錄。 假設每個節點都維持家用級互聯網連接(約100美元/月),這個成本攤銷在所有交易中。 這里需要強調一下,EC2微實例、家用級互聯網連接能夠在當今比特幣的運營規模上提供足夠大的計算/網絡帶寬。

  我們注意到,認為交易成本必須由交易費抵消,本身是一種謬誤。 具體而言,運行全節點的運營成本可能會被金融外部性所抵消,譬如,在無需信任第三方的情況下確認自己的交易;或者被網絡效應抵消,譬如,銷售那些自身成本計入到節點運營成本中的物品。 然而,這兩個因素與礦工無關,且對礦工的獎勵需要維持在穩定水平,特別是在隨時間推移,區塊獎勵逐漸降低這個背景下。

  其他指標。 以上列表尚未囊括所有潛在的其他指標。譬如,盡管人們的注意力始終聚集在比特幣的交易媒介功能上,比特幣也同時扮演著價值存儲的角色。因此,也可以考慮將每存儲1美元的成本視為一種CPCT的替代方案。 很多其他的指標也都具有相當的意義,這屬于一種開放的研究問題,能夠為技術與政策決策提供十分有意義的信息。

  3. 參數調試的擴展性及其基礎限制

  比特幣社區已經在討論有關增加塊大小(或取消塊大小限制[43])的若干提議。比特幣改進提案(BIPs)100、101 、102和103都涉及分叉,分叉由區塊鏈[14,24,27,28,51]中反映出的時間以及礦工買入的組合觸發。這些方案的主要區別在于首次增加(塊大小)的初始日期、塊大小變更策略(塊大小vs.線性變更vs.持續翻倍vs.選擇性降低),以及觸發分叉的礦工買入百分比。隔離證人提案[24]則通過“軟分叉”實施將塊大小增加至不超過之前的2倍大小,其中遺留節點無需升級,但最終還是要以一種隱性的式信任礦工做交易驗證。開發者社區中也就各種提案(BTC Core、XT、Classic和Unlimited)各執己見/拉幫結派,這些提案體現了不同的功能組合以及推出時間表。目前為止,尚不存在一家獨大的情形,部分原因是因為很難確定哪一個變更方案最適合未來節點配置的變化。而且,單純的再參量化能否充分滿足大中型交易處理系統的增長需求仍有待商榷。本節的其余部分中,會對其(單純的再參量化)的若干局限性進行探討。

  3.1 測量研究

  了解比特幣性能,需要重點參考Decker和Wattenhofer 在2012年對比特幣網絡區塊傳播做出的測量研究[21]。 當時,比特幣節點接收區塊的中位以及90百分位時間分別為6.5秒、26秒。 研究還表明,對于低于20KB的小塊來說,延遲是區塊傳播時間中的重要因素。 高于此大小時,則吞吐量成為主導因素,且不會隨塊大小變化變化。因此,研究者發現,區塊足夠大時,傳播時間相對于塊大小呈線性增長。

  測量時的平均塊大小為87KB。 這說明早在2012年,90%的節點要花5分鐘來接收滿1MB區塊,占了區塊間隔很大一部分。

  由于節點的帶寬配置與網絡拓撲結構自2012年以來不斷發展,我們分別在2014、2015年進行了重復測量。測量結果表明,10%、中位以及90%區塊的傳播時間分別為0.8秒、8.7秒和79秒 分別。 此外,當前的平均塊大小約為540KB。 套用到1MB塊大小,90%、中位以及10%的區塊傳播時間分別為2.4分鐘、15.7秒和1.5秒。

  X%有效吞吐量。 我們將 “X%有效吞吐量”指標定義為X%有效吞吐量 =(塊大小/(X%區塊傳播延遲)。

  測量研究表明了網絡以下的X%有效吞吐量(轉換為250字節交易的交易/秒):

  為了確定吞吐量超過延遲成為主導(傳播)時的最小塊大小,我們還參考Decker和Wattenhofer 2012年進行的其他實驗研究[21]。 實驗結果如圖1所示。圖1顯示了區塊傳播至50%、75%和90%的節點的總速率(“網絡傳播速率”),同時捕獲了延遲 吞吐量的綜合影響。 隨塊大小從零開始增長,網絡傳播速率增加,直至約80KB大小時趨平;這表明塊大小超過80KB時,吞吐量超過延遲成為主導因素。 此時,90%的節點的傳播速率約為55 Kbps,與上表中針對當前覆蓋網絡觀察到的90%有效吞吐量一致。

  由于數據有噪音,不提供延遲估計。大小超過80KB的區塊,噪音可以忽略不計,文章中其他部分也進行了忽略。

  3.2 再參量化后的擴展限制

  現在,我們來探索再參量化擴展比特幣的潛力。平均塊大小在一個出塊間隔內達到X%有效容量時,網絡上(100-X)%的節點無法在區塊到達時做接收,意味著節點失能。

  圖1:網絡傳播率(包含延遲及吞吐)vs. 區塊大小

  假設維持當前的去中心化水平不變,去中心化水平取決于p2p覆蓋網絡中正常運行的節點數量。出于本研究的目的,我們將90%作為目標數量。單個節點對去中心化整體價值的貢獻量化起來則很困難。各節點的分工不同,并非所有節點都必須是礦工,還可能是服務商、用戶等,且并不存在能夠衡量每個節點經濟意義的絕對方法。我們的定義反映了每個節點相等的權重。

  還需強調的是,我們的研究結果以使用比特幣當前的p2p覆蓋網絡為前提。網絡的大小或屬性發生變化時,進行的其他實驗將受到影響。注意,比特幣覆蓋網絡的大小在2014年11月到2015年11月這個區間處于穩定狀態,全節點數量保持在4500- 6300的范圍[5]。簡潔起見,我們使用“當前覆蓋網絡”來指代這些假設條件。

   

  吞吐量限制。 我們觀察到塊大小與出塊間隔必須滿足:

  因此,出塊間隔為 10分鐘(或更短)時,X = 90%,則塊大小不應超過4MB; X = 50%時,大小為38MB。

  觀察1(吞吐量限制)有鑒于當前覆蓋網絡以及目前平均10分鐘的出塊間隔,塊大小不應超過4MB。 4MB塊大小對應至多27筆交易/秒的吞吐量。

  延遲限制。 為改善系統延遲,原則上可以直接降低出塊間隔。 然而,為保持足夠高的吞吐,還需要同時減小塊大小。實驗結果見圖1。

  傳播塊大小低于80KB的區塊時,網絡帶寬未充分利用,原因是延遲仍然是主導區塊傳播時間的重要因素。 考慮到當今網絡90%有效吞吐量為55Kbps,將80KB區塊傳播到90%的節點大約需要12秒。 因此,遵循以下準則。

  觀察2(延遲限制)有鑒于當前覆蓋網絡,為了保持至少90%的有效吞吐量,同時充分利用網絡帶寬,出塊間隔不應顯著小于12s。

  如何解釋/使用這些數字。需要強調的是,有鑒于比特幣目前的規模與基礎協議,上述僅為再參量化一項能以何種程度擴展比特幣點對點覆蓋網絡的保守界限。剩余那些更難測量的指標也可能顯示出擴展限制。譬如公平性,我們的測量結果(見3.1節)表明,如今的比特幣覆蓋網絡中,節點按區塊傳播時間排序時,(排名)前10%的節點接收1MB的區塊比后10%的節點早2.4分鐘,意思是根據訪問節點權限不同,有些礦工在解決哈希難題方面可能獲得顯著且不公平的領先優勢。由于一些復雜因素,例如,基于如今大部分礦工獲取交易不只依賴單個覆蓋節點(比較常見的是依賴獨立的、速度更快的挖礦骨干來傳播區塊)這一事實,我們認為這個數字不能直接代表再參量化的討論。然而,這些數字可以說明其他難以測量但重要性相當的指標。因此,比特幣系統經歷根本的協議變更之前,逐步或保守的變更參數可能是謹慎之選。最后,需要注意的是,我們的吞吐量導則適用于參數由市場結果或由硬編碼限制強制執行的情形。

  3.3 瓶頸分析

  盡管能夠通過參數調整的方式擴展區塊鏈協議,我們也發現實現的最佳吞吐量仍顯著小于底層基礎架構所構成的限制。

  表2a中展示了我們測量研究的結果,我們對超過4000個比特幣節點進行了單個節點帶寬測量。表2a表明,提供給單個節點的網絡帶寬顯著高于目前比特幣獲得的整體網絡吞吐量,上面說過,當前的90%有效吞吐量為55Kbps(參見第3.1節)。比特幣的網絡堆棧無法實現每節點鏈路帶寬可能是多重因素合力的結果。譬如,每筆交易都被傳輸兩次,第一次是交易的流言傳播,隨后區塊被挖出時,再次對新出塊連同其中包含的全部交易進行廣播。此外,由于缺乏流水操作,多個覆蓋跳躍間的傳播也引入了與路徑長度成比例的延遲。最后,表2b顯示出與交易驗證相關的加密開銷與磁盤I/O并非瓶頸。

  4. 重新思考可擴展區塊鏈設計

  本章節中討論了支持區塊鏈擴展至超越當今比特幣參數的各種技術,既有當今去中心化區塊鏈之上的增量變化也有更為激進的重新設計。本節的目標不是提出一種端到端的系統,而是繪制出一個設計空間,提出有潛力的各種方法,并為社區提出公開性挑戰。

  我們將比特幣系統拆分成一系列的抽象層,我們將其稱為平面,并圍繞這些平面組織相應的討論。根據從下到上的依賴性層次結構,我們考慮的五個平面分別是是網絡、共識、存儲、視圖以及側平面。

  論述中,分類賬指系統的完整歷史,即共識平面的完整輸出,如下定義。更為確切的定義中則規定了特定的確認策略,原因是如去中心化加密貨幣的例子中,分類賬內容可能發生變化。簡單起見,我們不對去中心化加密貨幣的這一特征進行建模,而是將寫入分類賬的內容視為已確認。

  4.1 網絡平面

  網絡平面的功能是傳播交易消息,支持抽象廣播,其中來自任何參與者的交易消息將被傳輸到比特幣網絡中的所有(全)節點。 然而,比特幣中的網絡平面并非純粹的廣播媒介。 節點僅傳播代表有效交易的消息,因此抽象僅接收有效交易作為輸入。

  我們的測量結果表明,比特幣網絡協議與實現并未充分利用底層網絡帶寬,使得比特幣網絡平面成為交易處理中的瓶頸。 因此,改善比特幣擴展性的一個方向自然是改進其網絡平面設計。

  比特幣網絡平面中存在兩處顯著缺陷。首先,為了避免傳播無效交易導致的拒絕服務,節點必須在進一步傳播之前完全接收并驗證交易。 (有效交易必須產生合法的交易輸出,且輸出不能與先前交易沖突。)這種交易的本地驗證對整體傳播時間產生巨大影響。其次,比特幣網絡層協議首先傳播所有交易,隨后在挖出區塊時對區塊(區塊包含了先前傳播的交易)進行再次傳播。這也意味著每筆交易需要發送兩次。

  有若干改進比特幣網絡層協議的提案。為了避免每筆交易轉移兩次,一種可能性是依靠集合調和協議,其中節點僅獲取新挖出的塊中自己沒有的交易[6,32,39,48]。另一種目前已被礦工采用的方案中,使用了專用的集中高速中繼網絡進行礦工間通信[20]。

  另外一種方向是改善網絡層廣播通道的功能。可以將網絡平面設計成強大的P2P覆蓋拓撲,實現誠實節點間低直徑范圍的強連接。此種覆蓋拓撲結構一般屬于具有已知低延遲廣播協議[29,33]的膨脹圖。為了限制對抗性節點的影響,覆蓋可以隨機化所有peer的位置(意思是不受peer控制)。已有若干分布式系統采取了這種手段[15,44]。為了進一步限制拒絕服務,節點可以對來自peer的傳輸進行速率限制。此種維持誠實節點(出現拜占庭對抗節點時)間強鏈接的覆蓋設計在靜態網絡中較為常見[23,36],但是對于高度動態的網絡來說,仍是相當活躍的研究領域[31]。

  另外一個長期存在,涉及網絡平面的問題是參與者激勵。研究人員指出,網絡平面缺乏傳播交易的激勵結構,同時,提出了一種改良的酬金分潤結構進行強有力的激勵。網絡協議的很多其他的方面仍依賴于自愿參與,且需要臨時防御來阻止泛洪、拒絕服務攻擊。

  4.2  共識平面

  共識平面的功能是為處理指定一組全球接受的交易,并對這些交易進行全部或部分排序。 作為一般抽象,本平面從網絡平面接收消息并輸出隨后會被插入系統分類帳的交易。 比特幣中,共識平面指的是一種挖掘區塊并就其被納入區塊鏈達成共識的功能。

  改進工作量證明協議。比特幣區塊鏈協議在共識速度、帶寬與安全性之間做出了權衡。對前兩者改進的同時,也引入了更多分叉,最終折損了保障系統安全的礦力以及公平性[26]。有相當多的加密貨幣(如[9])在共識速度與安全性之間選擇了前者,相當于高出塊率版本的標準比特幣區塊鏈。

  然而,這種三方權衡并非去中心化加密貨幣所固有的。 Sompolinsky等的GHOST協議[46],以及Lewenberg等的(協議)[37]表明,改變鏈選擇規則能夠改善公平性與礦力利用,具體來說就是指應該包含主鏈外的分叉。根據最近的研究,Bitcoin-NG [26]證明能夠通過一種僅由網絡平面提供共識延遲與帶寬僅限制的替代協議消除比特幣中的固有權衡。

  權益證明。 有各種提案(如[12,34])使用了權益證明來達成共識,由此消除了工作量證明的計算成本。權益證明中,委托人通過存款的方式獲得創建區塊的權利。 然而,這些手段缺乏系統收斂的正式擔保[19]。

  聯盟共識。 去中心化有性能成本。一個信任假設強于比特幣的模型能夠支持更為有效的共識協議,進而實現因計算、帶寬及存儲降低帶來的低延遲、高吞吐。 具體而言,少數預先指定的可信實體使用標準拜占庭容錯(BFT)復制協議的操作掃清了比特幣中影響擴展的諸多障礙。

  涉及此種由少數可信實體執行的BFT協議設置的學術文獻少之又少,但在實踐當中激起了廣泛興趣,其中主流金融機構正在對其的使用做出積極探索 [45]。 聯盟共識有時也被稱為“聯盟區塊鏈”。

  從去中心化加密貨幣的代替方案以及表征去中心化區塊鏈在分配信任時產生的性能成本這兩個方面來說,聯盟區塊鏈值得研究。我們在本論文的完整版本[10]中,展示了對當前較流行、節點遍布全球八個地理區域的BFT協議(PBFT)進行試驗后的得出的性能數據和微基準評量測試結果。結果表明了使用BFT作為加密貨幣共識層基礎的吸引力(不考慮強信任假設的前提下)。即便只有幾十個節點,PBFT在交易延遲與吞吐量方面的表現都大大超越了比特幣。譬如,64個節點批量處理8192筆交易可以實現4.5K tx/秒的吞吐量,平均交易延遲1.79秒,處理每筆交易的資源成本預計僅為3.95×10?7美元。2 但是,節點數擴展至上百個時,系統性能則大大降低。如文中所述,如何對BFT協議進行分片會是一種有前景的擴展手段,同時也是開放的研究方向。

  2 我們實驗當中的交易長度為190字節,做資金轉賬長度足矣;有鑒于比特幣交易平均大小約500字節,系統吞吐可達1700筆交易/秒。

  分片。 提高共識平面擴展性的一種可能方式是對其進行分片,意思是將共識任務分配到同時運行的節點集之間,目的是提高吞吐量并降低每個節點的處理與存儲要求。分片技術一般應用于諸如Dynamo、MongoDB、MySQL以及BigTable等的分布式數據庫,但性能通常不會隨分片計數線性增長。 這是因為操作跨多個分片時需要在所有分片間達成共識。根據之前非拜占庭環境中的探索研究[25,30,52],有一種可能的方案是另外使用一種單獨的共識協議,譬如Paxos,以實現分片間的共識。 然而,拜占庭設置中需要跨分片協調時,這樣的方案可能產生巨大開銷,因此區塊鏈的分片協議仍是一個開放的研究領域。

  信任委托與層級側鏈。實現擴展的另一種手段是創建一種帶“低級共識實例”的層次結構,就是常說的“側鏈”。側鏈的去中心化出程度可能低于頂層區塊鏈;運行的可能也是非工作量證明共識協議,好比BFT。由Back等的一種側鏈結構[16],還支持交易在獨立的區塊鏈間轉移資金。

  側鏈的引入也帶來了三方面的技術挑戰。首先,側鏈的安全保障必須獨立于主區塊鏈。合并挖礦技術[16]支持各單鏈共享礦力,但是需要礦工協作。若無協作,各側鏈的維護會削弱系統整體礦力,使得各單鏈易受攻擊。其次,若廣泛采用側鏈,則給定資金來源與期望的目的地在同一側鏈上的可能性很低,因此可能需要跨鏈交易。由于跨鏈交易必須通過主區塊鏈,因此可能需要兩筆單獨的交易,同時為主區塊鏈帶來更多負擔,從而對擴展性產生不利影響。最后,涉及多條去中心化鏈的交易可能產生高延遲。去中心化區塊鏈需要累積多個區塊來確保交易會以高概率保留在區塊鏈中。各個鏈間的交易也需要這樣一系列的區塊累積,確切的說是每條鏈都得有。

  4.3 存儲平面

  存儲平面扮演全局內存的角色,用于存儲并提供共識平面生成的已驗證數據的可用性。 可以將該平面視為有兩個接口的抽象:(1)接收并處理來自共識平面修改存儲的指令,即寫入與(可能的)刪除操作,以及(2)服務系統中任何實體的讀取請求。 存儲平面包含系統的分類帳的同時,還可能包含共識產生的其他狀態,譬如智能合約狀態或由視圖平面支持的“視圖”。

  在加密貨幣中實現存儲平面有若干方式。比特幣中,存儲平面可視為存儲了比特幣分類帳。如今的比特幣參考實施默認存儲整個分類帳;結果是,系統存儲了整個分類帳的眾多副本。比特幣的存儲平面僅支持添加數據寫入(也就是新挖出的區塊),且不支持刪除操作。存儲平面支持的唯一讀取操作是整個分類帳的內容的下載,這個過程需要四天(參見第2節)。 (有鑒于當前區塊鏈的高度,證下載的分類帳時可以參考創世塊。)因此,比特幣的存儲平面顯著低效。

  其他的存儲平面實現與接口也是有的。社區已經提出了一些能夠對UTXO數據結構的存儲進行分片的想法 [38](見下文)。目前尚不清楚如何將這些想法套用到存儲平面中其他可能的狀態形式,譬如與智能合約相關的狀態。所以,如何對通用存儲平面進行分片,實現共識節點不必全部存儲完整歷史,同時還能在讀取操作時進行認證是個開放的研究挑戰。分布式哈希表(DHT)結合適當的數據驗證技術或許是條出路。

  4.4  視圖平面

  對于比特幣礦工來說,沒有必要在存儲了整個交易歷史的完整分類賬上操作。因此,比特幣中的礦工與節點在賬本的視圖上進行本地計算與運行,這個賬本的視圖就是未花掉交易輸出(UTXO)集,實際上是明確了系統中所有實體的當前余額。同樣,以太坊中,智能合約能夠定義趴在分類帳中的狀態。智能合約的各方希望能夠訪問并驗證此狀態而無需閱讀分類帳的其他部分。出于這個原因,加密貨幣(去中心化或中心化)的一個關鍵性能要求就是支持視圖。3

  3 我們對數據庫理論中的‘視圖’做了詞義調整,這里指存儲查詢的結果集。

  視圖指來源于完整分類帳的數據結構,狀態通過應用所有交易獲得。出于性能原因,視圖可以存儲在存儲平面中并以一種已驗證的方式分布,(這一點并沒有在比特幣中實現)所以新礦工需要四天時間從零開始重建UTXO集(可以視為視圖)。通常情況下,視圖可以是完整分類帳的任意函數,不一定必須是UTXO集。作為存儲平面中的一段數據,視圖必須由共識平面隱式或顯式確定,且必須能被任何對其執行讀取操作的實體驗證。視圖的實現有多種方式,包括:

  復制視圖。 比特幣[40]、以太坊[50]以及其他流行的去中心化加密貨幣規定所有共識節點必須驗證所有交易(和/或智能合約),并根據計算結果本地更新各自的視圖,譬如UTXO集。 這種情況下,視圖屬于共識平面的隱式輸出,并且能看作是駐留于存儲輸出:前提是計算正確,因為它代表著一組誠實的共識節點產生的計算,而且可用性很高。

  外包密碼學視圖。視圖的計算還可以外包給第三方服務提供商。 由服務商發布該視圖的加密摘要(如Merkle根)以及其正確性證明。 借由諸如簡潔非交互知識論證(SNARKs)[18,41]等可驗證計算技術,服務商可以為摘要生成正確性證明來支持對視圖的驗證。 隨后可將視圖插入存儲平面。可用性非必要條件時,還可將視圖存儲在系統的其他部分,甚至由服務商存儲。

  這種方法有個優點是,共識節點不需要存儲整個分類帳,可以選擇在適當的視圖上操作。 然而,有個關鍵的問題是,諸如SNARK等的加密技術是否實際可行。論文的完整版本[10]中,我們提供的實驗結果表明,使用SNARK計算存儲了幾乎所有用戶余額的簡單視圖的攤銷成本可以低至每筆交易0.0154美元。

  4.5 側平面

  順著側鏈支持非主鏈共識的思路,我們還可以其他考慮鏈下功能。鏈下交易這種方式已經在支付網絡中得到了論證[13,22,42],意思是支付被路由到各種預先建立的“抵押”通道路徑中進行。每個通道中都有一定數比特幣儲備,讓各方可以通過交換帶外消息的方式重復調整自己的相對權益,直到該通道被最終確定(且儲備金支付盡)。盡管支付網絡被認為是解決比特幣固有限制的神奇方案,但其中大部分的操作以及網絡能夠提供的保證,都取決于各方之間形成聯系的本質。即便支付網絡亦使用與比特幣相同的基礎交易格式,譬如閃電網絡[42]還有全雙工通道[22]這種,本質上講就是形成了一個由比特幣支持的獨立的網絡平面與點對點共識平面。

  因此,這個通道絡的容量、查找路由的能力、實現的吞吐量、延遲與隱私保證這些從根本上講,還是取決于支付網絡圖的突發屬性,例如點對點通道的價值能力、路由的可發現性、涉及節點的在線狀態等等。此外,支付通道也體現出了支付網絡中性能與中心化之間的權衡;簡化了路由的集中式中心輻射拓撲固有的體現了集中化中諸如隱私不足的問題。設計出一種高效、可擴展、保護隱私的支付網絡協議也是一項持續的研究,畢竟終極目標并不僅僅是全面超越比特幣的網絡與共識層。

  5. 結論

  本文探討了擴展比特幣與區塊鏈整體存在的諸多挑戰。 根據測量研究,我們發現對比特幣塊大小與出塊間隔的再參量化僅是維持系統去中心化程度的基礎上改進吞吐量與延遲的第一步。 長遠來看,更為激進的擴展方案將涉及對基礎協議的重新設計。 通過對區塊鏈協議的設計格局進行結構化地描述,我們在展示了各種有望成功的擴展手段的同時也對最近提出的一系列新想法進行了分類,并為社區圈出了眾多重要的開放性技術挑戰。

  Nervosfans社區正在整合資源

  為想創建項目的朋友搭建創業平臺,

  請感興趣的朋友加樂樂微信:sensus113,

  謝謝!

  Nervos CKB 唯一官網:Nervos.org

  歡迎關注Nervos Fans

  Nerovs CKB 愛好者社區

  Nervos Fans如下頻道:

  NervosFans twitter:@nervosfans

  NervosFans 微博:@NervosFans

  NervosFans 微信公號:Nervosfans

  入群請加樂樂微信:sensus113

  美果大冰微信:xj73226

  備注入群,謝謝!

  長按識別二維碼

  關注我們

版權信息
作者:Nervosfans
來源:Nervosfans

關于我們

聯系我們

作者進駐

手機版

Copyright © 2013 比特巴 www.qdwpjd.tw
始建于2013年,提供比特幣 區塊鏈及數字貨幣新聞、技術教程、測評、項目周報、人物等資訊
本頁面提供的是新手入門教程資訊,提供入門級的比特幣知識、區塊鏈知識以及各類數字貨幣知識,是數字貨幣愛好者入門、精通的好導師。
六和网站曾道人