比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > 幣安幣 > Info

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

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做為其共識協議。

BNB Chain推出基于OP Stack的Layer2網絡opBNB測試網:6月19日消息,BNB Chain推出基于OP Stack的Layer2網絡opBNB測試網。開發人員預計opBNB測試網將達到每秒4,000筆交易的速度,目標成本為每筆交易0.005美分。[2023/6/20 21:48:10]

INJ上線Upbit交易:INJ于北京時間12月14日14:30上線韓國加密貨幣交易所Upbit。據悉,Injective(INJ)是一個二層去中心化交易協議,幫助釋放去中心化衍生品和無邊界DeFi的潛力。[2020/12/14 15:08:39]

BiKi平臺PBCoin連續5日上漲 累計漲幅75.92%:據BiKi行情顯示,截止今日15:00(GMT+8),PBCoin幣價連續5日上漲,累積漲幅達75.92%,現價0.021USDT。

今日最高漲幅24.9%,18日漲幅為8.33%,19日漲幅為3.03%,20日漲幅為20.83%,21日漲幅為4.43%。行情波動較大,請注意風險控制。[2020/4/22]

動態 | Upbit被盜以太坊被拆分到多個私人地址,目前并未流入交易所賬戶:Tokenview數據分析師確認,Upbit被盜的ETH通過多次拆分轉賬后,部分ETH被轉入了曾在火幣、幣安提現過的私人地址中,但這部分ETH目前尚未流入這兩大交易所賬戶。[2019/11/29]

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

Tags:SEQBFTAXOSIGNSequencebft幣賣多少錢一個Axolotl FinanceSignata

幣安幣
區塊鏈:區塊鏈與被奴役的互聯網用戶_BOOST

出品/CoinVoice文/李逍通過互聯網,我們生產和傳播知識,我們生成了大量的數據,但也是因為這些數據,我們被奴役,被算法禁錮在信息繭房里.

1900/1/1 0:00:00
BTC:BTC周報 | 比特幣7日跌幅達18%;周內9億美元出逃(11.18-11.24)_BIT

大額轉賬筆數增加70%;F2pool魚池“出塊份額”減少20%;嘉楠耘智在納斯達克敲鐘上市,股價破發后下跌12%;BitcoinCore發布新版客戶端修復相關漏洞.

1900/1/1 0:00:00
區塊鏈:新華社:“炒幣”“挖礦”再度火爆,警惕披著區塊鏈“馬甲”的金融詐騙“重出江湖”_數字貨幣交易所開發安全技術與成本費用

新華社上海12月4日電題:“炒幣”“挖礦”再度火爆,警惕披著區塊鏈“馬甲”的金融詐騙“重出江湖”新華社“新華視點”記者王淑娟、高少華、李麗靜“區塊鏈應用場景落地.

1900/1/1 0:00:00
加密貨幣:市場慘淡,卻擋不住全球商家迫不及待接受比特幣支付的熱情_BTC

編者按:本文來自白話區塊鏈,作者:李火華,Odaily星球日報經授權轉載。從肯德基到星巴克,從航空到地鐵,雖然比特幣的價格從2017年年末的最高點一瀉千里,整個加密貨幣市場也經歷了漫長的熊市行情.

1900/1/1 0:00:00
區塊鏈:區塊鏈落地應用分析:版權保護領域_元宇宙數字虛擬人APP

2019年3月30日下午5點,網信辦上線一則關于發布第一批境內區塊鏈信息服務備案編號的公告,共有197家公司上榜。10月25日,網信辦又公開發布第二批共309個備案服務名稱及備案編號.

1900/1/1 0:00:00
區塊鏈:12月或將出現比特幣的拐點信號_HYP

08年大衰退的記憶,依然深深的震懾住今天的市場。據最新的一項調查顯示,美國20%的“千禧一代”表示,他們“永遠不會”投資股市,53%的人表示,投資股市會讓他們感到不舒服.

1900/1/1 0:00:00
ads