臺灣新創AMIS帳聯網於7月4日發表了一個臺灣獨創的全新區塊鏈共識演算法機制「伊斯坦堡拜占庭容錯演算法(Istanbul BFT)」,能大幅提升現有以太坊架構的訊息交換效率,在理想狀態下的交易速度最高可達每秒1,200筆,將專供金融高速交易之用,也提出申請要成為以太坊官方認證的第三個共識演算法機制。目前,摩根大通的區塊鏈平臺Quorum也計畫採用這個新演算法。

以太坊創辦人Vitalik Buterin也特別來臺參加發表會,他表示,區塊鏈上的節點在彼此不信任的狀態下,就是利用共識演算法(Consensus Algorithm)來構成一個具有信任度的網絡,而「Istanbul BFT就是改良版的拜占庭容錯演算法(PBFT),整合了更多符合區塊鏈實際應用的功能。」

AMIS帳聯網的創辦人兼執行長劉世偉則指出,相較於比特幣等公有區塊鏈上常用的工作量校驗(Proof-of-Work,簡稱PoW或俗稱「挖礦」演算法)共識演算法,PBFT已經做出不少重大改良,也比挖礦演算法更適合商業應用。因此,AMIS帳聯網就基於PBFT再進一步研發,找到了這個更瞄準金融業需求的私有鏈共識演算機制。

申請成第三個Ethereum官方支援的共識演算法

目前,以太坊官方認證的共識演算法有Proof-of-Work(PoW)及Proof-of-Authority(PoA),而AMIS帳聯網正積極爭取,將Istanbul BFT納為以太坊第三個官方支援的共識演算法。

AMIS帳聯網的工程副總林祐德指出,目前官方認證的PoW跟PoA的共識演算法,在私有鏈或聯盟鏈的實際應用場景中仍有一些問題。以PoW為例,「PoW是一個很好的演算法,在公有鏈(比特幣、以太坊)上證明了,成千上萬個節點的運作不會有問題。」但是,它不能接受可結束(Final)的區塊鏈區塊(Block),導致每一個區塊都有被分支(Fork)的些微機率。此外,PoW的礦工彼此競爭之下,運算越來越複雜,計算上也越來越耗資源。使用PoW共識演算產生區塊的速度大約是3~15秒,無法將區塊的生產力(也就是Throughput能力)提升。更重要的是,在使用PoW的公有鏈上,任何節點都可以是礦工,不容易進行控管,需要額外的精力來執行治理。

林祐德表示,現有的另一種共識機制PBFT則能夠改善上述PoW的缺陷,區塊能夠即時達到Final狀態,其次,共識完成就可以將上傳區塊,不會衍生更多分支,也因此可以大幅提昇區塊生產力。第三,產生區塊的過程不需要競爭,因此能源消耗很低,而且,PBFT節點的延展性可以跟PoW相同;更重要的是,PBFT可以透過驗證節點(Validator)的方式來控管區塊鏈。不過,PBFT仍有其缺陷,驗證節點沒有辦法太多,僅能約20~30個左右,這也讓擴展的程度有上限。

而AMIS發明的Istanbul BFT演算法,可以繼承了PBFT共識演算法的優點,同時延伸go-ethereum(geth)的可插拔(Pluggable)共識介面。

伊斯坦堡共識演算法3步驟,可容錯三分之一個拜占庭節點

Istanbul BFT的共識演算流程,由左上角的New Round開始由發起者發起一個區塊,開啟3步驟的共識決,最高可容忍鏈中有三分之一個拜占庭節點。

Istanbul BFT的共識演算流程,可分為三階段:Pre-prepare 、Prepare及Commit。由發起者(Proposer)發起一個區塊(Block)開始,開啟3步驟的共識決,最高可容忍鏈中有三分之一個拜占庭節點(壞節點)。

首先,由發起者提出Block Proposal後,廣播Pre-prepare message給鏈上的所有驗證節點,開始執行共識。每一輪的共識起始,都是由發起者發出一個區塊的Proposal給所有驗證節點。此階段為Pre-prepare。

驗證節點收到Pre-prepare message後,就開始Prepare階段。驗證節點就會廣播Prepare message給所有驗證節點包含發起者,告訴每一個節點我們要處理這個區塊,每一個驗證節點都要等收到2F+1個Prepare message(一個私有鏈網絡中,有N個驗證節點,以及F個拜占庭節點,N=3F+1)後,才獲得共識同意要大家來處理這個區塊,意即,Istanbul BFT的共識演算法可容忍三分之一個拜占庭節點。在這個前提之下,即可保證資料的完整性與一致性。

在驗證節點收到2F+1個Prepare messages後,就進入到Commit階段,廣播Commit message,所有節點在收到2F+1個Commit messages後,就取得共識同意將這個區塊放到區塊鏈上。

一個正常的共識輪,就是執行上述的流程(即圖中的外圈)。完成後就可以產生一個區塊。不過在某些情況下共識無法達成,例如:共識時間太久,或是發起者本身是一個拜占庭節點,發出一個垃圾區塊,抑或者是無法放入區塊。此時,驗證節點就會發出Round Change,同樣共識出一個大家同意的Round Number,決定出新的Proposer來發起新的輪迴。

只不過,許多人紛紛提出壞節點產出的垃圾區塊是否會讓整個區塊鏈生成有延遲問題。對此,林祐德回應,目前Istanbul BFT的共識演算法會用Round Change來解決,可能要多花幾百毫秒來處理,才能進到下一個區塊生產輪迴,這就是它的代價,不過現在他們也正努力去研究更智慧的共識決方式來避免壞節點所產生的垃圾區塊。

最高每秒可交易1,200筆資料,區塊鏈交易速度大加倍

AMIS測試Istanbul BFT的結果,以10秒為單位,最高每秒可有1,200筆的交易,平均則是每秒800筆。

AMIS實際測試了Istanbul BFT的共識演算法,設了100個帳號,對4個節點發出交易,平均每個帳號發出100筆交易,持續10分鐘的時間。結果指出,共識的時間會根據區塊的大小而有所不同,在10毫秒(millisecond)到100毫秒之間。而區塊大小可以裝2千筆交易,而交易池則可以儲存1萬筆交易。

測試結果以10秒為單位來看,最高1秒可以有1,200筆交易,平均約800筆,最少則約400筆。以1分鐘為單位來看,平均則是400筆交易。林祐德指出,目前很難有平均的測試結果,受到許多Geth因素的影響,目前仍許多問題需要克服,仍在優化他們的共識演算法機制。

只不過,AMIS此研究結果這已是區塊鏈交易速度的大突破,林祐德以比特幣為例,一秒可處理7筆交易,這次的Istanbul BFT共識演算法能在理想狀態下達成1,200筆交易,雖然還未經過長時間的實驗,但仍比現有的公有鏈交易速度還要快上許多,是私有鏈交易速度的大躍進,更朝商用之路邁進。

AMIS帳聯網也正與摩根大通合作,要將Istanbul BFT共識演算法導入到摩根大通的Quorum平臺,成為QuorumChain與Raft共識演算法之外的第三種選擇。

劉世偉解釋,AMIS投入精力與成本研究共識演算法的原因在於,AMIS受惠於以太坊(Ethereum),因此也希望對社群有所回饋,並且替更多的區塊鏈使用者找到更好的解決方案,「AMIS很關注這些金融機構客戶的需求,當世界各地的使用者看到新的共識演算法可以解決他們商業上的痛點時,就會想要採用。」


Advertisement

更多 iThome相關內容