以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

PBFT 拜占庭協議安全性分析:不適合聯盟鏈或公鏈_BFT

Author:

Time:1900/1/1 0:00:00

作者:王永革教授,著名華裔密碼學家,北卡羅來納大學夏洛特分校(UNC,Charlotte)計算機系終身教授,德國海德堡大學獲得博士學位,Sperax首席科學家。共識協議的設計一直是一個很具有挑戰性的課題。圖靈獎獲得者Lamport在1989年用古希臘帕克西島(Paxos)上的一群業余立法議員制定法律的過程描述了他所設計的可用于分布式計算的Paxos共識協議。Lamport將他的文章投給了ACMTOCS。也許這個雜志的編輯沒領會到該文章的重要性,所以一直沒同意發表。直到Paxos共識協議被學術界廣泛討論并被工業界廣泛應用,該雜志才在1998年發表了該文章:Lamport,Leslie."Thepart-timeparliament."ACMTransactionsonComputerSystems(TOCS)16.2(1998):133-169.Lamport自我調侃說這是他的所有文章中等待發表時間第二長的一篇文章。到目前為止,Paxos共識協議幾乎被使用于所有的分布式系統。比如Google的Bigtable使用Chubbylockservice系統來保證各個節點數據的一致性。而Chubbylockservice就是基于Paxos協議的。此外,微軟,IBM,亞馬遜的云服務系統都用Paxos協議為其提供系統的一致性。粗略來講,Paxos協議由一系列ROUND組成。ROUND由0開始直到共識達成。每個ROUND分以下四步:1.主節點生成一個序列號,向所有節點廣播。希望大家參與該序列號的活動2.每個節點發給主節點以下信息:他所參與投過票的序列號和他投過的票3.主節點在收到第二步的大部分回復后,選取一個不會違反SAFETY的數值v。把這個值v廣播給所有的節點4.每個節點在收到主節點第三步的值v后,投票給v并向所有節點廣播他的投票由于Paxos協議比較難于實現,斯坦福的研究者在2014年提出了模塊化的易于實現的Paxos協議,并將其命名為Raft協議。Paxos/Raft協議是在比較溫和的威脅模型里工作的。換句話說,該協議只對異步網絡里的非拜占庭錯誤具有魯棒性。在非拜占庭威脅模型里,出錯的節點只能犯被動性的錯誤而不能展開具有主動進攻性的攻擊。具有n個節點的系統最多能容忍的非拜占庭錯誤節點數是/2。Paxos/Raft協議達到了這個最大的容錯節點數。因為Paxos/Raft協議對拜占庭錯誤不具有魯棒性,他們是無法在開放的網絡系統里使用的。拜占庭錯誤是具有主動攻擊性的錯誤,比如:說謊,偽造消息,合謀攻擊,或者展開具有選擇性的DoS攻擊。我們在之前的文章中已經提到,去中心化的區塊鏈系統是基于開放的網絡系統的,所以我們必須使用拜占庭威脅模型。目前市場上的區塊鏈里使用最多的拜占庭協議是圖靈獎獲得者BarbaraLiskov和她的學生Castro設計的實用拜占庭容錯系統PBFT(practicalBFT)。PBFT被廣泛使用于聯盟鏈和很多公鏈。PBFT可以被看作是Paxos協議的拜占庭版本。其主要區別在于PBFT在Paxos協議中加入了一個驗證步驟來防止拜占庭錯誤。在分析其安全性之前,我們先給出其協議的形式化描述。在PBFT協議中,我們假定有n=3t+1個節點P1,…,Pn。其中最多t個節點被攻擊者所控制。PBFT要求所有的節點共同維護一個狀態并采取一致的行動。PBFT協議是通過一系列的視圖(view)來進行的。在每一個視圖里,有一個節點被稱為主節點(leader)。PBFT系統首先從視圖(v=0)開始,然后通過視圖更換協議進入視圖v=1,v=2,…等等。只有在系統認為主節點不能正常工作時,才會啟動視圖更換協議進入下一個視圖。我們假定所有的節點都知道每一個視圖的主節點是誰。每當一個客戶提交一個任務給當前視圖的主節點后,PBFT協議將進行三個階段的通信:序號分配,相互交互,和序號確認。序號分配階段對每個任務分配一個序列號,相互交互和序號確認階段對所有的任務提供一個全局的排序。假定我們現在在視圖v,并且主節點是Pi。那么整個協議的過程如下:1.客戶端發送任務請求m,激活主節點的服務操作。2.當主節點Pi接收任務請求m后,啟動三階段的協議:a.序號分配階段:主節點選擇一個唯一的序列號seq給任務請求m。主節點然后向所有的節點廣播以下消息m,<PRE-PREPARE,v,seq,H(m)>,SIGNATURE其中H是一個哈希函數。一個節點Pj接受以上的消息,如果以下的條件都滿足i.數字簽名SIGNATURE有效ii.Pj尚未接受另一個含有相同v,seq的另一任務請求iii.序列號seq在合理的范圍內b.相互交互階段:如果節點Pj接受接受了主節點的廣播消息,那么Pj進入相互交互階段并對所有的節點廣播以下消息<PREPARE,v,seq,H(m),Pj>,SIGNATUREc.序號確認階段:對于節點Pj來說,一個數組<m,v,seq,Pj>是準備好了的當且僅當Pj收到了至少2t個有效的消息<PREPARE,v,seq,H(m),P>。當數組<m,v,seq,Pj>對Pj來說是準備好了后,Pj對所有的節點廣播以下確認消息:<COMMIT,v,seq,H(m),Pj>,SIGNATURE當一個節點收到2t+1個確認消息后,該節點將執行任務請求m中所包含的任務,并將結果直接發送給客戶。3.客戶端等待來自不同節點的回復,若有t+1個回復相同,則該回復即為運算的結果。最近我們在如下文章中對PBFT的安全性進行了分析:YonggeWang.ByzantineFaultToleranceinPartiallyConnectedAsynchronousNetworks該文章的分析結論是PBFT共識協議在異步網絡里是不安全的。我們在本文,簡單的介紹我們設計的在異步網絡里對PBFT協議的攻擊辦法。為了簡化我們的描述,我們假定系統有n=3+1=4個節點P1,P2,P3,P4。其中節點P1被攻擊者控制。另外我們假定視圖v的主節點是P1。我們的攻擊在視圖v展開:1.在視圖v的序號分配階段,主節點P1把廣播消息「m,<PRE-PREPARE,v,seq,H(m)>,SIGNATURE」發送給P1,P2,P3。但是不發給P4。2.在相互交互階段,P1把廣播消息「<PREPARE,v,seq,H(m),P1>,SIGNATURE」發送給P1,P2,P3。但是不發給P4。在相互交互階段,節點P2,P3會把廣播消息「<PREPARE,v,seq,H(m),P2>,SIGNATURE」和「<PREPARE,v,seq,H(m),P3>,SIGNATURE」發給所有的節點。當然了,如果可能,攻擊者也許會發起DoS攻擊,讓節點P4不會接受到節點P2,P3的廣播消息。到此時,數組<m,v,seq,Pj>對節點P1,P2,P3來說是準備好了。因為P4最多收到了兩個相互交互消息,而我么最少需要2+1=3個消息來準備好一個數組,所以對P4來說,該數組并沒有準備好。3.在序號確認階段,P1把廣播消息「<COMMIT,v,seq,H(m),P1>,SIGNATURE」發送給P1,P2。但是不發給P4。在序號確認階段,節點P2,P3會把廣播消息「<COMMIT,v,seq,H(m),P2>,SIGNATURE」和「<PREPARE,v,seq,H(m),P3>,SIGNATURE」發給所有的節點。當然了,如果可能,攻擊者也許會發起DoS攻擊,讓節點P4不會接受到節點P2,P3的廣播消息。到此時,節點P1,P2收到了3個對任務m的確認消息。節點P3和P4最多收到2個對任務m的確認消息。所以節點P2將執行任務請求m中所包含的任務,并將結果直接發送給客戶。但是P1,P3,P4不會執行該任務。所以客戶收不到足夠的回復。在實行了以上的攻擊后,節點P1將不再回復任何視圖v的任何消息。所以系統將啟動視圖更換協議進入下一個視圖v+1。在進入視圖v+1后,誠實節點的P2,P3,P4的內部數據狀態是不一樣的。所以系統進入了不協調的狀態。在PBFT協議中,為了解決有些節點可能會收不到某些消息,PBFT協議設計了CHECKPOINT狀態更新過程。特別的,每執行100個任務后,每個節點Pj會廣播其當前狀態的消息給所有的節點:<CHECKPOINT,seq,H(state),Pj>,SIGNATURE如果一個節點Pi收到2t+1個如上的狀態更新消息,并且其狀態state的,那么節點Pi將用如上消息里的狀態state替換自己的當前狀態。在我們的如上攻擊中,如果不誠實的節點P1不發布狀態更新消息,那么P2發布的狀態更新消息將不同于P3和P4發布的狀態更新消息。因為我們至少需要2+1=3個相同的狀態更新消息來更新一個節點的狀態,P2的狀態是沒法更新到P3和P4的狀態的。所以系統將一直處于不協調狀態。在以后的視圖里,不誠實的節點P1可以和誠實的節點P3,P4合作共同執行客戶端的另一個任務請求。所以各個節點的狀態將進入不可恢復的不協調狀態。在我們的前一篇文章里,我們提到,在基于Internet的區塊鏈技術中,DoS攻擊是很容易展開的。由于Internet是一個異步網絡,所以我們用以下模型來刻畫其網絡通信:存在一個GlobalStabilizationTime(GST),在GST之前,任何消息可能丟失,或被重新排序。在GST之后,網絡變為同步網絡。但是GST什么時候開始,沒有人知道。所以說,我們以上的攻擊在異步網絡的GST之前是可以展開的。那么如果一個區塊鏈系統使用PBFT作為其共識協議,我們以上的攻擊結果是什么樣的?一般來說,在發起如上攻擊收,該區塊鏈系統首先會出現分叉,然后將進入死機狀態。特別的,加入在展開我們所描述的以上攻擊之前,大家達成共識的區塊鏈是:A→B→C→D。攻擊者用以上的攻擊方案,先讓P2決定下一個區塊是E。也就是說在P2的記錄里,當前區塊鏈是:A→B→C→D→E。但是P3,P4所記錄的當前區塊鏈仍然是A→B→C→D。然后攻擊者P1讓節點P3,P4決定下一個節點為F。這樣在P3,P4的記錄里,當前區塊鏈是:A→B→C→D→F。因為區塊E不同于區塊F。區塊鏈產生了分叉。由于下一個區塊必須有當前區塊鏈延伸出去。如果節點從現在開始不在參與任何活動,那么系統沒發得到最小的投票數2+1=3。所以沒有新的區塊可以生成。綜合起來,我們在本文的分析結論是:PBFT共識協議沒法保證區塊鏈系統的安全性和活性需求。所以我們建議,不論是聯盟鏈或公鏈,都不應該用PBFT做為其共識協議。

