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 萬筆/秒。html

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是怎麼作的?dom

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

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

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

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生態前景》。
點擊報名

相關文章
相關標籤/搜索