<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Neo N3在隨機數(shù)算法領(lǐng)域的困難與愿景|Neo專欄

          共 2268字,需瀏覽 5分鐘

           ·

          2021-08-25 23:25

          上一篇Neo專欄中

          作者為我們分析了區(qū)塊鏈引入隨機數(shù)的重要性

          解答了為什么N3要克服重重困難引入隨機數(shù)的問題??


          本篇文章中

          作者將繼續(xù)為我們揭秘引入隨機數(shù)的困難具體有哪些

          以及Neo在隨機數(shù)算法領(lǐng)域究竟有何發(fā)展目標(biāo)??


          快來一起看看吧????

          在上一篇博客中我們一起了解了在區(qū)塊鏈中引入隨機數(shù)的重要性。但問題是既然隨機數(shù)這么重要,那為什么區(qū)塊鏈發(fā)展這么久了,對隨機數(shù)的支持還這么拉胯呢?比如,大多數(shù)內(nèi)置隨機數(shù)的項目還是用隨機數(shù)來做綠色環(huán)保的區(qū)塊生成權(quán)的競爭,用以取代高耗能的算力證明,而這類隨機數(shù)是沒辦法用來做合約的隨機數(shù)種子的。比如Chainlink是以外部回調(diào)這種昂貴的機制為智能合約提供基于可驗證隨機函數(shù)(VRF)計算出的隨機數(shù),對每一個特定用戶請求返回一個相應(yīng)的可驗證隨機數(shù)。在ETH2.0中也有專門關(guān)于安全隨機數(shù)的協(xié)議,就是用可驗證延遲函數(shù)(VDF)來計算隨機數(shù),或者計算隨機數(shù)種子,并且為了保證延遲函數(shù)的準(zhǔn)確性,以太坊基金會還在和IPFS一起合作研發(fā)專門用來計算可驗證延遲函數(shù)的設(shè)備。

          生成隨機數(shù)這件事本身對于現(xiàn)代的設(shè)備來說一點都不難(不追求潘建偉老師那種量子隨機數(shù)發(fā)生器的安全程度),畢竟我們現(xiàn)有的電子設(shè)備幾乎都有自己獨特的安全的隨機數(shù)生成算法。可是這些隨機數(shù)生成算法都是中心化的,由單一一臺設(shè)備獨立生成,幾乎可以說是完全在一種可被操控的環(huán)境下生成的。這問題在中心化系統(tǒng)里并不大,畢竟隨機數(shù)的生產(chǎn)者和消費者不是一個主體,生產(chǎn)者的目的就是盡量隨機,操縱隨機數(shù)這件事對他沒有任何意義。這種最直接的例子其實就是游戲里的抽卡機制,隨機數(shù)的生產(chǎn)者(或者叫隨機數(shù)生成器(RNG))是在游戲的服務(wù)器端的,生成的隨機數(shù)主要是為了作為用戶抽卡成功與否的一個判定條件,這個隨機數(shù)值本身對服務(wù)器來說沒有實質(zhì)上的意義,只要保證整體概率就行。真正的隨機數(shù)的消費者是游戲玩家,而玩家又不參與隨機數(shù)的生成過程。

          但問題是我們在一個去中心化的區(qū)塊鏈系統(tǒng)中,所有的數(shù)據(jù)都是公開的,節(jié)點的身份都是生產(chǎn)者和消費者二元一體。如果這個隨機數(shù)的生成過可以被任意節(jié)點控制,那整個系統(tǒng)也將變得不可靠。尤其是如果這個隨機數(shù)由議長(Miner or Primary)來生成,那么議長將比任何人都提前知道跟隨機數(shù)相關(guān)的合約的執(zhí)行結(jié)果,從而使得議長有能力通過MEV攻擊來作惡。因此,我們是不能依賴任何單一節(jié)點在本地不可控地隨機生成隨機數(shù)的。

          也有曲線救國的方式,那就是利用線上數(shù)據(jù)作為隨機數(shù)源,畢竟區(qū)塊鏈作為一個封閉系統(tǒng)來說,除了計算之外還有現(xiàn)成的鏈上數(shù)據(jù)可以利用,交易的哈希啊,區(qū)塊的哈希啊等等都是寶貴的數(shù)據(jù),并且由于這些哈希是由哈希函數(shù)生成的,也滿足隨機數(shù)在空間上均勻分布的特性。可是這種方案的問題在于線上的數(shù)據(jù)量是很有限而且公開的,尤其是當(dāng)合約利用鏈上數(shù)據(jù)進行處理以得到隨機數(shù)的時候,隨機數(shù)就很容易被黑客猜解,比如當(dāng)年EOS里大量被黑客通過猜解隨機數(shù)而攻擊的博彩類dApp。

          不能直接由單節(jié)點生成,又不能依賴鏈上的公開數(shù)據(jù),還要保證在分布式系統(tǒng)下結(jié)果唯一。在這已經(jīng)很苛刻的條件下我們還希望Neo能提供用戶友好型的隨機數(shù)算法,使用戶可以在合約運行時不限次數(shù)的調(diào)用隨機數(shù),且每次調(diào)用都維持低成本。說實話,在前幾年空想隨機數(shù)階段,我完全沒有預(yù)料到這個過程實施的時候會這么艱難。為了避免議長隨機生成任意隨機數(shù),我們計劃用VRF來讓議長以一種可控的形式生成唯一的可驗證的隨機數(shù)。但是這種方式會使得議長比任何人都提前知道隨機數(shù)的值。因此我們又考慮VRF+抗PEV(MEV in ethereum)攻擊的算法來保證即使議長知道了隨機數(shù)的值也沒有辦法臨時生成針對性的交易??墒沁@種方案又被證明容易受到影子議長的攻擊。經(jīng)過漫長又曲折的社區(qū)討論之后,最終我們決定基于BLS??來開發(fā)Neo特定的隨機數(shù)算法。

          BLS算法是一種分布式的帶有門限的聚合簽名算法,以m out of n舉例,所有參與者n個人每人用自己本地的私鑰來簽名同一個數(shù)據(jù),然后廣播,任意節(jié)點只要收集到m個簽名,就可以聚合生成唯一的聚合簽名。這種算法看起來很適合Neo的dBFT共識,可是問題是n個節(jié)點的本地私鑰不是節(jié)點自己隨便獨立生成的,而是需要經(jīng)過一個相互溝通的初始化過程,這個初始化過程比較復(fù)雜,想要跟現(xiàn)有的dBFT共識兼容的話,需要做大量的研究工作。這個目前是NGD的金橋同學(xué)和逗比同學(xué)在負(fù)責(zé),我負(fù)責(zé)打輔助。

          面對元宇宙和區(qū)塊鏈游戲的生態(tài)建設(shè),Neo的目標(biāo)是把隨機數(shù)算法做的和普通的系統(tǒng)調(diào)用一樣方便便宜且不受限制,而不是像現(xiàn)有的解決方案一樣調(diào)用昂貴且過程繁瑣,并且在實現(xiàn)這些的同時保證隨機數(shù)發(fā)生器的安全。

          - 推薦閱讀 -

          All in One · All in Neo

          Neo是一個由社區(qū)驅(qū)動的開源平臺。利用區(qū)塊鏈技術(shù)與數(shù)字身份,開發(fā)者可以通過智能合約實現(xiàn)資產(chǎn)管理數(shù)字化與自動化。Neo致力于通過分布式網(wǎng)絡(luò)建設(shè)下一代互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,為區(qū)塊鏈技術(shù)大規(guī)模落地奠定基礎(chǔ),以實現(xiàn)智能經(jīng)濟的宏大愿景。

          自2016年上線至今,Neo主網(wǎng)已穩(wěn)定運行超過四年。全新版本Neo N3預(yù)將于2021年發(fā)布,將提供更高吞吐量、更強穩(wěn)定性與安全性,并帶來優(yōu)化的智能合約系統(tǒng)及功能豐富的基礎(chǔ)設(shè)施集合,旨在賦能開發(fā)者并加速企業(yè)級區(qū)塊鏈創(chuàng)新。

          瀏覽 74
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日日日爽爽爽 | 色五月婷婷在线 | 粉嫩在线 | 欧美黑人视频在线 | 男女h网站 |