分散式網路上的多方隨機數生成器(RNG)

買賣虛擬貨幣
自古以來,人們就被隨機性的概念所吸引。我們一直在摸索事物執行的規則。在我們的天性中,我們想要拒絕假設任何事情都是隨機發生的。我們觀察事物,尋找規律,做出預測。漸漸地,人們開始意識到隨機性在日常生活中扮演著重要的角色。因此,隨機性在遊戲、藝術、模擬、統計和密碼學等各個領域都有大量的應用。雖然隨機性看起來非常明顯,但建立隨機性實際上具有驚人的挑戰性。所需的隨機性程度取決於所使用的應用程式。較弱形式的隨機性可用於簡單的應用程式(如從列表中隨機選擇音樂曲目),而許多加密應用程式需要更高程度的表示性。於是這就提出並實現了大量的演算法和物理方法。傳統上,隨機數生成器(Random Number Generation)是一種計算演算法或物理裝置,它產生不可預知的序列。大多數傳統的隨機數生成器使用本地隨機源,並且是為客戶端單獨設計的。雖然我們中的一些人可以選擇相信這些來源,但事實證明,本地可用的隨機性可以被顛覆。由於當今的許多應用程式都需要各方之間的公共隨機性,因此這些隨機數生成器似乎不是一個好的選擇。此外,由於缺乏一種簡單的、成本效益高的方法來驗證其結果,它們遠離了在分散式網路上執行的許多應用程式。

自2009年引進以來,區塊鏈技術越來越受歡迎,越來越受到研究者的關注。在此技術基礎上開發了更多的應用程式。因此,所謂的分散式隨機數生成不可避免地成為一個重要的研究領域。最常見的型別是多方隨機數生成器。本文將闡明什麼是多方隨機數生成器,以及它與傳統隨機數生成器的區別。由於大多數傳統的MG是集中的,如果沒有指定,我們將交替使用術語常規和集中。


什麼是多方隨機數生成器?

多方隨機數生成器生成是一種從多方貢獻中構建單一價值的機制。每一方的貢獻都改變了最終價值,在知道自己的貢獻將如何塑造最終價值方面,沒有人比其他人有任何優勢。與從單個源生成隨機數的集中式方法不同,這種方法收集來自網路各處的隨機源,並將它們組合成最終的隨機數。

為了更好地理解這個術語,讓我們來看看“線上遊戲”的例子,這個線上遊戲是兩個或更多的人對遊戲結果的下注。在這種情況下,如果任何一方在資料披露前就知道了結果,那麼遊戲就不再被認為是公平的。因此,由一個公平的隨機數生成器生成遊戲結果至關重要。集中式隨機數生成器在某種程度上可以應用於這款遊戲,但它缺少一種審計結果。此外,當事人必須信任第三方,如果第三方是惡意的,結果就不再公平。一種簡單的方法是讓每一方都貢獻一些自己選擇的數字,然後透過使用這些數字來獲得最終結果。這種天真的方法顯然有一些缺點,但是它支援刪除第三方元素。所有各方都可以直接影響隨機數,從而增加了問責性,所有各方都可以直接影響隨機數,從而增加結果中的問責性。

一般來說,如果設計得當,多方隨機數生成器不僅能夠滿足隨機數生成器的嚴格要求,而且還能夠實現一些有趣的特性,從而可以用於許多應用程式。以下是將它們與集中式隨機數生成器區別開來的一些屬性。

不受信任的第三方

使用集中式隨機數生成器的主要缺點是,提供者不能濫用其權力並忠實地提供其服務。此外,還有一種風險是攻擊者獲得對提供者的控制,從而使攻擊者能夠危害服務。因此,我們不知道隨機數生成器是否被操縱。在這種情況下,生成的數字很可能不是隨機的。多方隨機數生成器提供了一種機制,可以在存在惡意方的情況下,在許多方之間就隨機值達成協議。因此,多方隨機數生成器不依賴某一特定政黨,而是將信任分配給每一個政黨。從對以下問題的回答中,我們可以很容易地知道分散式隨機數生成器通常如何消除信任任何第三方的需要。

· 更有可能發生的是:一方是惡意的,還是100人中有51人同時是惡意的?
· 以下哪一個你最信任:一個政黨,還是一個由100個政黨組成的網路?

公平

在彩票或老虎機等應用程式中,需要許多方面就隨機數達成一致,任何人都不應該比其他人更有優勢來預測隨機數。如果我們在這些應用程式中使用集中式隨機數生成器,我們不僅必須信任第三方,而且還可能有人賄賂第三方以獲得他可以從中受益的號碼。因此,我們非常需要構建一個不需要可信方的隨機數生成器。這時就需要多方隨機數生成器。多方隨機數生成器允許每一方透過提交自己的編號來貢獻公共值的生成。而且,在隨機數確定之前,網路中的任何一方都無法看到其他人的貢獻價值。因此,在生成過程完成之前,沒有人能夠確定結果。公平是有保證的,因為每個人都有相同的概率根據公共資訊猜測正確生成的數字。

可用性

可用性(也稱為活性)意味著隨機數生成器在惡意節點的情況下成功生成隨機數。顯然,擁有多臺計算機的系統比只有一臺計算機的系統意外失敗的可能性更小。分散式網路有助於解決單點故障問題(SPOF——網路中用於描述單個節點在自身故障時導致整個網路癱瘓的術語)。由於節點眾多,只要將惡意節點的部分(相對於所使用的演算法)保持在合理的值,就可以保證網路仍然在執行併產生結果。由於如果一個或多個參與方是惡意的(惡意參與方的數量取決於每個隨機數生成器中使用的演算法),多方隨機數生成器使得可用性成為可能,因此隨機數生成器仍然保證未被操縱。

通用可驗證性

通用可驗證性是指允許任何第三方檢查結果正確性的能力。此屬性不屬於多方隨機數生成器的性質。但是,由於一個多方隨機數生成器需要許多來源的貢獻,因此需要可核查性以確保沒有規避產生過程。傳統的只能證明他們使用了一種隨機方法,但不能提供任何技術來審計產生後的結果——這意味著最終的結果有可能被操縱了。因此,這些隨機數生成器可能容易受到內部欺詐的影響。這將極大地信任服務提供者。分散式解決方案通常使用分散式分類器記錄生成隨機數的每個步驟的所有資料。因此,它們給每個人帶來了生產過程的透明度。有了這些資訊,每個人都可以輕鬆地檢查在生成過程中是否被人惡意操作了。

操作阻力

有必要確保每個人都信任隨機數生成器的結果。顯然,由一個節點組成的系統比由一千個節點組成的系統更容易被操縱。分散式網路不太可能意外失敗,因為它們依賴於許多元件。如前所述,在多方隨機數生成器中生成隨機數的過程是透明且可驗證的,任何操縱結果的嘗試都會被檢測到。此外,要進行篡改,還需要特定多數方之間的勾結。因此,幾乎所有隨機數生成器都實現了防篡改特性。

結論

分散式系統給隨機數的生成帶來了許多挑戰。具有挑戰性的任務是找到一種方法,在一組相互不信任的各方之間生成可信的隨機值。在本文中,我們簡要介紹了所謂的多方隨機數生成器。我們還分析了它在公平性、可用性、防篡改性等方面與傳統方法的不同之處。由於集中式隨機數生成器有許多缺點,多方隨機數生成器是一個突出的選擇。然而,對這一課題的研究很少。現在已經提出了一些協議,但是它們只實現了前面提到的一些特性。


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;