Conflux 吐槽君:Hashgraph 是一個真正的企業級去中心化平臺嗎?

親愛的好朋友們:上期小C吐了一下 IOTA。說實話,剛開始小C還有些忐忑,畢竟是小C出道的第一篇文章,文章內容也可能會引起一些激烈的辯論。結果,有非常多的朋友給了我點贊關注加雞腿,這讓小C非常受寵若驚。感謝大家對小C的支持和關注,小C一定會更加努力地爲大家寫出更多更好的文章,不辜負大家對小C的信任!今天小C又新鮮出爐一篇新的文章——想跟大家一起分享一下 Hashgraph 這個項目。

Hashgraph 是什麼?

這個名爲 Hashgraph 的分佈式賬本於 2016 年橫空出世,稍晚於上次講過的“第一個使用了 DAG 技術”的公鏈項目 IOTA——如果 DAG (Directed Acyclic Graph,有向無環圖)也可以被稱爲一種“技術”的話。Hashgraph 項目團隊宣稱:“這不是區塊鏈,這是市場上第一個(甚至唯一一個)‘銀行級’的共識技術。” ¹ 江湖傳聞 Hashgraph 可以拳打比特幣,腳踢以太坊,靠的就是不分片即可高達 50 萬 tps 的硬實力 ² ,唯一的限制只有網速和想象力……順便說一下,小 C 聽說18年天貓雙11的交易量峯值是 49.1萬筆/秒,17年時候才 25.6 萬筆/秒。

1:https://www.thestreet.com/story/14385913/1/is-hashgraph-technology-just-hype-or-can-it-dethrone-blockchain-.html

2: https://www.hedera.com/whitepaper


隨手放狗搜一下 Hashgraph 就可以發現,無論是在 Wikipedia 還是在其他各種媒體上,這個項目的口氣都大得嚇人: “How Hedera Hashgraph is building a fast and secure blockchain alternative.”(Hashgraph 如何建造一個快速且安全的區塊鏈替代者)這樣的說法,已經算是非常謙虛的了,其他的還有以下這些:

  • “Hedera Hashgraph Thinks It Can One-Up Bitcoin And Ethereum With Faster Transactions”(Hashgraph 自認爲勝過比特幣和以太坊一籌)
  • “Hashgraph vs. Blockchain Is the end of Bitcoin and Ethereum near?”(Hashgraph 對區塊鏈!比特幣和以太坊的末日指日可待?)
  • “Hashgraph wants to give you the benefits of blockchain without the limitations”(Hashgraph 想要給你們帶來無限牛逼的分佈式賬本)
  • ……

簡直一個項目要單挑所有區塊鏈了!開頭說的“拳打比特幣,腳踢以太坊”已經算是非常謙虛的口號了。不過仔細研究以後,小 C 發現 Hashgraph 項目團隊確實沒有騙我——Hashgraph 真的是一個“銀行級”的公用賬本,一個只有銀行級用戶才用得起的賬本。

Hashgraph是怎麼做的?

小 C 在這裏先來簡單介紹一下 Hashgraph 的共識算法,對這部分比較熟悉或者不感興趣的觀衆可以直接跳到下一節。

與 IOTA 所用的 Tangle 賬本不同,Hashgraph 用了一種更規整的圖結構“哈希圖”去存儲包含交易的區塊(每個區塊在 Hashgraph 中記爲一個“事件”(event)),並通過一個 aBFT (Asynchronous Byzantine Fault Tolerant, 異步的拜占庭容錯,指系統在不超過三分之一的節點被攻擊者控制,且誠實的節點之間通信延遲可以被任意延長的情況下仍可以保證安全性)的共識算法來保證所有人對整個賬本達成共識。

簡單來說,Hashgraph 共識算法的基本邏輯就是:假設大多數參與者都是好人,那麼當交易被足夠多數人(比如三分之二以上的比例)見證以後,就可以確認這些交易的順序以及它們是否有效了。只要系統裏大部分人都是誠實的,那麼多數人見證過的歷史就可以沉澱爲無法改變的共識。

Hashgraph 共識算法採用了一種“見證即投票”的方式對交易歷史排序。當一個參與者 Alice 看到有新鮮事發生的時候,比如一筆新的交易 T,就把這些新鮮事打包到一個區塊 B 裏;除了親眼所見的以外,Alice 構造的區塊還需要引用兩個更早的區塊,其中一個是 Alice 自己生成的前一個區塊,另一個是從其他參與者那裏收到的最新的區塊。然後再給 B 加上時間戳和 Alice 的簽名,就可以把區塊 B 悄悄地告訴另一個隨機選擇的參與者 Bob 了。將來 Bob 就可以再通過引用區塊 B 的方式,作爲見證者把 “Alice 告訴我某時某刻發生了一筆交易 T” 的信息繼續傳播給其他人。於是,Alice 發起的這筆交易 T 就能以八卦的形式在參與者之間飛快地傳播,只需要大約 log(N) 次就可以傳遍 N 個參與者。果然,八(yao)卦(yan)傳播的速度就是比正經的廣播要快得多呢~

Hashgraph 將所有區塊按照他們之間的哈希引用關係組織成 DAG ,稱爲一個“哈希圖”。哈希圖不同於一般的有向無環圖, 它有着非常鮮明的結構特徵,即每個參與者都有一條鏈,同時鏈上的每個區塊都引用一個別的鏈的區塊。哈希圖實際上描述了“事件”在“八卦網絡”(Gossip Network)中傳播的路徑。通過觀察本地存儲的哈希圖我們不僅可以判斷一個事件是否已經被大多數參與者見證,還可以確定每個參與者見證不同的事件的先後順序。