Upbit 上線LAMB/KRW:據官方公告,LAMB上線韓國加密貨幣交易所Upbit,目前已開放LAMB/BTC和LAMB/KRW交易對。

據火幣行情,LAMB 短線大幅拉升,最高漲至0.035,后小幅回落。現報0.029316 USDT,日內漲幅達24.7 %。[2020/9/11]

動態 | 韓國Upbit未落實發放實名賬戶協議:韓國Upbit再次與IBK銀行成功簽署發放新實名賬戶協議,但實際上新用戶未能得到賬戶。因此許多新用戶紛紛轉移到其他國際交易所。[2018/8/9]

UPbit將驗證異常交易賬戶:UPbit今日發布公告稱,UPbit開設了新市場(如BTC幣幣交換市場)后,出現了新幣上市暴漲暴跌的情形,UPbit將驗證異常交易的賬戶。[2018/4/13]

韓國Upbit交易所運營商Dunamu宣布推行加密貨幣詐騙舉報機制:23日,韓國Upbit交易所的運營商Dunamu宣布實行“加密貨幣詐騙舉報機制”。在3月23日開始,關于加密貨幣詐騙向Upbit交易所和調查機構舉報的第一個人將會獲100萬韓元的現金獎勵,這一機制將會實施到2019年3月末,至于之后是否繼續實行“加密貨幣詐騙舉報機制”將會對此進行討論。[2018/3/23]

