注:本文檔已于2015年3月進行了大量修改。舊版本可以在
?https://download.wpsoftware.net/bitcoin/old-pos.pdf找到。
引言
2009年,中本聰創造了比特幣。比特幣是一種互聯網貨幣系統,可以實現點對點的數字代幣轉賬。為確保所有人就代幣所有權達成共識,中本聰采用了一種可由所有網絡參與者復制并驗證的公共賬本。為了避免單點故障,該賬本采用一種動態成員多方簽名機制來證實,即,在每次“心跳”時對整個賬本歷史執行一次高成本計算。
不同于傳統的數字簽名,DMMS中沒有“可偽造性”的概念。每個DMMS的創建成本都很高,并且,這種行為可以得到賬本上增發的新貨幣作為獎勵。由于這些新代幣必須得到其他人的認可才有用,參與者會受到激勵來共同擴展“真正的賬本”,而非自行創建賬本?1。
由于比特幣的DMMS在計算和熱力學方面成本非常高,人們已經提出了其它更為經濟環保的方案。最常被提議的方案是PoS,它是一種低成本的分布式共識機制。正如AndrewPoelstra在2014年所言,PoS是不可行的,但還是涌現出各種形式的PoS方案。與此同時,各種論壇上經常有人聲稱Poelstra的論點是“虛假”或“錯誤”的,盡管他們從來沒有提出任何有說服力的反例或錯誤。此外,也有人給出了中肯的意見,認為Poelstra的這篇論文寫得晦澀枯燥。由此可見,這篇論文還有許多不足之處。雖然Poelstra沒有發現他的前作有任何不準確之處,但是他準備借此機會進一步地正式闡述他的論點。
相比Poelstra撰寫論文時,人們對比特幣共識的科學認識已經有了巨大進步。
本文旨在更新Poelstra的論文,闡明比特幣所解決的問題,PoS背后的設計原理,以及PoS之類的機制無法在比特幣的信任模型中產生分布式共識的原因。
注1:為了確保所有參與者都可以看到“真正的賬本”,我們需要一個同步網絡:所有數據都能在一定的時間長度λ內到達所有參與者,而且網絡心跳時間比λ長得多。如果沒有同步網絡,分布式共識的難度會大得多。
維基解密創始人Julian Assange NFT在威尼斯藝術展上亮相:7月2日消息,被囚禁的維基解密創始人Julian Assange是今年威尼斯藝術展上NFT收藏的新主題。該系列名為This Cannot Be Erased,是由希臘藝術家Miltos Manetas和著名的英國作曲家Howie B創作的。該系列將分三個階段發布,每個階段37個代幣,每個NFT代表Manetas制作的獨特的阿桑奇油畫。
此外,Assange NFT的持有者將成為AIIA(Assange is internet Internet is Assange)活動的受托人,出售所得的款項將進入Internet Pavilion DAO。這種模式能夠讓成員有機會影響展館未來如何將資金分配給藝術項目,重點是培養與互聯網自由相關的工作。(bitcoinist)[2022/7/3 1:46:54]
分布式共識
在討論比特幣對于分布式共識問題的解決方案之前,我們首先要理解這個問題的本質。分布式共識是一種彼此之間缺乏信任的參與方之間達成的共識。這些參與方都是匿名的,而且在系統建立時并不一定存在。正如Poelstra在其論文中所解釋的那樣:
就密碼學貨幣而言,僅在交易的時間順序上達成分布式共識就足夠了,即,就“第一個轉移特定資金的交易達成共識”。這樣可以確保整個網絡都認可新的資金所有者。
之所以需要達成這種共識,是為了防止?重復花費?問題。在所有去中心化數字貨幣機制中,都有可能出現付款方將同一筆資金發送給兩個不同的人的情況,而且這兩筆交易看起來都是有效的。因此,收款方需要能夠確保沒有發生沖突,或者在有沖突的情況下,網絡會認可其交易為正確版本。就交易順序達成分布式共識可以實現這一目的:在發生沖突的情況下,每個人都認可第一筆交易是有效的,其余交易是無效的。
重點是,我們應該意識到,盡管分布式共識是個難題,但是普通共識更加容易,經過了更深入的研究,而且使用受信任且可識別的簽名方可以將效率提高數萬億倍。因此,引入了受信任方的密碼學貨幣都應該考慮的一點是,其新型信任模型是不是能幫助降低達成共識的難度。對更高效的、具備受信任方的共識機制感興趣的讀者可以研究一下。
維基解密已收到價值超過200萬美元的加密貨幣捐贈:12月12日消息,維基解密(WikiLeaks)已收到價值超過200萬美元的加密貨幣捐贈,包括30.45 BTC、225.2 BCH、163.07 LTC、84.01 ZEC、145.45 ETH等。(Crypto Politan)[2021/12/13 7:34:41]
動態成員多方簽名
比特幣的賬本是公開可用的,比特幣網絡中的所有參與者都可以驗證賬本上每筆交易的有效性。然而,由于賬本在根本上屬于歷史記錄,密碼學無法辨別真偽,必須要有人來證明賬本,而且其他人必須相信這個人不會簽署錯誤的歷史。
最早的數字現金系統都由單個非匿名者簽署所有交易。然而,這樣不僅為系統引入了單點故障風險,而且可以讓簽署方審查交易或發起重復花費。雖然我們可以采用盲簽名來防止審查制度,但是無法防范單點故障和重復花費問題。多方簽名或許有可以解決后面兩個問題,但是所有簽名方難以同時遭到脅迫與所有簽名方必須得到所有參與者的信任這兩個要求是相互沖突的。非匿名性也意味著,特定攻擊者總能持續攻擊系統。
比特幣的解決方案是完全去掉固定且可識別的簽名者。比特幣的賬本由一組被稱為礦工的簽名者驗證,他們不向其它參與者公開自己的身份,或許還可以零成本進入或退出系統。礦工通過叫做“挖礦”?的過程來生成簽名。在挖礦過程中,他們會共同為連續的、由交易數據組成的區塊生成?工作量證明?。
在本節中,我們將解釋挖礦是如何運作以及如何提供驗證的。
匿名世界里的鑒別
密碼學數字簽名機制的運作原理如下。簽名方生成“簽名”和“驗證”密鑰對,并將v連同其姓名一起發布在某個公共渠道上。該簽名方可以根據給定消息m生成簽名σ,任何人都可以驗證σ的有效性。也就是說,將v,m和σ輸入驗證算法,如果簽名是有效的,總是會輸出1。
為了安全起見,傳統數字簽名必須具備抗偽造性,即,任何計算能力有限的攻擊者偽造簽名的概率都微乎其微。具體而言,“偽造”指的是能在下列游戲中勝出:
斯諾登:自己在10年前就曾通過比特幣支付維基解密服務器的費用:11月22日消息,棱鏡門披露者愛德華·斯諾登在推特表示,自己在10年前就曾通過比特幣支付維基解密服務器的費用。[2021/11/22 22:08:58]
簽名者將驗證密鑰v交給攻擊者。
攻擊者將消息m_i發送給簽名者,并收到這些消息的有效簽名σ_i。攻擊者可以多次重復該操作。
攻擊者生成一個新的消息m連同一個基于m的有效簽名σ。
這種安全性被稱為?選擇明文攻擊下的不可偽造性,是密碼學文獻中的常見標準。
在多方簽名機制中,每個簽名者都有一個驗證密鑰。只有簽名者的“可采信子集”生成的簽名才有效。在定義安全性時,上述游戲經過了修改,允許攻擊者請求簽名密鑰,只要該攻擊者獲得的密鑰無法組成“可采信子集”即可。
可以看出,驗證算法使用驗證密鑰v來驗證簽名,并通過這種方式來驗證簽名者的“身份”。由于任何人都可以創建密鑰對,若想簽名具有價值,必須通過公共記錄將驗證密鑰與簽名者的真實身份聯系起來。如果出現失信行為,失信方會被問責。
這樣來看,身份鑒別并不適用于簽名者匿名且不固定的系統。事實上,我們還不清楚“身份鑒別”在這類系統中能發揮什么作用!如果任何人都能以匿名方式生成簽名,就無法區分誠實的簽名和不誠實的簽名、真實的歷史和虛假的歷史。那么上述安全性定義就喪失了意義,因為攻擊者可以自由加入簽名者集,并“偽造簽名”2。
為了解決這一問題,比特幣采用了另一種安全模型。在該模型中,所有參與者都平等,但是他們會在經濟激勵下保持誠實。在下一部分,我們將介紹該安全模型。
注2:正如我們在第四部分所見,如果是密碼學貨幣,匿名參與方就有可能鎖定保證金,并通過某種機制在無需確認任何人的身份的情況下,懲罰失信行為者。這實際上就是權益證明。然而,密碼學貨幣離不開共識,因此“如果是密碼學貨幣”這個前提導致我們在這里無法使用權益證明,否則就會陷入循環推理。我們會在下一部分解決這個問題。
動態 | 比特幣解密游戲中的310個比特幣并未轉出:經金色財經查詢確認,此前報道的被破解的比特幣解密游戲中的310個比特幣并未轉出。[2018/10/10]
為DMMS定義安全性
就DMMS而言,所有參與方都是平等的;無法通過讓“敵手”僅擁有不完全知識來獲得安全性。因此,我們使用以下三部分定義了DMMS。這些部分都不同于傳統簽名的密鑰生成算法:
使用代價函數c來追蹤算法的執行并輸出“代價”t∈?,其中?是某個“代價域”。該函數必須是線性的,因為連續運行兩個算法的成本是它們各自成本的總和。
隨機化算法AttemptSign將消息m作為輸入,輸入簽名σ。輸入任何消息m,該算法的代價都應該是1。
確定性算法Verify將消息m、簽名σ和目標代價T作為輸入,輸出0或1。
當且僅當Verify(m,T,AttempSign(m))=1對所有屬于?的T都有1/T的概率成立,則我們說該DMMS是正確的,這個概率是由AtemptSign算法來保證的;當且僅當任意多項式算法?實現Verify(m,T,A(m))=1的概率都不超過1?(1?1/T)t,則我們說這樣的DMMS是安全的。
換言之,安全的DMMS指的是沒有比重復執行AttemptSign更好的簽名算法。
我們簡要論證了我們的安全性定義。為了實現動態成員集合,我們不能讓參與成本過于昂貴,也不能讓已有簽名者通過顯而易見的手段或經濟因素排斥新加入的簽名者。這就意味著,簽名過程應該是“可分割的”,既不需要也不激勵簽名者之間進行任何通信。也就是說,花兩倍長的時間運行一個簽名算法應該與在同樣的兩個硬件上并行運行該簽名算法的成功概率一樣高。在極端情況下,這意味著最好的簽名算法應該由對單一基礎步驟的重復、獨立執行來組成,這是由定義推導出來的。
挖礦機制作為一種DMMS
比特幣挖礦采用的是基于哈希函數的工作量證明算法hashcash。這是一種使用隨機數神諭模型的DMMS。作為一種計算模型,隨機神諭是指,該模型把哈希函數當成一個“隨機數神諭”,或者說真隨機函數?3,其輸出都是純然隨機的,而且只有通過該函數才能計算出來。
針對加密貨幣勒索的GandCrab病 360已集成解密工具:近期,GandCrab勒索病在國內流行度頗高,它會加密圖片、文檔、視頻、壓縮包等文件類型,在原文件名之后加上.GDCB后綴,再向受害者勒索價值約1200美元的達世幣贖金。這也是首個使用達世幣作為贖金的勒索病。360安全衛士“解密大師”根據國外流出的解密私鑰,已第一時間集成解密工具,可破解目前主流的GandCrab病,幫助中招者一鍵掃描并解密恢復文件。[2018/3/7]
雖然隨機數神諭模型的使用引起了很多爭議,但是有力的實證證據證實了它可以用來保障安全性。下文中,H指的是輸入可多達256位的哈希函數,它被當成是一個隨機數神諭。
比特幣的DMMS如下:
代價函數給出執行中調用隨機數神諭的次數。
AttemptSign將消息m作為輸入,并輸出隨機數σ∈{0,1}?256。
Verify將簽名σ、消息m和目標T作為輸入。僅當H(m||σ)<2256/T時,輸出1。
不難看出,在隨機數神諭模型中,沒有比重復運行哈希函數更好的創建有效簽名的方法。
注3:該模型是完全不現實的,因為真正的隨機函數,from,say,512bitsto256bits,平均需要2512·256位來表示,已經超過了目前已知的表達極限。
沒有世界時間
請注意,在上一部分,我們將哈希函數調用的數量作為我們的代價函數,它與計算次數大致成正比,而計算次數又與散熱量大致成正比。最后,散熱量與創建這些簽名的經濟和環境成本大致成正比。
一個顯而易見的問題是,我們是否可以采用“成本更低”的代價函數?尤其是,為什么我們不能直接使用時鐘時間?為什么我們使用DMMS對區塊進行簽名來創建區塊鏈,而非直接按照時間順序對交易進行排序來解決共識沖突?
答案是,分布式系統中缺少明確定義的時鐘時間。網絡延遲限制了信息的傳播速度。根據狹義相對論可知,如果是幾乎同時發生的事件,不同的觀察者無法就其時間順序達成共識。
如果只是這個問題,那么要求每筆交易之間間隔幾秒鐘即可。但是,實際情況會更加糟糕,原因有兩點:
“網絡延遲”在惡意環境中無法得到限制。攻擊者或能使用拒絕服務攻擊來任意降低系統速度,并通過其它方式對網絡進行物理分區。
用相對論來說,這意味著無論將等待時間設為多久,都無法確保參與者不會與網絡中的其他參與者類空分離。
新加入網絡或最近離線的用戶需要訪問歷史數據。但是,沒有辦法可以事后驗證交易發生的順序,因此在出現交易沖突的情況下,用戶無法保證他們收到的交易是先發生的。
來自DMMS的共識
既然我們已經了解了DMMS,并解釋了為什么比特幣的hashcash是一個安全的算法,接著來思考如何通過DMMS實現分布式共識。
我們的主張是,通過DMMS實現分布式共識是有可能的。
我們首先需要通過我們的代價函數來衡量某種無法一次為多個消息創建簽名的稀缺資源,和創建簽名所需的平均時間。
以比特幣為例,我們的代價函數的定義是“哈希函數調用的次數”。我們主張,該函數實際上用來衡量計算簽名所需消耗的能源,并且得到了Landauerlimit的論證。從物理學上來說,所謂的能源,就是任意不可逆的位操作所需消耗的最低熱量。通過計算sha256計算中涉及的不可逆位操作的數量,我們可以為創建一個比特幣DMMS所需消耗的能源量設定下限。
代價函數也可以用來衡量創建簽名所需的時間,因為每單位時間只能消耗一定量的能源,除非你去制造黑洞。當然了,在現實生活中,比特幣礦工不會在接近黑洞極限的情況下操作,而且所需時間取決于挖礦硬件的速度。隨著挖礦硬件的改進,以及同時在線的硬件數量增多,創建DMMS所需的時間減少。在比特幣中,目標代價會根據這一情況進行調整,將創建每個簽名所需的時間保持在10分鐘左右?4。
注4:鑒于3.4中提到的無世界時間,讀者可能會想知道如何準確調整時間。實際上,時間戳是由礦工插入區塊的,而且確實沒有任何方法可以防止礦工弄虛作假。比特幣可以抵御不實時間戳導致的較小目標偏離,并且也禁止了目標過快地發生變化。因此,想要制造大幅的目標偏離是非常昂貴的,而且有可能遭到不配合的礦工的阻撓。關于更多討論,請參閱。
那么,有了一個可以通過代價函數來衡量稀缺資源的安全DMMS,我們該如何獲得共識歷史?首先,我們假設網絡是同步的,因此參與者可以在一定時間λ內獲得所有有效數據。我們將交易歷史分割成一系列區塊,其中每個區塊都包含一系列交易,以及前一個區塊的密碼學承諾?5。每個有效區塊必須擁有一個已經設定好目標的DMMS,且目標使得創建區塊所需的時間比λ長的多。需要明確的是,每個DMMS的目標代價是由系統規則定義的,不由礦工決定。
注5:承諾是一種密碼學對象,由某個秘密數據計算得出,但是不會泄漏該數據,因此該數據在事后無法修改。抗碰撞哈希函數就是一例:給定數據x,你可以先發布H(x),之后再公開x。驗證者可以使用公開的值計算H(x),來確認這個值是否與原始值相同。
網絡參與者的運作方式是:首先考慮以同一個創世塊開頭的所有有效區塊分支。然后計算每個區塊上的DMMS的目標成本總和得出每條區塊分支的重量。最重的區塊分支會被視為“真實的”歷史。
在創建區塊時,礦工根據自己的意愿選擇交易,并加入一個特殊的“獎勵交易”用來將其它交易的費用以及網絡定義的補貼分配給自己,再加上最新區塊的承諾,然后計算DMMS。如果另一名礦工創建并發布了一個區塊,礦工就會相應地更新他們的“真實歷史上的最新區塊”,并在自己所挖的區塊中改變承諾以適配這種變化。計算出一個DMMS之后,他們會把這個完成的區塊公布到網絡中。
我們主張這樣就能形成一個共識的歷史,是說整個網絡會漸進地對到底哪些區塊是真實歷史的一部分達成共識,而且不一致只會發生在最近的歷史中。具體的論述可見Miller和LaViolaJr.,但我們這里附上一個不那么正式的論證。
因為網絡是同步的,區塊傳輸的時間大大短于區塊生產的時間,所以所有參與者都能迅速認識到最重的歷史。
我們還進一步認為,網絡中的大部分參與者都會參與生產能延伸真實歷史的DMMS。一個優雅且正確的理由是由VitalikButerin提出的:因為“獎勵交易”當且僅當其區塊屬于真實歷史才會被大家接受,所以對每一個礦工來說,納什均衡就是服從絕大多數?6。
注6:也是在同一篇文章里,Buterin說:“要是你已經厭煩了PoS的反對者老是跟你引用AndrewPoelstra寫的這篇文章,請盡情鏈上本文,作為還擊。”不太清楚他這么說是什么意思;自始至終,無論在哪兒,他都沒能駁倒本文的主張:除了消耗一種系統外的資源,沒有別的產生共識的辦法。
要想改變“真實歷史”,攻擊者必須產生另一個權重更大的歷史。他具有的資源比正在延伸真實歷史的礦工團體要少,因為那個礦工團體才是多數。所以,他在網絡中能勝出的概率是小于1的,而且,要想讓自己的歷史超過真實歷史,他還必須勝出N次以上。如果勝出一次的概率是P<1,那他勝出N次的概率就是PN,N足夠大這個概率就小到可以忽略不計了。
原文鏈接:
https://download.wpsoftware.net/bitcoin/pos.pdf
作者:?AndrewPoelstra
翻譯&校對:?閔敏&阿劍
科普|分布式共識的工作原理,Part-1:分布式系統的定義及屬性
觀點|剖析工作量證明
親愛的BithumbGlobal用戶:BithumbGlobal將於12月15日15:00在「BGStaking」上線HYVE挖礦產品.
1900/1/1 0:00:00俄羅斯總統弗拉基米爾·普京已簽署命令,迫使該國政府工作人員披露其持有的加密貨幣。該命令規定,員工必須在2021年6月30日之前提交購買數字資產的地點及其價值的詳細信息.
1900/1/1 0:00:00區塊鏈初創公司SpringLabs已使用許可的以太坊版本將其首個防欺詐工具投入生產。聯合創始人約翰·孫表示,這家位于洛杉磯的公司目前正在與“資產評估的清潔能源”融資領域的兩家貸方合作,并加入另外.
1900/1/1 0:00:00昨日要聞回顧1.Uniswap歷史交易總量突破500億美元,,達到了516億美元2.Debank數據:DeFi總鎖定價值突破180億美元.
1900/1/1 0:00:00BTCC各項工作有序進行中,現就技術及運營的各項內容進行重點簡述,感謝關注。? 一BTCC運營數據 1.12月7日—12月13日,BTCC新增合約產品注冊用戶新增5039人,近30天累計新增注冊.
1900/1/1 0:00:00親愛的用戶: BigONE全力支持波卡生態長期穩定的發展,為迎接2020年12月17日波卡平行鏈測試網RococoV1發布會的到來,BigONE將DOT礦池額度增至500,000枚DOT.
1900/1/1 0:00:00