<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>

          波卡的隨機(jī)性|Polkadot Wiki

          共 2795字,需瀏覽 6分鐘

           ·

          2021-03-26 21:01

          加入 PolkaWorld 社區(qū),共建 Web 3.0!

          波卡作為一條 PoS 鏈,隨機(jī)性至關(guān)重要。波卡的隨機(jī)性如何產(chǎn)生?為什么要選擇這種方案呢?在本章 wiki 中給出了說明。


          Polkadot Wiki 是波卡官方文檔,PolkaWorld 目前正在翻譯和連載中。



          隨機(jī)性


          在權(quán)益證明(PoS)區(qū)塊鏈中,隨機(jī)性對于驗(yàn)證人職責(zé)的公平且不可預(yù)測分配很重要。


          計(jì)算機(jī)并不擅長隨機(jī)數(shù),因?yàn)樗鼈兪谴_定性設(shè)備(相同的輸入始終會(huì)產(chǎn)生相同的輸出)。通常大家在計(jì)算機(jī)上(例如在游戲應(yīng)用程序中)所說的 “隨機(jī)數(shù)” 實(shí)際上是偽隨機(jī)的。也就是說,它們依賴于用戶或其他類型的 Oracle(預(yù)言機(jī))提供的足夠隨機(jī)的種子,例如氣象站的大氣噪聲、你的心律,甚至是熔巖燈,它都可以從中產(chǎn)生一系列看似隨機(jī)的數(shù)字。但是給定相同的種子,將始終生成相同的序列。


          然而,這些輸入將根據(jù)時(shí)間和空間而變化,而且不可能將相同的結(jié)果輸入到全球特定區(qū)塊鏈的所有節(jié)點(diǎn)中。如果節(jié)點(diǎn)獲得不同的輸入并用它來出塊,則會(huì)發(fā)生分叉。顯然,現(xiàn)實(shí)世界的無序狀態(tài)不適合用作區(qū)塊鏈隨機(jī)性的種子。


          如今生產(chǎn)環(huán)境中有兩種主要的解決區(qū)塊鏈隨機(jī)性的方法:RANDAO 和 VRF。Polkadot 使用 VRF。



          VRF


          可驗(yàn)證隨機(jī)函數(shù)(VRF)是一種數(shù)學(xué)運(yùn)算,需要一些輸入并產(chǎn)生一個(gè)隨機(jī)數(shù)以及該提交者生成該隨機(jī)數(shù)的真實(shí)性證明。任何挑戰(zhàn)者都可以驗(yàn)證該證明,以確保隨機(jī)數(shù)生成有效。


          Polkadot 中使用的 VRF 與 Ouroboros Praos 中使用的 VRF 大致相同。Ouroboros 的隨機(jī)性對于出塊來說是安全的,并且對于 BABE 也運(yùn)行得很好。它們的不同之處在于,Polkadot 的 VRF 不依賴于中央時(shí)鐘(問題變成了 “誰控制中央時(shí)鐘?”),而是取決于它自己的過去結(jié)果來確定現(xiàn)在和將來的結(jié)果,并且它使用時(shí)隙號(hào)(slot number)作為時(shí)鐘仿真器來估計(jì)時(shí)間。


          具體操作如下:


          時(shí)隙(slots)是時(shí)間的離散單位,長度為六秒。每個(gè)時(shí)隙可以包含一個(gè)塊,但也可以不包含一個(gè)塊。時(shí)隙構(gòu)成了時(shí)期(epochs)—— 在Polkadot上,2400個(gè)時(shí)隙構(gòu)成了一個(gè)時(shí)期,即每個(gè)時(shí)期為 4 小時(shí)。


          在每個(gè)時(shí)隙中,每個(gè)驗(yàn)證人都會(huì) “擲骰子”。他們執(zhí)行將以下內(nèi)容作為輸入的函數(shù)(VRF):


          • 密鑰 - 專門為 “擲骰子” 制作的鑰匙

          • Epoch 隨機(jī)值 - 上一個(gè)(N-2) 之前的 epoch 中各個(gè)塊的 VRF 值的哈希值,因此過去的隨機(jī)性會(huì)對當(dāng)前的待確認(rèn)隨機(jī)性(N)產(chǎn)生影響

          • 時(shí)隙數(shù)(slot number)


          輸出為兩個(gè)值:RESULT(隨機(jī)值)和 PROOF(證明隨機(jī)值已正確生成的證明)。


          然后將 RESULT 與在協(xié)議(具體來說是在 Polkadot Host 中)的實(shí)現(xiàn)中定義的閾值進(jìn)行比較。如果該值小于閾值,那么得出此數(shù)字的驗(yàn)證人將是該插時(shí)隙的可行出塊候選者。然后,驗(yàn)證人嘗試創(chuàng)建一個(gè)塊,并將該塊與先前獲得的 PROOF 和 RESULT 一起提交到網(wǎng)絡(luò)中。


          釣魚人(fisherman)- 監(jiān)視網(wǎng)絡(luò)的收集人和驗(yàn)證人錯(cuò)誤行為的節(jié)點(diǎn),將驗(yàn)證中繼鏈區(qū)塊。由于非法投擲將產(chǎn)生非法區(qū)塊,并且由于釣魚人將在驗(yàn)證人產(chǎn)生的每個(gè)區(qū)塊中訪問 RESULT 和 PROOF,因此他們很容易自動(dòng)報(bào)告作弊的驗(yàn)證人。


          總結(jié)一下:在 VRF 下,每個(gè)驗(yàn)證人都會(huì)為自己擲出一個(gè)數(shù)字,并根據(jù)閾值對其進(jìn)行檢查,如果隨機(jī)擲出的骰子低于該閾值,則會(huì)生成一個(gè)區(qū)塊。觀察網(wǎng)絡(luò)并報(bào)告不良行為的釣魚人事后會(huì)驗(yàn)證這些投擲的有效性,并向系統(tǒng)報(bào)告任何作弊行為(例如,有人盡管擲出的數(shù)量超過閾值,但仍然假裝成出塊者)。


          精明的讀者會(huì)注意到,由于這種工作方式,某些時(shí)隙可能沒有驗(yàn)證人作為出塊候選者,因?yàn)樗序?yàn)證人候選者的得分都太高而錯(cuò)過了閾值。我們闡明了如何解決此問題,并確保與 Wiki 頁面的共識(shí)部分 的 Polkadot 出塊時(shí)間保持幾乎一致。



          RANDAO


          另一種獲取鏈上隨機(jī)性的方法是以太坊的 RANDAO 方法。RANDAO 要求每個(gè)驗(yàn)證人通過對某些種子執(zhí)行數(shù)千個(gè)哈希來進(jìn)行準(zhǔn)備。之后驗(yàn)證人在回合中發(fā)布最終的哈希值,并且從每個(gè)參與者進(jìn)入游戲中得出隨機(jī)數(shù)。只要一名誠實(shí)的驗(yàn)證人參加,隨機(jī)性就被認(rèn)為是安全的(在經(jīng)濟(jì)上進(jìn)行攻擊不可行)。


          RANDAO 可以選擇使用 VDF 進(jìn)行增強(qiáng)。



          VDFs


          可驗(yàn)證延遲函數(shù)( Verifiable Delay Functions )是指即使在并行計(jì)算機(jī)上也要花費(fèi)規(guī)定時(shí)間才能完成的計(jì)算。它們產(chǎn)生獨(dú)特的輸出,可以公用共設(shè)置獨(dú)立有效地對其進(jìn)行驗(yàn)證。通過將 RANDAO 的結(jié)果輸入 VDF,會(huì)引入延遲,從而使任何攻擊者企圖影響當(dāng)前隨機(jī)性的嘗試都將過時(shí)。


          VDF 一般需要通過 ASIC 設(shè)備來實(shí)現(xiàn),這類設(shè)備需要與其他類型的節(jié)點(diǎn)分開運(yùn)行。盡管只有一臺(tái)就足以保證系統(tǒng)的安全,并且它們將是開源的并且?guī)缀趺赓M(fèi)分發(fā),但是運(yùn)行這類設(shè)備既不便宜也不受激勵(lì),對于選擇這種方法的區(qū)塊鏈用戶而言將產(chǎn)生不必要的摩擦。



          擴(kuò)展資料

          • Polkadot 在隨機(jī)數(shù)和抽簽上的研究 - 包含了在證明機(jī)制之間作出選擇的理由:

            https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html

          • 關(guān)于 Pokadot 中用到的隨機(jī)數(shù)的討論 - W3F 研究員討論波卡中的隨機(jī)性及其使用場景和假設(shè):

            https://github.com/paritytech/ink/issues/57


          原文:

          https://wiki.polkadot.network/docs/en/learn-randomness

          翻譯:PolkaWorld




          PolkaWorld 開通了視頻號(hào)!每天更新關(guān)于波卡的小知識(shí)和 Gavin 訪談視頻等,每周四晚 7 點(diǎn)還會(huì)邀請波卡生態(tài)項(xiàng)目做客直播??靵黻P(guān)注我們吧~



          • 歡迎學(xué)習(xí) Substrate: 

            https://substrate.dev/

          • 關(guān)注 Substrate 進(jìn)展:

            https://github.com/paritytech/substrate

          • 關(guān)注 Polkadot 進(jìn)展:

            https://github.com/paritytech/polkadot

          更多內(nèi)容:


          波卡聯(lián)合創(chuàng)始人 Robert :平行鏈?zhǔn)且环N區(qū)塊鏈更簡單的形式

          波卡周報(bào) | 波卡官方發(fā)文分享「橋」的重要性!

          科普:什么是波卡平行鏈?


          掃碼關(guān)注公眾號(hào),回復(fù) “1” 加入波卡群

          關(guān)注 PolkaWorld

          發(fā)現(xiàn) Web 3.0 時(shí)代新機(jī)遇


          點(diǎn)個(gè) “在看” 再走吧!

          瀏覽 65
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  中国在线黄色一级学生妹 | 成人99视频 | 天天干人人操 | 在线xx视频 | 免费A在线观看播放 |