區塊鏈技術的網絡層通信協議為點對點的結構,憑借其去中心化及點對點的獨特性,可擺脫中心服務器對網絡層的限制與束縛,現階段的主流區塊鏈技術包括比特幣,以太坊及超級賬本三種類型,本文著重分析這三種類型對區塊鏈技術應用的優缺點進行分析,并為區塊鏈PP網絡協議的進一步完善提供參考。
一,區塊鏈P2P網絡類型
二,P2P網絡協議演進
1、基于比特幣
比特幣采用了基于互聯網的點對點(P2P:peer-to-peer)分布式網絡架構。比特幣網絡可以認為是按照比特幣P2P協議運行的一系列節點的集合。
比特幣網絡協議允許完整節點為了區塊和交易的交換協作維護P2P網絡。在把區塊和交易轉發到其他節點之前,完整節點下載和驗證每個區塊和交易。文檔節點是存儲了整個區塊鏈并且能夠為其他節點提供歷史區塊的完整節點。修剪節點是不存儲整個區塊鏈的完整節點。許多SPV客戶端也使用比特幣網絡協議連接到完整節點。共識規則不包含網絡,所以比特幣程序可能使用替代的網絡和協議,例如一些礦工使用的高速區塊轉發網絡和一些提供SPV級別安全的錢包使用的提供交易信息的服務器。
2、基于以太坊
以太坊底層分布式網絡即P2P網絡,使用了經典的Kademlia網絡,簡稱kad。Kad的路由表是通過稱為K桶的數據構造而成,K桶記錄了節點NodeId,distance,endpoint,ip等信息。以太坊K桶按照與target節點距離進行排序,共256個K桶,每個K桶包含16個節點。
以太坊的P2P網絡,是以比特幣的P2P網絡解雇為基礎的。以太網建立了分布式信息通訊平臺及存儲平臺,基于網絡節點,通過Kad 協議實現對于其他節點地址的快速查找及精準定位。
3、基于超級賬本
Peers是整個網絡的基礎,因為它是賬本和智能合約的載體。通過智能合約,賬本以不可篡改的方式記錄了交易的全過程。在區塊鏈中,智能合約和賬本被用來封裝整個網絡中的共享處理工程和共享信息。
一個區塊鏈網絡由peer節點組成,每一個peer節點持有一個或多個賬本,以及一個或多個智能合約。上圖中網絡N由三個peer組成P1、P2和P3。每一個Peer都持有了一個賬本實例L1;每個peer都通過鏈碼(智能合約)S1去訪問各自的賬本副本L1。通過暴露的一系列接口,可以允許管理員和運用程序來創建、開啟、停止、重新配置甚至刪除peer。
正是由于peer持有了賬本和鏈碼,管理員和運用程序必須通過peer才能訪問這些資源。正因如此,peer被稱作超級賬本區塊鏈網絡中最基礎的模塊。
在比特幣及以太坊的高速發展的情況下,區塊鏈技術也得以快速拓展,超級賬本可提供企業級區塊鏈服務,在該P2P網絡結構中,網絡節點不同,需要經過高級節點處理交易。超級賬本并為實現去中心化,但節點的劃分可提升網絡效率。
三、分布式系統中的共識問題
分布式系統中的共識問題一直是計算機科學領域的一個重要問題。目前人們主要有兩類共識協議來解決該問題:一類是經典共識協議,另一類是中本聰共識協議。
1、經典共識協議
由圖靈獎得主蘭伯特提出,具有強一致性、高效的特點,然而它也存在一 些缺點,首先是通信成本,在經典共識協議下,節點的個數不能超過 1000 個,因為系 統的通信成本會隨著節點數量的增加呈二次指數形式增長;其次是要求網絡中所有的節 點都是可信的,因此節點無法自由進出。
經典共識協議工作原理:
2、本聰共識協議
這類協議無法達到強一致性,但為系統提供了一個安全的概率保證——在實際運行中,只要達到一定的參數 標準,共識就是不可逆的。采用該協議的系統具有開放性,無權限的特性,任何節點都可以隨時加入網絡,然而也存在成本高昂、浪費資源且性能有限的缺陷。
3、Avalanche協議
Avalanche協議由四種機制組成,它們相互建立,共同構成更大共識工具的整個結構。提議中描述的四種機制是Slush, Snowflake, Snowball,和Avalanche。
(1) Slush
該算法的靈感來源于Gossip(流言)協議,或者也被稱為Epidemic(傳染病)協議,主要用于數據同步。
算法流程參見下圖:
(2) Snowflake
Slush算法是無狀態記憶的(memoryless),節點不保存和其他節點的交互歷史。
Snowflake算法在該基礎上,為每個節點增加了一個查詢計數器,用于累積該節點對當前顏色的信任度。如果連續β輪都選擇該顏色,則接受該顏色。算法流程參見下
具體修改的部分:
每個節點維護一個計數器
每次顏色發生變化時,將該計數器清零
每次查詢成功(收到αk個回復),并且顏色不變時,計數器加一
(3) Snowball
Snowflake記憶的狀態是短暫的,每次顏色變化都會將計數器清零。為了使得系統更加難以被攻擊,Snowball增加了一個置信度計數器,用于記錄每種顏色被選擇的次數。如果某種顏色被選次數超過另一種,則切換到該顏色,并等待查詢計數器超過閾值。算法流程參見下圖:
具體修改的部分:
· 每次查詢成功,增加所選顏色的置信度計數器
· 如果某種顏色的置信度變得比另一種低,發生顏色切換
(4) Avalanche
Avalanche在Snowball的基礎上引入了DAG。這會帶來兩點好處:
· 更高效:對DAG某個頂點的投票隱含了對“從創世頂點到該頂點”這整條鏈的認可
· 更安全:DAG把各個交易的命運交織在了一起,因此共識更加難以被逆轉(需要更多誠實節點的認可)
算法主流程參見下圖:
“受到八卦算法的啟發,這個新的家庭通過一種故意的亞穩態機制獲得了它的安全性。”具體來說,系統通過反復隨機采樣網絡,并引導正確的節點走向相同的結果來運行。分析表明,亞穩態是一種強大的技術,盡管不是通用的技術:它可以迅速將一個大的網絡移動到不可逆轉的狀態,盡管它并不總是能保證做到這一點。八卦算法是點對點網絡中出現的一種通信類型,它通常涉及對連接節點進行隨機采樣,然后接收信息。Avalanche協議在很大程度上借鑒了八卦協議的原理,它還利用網絡節點的子采樣來實現協商共識。
在Avalanche 協議下,節點之間達成共識 的步驟如下:
(1)所有的節點在初始時都是未著色的狀態;
(2)當節點從客戶端接受到交易信息時,未著色的節點 A 將自己的顏色更新為交易所攜帶的顏色,并向其他節點發起詢問。
(3)如果是未著色節點 B 收到詢問請求,那么該節點就會染成相同顏色,并對節點A 進行相同顏色的回復,同時向另外的其他節點發起詢問;如果是已經著色的節點C 收到 詢問請求,那么節點就對節點 A 發出自己顏色的回復;如果節點 A 沒有在限定時間內 收到 k個響應,那么節點 A 就會從剩余節點中繼續選擇一些節點發出并發出請求,直 到收集到 k 個響應;
(4)節點 A 收集到 K 個響應后,就會檢查是否存在相同顏色的樣本數值/總樣本數(x), 使αk,這里α是協議的參數,并且α》0.5;如果 x《αk,那么節點將會改變顏色;否 則不改變顏色;
(5)節點重新返回到查詢步驟,發起下一輪查詢,像這樣一共查詢 m 輪,在 m 輪結 束后節點可決定自己的顏色。
這個特性被稱為亞穩性; Avalanche協議被設計成最終降落在一個選擇上。協商共識機制的全部前提是確保網絡上各節點之間達成一致,并避免可能出現的連接。Avalanche的亞穩態協議被設計成將網絡引向場景中的一種選擇。
回到顏色選擇示例,隨著每一輪投票,網絡將開始看到節點傾向于哪個顏色的模式。隨著每一輪投票的進行,網絡得出這一結論的速度都比前一輪快。在某一閾值下,網絡達到其最終狀態,所有節點都決定了一種顏色。
利與弊
Avalanche的特點使它能夠支持難以置信的高速。rocket Team聲稱只需兩秒鐘就能達到最終狀態開發人員還認為,Avalanche協議具有非常高的吞吐量,每秒可以處理1,000到10,000個事務。另一個重要的特性是它的健壯性。Avalanche協議工作時不需要知道或同意參與網絡的節點的細節。網絡不需要就參與者的身份達成一致,就能達成不可否認的共識。Avalanche協議也是有效的能源。因此,協商共識意見是通過專門的八卦協議達成的,從而消除了在工作證明和其他類似機制中使用同樣大量能源的需要。
此外,由于所有節點都是相似的,并且具有相同的能力,所以沒有特殊類別的節點,比如比特幣生態系統中的礦工。這減少了節點對網絡的影響。它還增加了網絡拜占庭式的容錯能力。簡單地說,即使網絡上50%的節點是不誠實或惡意的,網絡仍然是安全的。另一個重要的特性(它可以被看作是優點也可以看作缺點)是,對于沖突的事務沒有活躍性保證。這意味著,如果一個不誠實的節點試圖實現一個雙重支出,Avalanche協議將無法就這兩個操作達成一致。
與經典協議和中本協議相反,Avalanche協議不能保證在這種情況下有選擇。缺乏共識將導致賠錢。懲罰是任何加密貨幣系統的基本特征,而Avalanche協議以一種有趣的方式解決了這一問題。缺乏活性保證就會對任何有意的惡意活動產生消極的作用。雖然加密貨幣世界已經對Avalanche協議表示支持,但是這個機制受到了首席開發人員Vlad Zamfir的批評,Casper表達了他的想法,即協議并不像它聲稱的那樣好或安全。他說:“它不是異步安全的,而是概率性的。”
評論
查看更多