Quorum 既沒有采用PoW也沒有采用PoS,因為PoW和PoS都屬于Nakamoto Consensus,任何人都可以隨時加入和退出節點,這種共識機制通過節點之間某種公平的“投票”選擇記賬人。由于節點沒有身份,可以自由地創造,相互不信任,因此投票資源必須是稀缺的。在PoW機制下,缺資源是物理算力,而在PoS下,這種資源是經濟權益。無需準入帶來了去中心化的制衡,但節點之間的“競爭”記賬不可避免地犧牲了速度與效率。
而且對于一個聯盟鏈或者私有平臺、金融機構來說,是不允許任何人都可以到公鏈作為一個節點來記賬的,所以 Quorum 不會使用 Nakamoto Consensus 全局共識機制。
為了解決這些問題,Quorum 嘗試采用高性能的容錯分布式系統 Byzantine Fault Tolerant (BFT),如 PoA 和 IBFT; 和容故障分布式系統 Crash Fault Tolerant (CFT),如 RAFT。
PoA 的全稱是Proof of Authority (權威證明)。PoA 基于一組有身份的節點,輪流進行記賬。換句話說,每個節點在用自己的 身份和權威作為擔保。
每個區塊只要一個簽名確認就可以,因為只有這幾個節點,不需要與其他節點產生時間競爭,和中心化服務器的效率不相上下??赡軙a生一個節點權力太大的問題,為了解決這樣的單個節點權力過大的問題,每個節點必須間隔記賬。比如說這邊有四個節點,必須在間隔兩個節點之后,才能進行下一次記賬,這個方式就是去限制單個節點的權利。Quorum最初使用的是 PoA,后來因為最終性(可以進行分叉)而不再使用PoA。摩根大通每天處理6萬億美金,如果進行了分叉,參考比特幣現金的分叉對整個系統的影響,大家就能理解摩根大通為什么不允許分叉的產生了,因為這會導致很多交易無效。
相對而言,Quorum支持的另外兩種共識機制RAFT和IBFT都是抗分叉的。RAFT 其實是一種已經廣為使用的傳統分布式一致性協議,應用在包括 Kubernetes, Docker Swarm等容器集群管理系統。RAFT 對于容故障、可信節點,需要更快出塊時間和最終性的封閉聯盟非常有效。 與以太坊相比,RAFT 也有自己的節點。相對于以太坊任何節點都可以出塊, RAFT 的節點分為 Leader 、Follower 以及暫時的 Candidate。Leader 是負責生產區塊的唯一節點,Follower 監聽 Leader 的“心跳”,并收取 Leader 傳遞過來的區塊。接受心跳的目的是為了抗系統故障,如果 Follower 在其周期內沒有收到 Leader 發來的心跳,新的節點作為 Leader 繼續出塊。
當新的交易產生后, Leader并不會馬上記錄到鏈上,而是等收到所有 Follower的確認回執后,記錄并廣播一個執行的消息,之后所有收到執行消息的 Follower才會將區塊記錄在本地的鏈上,避免分叉,確保最終性。RAFT 機制下的默認出塊時間間隔是 50 ms,而且只有在有交易發生時才會出塊, 大大節省了儲存空間。但 RAFT 機制也有不足之處,要使其得以運轉的前提是全部節點是誠實的。 RAFT雖然可以容單點故障,但是不具備容錯,無法防止節點作惡和篡改歷史數據。
如何防止節點作惡同時又能保證效率和最終性呢?Quorum 支持了伊斯坦布爾拜占庭容錯機制。
與 RAFT完全相信 Leader 不同,IBFT 的前提是包容 1/3 不誠實節點,通過驗證者多輪投票,達到彼此一致后出塊。由于在每個區塊高度只有一個節點負責出塊,不會有分叉的風險。 賬本不可改,試圖修改歷史紀錄需要獲取所有備份節點和主節點的私鑰。與 PoW 相比,IBFT 沒有競爭機制,出塊速度更快。不過,IBFT 的劣勢也很明顯,多個驗證階段的結構下讓消息數量與節點數量成指數級增長,因此 IBFT 的節點數不能太多,通常用作企業級和政府的網絡。
摩根幣到底使用的是哪一種共識機制呢?雖然摩根大通對 Quorum 網絡的信息十分公開, 但是并沒有公布關于摩根幣的共識機制。
從上文推斷來看,摩根幣不會選擇PoA機制,因為沒法實現最終性,那么只會在IBFT的跟RAFT中進行一個選擇。如果所有的節點都是摩根大通信任的伙伴,那么RAFT是不二的選擇;如果只是信任部分成員銀行,IBFT則是可行的試點。
此文由
中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://www.huohuxiazai.com/">首頁 > 比特幣行情 » 潘超:摩根大通背后的清算體系與區塊鏈網絡