Hashgrapgh的共識機制包括兩個部分,Gossip about Gossip和Virtual Voting,以下將分別解釋二者的工作流程與總體共識機制的工作流程,并說明Hashgraph的優點和存在的問題。
Gossip about Gossip
Hashgrapgh的核心通信協議是“八卦八卦協議”(Gossip about Gossip),靈感來自辦公室八卦,這里的八卦指的是一段我知道但是另一個人不知道的信息,只要兩個人之間八卦一下,在有限的時間內,所有的人都會知道該八卦的信息。
在Hashgraph中,每一個節點都在傳播經過簽名的新交易以及從臨近節點接收到的交易信息。當某個節點收到包含新交易信息的數據后,會組合并可能添加自己所知道的交易成為一個新的事件(Event,類似于區塊的概念,是一個包含有兩個哈希指針的數據結構,并且可以包括0個或若干交易信息)傳播出去,并且這個事件包含兩個哈希,一個指向該節點上次最新的事件,另一個指向該節點所收到的另一個節點的最新事件,然后對整個事件加上時間戳并簽名,整個循環不斷進行直到所有節點都獲得相同的信息。
如下圖所示,當 Bob 隨機找到了 Alice 八卦的時候,就會把自己當前所知道的一切都原原本本地告訴 Alice。然后 Alice 這里會出一個新事件(紅點),這個新事件里除了加入新的交易事務的同時,還會加上兩個指向父事件的 hash 值,一個指向自己的最新事件(深藍),一個指向 Bob 和自己聊天時候最新的事件(天藍)。
本質上八卦算法是一個帶冗余的容錯算法,更進一步,八卦是一個最終一致性算法或提供一致性算法的手段。雖然無法保證在某個時刻所有節點狀態一致,但可以保證在最終某個時刻,所有節點一致對某個時間點前的所有歷史達成一致。
Hashgraph的節點之間進行八卦的內容還包括節點間互相八卦的歷史記錄,于是每個節點都可以通過八卦維護一個哈希圖,這樣在節點計算共識投票的時候就可以發起虛擬投票,也就是計算其他節點在給定的哈希圖中會怎么投票,從而不需要在網絡上再做大量雙向同步通信去進行真實的投票。用Hashgraph發明者的話來說就是:“Hashgraph具備投票算法的一切優點,然而避開了它的最大缺陷。”
由于Gossip協議迅速的收斂性(convergence propperty),每條新的信息能夠以更快的方式到達每個節點,讓每個節點都維護著所有節點跟其他節點的通信歷史。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。