<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ī)數(shù)生成的算法模型|Neo專欄

          共 1581字,需瀏覽 4分鐘

           ·

          2020-11-20 11:17

          上?篇文章《Neo 智能合約如何保證隨機(jī)數(shù)安全性?》,我們討論了隨機(jī)數(shù)生成的執(zhí)行過程。簡單來說就是把打包交易的權(quán)利交給議?,把?成隨機(jī)數(shù)的權(quán)利分別賦予給兩位議員。

          - 后?? N1 和 N2 指?成隨機(jī)數(shù)的兩位議員;

          - R1 和 R2 指兩位議員最終發(fā)給議?的包含隨機(jī)數(shù)的交易

          負(fù)責(zé)?成隨機(jī)數(shù)的議員 N1 和 N2 ?法提前知道最終的隨機(jī)數(shù),負(fù)責(zé)打包的議??法更改隨機(jī)數(shù)的值,如此三?共同協(xié)作是為了在每?個區(qū)塊里?成安全可信的隨機(jī)數(shù)。

          隨機(jī)數(shù)?成的算法模型


          接下來我們對這個隨機(jī)數(shù)?成的算法模型進(jìn)?分析完善。

          ?先考慮到 N1 和 N2 發(fā)出的交易都是公開的,因此 如果 N1 是惡意的,那么它可以故意等到接收到 N2 的隨機(jī)數(shù) R1 之后再依據(jù) R1 的值來推斷并?成對??最有利的那個隨機(jī)數(shù) R2。

          這?稍微提?下為什么 N2 依然可以對?成的隨機(jī)數(shù)進(jìn)?選擇,因為我們考慮 2/3 多數(shù)的共識原則,因此 N2 是可能收到超過 2/3 來?別的議員的隨機(jī)數(shù)的,因此 N2 就可以在這些收到的隨機(jī)數(shù)??由選擇。?如我們有 7 個議員,那 N2 如果只收到5個議員的隨機(jī)數(shù),那當(dāng)然就只有?種組合?案,但是如果 N2 收到了 6 個議員的隨機(jī)數(shù),那么它就可以在 6 個??選出 5 個,于是就有了總共 6 種可能供 N2 選擇;同理,如果 N2 收到了所有 7 個議員的隨機(jī)數(shù),那 N2 就有了 50 種選擇,在這么多的選擇?,N2 完全可以選出?個對??有利的最終?案。

          要避免這種問題,我們需要保證在議??成最終隨機(jī)數(shù)之前,兩位議員?法提前知道隨機(jī)數(shù)。這似乎是在繞圈?,但解決這個問題其實相對簡單,我們可以讓 N1 和 N2 ?議?的公鑰對 R1 和 R2 進(jìn)?加密,如此就可以在議??播新區(qū)快議案之前,只有議?可以同時知道 R1 和 R2 。

          與此同時,為了讓議??成的最終隨機(jī)數(shù)可驗證并且簡化流程,N1 和 N2 在加密 R1 和 R2 的時候還應(yīng)該加上對 R1 和 R2 的簽名。如此,在議?公開解密后的 R1 和 R2 時,別的議員就可以在不與 N1 和 N2 做額外通信的情況下來驗證 R1 和 R2 以及最終隨機(jī)數(shù)的真實性。

          現(xiàn)在我們再討論假如 N1 是個傻?,它就想把 R1 的明?公布出來,因此 N2 就可以提前獲取 R1 的值并加以利?以實現(xiàn)??利益的最?化,這?我們分為兩種情況來討論:

          ?N2 是誠實節(jié)點(diǎn)?

          它哪怕收到了 R1 也不會做任何的事情,所以即使 N1 是個傻?,對系統(tǒng)也不會造成任何影響,畢竟僅僅知道 R1 是無法推斷出最終隨機(jī)數(shù)的。此外我們還可以設(shè)置?名單,對故意提前泄漏隨機(jī)數(shù)的議員 N1 進(jìn)?懲罰進(jìn)?提?系統(tǒng)的魯棒性。

          ?N2 是惡意節(jié)點(diǎn)?

          這個就?較?煩了,畢竟 Neo 的共識算法是只需要超過 2/3 的節(jié)點(diǎn)是正常的即可,所以議員?出現(xiàn)兩個反動派是正常的,但是對于隨機(jī)數(shù)?成來說就有點(diǎn)要命。索性我們假設(shè)選擇 N1 和 N2 的過程也是隨機(jī)的,那么在?個不超過 1/3 的議員是惡意的情況下,對?個區(qū)塊來說,N1 和 N2 都是惡意的概率在 5% 左右,不過隨著議員數(shù)量的提升,這個概率會隨之增?,但是最?不超過 11%。

          以上,雖然?案依然存在一定被攻擊的可能,但是相對于單純的讓單獨(dú)節(jié)點(diǎn)來?成隨機(jī)數(shù)還是更安全的?種解決?案。

          通過兩篇關(guān)于安全隨機(jī)數(shù)的文章,希望大家可以更深入地了解為了保證系統(tǒng)環(huán)境的安全運(yùn)行,研究員們對于整個執(zhí)行機(jī)制、算法模型所做的嘗試與驗證。

          區(qū)塊鏈要走的路還很長,咱們一道見證。?

          瀏覽 49
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  国产高清成人a片 | 日本国产视频 | 含羞草一区二区三区 | 欧美成人黄网站 | 久久视频网 |