Hashgraph 的通信比傳統 BFT 少?

Hashgraph 相對於傳統 BFT 算法最大的優勢,就在於 N 個參與者只需要每人發送大約 log(N) 條消息就可以完成一輪投票。要知道,在普通的 BFT 算法裏,每個參與者可是要發 N-1 條點對點的消息才能做完成一輪投票的。聽上去是不是很厲害?簡直 too good to be true!

爲什麼 Hashgraph 可以做得這麼好呢?其實有一個比較微妙的小問題,只是因爲 Hashgraph 相關的文檔寫到這裏都是一筆帶過的,所以小 C 至今沒有看明白:傳播八卦的時候,一條消息到底有多長?

按照 Baird 2016年的 Hashgraph 論文的說法(“… Alice will choose another member at random, such as Bob, and then Alice will tell Bob all of the information she knows so far”)似乎是要 Alice 把所有知道的信息都告訴 Bob。所以,Alice 發給 Bob 的信息可能不止是一個區塊 B,還包括這個區塊 B 直接間接引用的的所有其他區塊——難道要把整個賬本的歷史都放在一條消息裏發出去?即使 Alice 非常聰明,記得她上次都告訴了 Bob 哪些八卦,每次只需要同步新八卦,那麼每條消息的長度也依然會達到參與者人數的線性量級。如此看來, Hashgraph 可以少發很多條消息就沒那麼神奇了。因爲雖然條數少了,但是新包裝的一條消息的內容可能就長得可以繞地球1圈~

最後算下來,Hashgraph 似乎也就是一個沒有比傳統的 BFT 算法節約什麼的 BFT 算法。

Hashgraph 的“銀行級”性能

接下來,小 C 來給大家算一下 Hashgraph 的幾十萬 tps 到底是什麼概念。

如果按照 Hashgraph 的測試網數據 25萬 tps,每筆交易按 250 字節計算, 僅同步交易就需要 250000*250=62500000 B/s=62.5 MB/s 帶寬。如果按照官網白皮書所說的 50萬 tps,則需要 125MB/s 帶寬。注意,這還沒有計算除了交易本身以外的任何開銷。所以在 5G 普及之前,普通用戶下載速度都趕不上 Hashgraph 增長的速度。

姑且先不討論帶寬,那麼什麼樣的機器才能處理每秒數十萬筆交易呢?以現在典型的機器配置,單核 CPU 每秒鐘也就能驗證幾千筆交易的簽名,強如 EOS 的超級節點在峯值時刻處理的交易數量也不過每秒四千筆左右。而 Hashgraph 除了處理賬本上的每筆交易以外還要維護八卦圖和虛擬投票,這又是一筆不小的開銷。

綜上所述,只有銀行級或者企業級的硬件才配得上 Hashgraph 了。

Hashgraph 的“銀行級”安全性

Hashgraph 超高的安全性要求三分之二以上的參與者見證才能確認一筆交易,這樣少數壞人再也無法修改公共賬本。但是另一方面,這個機制也有非常嚴重的缺點——共識參與者的活躍性問題。

Hashgraph 共識參與者們必須非常活躍,否則就會因爲見證人數不夠而無法達成任何共識。在現實中任何一個去中心化的系統中,普通用戶一般都是長期不在線的,能長期活躍在線的只有:1)銀行和交易所;2)莊家;3)礦工(Hashgraph 沒有 PoW,沒有礦工) 以上都是。所以,一個由銀行級和企業級用戶維護共識的公共賬本,當得起一句“銀行級”的安全性。

對 Hashgraph 項目的建議

小 C 建議 Hashgraph 項目也不要總拿着“銀行級”聯盟賬本的性能去找比特幣和以太坊等公鏈碰瓷,都不是一個賽道上有什麼好比的。還不如好好跟別的基於 pBFT(實用拜占庭容錯)的公共賬本比比孰優孰劣更有意義。

如果 Hashgraph 實在眼紅公鏈這塊蛋糕,也應該嚴謹地分析 Hashgraph 在公鏈環境下的安全性,然後用同口徑的性能數據去跟別人比較,否則再怎麼比也只是雞同鴨講罷了。本來嘛,如果 Hashgraph 只是做一枚安安靜靜的 BFT 賬本,不要出來喊打喊殺地要做顛覆區塊鏈的“Blockchain killer”,我們也不會想起來要拍它不是嗎?就像裘千丈裘老前輩的職業規劃如果是做一名魔術師或者雜技演員,那絕對是一位德藝雙馨的老藝術家,也不會捱打對不對?

事實上,Hashgraph 項目也確實是按照聯盟賬本搞的,他們組織了一個由 39 個組織和企業構成的委員會去維護和運行這個分佈式的賬本。

至於開不起銀行的普通用戶嘛……我覺得支付寶和微信都是不錯的企業級賬本和 APP 平臺。他們如果願意把各地的機房拆分成不同的公司分別運營甚至賣掉幾個的話,應該也能達到不輸 Hashgraph 的“去中心化”程度。

好了,這一期的內容就先到這裏了!小夥伴們,如果你們看後感覺到了歡樂,覺得內容充實又有趣的話,記得多都支持我呀!動動手指點個贊,關注一下我們公衆號吧~

順便推薦一下我們的線下活動~在本期Conflux Meetup,我們爲大家邀請到了Conflux CTO伍鳴、Conflux研究總監楊光、Cobo錢包高級副總裁李堯來一起聊一聊《下一代公鏈和DApps生態前景》。
點擊報名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章