韓國交易Upbit以日交易量46億1745萬美元成為世界交易量最大交易所:韓國交易Upbit成為世界交易量最大交易所, 根據CoinMarketCap 16號數據顯示,Upbit 交易所的日交易量達到了46億1745萬美元,binance 交易所現在排在第二位,日交易量為 39億2249萬美元。[2018/1/16]

Tags:BFTSEQBITUPBBFT幣SEQ價格bitflyer官網upbit交易所可信嗎

比特幣價格今日行情
V神:我說服以太坊基金會賣出了1億美元ETH,而且基本都是在“最高點”_以太坊

編者按:本文來自巴比特資訊,作者:kyle,星球日報經授權發布。以太坊的聯合創始人VitalikButerin表示,以太坊基金會此前賣出了70,000個ETH,而且基本上都是賣在“最高點”.

1900/1/1 0:00:00
美國共同基金大舉進入區塊鏈,中國基金公司為何按兵不動_區塊鏈

編者按:本文來自互鏈脈搏,作者:互鏈脈搏·金走車,Odaily星球日報經授權轉載。近日,富達加密部門富達數字資產宣布,紐約州金融服務部批準其加密托管服務FidelityDigitalAssetS.

1900/1/1 0:00:00
學習時報:數字科技推進數字經濟進入新階段_區塊鏈

