close

 

搖錢樹45:區塊鏈演算法

楊惟雯

 

FinTech、區塊鏈涵蓋的範圍廣泛,必須從數學原理面、實作面、安全面、協定流程面、商業經營面、法規面都要能有全面性、高度視野,才能夠理解這新技術的全面影響。下文,主要焦點在區塊鏈演算法。

 

一、話說比特幣的加密演算法

 

比特幣,基本上是一種加密貨幣(crypto currency)的一種。
加密貨幣仰賴密碼學方法來做資訊的傳遞乃至於資訊的產生,而這個被加密的資訊被視為一種虛擬的貨幣,資訊的產生則是貨幣的供給

 

這裡要注意,加密貨幣是數位貨幣的一種。但數位貨幣,例如大家所熟知的悠遊卡,雖然使用加密技術來保障資訊的傳遞安全,但是交易本身並不仰賴加密演算法

 

加密貨幣由於主要是透過演算法來做貨幣價值的傳遞與產生,而且普遍具有一個重要的特性----去中心化。去中心化以後交易的紀錄、清算都不需要一個中央機構。也就是因為這樣的特性,讓全球的資訊業者、加密貨幣的愛好者突然間發現,原來在金融體系中往往成為障礙的官方中央主管機關或是在國際交易時需要付給中介機構的費用,都可以因為去中心化而獲得豁免。

 

比特幣是目前全球最重要、接受度最廣的一種加密貨幣

比特幣之所以佔有如此重要的地位,跟比特幣底層的區塊鏈(block chain)技術被提出來有重要的關係。

◆區塊鏈技術讓所有的交易都被記入一個、一個區塊中,每一個區塊再一個接一個地串接在一起。

◆所有的人都可以把自己的交易加入區塊鏈中,而一個交易是否要被承認為合法,則是用匿名投票的方式。
◆由網路上所有有效的節點做匿名投票,獲最多票的交易被視為是最後正確的結果。
◆但不是每一個點都有一樣的投票權,比特幣是用計算能力來作為投票權的依據。比特幣允許每一個網路上的節點執行複雜演算法,投入越多運算能力在執行演算法,就可以採出更多的比特幣

◆同時投入越多運算能力的節點,也有比較多的投票權。這背後基於一個簡單的邏輯,當你對整個比特幣生態系統投資越多,你越沒有動機毀掉他。
◆而整個比特幣的區塊鏈,被稱之為帳本ledger)。網路上人人都可以擁有這個帳本,誰都可以對這帳本作檢查與驗證。這是比特幣去中心化一個很重要的特性,目前這個帳本的大小約莫在幾十GB左右,而且還在快速成長。

 

隨著比特幣與區塊鏈被提出來,有越來越多的加密貨幣系統被提出,也有越來越多的區塊鏈系統被提出,例如Ethereum…等。因此,區塊鏈也發展出了各式各樣的應用。
尤其也有許多應用是基於比特幣區塊鏈做延伸的應用,例如把一個小量的比特幣作為數位權利的擁有權憑證。而這一小量的比特幣的交易,就代表某一個擁有權的轉移。

 

二、兩種官方共識演算法

 

事實上,為了避免引起監管機構的恐慌,還有各國金融投資者的開始佈局,現在的區塊鏈應用幾乎都跟原有的銀行機構或跟監理機構有連接。換句話說,雖然各國的系統目前有可能不一致,但最終出現一個各國間串連的協定並不是不可能。
 

在網路的世界裡,路由協定就有這樣的演進場景,大家的小網路裡面跑著相對比較簡單的OSPFIS-IS用來描述一個小網路內的狀況。但大型的跨組織或國家的網路狀況傳遞則仰賴BGP

 

目前,以太坊官方認證的共識演算法有工作量校驗(Proof-of-Work,簡稱PoW或俗稱「挖礦」演算法)及Proof-of-Authority(PoA)這二種共識演算法。


在中國,區塊鏈或比特幣的討論與新聞匯集是很熱烈的,不信你去www.8btc.com去看看,就算裡面很多內容有爭議,但資訊量還是很驚人的。

 

三、臺灣團隊AMIS提出的第三種共識演算法

 

臺灣團隊AMIS帳聯網已發表新區塊鏈共識演算法機制「伊斯坦堡拜占庭容錯演算法(Istanbul BFT)」,正積極爭取,將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-ethereumgeth)的可插拔(Pluggable)共識介面。

 

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+1Prepare message(一個私有鏈網絡中,有N個驗證節點,以及F個拜占庭節點,N=3F+1)後,才獲得共識同意要大家來處理這個區塊,意即,Istanbul BFT的共識演算法可容忍三分之一個拜占庭節點。在這個前提之下,即可保證資料的完整性與一致性。

 

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

 

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

 

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

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平臺,成為QuorumChainRaft共識演算法之外的第三種選擇。

 

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

 

臺灣團隊AMIS帳聯網發表新區塊鏈共識演算法機制「伊斯坦堡拜占庭容錯演算法(Istanbul BFT)」,在理想狀態下的交易速度最高可達每秒1,200筆,更預計要成為第三個以太坊官方認證的共識演算法機制。目前,摩根大通(J.P. Morgan)的區塊鏈平臺Quorum也將納入Istanbul BFT

 

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

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

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

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

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

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

arrow
arrow
    全站熱搜

    大宅配 發表在 痞客邦 留言(0) 人氣()