比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > LTC > Info

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

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成為意大利那不勒斯足球俱樂部球衣贊助商:1月3日消息,韓國加密平臺Upbit成為意大利那不勒斯足球俱樂部(S.S.C. Napoli)的新球衣贊助商,那不勒斯是目前的意甲領頭羊,在整個2022-23賽季主場保持不敗。[2023/1/3 22:23:04]

NFT競拍協議TopBidder將于4月15日開啟BID LBP:4月14日消息,基于激進市場理論的NFT競拍協議TopBidder Protocol發推稱,BID代幣的LBP將在UTC時間4月15日6點(北京時間14點)左右開始,72小時后結束。BID的權重最初是90%,在整個期間逐漸下降到50%。[2021/4/14 20:19:10]

區塊鏈軟件公司Blockstack PBC更名為Hiro Systems PBC:金色財經報道,區塊鏈軟件公司Blockstack PBC宣布將其名稱更改為“Hiro Systems PBC”。Blockstack聯合創始人兼首席執行官Muneeb Ali表示,一旦Stacks 2.0主網啟動,團隊計劃將重點放在范圍更小的優先級事項上。他們將把重點放在為那些在比特幣上構建應用程序和智能合約的開發人員構建工具上。[2020/10/23]

新加坡WBF交易所于7月29日正式上線HPB:據官方消息稱,新加坡WBF交易所將于當地時間7月29日19:30正式上線HPB,并在主板上線HPB/USDT交易對。

HPB芯鏈是一種采用全新的軟硬件體系架構的公鏈,結合硬件加速引擎(BOE)以及高性能軟件,定位為易用的高性能區塊鏈平臺。HPB芯鏈獨創的BOE技術即區塊鏈加速引擎(Blockchain Offload Engine),通過結合CPU串行能力和FPGA/ASIC芯片的并行處理能力,降低CPU負擔,實現高性能和高并發計算加速。HPB旨在實現分布式應用的性能擴展,以滿足現實世界的真實商業需求。[2020/7/29]

動態 | 韓國交易所Upbit披露加密貨幣上市審查原則:據hankyung消息,韓國交易所Upbit(???)今日披露了其加密貨幣上市審查原則,包含3類21項。3類指:項目透明性、順利交易的可能性和公正參與投資的可能性。透明性方面,將審查相關項目的主要信息、法規遵守、技術力量、加密貨幣的附加價值創造機制及發展藍圖;順利交易的可能性方面,將審查技術的互助性、技術問題發生時的應對能力等;公正參與投資的可能性是指初期分配的公正性、網絡運營的透明性等。[2018/10/11]

Tags:SEQBFT區塊鏈AXOSequencebft幣最新消息區塊鏈游戲幣拍賣axo幣空投

LTC
以太坊2.0即將開始過渡,這些問題大家在關注_以太坊

以太坊開發人員將在12月4日部署備受期待的以太坊升級。開發人員承諾伊斯坦布爾升級將使以太坊網絡更快,更便宜,更高效.

1900/1/1 0:00:00
醫療健康行業的區塊鏈應用調查_ALT

Overview概述自區塊鏈通過比特幣進入公眾視線以來,研究人員便從未停下為將區塊鏈應用擴展到非金融領域而努力的腳步。在這些非金融領域之中,醫療保健產業是有望對區塊鏈產生重大影響的行業之一.

1900/1/1 0:00:00
浙大區塊鏈門徒_區塊鏈

作者丨三一編輯丨門人運營丨小石頭小傭兵“我前幾天還說讓陳偉星來組織浙大區塊鏈校友會呢,畢竟他在這個圈子影響力大一些”.

1900/1/1 0:00:00
政府在用區塊鏈做這些事 | 鏈+政務_LOC

文|黃雪姣編輯|郝方舟出品|Odaily星球日報近日,多地政府相繼出臺利好政策、提供配套基礎設施,布局產業區塊鏈.

1900/1/1 0:00:00
中國如何在區塊鏈領域換道超車?_LIB

歷史發展就是如此有戲劇性,幾周前區塊鏈行業寒風瑟瑟,瞬間就被國家一個重大政策利好的釋放給點燃了.

1900/1/1 0:00:00
嘉楠的加冕時刻_區塊鏈

文|周文怡編輯|畢彤彤Tong來源|PANews北京時間11月21日22點30分,嘉楠科技在美國納斯達克敲鐘掛牌,在三次上市受挫之后,嘉楠終于在美圓夢.

1900/1/1 0:00:00
ads