我們今天發表的一篇短論文介紹了NEAR協議所采用的隨機信標。佐餐食用的本博文將著重討論隨機性的重要意義、實現難度以及其它協議的實現路徑。
包括NEAR在內的諸多新型區塊鏈協議都高度依賴于隨機性,以抉擇由哪些成員執行協議中的特定操作。如果惡意攻擊者能影響隨機源,他們就有機會增加自己被選中的概率,最終威脅協議的安全性。
分布式隨機性同樣也是眾多區塊鏈應用的重要基石。舉例來說,假如某個智能合約接受用戶的賭約,規則為無偏倚地產生一個隨機數,據此以49%的概率返還兩倍押注,51%的概率沒收賭資。如果惡意攻擊者可以影響或者預測該隨機數,他們就能旱澇保收,并很快搬完合約中所有的資金。
在設計分布式隨機性算法時,我們希望它具備以下屬性:
算法必須公正無偏。換言之,不允許有任何參與者能絲毫影響隨機數生成器的結果。
算法無法被預測。即在隨機數生成之前,所有的參與者都不知道會生成什么樣的結果。
協議需要具備在某些節點掉線時仍保持正常運行的容錯能力,即使有節點故意阻礙協議,也可以繼續運行。
本文將介紹分布式隨機信標的基礎知識,說明為何樸素的技術方案無法達成效果。在最后,我們將介紹DFinity、EthereumSerenity以及NEAR協議所采用的隨機信標方案,并逐一剖析其優越性與不足之處。
現場 | 火幣中國推出數字經濟及區塊鏈產業科普新書:金色財經現場報道,12月6日,由海南省工業和信息化廳主辦,南南合作金融中心協辦,海南生態軟件園、火幣中國承辦的“海南自貿港數字經濟和區塊鏈國際合作論壇”在海口舉行,這是全球首次區塊鏈部長級論壇。
在本次論壇上,火幣中國舉行了“數字經濟及區塊鏈產業科普系列新書發布”儀式,希望通過教材、專業教育、培訓等多種方式,幫助從業者、高校、研究機構深入了解區塊鏈,從而建立起區塊鏈全局性知識模型,真正推動區塊鏈應用落地。火幣中國CEO袁煜明介紹,將聯合機械工業出版社面向普通高等教育推出《區塊鏈導論》、《區塊鏈系統設計與應用》和《區塊鏈新商業模式分析》系列教材,這是國內最早推動的區塊鏈教材之一;火幣中國還積極參與數字經濟的研究,由中信出版社出版的新書《讀懂Libra》已經上市;由火幣中國負責編寫的區塊鏈技術科普讀物《區塊鏈技術進階指南》將于12月面世;首本行業內最全的區塊鏈應用案例集《區塊鏈產業應用100例》在本次論壇進行了首次刊印。[2019/12/6]
RANDAO
RANDAO非常簡單,因此也是一個十分常見的隨機性實現方案。其大致思想是網絡中的所有人首先各自私下選定某個隨機數,然后向RANDAO提交該隨機數的承諾,接著所有人根據一定的共識算法從所有的承諾中選定一組;在參與者揭示這組承諾背后的隨機數之后,大家對該組隨機數達成共識;最后這組隨機數進行異或操作得到的結果就是一輪RANDO協議產生的隨機數。
動態 | 幣安科普MimbleWimble算法:幣安官方推特今日發布隱私算法Mimblewimble的科普貼,在下方留言區大量網友留言猜測是否是基于 Mimblewimble算法的隱私幣Grin或者Beam即將登陸幣安交易所,其中猜測Grin的呼聲更高。[2019/9/2]
RANDO的做法的確讓隨機數難以預測,并且隨機數享有與底層共識協議一樣的活性,但仍有可以鉆空子的地方。比方說,惡意攻擊者看到網絡中所有其他人揭露各自所選取的隨機數之后,可以根據自身隨機數先執行異或運算,并根據結果對自己的利弊來決定是否要揭露自己的隨機數。這種設計使得單個攻擊者就能對輸出造成一定的影響,同時隨著攻擊方所控制的參與者數目增多,他們的破壞性也隨之增強。
RANDAOVDFs
要增強RANDAO的公平性,其中一種辦法是替換掉最后的那個異或計算,將其改變為執行時間必定長于各方隨機數揭露等待期的操作。如果計算最終結果的時間比隨機數揭露等待期要長,那么惡意攻擊者就無法預先知道自身隨機數揭露與否能給自己帶來好處,因此理論上就無法影響最終結果的屬性了。
雖然需要有一個函數來拖延參與者生成最終結果的時間,但不能因此讓隨機數用戶也耗費巨大的開銷去驗證所生成的隨機數。因此,理想函數應該能讓用戶輕易驗證系統生成的隨機數,而無需重復之前的計算開銷。
上述既需要長時間來計算,同時能輕易驗證計算結果,并且對每一個輸入都有著獨一無二輸出的函數正是可驗證延遲函數,設計一個這樣函數的工作委實艱巨。近來這一領域已經有所突破,比如這個和這個已經可以應用,當前以太坊就計劃應用RANDAO和VDF來作為其隨機性信標。除此之外,由于這種策略所具備的不可預測性和無偏見性,使得系統甚至能在僅有兩個參與者在線的情況下依然具備活性。
動態 | 央行官微舊文重發“再科普”:范一飛詳解數字貨幣:據中國經濟網消息,今日,央行官微公眾號頭條重新發布央行副行長范一飛在2018年1月25日題為《關于央行數字貨幣的幾點考慮》的文章,對央行數字貨幣再次進行科普。同時,微信公眾號第二條發布支付司副司長穆長春8月10日在第三屆中國金融四十人伊春論壇上的演講。近年來,各主要國家和地區央行及貨幣當局均在對發行央行數字貨幣開展研究,新加坡央行和瑞典央行等已經開始進行相關試驗,人民銀行也在組織進行積極探索和研究。[2019/8/21]
VDF雖好,但目前的最大挑戰在于函數需要足夠健壯,即使某些別有用心者花大價錢配置定制化硬件設備,也無法在揭露等待期結束之前計算出最終結果,理想情況是函數具備有足夠威懾力的安全邊際,例如延遲時間較揭露等待期拖長10倍。下圖展示了系統中參與者采用定制化ASIC設備所發起的一次攻擊,攻擊者能夠在各方揭露RANDAO承諾之前計算出最終會輸出的隨機數。攻擊者依然能根據計算得到的隨機數結果,以及最終結果對自身收益的利害關系,自主決定是否要揭露所掌握的隨機數。
和VDF家族關聯的特制ASIC設備會比傳統硬件的計算速度快100倍。因此,如果揭露等待期耗時10秒,同時為了達成理想的10倍安全邊際,需要保證ASIC設備至少花100秒才計算出最終結果,由此換算到普通硬件設備上則需100x100秒,即約3個小時來得到輸出結果。
動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]
針對這一問題,以太坊基金會的做法是設計自己的ASIC設備并開源。一旦上述設想落地,以太坊之外的其它協議也能把真正的隨機數用起來了。不給過在那個時刻到來之前,無力投資研發自己ASIC設備的協議們還是沒法應用RANDAOVDF的解決方案。
這個網站收錄了許多關于VDF的文章、視頻以及其它資訊。
門限簽名
Dfinity團隊正倡導并研究的的門限BLS簽名是隨機性的又一實現方案。
BLS簽名用于多方對一則消息構建一條聚合簽名,由于無需額外的簽名通信,因此常用于節省空間和帶寬。在區塊鏈里,BFT共識協議的區塊簽名通常就使用BLS簽名。例如在一個有100個節點的區塊鏈系統中,當其中的67個節點都對某個區塊進行了簽名時,就可以認定這個區塊已經上鏈。每一個節點都可以提交自己那片BLS簽名,系統根據某些共識算法選出其中67片簽名來聚合成一條BLS簽名。雖然任意67片簽名都能組成一條聚合簽名,但不同的簽名輸入不會聚合成相同的BLS簽名。
其實如果系統中參與者持有的私鑰是通過某種特殊方式生成的,那無論選擇哪67片簽名,都能輸出一樣的聚合簽名。這種特性可以用來產生隨機性:系統中參與者首先對某則他們未來會進行簽名的信息達成一致,然后就此產生一個聚合簽名。在67個參與者揭露自身簽名之前,沒有人能預測輸出結果,同時由于大家在第一片簽名披露之前就認定完了輸出結果,因此任何參與者都無法再對輸出產生影響。
聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]
上述隨機性實現方案具備無偏見性和不可預測性,只要網絡中有2/3參與者在線就能維持運行。即使1/3的節點掉線或篡謀發起攻擊,他們也只能讓系統停滯,因為要想對最終結果產生影響,需要至少2/3的節點。
看起來一切都很完美,但是,依然有一個但是。前文我曾提及私鑰需要按某種特殊方式生成,這種被稱為分布式密鑰生成的技術事實上十分復雜并且仍處于探索階段。在最近的一些公開演講中,Dfinity提出了使用zk-SNARKs來實現DKG,但是zk-SNARKs十分復雜,并且這種構造方法還沒有經過時間檢驗。總的來說,門限簽名和DKG技術尚未發展到能落地應用的階段。
RandShare
目前為止,NEAR受到的最大影響來自于另一種算法:RandShare。
RandShare是一個無偏見且不可預測的協議,支持1/3惡意節點容錯。其速度相對較慢,在對應論文中雖然提到了RandHound和RandHerd兩種加速方法,然而和RandShare本身相比還是太過復雜,我們想要的理想協議應該簡潔優美。
除了較大的通信壓力,RandShare面臨的另一個問題在于雖然1/3的容錯門限能保證協議在應用中的活性,但這個門限難以震懾別有用心者對輸出結果發起攻擊。具體原因有以下幾點:
攻擊輸出結果所帶來的收益要遠遠大于拖滯隨機數生成帶來的收益。
如果某一方控制了RandShare中超過1/3的節點并試圖操縱輸出結果,這種攻擊甚至不會留下任何痕跡。與光天化日之下拖滯隨機數生成相比,操縱輸出結果根本就是悶聲發大財。
從現實考量,某勢力操縱超過1/3的哈希算力/權益并非天方夜譚,而且根據兩點,具備實力的攻擊者基本不會選擇拖滯隨機數生成,而是傾向于暗地操縱輸出結果。
NEAR方案
我們最近發表的一篇論文介紹了NEAR方案。這是一個無偏見且不可預測的協議,其活性具備1/3節點的容錯能力,即攻擊方只有控制了全局1/3及以上的節點才能阻塞協議。
然而和RandShare不同,NEAR能保證2/3惡意節點的容錯。這個門限對實際應用來說顯然更為優越。
NEAR協議的核心思想如下:
每一個節點首先提出自己的輸出片,將其分成67份,再用糾刪碼將其編碼為100份,這一過程需要保證任意67份數據都可以恢復輸出片,然后使用其它各節點的公鑰對每一份數據簽名并轉發,這樣一來,各節點互相持有加密片。
系統中各節點使用某種共識算法選出特定67個節點所生成的加密片。
一旦達成共識,各個節點根據步驟(2)的結果,從本地取出被自身公鑰簽名過的加密片,解碼揭露數據后立即廣播。
一旦有67個節點完成了步驟(3),系統就有了足夠的信息解碼重構出原始數據,最終結果可以由(1)中各節點輸出片的簡單異或操作得到。
上述協議具備無偏見性和不可預測性的道理和RandShare以及門限簽名都類似:一旦達成共識,輸出已經被確定了,只不過要等到至少2/3的節點用各自公鑰將加密的那部分揭露,大家才能看到輸出結果。
如果要考慮一些特殊情況以及可能的惡意攻擊,協議可能變得稍稍復雜中有節點生成無效的糾刪碼,系統需要有能力應對),但總的來說整個協議還是十分清爽,涵蓋了所有證明和相關密碼學原語和引用的論文篇幅僅7頁長。如果你想了解算法更為規范的描述,或是對其活性和防御性的分析,請務必閱讀我們的論文。
當前NEAR協議架構已經應用了類似的糾刪碼思想,系統中區塊生產者會在特定時期內創建一些分塊,其中包含了對于某一特定分片的所有交易,然后將分塊進行糾刪碼編碼后的版本附帶默爾克證明發送給其它區塊生產者,以保證數據可用性。
結語
我們正在努力編寫一組主題為區塊鏈協議及相關內容的高質量技術文章,本文是其中一篇。除此之外,我們還制作了一系列面向其它協議創始人和核心開發者的視頻,目前已經錄制了針對包括EthereumSerenity、Cosmos、Polkadot、Ontology、QuarkChain在內多個項目的視頻。為了便于查看,所有視頻都已經被打包進了這個播放列表。
如果你對NEAR協議背后的技術感興趣,請務必研讀上文提到的那篇分片論文。NEAR是少數幾個在分片中解決狀態驗證和數據可用性矛盾的協議,并且該論文在給出我們的解決方案之外,還提供了一個針對分片的更為開闊、通用的視角。
今時今日,雖然擴容是區塊鏈中的大挑戰,但可用性難題或許更值得大家關注。我們團隊對此傾注了大量資源,努力構建更可用的區塊鏈系統。最近我們發表了一篇概覽,介紹了當今區塊鏈協議面臨的種種可用性挑戰,以及對應的探索路線。
Twitter關注,不迷路!也歡迎來我們的Discord頻道暢所欲言,無論是技術、經濟、治理或是協議設計中的其它方方面面,我們都會進行熱烈而精彩的討論。
原文鏈接:
https://nearprotocol.com/blog/randomness-in-blockchain-protocols/
作者:AlexanderSkidanov
翻譯&校對:安仔Clint&阿劍
本文由作者授權EthFans翻譯及再出版。
Tags:區塊鏈ANDRANNEAR什么是區塊鏈技術PAND價格Transaction Service feeNEAR Protocol
尊敬的IDAX用戶:??IDAX上線FK,并開放FK/USDT、FK/BTC交易市場,具體時間如下:充值時間:9月23日10:00提幣時間:9月25日10:00交易時間:9月24日10:00Ge.
1900/1/1 0:00:00BKEX尊重并保護所有使用BKEX平臺服務用戶的個人隱私權。為了給您提供更準確、更有個性化的服務,BKEX會按照本隱私權政策的規定使用和披露您的個人信息.
1900/1/1 0:00:00文/大象財經記者慎言 一直都說魔幻的幣圈,但作為入圈兩三年的老人,大象財經直播間主持人Nicole是在9月20日晚上的一場直播中才真實感受了這種魔幻.
1900/1/1 0:00:00BitgetDeFiToken(BFT)2019年9月10日至9月18日進展如下:1、2019年9月10日14:00開放BFT/USDT交易,開盤價0.016USDT,最高漲幅837.5%.
1900/1/1 0:00:00我在今年七月到八月期間與游戲化專家劉沐真進行了密集的交流,并整理了一個長篇對話,于8月10日發表了上半部分。這不是一個“熱門話題”,但是有其真實意義.
1900/1/1 0:00:00BNB看漲期權 代碼周BNB看漲0927期權標的BNB合約類型歐式看漲期權計價單位USDT最小價格單位0.0001USDT合約比例2:1.
1900/1/1 0:00:00