您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“區(qū)塊鏈中的隨機(jī)數(shù)有什么作用”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
隨機(jī)數(shù)的重要性不僅體現(xiàn)在安全通信渠道的建立上,還體現(xiàn)在確認(rèn)通信對(duì)象上。如果多個(gè)人試圖通過有限帶寬的頻道來互相通信,則可以利用隨機(jī)數(shù)來確定頻道攜帶消息的合理順序。
隨機(jī)數(shù)能夠有效幫助團(tuán)體或計(jì)算機(jī)達(dá)成一致協(xié)議或共識(shí)。隨機(jī)共識(shí)協(xié)議就是這樣一個(gè)例子。本文將探討隨機(jī)數(shù)在區(qū)塊鏈中的作用。
區(qū)塊鏈就是一個(gè)多方嘗試就全局視角的某種更新達(dá)成一致(共識(shí))的成功案例。更新通常在一輪內(nèi)完成,也就是在一個(gè)周期性離散時(shí)間間隔內(nèi)。
在互聯(lián)網(wǎng)上,特定時(shí)間段內(nèi)發(fā)送的消息數(shù)量是有上限的(即吞吐量),并且發(fā)送消息必將花去一定的時(shí)間( 即延遲),這都對(duì)共識(shí)造成了一定的限制。任何區(qū)塊鏈共識(shí)協(xié)議的目標(biāo)是在上述限制范圍內(nèi)達(dá)成一致協(xié)議。在公鏈上有數(shù)千個(gè)節(jié)點(diǎn)參與了區(qū)塊鏈的維護(hù),如果每個(gè)節(jié)點(diǎn)需要向所有其他節(jié)點(diǎn)發(fā)送消息并獲得其反饋,那么網(wǎng)絡(luò)的限制會(huì)大大增加達(dá)成共識(shí)的成本。這是因?yàn)樵谝惠啎r(shí)間內(nèi)通過網(wǎng)絡(luò)發(fā)送的消息數(shù)量太大。因此,為了確保共識(shí),則需要通過減少在互聯(lián)網(wǎng)上發(fā)送消息的數(shù)量來優(yōu)化通信方案。
比特幣達(dá)成此協(xié)議(中本聰共識(shí))的方式是通過使用 工作證明(PoW)作為隨機(jī)數(shù)源來確定每一輪中哪一個(gè)區(qū)塊將會(huì)被添加到區(qū)塊鏈中,從而減少消息傳遞的費(fèi)用。因?yàn)?PoW 設(shè)置的題目在算法上非常難解決,只有最先算出來的人才能將他們的區(qū)塊添加到分類帳中。由于多個(gè)人同時(shí)解開難題的概率非常低,因此 PoW 可以作為一種限制網(wǎng)絡(luò)消息傳遞數(shù)量的機(jī)制。
理論上,任何試圖取代 PoW 的共識(shí)機(jī)制都需要找到一種方法來限制網(wǎng)絡(luò)傳遞消息的數(shù)量。大多數(shù)權(quán)益證明(PoS)協(xié)議用于解決該問題的方法是根據(jù)驗(yàn)證者持有的代幣數(shù)量來選出一組驗(yàn)證者(維護(hù)與管理區(qū)塊鏈的節(jié)點(diǎn))組成一個(gè)小組委員會(huì),然后這組驗(yàn)證者可以在網(wǎng)絡(luò)限制內(nèi)相互通信并及時(shí)達(dá)成一致。
當(dāng)然,為了公平選舉出小組委員會(huì)的成員,保證沒有人會(huì)提前知道成員的身份,算法必須能夠融入一些公平、無偏倚的(unbiasable)隨機(jī)數(shù)源。一旦該組驗(yàn)證者在下一個(gè)區(qū)塊上達(dá)成了一致,那個(gè)區(qū)塊就會(huì)被廣播給網(wǎng)絡(luò)中的每一個(gè)人。
在 PoS 協(xié)議中用于小組委員會(huì)選舉的理想隨機(jī)數(shù)源必須是不可支配的(unbiasable),即沒有人可以隨意改變隨機(jī)種子(seed)。為了實(shí)現(xiàn)不可支配性,隨機(jī)性協(xié)議需要確保以下兩點(diǎn):
隨機(jī)函數(shù)總會(huì)生成一些隨機(jī)數(shù);
隨機(jī)函數(shù)生成的隨機(jī)數(shù)沒有被操縱
(注意:我們?cè)谥蟮牟┛臀恼轮袑?huì)探討 i)與ii) 之間的權(quán)衡,以及這種權(quán)衡與網(wǎng)絡(luò)同步模型的關(guān)系)
我們?cè)?nbsp;Mechanism Labs (一個(gè)推特號(hào))上分析過的所有小組委員會(huì)選舉協(xié)議都沒有滿足上面提到的兩點(diǎn)。因此,鑒于上述權(quán)衡,區(qū)塊鏈共識(shí)協(xié)議應(yīng)該使用能不斷產(chǎn)生隨機(jī)數(shù)的隨機(jī)數(shù)源,而不是使用僅能一次性產(chǎn)生不可支配的隨機(jī)數(shù)的隨機(jī)數(shù)源。因?yàn)閰^(qū)塊鏈協(xié)議需要確保區(qū)塊鏈保持增長、不能讓隨機(jī)數(shù)源成為瓶頸。即使是偏好一致性的協(xié)議,隨機(jī)數(shù)源也不應(yīng)該成為區(qū)塊鏈停滯的原因。無論如何,隨機(jī)數(shù)源都應(yīng)該確保協(xié)議能夠?qū)W⒂趹?yīng)付其他攻擊,比如對(duì)驗(yàn)證者組成的小組委員會(huì)實(shí)施 DoS 攻擊使得區(qū)塊鏈停滯等等。
如果區(qū)塊鏈由于隨機(jī)函數(shù)輸出的隨機(jī)數(shù)出現(xiàn)了偏差而完全停止運(yùn)行,那么社交層就得付出巨大的協(xié)調(diào)成本來重新啟動(dòng)區(qū)塊鏈。這將要求社區(qū)通過外部的社交媒體平臺(tái)就區(qū)塊鏈實(shí)際上是什么的問題達(dá)成一致,而這會(huì)是一個(gè)非常耗時(shí)的討論,此成本可與當(dāng)初解決 DAO 黑客攻擊的成本相當(dāng)。社交層的巨額成本也會(huì)動(dòng)搖社區(qū)對(duì)區(qū)塊鏈協(xié)議安全性的信心,但只要偏差非常小并且具備從偏差狀態(tài)恢復(fù)的機(jī)制,那么幾輪的小偏差對(duì)區(qū)塊鏈安全性的影響就比較微弱,因?yàn)楣袇^(qū)塊鏈協(xié)議每一輪給予驗(yàn)證者的所有協(xié)議獎(jiǎng)勵(lì)是相對(duì)較少的。每一輪或每一個(gè)時(shí)期(每幾輪)進(jìn)行小組委員會(huì)選舉時(shí),隨機(jī)函數(shù)中的偏差必須非常顯著,驗(yàn)證者才能以欺騙協(xié)議來牟利并降低區(qū)塊鏈協(xié)議的安全性。
而在另一個(gè)領(lǐng)域內(nèi),那些用到隨機(jī)數(shù)的彩票游戲必須保證隨機(jī)數(shù)源絕對(duì)不被操縱,因?yàn)榧词钩霈F(xiàn)一點(diǎn)偏差也會(huì)完全改變中獎(jiǎng)結(jié)果。由于中獎(jiǎng)?wù)吣軌颢@得大量的即時(shí)獎(jiǎng)勵(lì),所以篡改彩票結(jié)果帶來的影響是巨大的。因此,這種彩票游戲偏好于一次性生成不可支配隨機(jī)數(shù)的函數(shù),即使這意味著隨機(jī)函數(shù)的輸出有時(shí)會(huì)停止。
本文將探討基于區(qū)塊鏈協(xié)議設(shè)計(jì)的背景下公正無偏的隨機(jī)數(shù)源的重要性。接下來的文章中,當(dāng)我們考慮不可篡改的協(xié)議時(shí),我們是傾向于不會(huì)被中止的協(xié)議。
理想的委員會(huì)選舉方案 應(yīng)該滿足 i)不可被支配,ii)只在新一輪開始時(shí)顯示隨機(jī)種子。隨機(jī)函數(shù)必須如前文討論的定義那樣做到不可被偏轉(zhuǎn)。如果隨機(jī)數(shù)被操控(并存在協(xié)議內(nèi)獎(jiǎng)勵(lì)分配機(jī)制),就會(huì)造成不公平的獎(jiǎng)勵(lì)分配。不恰當(dāng)?shù)莫?jiǎng)勵(lì)分配意味著一些人將獲得更豐厚的獎(jiǎng)勵(lì)。由于只有擁有權(quán)益的人才能成為驗(yàn)證者,并且投票權(quán)與驗(yàn)證者所擁有的權(quán)益成正比,那么不公平的分配將導(dǎo)致區(qū)塊鏈最終只掌控在少數(shù)驗(yàn)證者手里。因此,協(xié)議的不可操縱的程度,決定了是否有人可以長期作為驗(yàn)證者維護(hù)部分網(wǎng)絡(luò)。另一方面,種子在新一輪開始之前提前多久顯示,決定了誰可以首先成為網(wǎng)絡(luò)的一部分。由此可見,上述兩個(gè)屬性將決定區(qū)塊鏈的去中心化程度。
由于每一輪(或每一個(gè)時(shí)期)都會(huì)進(jìn)行小組委員會(huì)的選舉,因此從公布隨機(jī)函數(shù)輸出的隨機(jī)數(shù)到那一輪(或那一個(gè)時(shí)期)開始所需的時(shí)間是至關(guān)重要的。在此時(shí)間范圍內(nèi),攻擊者可以利用隨機(jī)函數(shù)輸出的隨機(jī)數(shù)得知哪些驗(yàn)證者獲選。如果此輸出被隱藏,則試圖攻擊區(qū)塊鏈協(xié)議的攻擊者將無法提前得知獲選的驗(yàn)證者。此時(shí)間范圍的長短決定了協(xié)議對(duì)攻擊的承受能力。較強(qiáng)的攻擊者,即具有較多計(jì)算能力和資源去攻擊網(wǎng)絡(luò)的人,能夠在短時(shí)間內(nèi)計(jì)算出獲選的驗(yàn)證者。如果攻擊者有足夠的時(shí)間,他們會(huì)通過運(yùn)行選舉委員會(huì)所用的算法以及該輪給定的隨機(jī)數(shù)種子來確定哪些驗(yàn)證者當(dāng)選,然后對(duì)該輪獲選的驗(yàn)證者進(jìn)行拒絕服務(wù)(DoS)攻擊,導(dǎo)致空白區(qū)塊的產(chǎn)生,令該輪無任何進(jìn)展。對(duì)區(qū)塊鏈來說,即使是停止一輪,后果也是毀滅性的。設(shè)想一下,如果幾小時(shí)內(nèi)世界上沒有人可以進(jìn)行任何交易,比特幣會(huì)變成什么樣!因此,有能力抗 DoS 攻擊的節(jié)點(diǎn)才應(yīng)該首先成為驗(yàn)證者。另外,提前顯示種子也意味著共識(shí)協(xié)議只能應(yīng)對(duì)較弱的攻擊者,這弱化了區(qū)塊鏈的去中心化性質(zhì)。
基于我們?cè)?nbsp;替代性共識(shí)協(xié)議的元分析 中剖析的不同區(qū)塊鏈協(xié)議的使用案例,下面我們會(huì)從技術(shù)角度詳細(xì)介紹各種隨機(jī)數(shù)的生成機(jī)制。
Tendermint
Tendermint 是使用一種確定的循環(huán)協(xié)議方案來選出提議者的;該協(xié)議不具備隨機(jī)性。提議者是根據(jù)投票權(quán)和驗(yàn)證者被選次數(shù)的堆排序算法選出的。攻擊者只能通過添加或刪除權(quán)益來干預(yù)協(xié)議,但這種干預(yù)不能立即生效,因?yàn)轵?yàn)證者在系統(tǒng)中移除或者添加權(quán)益所需的時(shí)間很長。盡管如此,攻擊者就可以有更長的時(shí)間提前計(jì)劃好如何操縱提議者的選擇。
使用確定性的隨機(jī)算法意味著隨機(jī)種子會(huì)在遠(yuǎn)早于每一輪之前公布,提議者也能被提前確定。
Algorand
Algorand 的隨機(jī)數(shù)方案如下:被選為提議者的每一位驗(yàn)證者 v 使用公式 < seedr, π > ← VRFskv (seedr?1||r) 來計(jì)算 r 輪的種子,其中 skv 是驗(yàn)證者 v 的密鑰,seedr-1 是前一輪的隨機(jī)種子。
VRF 是用來證明 r-1 輪中接受的區(qū)塊包含了 π 以及 r 輪的種子。如果給定的 VRF 證明未能驗(yàn)證給定的種子,則每個(gè)人計(jì)算新一輪的種子 H(seedr?1||r),其中 H 是哈希函數(shù)。這意味著必須提前選好每位驗(yàn)證者的密鑰,確保他們無法干預(yù)隨機(jī)種子。
當(dāng)網(wǎng)絡(luò)不能很好地同步時(shí),攻擊者完全控制了消息傳遞鏈接(校對(duì)注:感覺這里像在說“異步”假設(shè)),因此可以刪除提議的區(qū)塊并強(qiáng)制用戶支持空白的區(qū)塊,從而計(jì)算出未來用于選舉的隨機(jī)種子。因此,Algorand 要求 弱同步 假設(shè),即在每個(gè)時(shí)間長度為 u 的周期中,必須存在時(shí)間長度為 s(s < u)的強(qiáng)同步來保證協(xié)議的不可操縱性。只要 s 值足夠大,使得在時(shí)間段 b 內(nèi)至少產(chǎn)生一個(gè)誠實(shí)的區(qū)塊,則選擇密鑰 skv' 的攻擊者 v' 就不能操控 r 輪的隨機(jī)種子。
只有當(dāng)一個(gè)區(qū)塊被提議之后,才會(huì)生成一個(gè)新的隨機(jī)數(shù)種子,和一個(gè)可用來驗(yàn)證的公開 VRF 證明。這確保了提議者和隨機(jī)種子沒有被提前泄露,同時(shí)保證 Algorand 能夠抵御針對(duì)提議者的 DoS 攻擊,即使在節(jié)點(diǎn)離線甚至瞬間腐化的模式下都能實(shí)現(xiàn)自適應(yīng)安全。
Dfinity
對(duì)于大部分協(xié)議,攻擊者通常會(huì)中止協(xié)議來調(diào)用回退機(jī)制,從而操縱隨機(jī)數(shù)。但 Dfinity 使用的門限簽名方案(threshold scheme)是不可操縱的,因?yàn)檫x擇閾值的原則就是確保攻擊者無法通過阻止生成 門限簽名 來中止協(xié)議(因?yàn)殡S機(jī)數(shù)種子是從門限簽名中推導(dǎo)出來的)。因此閾值 t 必須根據(jù)以下公式進(jìn)行選擇:t∈[f + 1,n - f],其中 f 是攻擊者控制的簽名數(shù),n 是方案中的總簽名數(shù),t 是用于生成隨機(jī)數(shù)的簽名閾值。選擇該閾值是為了確保攻擊者既無法預(yù)測(cè)簽名生成的結(jié)果,也無法阻止簽名的生成。
需要注意的是,在任何 BLS 方案中,只要攻擊者擁有 50% 以上 的保證金,他們就能夠操控最終的簽名與隨機(jī)數(shù)。然而,如果一名攻擊者擁有如此大份額的權(quán)益,也會(huì)出現(xiàn)其它類型的攻擊,這種情況就違反了 Dfinity 協(xié)議的基本假設(shè)。
一旦誠實(shí)的驗(yàn)證者進(jìn)入到第 r 輪,隨機(jī)種子就會(huì)被揭示。雖然從誠實(shí)的驗(yàn)證者進(jìn)入到新一輪正式開始之間的時(shí)間差很小,但這個(gè)時(shí)間差足以讓具有大量計(jì)算資源的攻擊者識(shí)別出提議者并對(duì)其進(jìn)行 DoS 攻擊。這就是為什么 Dfinity 只能應(yīng)對(duì)溫和的攻擊者而無法應(yīng)對(duì)瞬時(shí)癱瘓的狀況。
Thunderella
在哈希函數(shù)實(shí)例化的隨機(jī)數(shù)預(yù)言機(jī)方案中,提議者將依據(jù)以下公式來確定:H_nonce(pk,q) < Dp,其中 H 是用作隨機(jī)數(shù)預(yù)言機(jī)的哈希函數(shù),pk 是驗(yàn)證者的公鑰, q 是給定的迭代時(shí)間,nonce 是哈希函數(shù)的熵來源。Nonce 由前一個(gè)區(qū)塊的提議者選擇。設(shè)置難度參數(shù) D_p 是為了在單個(gè)迭代時(shí)間內(nèi),委員會(huì)成員被選為提議者的概率為 w。
如果攻擊者提議了一個(gè)區(qū)塊,她可以操控為下一輪哈希函數(shù)生成熵的 nonce 值,從而影響下一個(gè)區(qū)塊的提議者的人選。然而,為了降低隨機(jī)數(shù)方案的可篡改性,在哈希函數(shù)中相同的 nonce值不僅僅用于選擇下一輪的提議者,也會(huì)用于選擇接下來 r 個(gè)輪次的提議者。這使得攻擊者在計(jì)算上很難通過強(qiáng)制改變 nonce 值來讓自己連續(xù)成為接下來 r 個(gè)輪次的提議者。雖然這種策略僅損失了多項(xiàng)式安全性,但它具有可預(yù)測(cè)性的弊端(后面也會(huì)討論到)。該方案僅能夠應(yīng)對(duì)慢速自適應(yīng)的攻擊者。
在上述算法中,當(dāng)重復(fù)使用相同的 nonce 值給哈希函數(shù)喂送種子時(shí),就會(huì)導(dǎo)致攻擊者能夠提前預(yù)測(cè)到誰是提議者。由于在一時(shí)期中相同的 nonce 值被重復(fù)用作熵,從而導(dǎo)致隨機(jī)種子在新一輪開始之前被泄露,使得攻擊者可以對(duì)提議者進(jìn)行腐化或者實(shí)施 DoS 攻擊。
Casper FFG
Casper FFG 計(jì)劃使用的隨機(jī)數(shù)方案是基于以下算法:
一個(gè)時(shí)期開始時(shí),每個(gè)驗(yàn)證者承諾 H (H (H (..Sv )))),其中 S 是驗(yàn)證者承諾的種子。 R 賦值為 R 與哈希函數(shù)內(nèi)原象的異或運(yùn)算(R := R⊕ Pre-image of the inner layer of hash)。在一輪中,驗(yàn)證者可以創(chuàng)建或中止一個(gè)區(qū)塊。
如果在回退機(jī)制中沒有生成隨機(jī)數(shù),這可能會(huì)造成比可預(yù)測(cè)或可操縱的隨機(jī)數(shù)更大的問題,因?yàn)槟銓⒉辉傩枰?1/3 的惡意者來中止協(xié)議,1個(gè)人就足夠了。
作為當(dāng)前提議者的驗(yàn)證者是知道下一輪的隨機(jī)種子的。
隨機(jī)數(shù)是密碼學(xué)和區(qū)塊鏈的重要部分。不良的隨機(jī)數(shù)方案會(huì)通過以下方式破壞區(qū)塊鏈的安全性:i)停止區(qū)塊鏈協(xié)議;ii)導(dǎo)致中心化。 因此,在理解區(qū)塊鏈的安全性時(shí),探究隨機(jī)性在該區(qū)塊鏈協(xié)議中的角色乃是重中之重!
“區(qū)塊鏈中的隨機(jī)數(shù)有什么作用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。