作者:王永革教授,著名華裔密碼學家,北卡羅來納大學夏洛特分校(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將在BTC市場中新增MAGIC:3月21日消息,韓國最大交易平臺Upbit宣布將在BTC市場中新增MAGIC,僅支持來自Arbitrum網絡的存款,預計交易于3月21日16時開放。
據悉,MAGIC是建立在Arbitrum的游戲平臺及生態項目Treasure的Token,此前已上線Binance。[2023/3/21 13:16:12]
Upbit暫停NKN存取服務:Upbit交易所剛剛發布公告稱,應NKN項目團隊要求,Upbit已暫停NKN存取款服務。[2020/8/26]
動態 | 數據顯示:11億枚TRX自Upbit轉至一未知地址:據Whale Alert監測,北京時間13點18分起,11筆共11億枚TRX(價值近1700萬美元)自Upbit交易所(TDU1u開頭的地址)轉至一未知地址(TDU1u開頭的地址),單筆1億枚TRX。此外,今日12點57分,逾122.4億枚BTT(價值逾356萬美元)自Upbit轉至該未知地址。12點6分,34.2萬枚ETH自Upbit轉至0xa0987開頭的地址。目前,暫不清楚是否為交易所整理錢包所致。[2019/11/27]
聲音 | 福布斯分析師:幣安和Upbit向新加坡擴張是因為政府對監管的樂觀態度:福布斯分析師Joseph Young在Twitter發文表示,幣安和Upbit向新加坡擴張,將其作為他們的第一個國際市場,這是因為政府對監管的樂觀態度。[2018/9/19]
UPbit:Upbit發布公告稱,已在BTC及ETH市場開放GTO的交易。gifto(GTO)是全球第一個去中心化通用虛擬禮物協議,由直播平臺uplive推出,自2016年6月上線以來,uplive已經在海外擁有3千5百萬用戶,2017年收入已超1億美金。[2018/5/25]
Odaily星球日報譯者|Moni美國商品期貨交易委員會是該國最重要的衍生品交易監管機構,在截至9月30日的2019財年里,他們一共收取了超過13億美元的監管罰款.
1900/1/1 0:00:00文/郝天“羈絆”一詞,在日本文化里常表示人與人之間關系、紐帶。我們熟悉的《火影忍者》動漫中貫穿始終的就是忍者世界里人與人之間的羈絆.
1900/1/1 0:00:00“BTC世界”的貧富差距有多大?計算BTC地址余額的基尼系數時,主要有兩類因素可能造成較大的誤差:1)一個地址的BTC余額可能為多人所共有;2)同一個人可能有多個BTC地址.
1900/1/1 0:00:00編者按:本文來自01區塊鏈,作者:袁婷,Odaily星球日報經授權轉載。近年來,區塊鏈行業的快速發展獲得大量投資機構的關注.
1900/1/1 0:00:002019年11月,負責維卡幣一案的律師馬克·斯科特被紐約法院提起訴訟,被判犯有為維卡幣龐氏騙局洗錢4億美元的罪行,可能面臨數十年的監禁。為什么要提這個消息呢?因為小虧就在去年投資了這個維卡幣.
1900/1/1 0:00:00編者按:本文來自以太坊愛好者,作者:JimMcDonald,翻譯&校對:閔敏&阿劍,Odaily星球日報經授權轉載.
1900/1/1 0:00:00