編者按:本文來自學習時報,作者:王微,Odaily星球日報經授權轉載。在全球新一輪技術革命的推動下,特別是隨著互聯網、大數據、云計算、區塊鏈等數字科技創新加速和應用加深,我國數字經濟呈現蓬勃發展.

1900/1/1 0:00:00
區塊鏈賽道:中國領跑,德國擁抱加密貨幣,印度制定國家戰略_區塊鏈

編者按:本文來自鏈內參,作者:內參君,Odaily星球日報經授權轉載。自從中國把區塊鏈技術的集成應用作為數字中國建設的重要支撐,一下子讓中國成為推動新興產業的世界領先者.

1900/1/1 0:00:00
中國科技部原副部長張來武:數字貨幣不是妖魔鬼怪,第六產業是區塊鏈主戰場_區塊鏈

它標志著工業文明已經衰落,新時代的文明將替代這種工業文明。新時代的文明它是一種創新時代的文明,是數字時代的文明,更是共享時代的文明。數據指數化增長,帶來了一個新的生產要素——數據.

1900/1/1 0:00:00
星球日報 | 孫宇晨、何一微博被封;平安壹賬通削減美國IPO規模_區塊鏈

頭條 孫宇晨、何一微博賬號被關閉昨日晚間,波場創始人孫宇晨和幣安聯合創始人何一的微博賬號疑似被關閉,相關頁面顯示“該賬號因被投訴違反法律法規和《微博社區公約》的相關規定,現已無法查看.

1900/1/1 0:00:00
ads