在本文中,我們將重點(diǎn)討論在不可信環(huán)境中使用集體隨機(jī)數(shù)生成方案的解決方案及其實(shí)際應(yīng)用。簡而言之,如何以及為什么在區(qū)塊鏈中使用隨機(jī)數(shù),以及如何區(qū)分“好的”和“壞的”隨機(jī)數(shù)。長期以來,密碼學(xué)家一直在研究生成一個(gè)真正的隨機(jī)數(shù),但即使在一臺(tái)單獨(dú)的計(jì)算機(jī)上也很難達(dá)實(shí)現(xiàn)它。更不用說分散式網(wǎng)絡(luò)了,其中隨機(jī)數(shù)的生成更加復(fù)雜。
在參與者之間互不信任的網(wǎng)絡(luò)中,產(chǎn)生無可爭辯的隨機(jī)數(shù)的可能性允許有效地解決許多重要問題并大大改進(jìn)現(xiàn)有的方案。此外,游戲、賭博和彩票根本就不是首要目標(biāo),對(duì)一個(gè)沒有經(jīng)驗(yàn)的讀者來說,這似乎是最重要的。
隨機(jī)數(shù)生成
計(jì)算機(jī)本身無法產(chǎn)生隨機(jī)數(shù),它們需要外部幫助。計(jì)算機(jī)可以從稱為熵源的不同來源接收一些隨機(jī)值:例如,鼠標(biāo)移動(dòng)、內(nèi)存使用量、處理器插腳上的寄生電流等等。這些值并不完全是隨機(jī)的,因?yàn)樗鼈兙哂幸欢ǖ姆秶蚩深A(yù)測(cè)的變化機(jī)制。為了將這些數(shù)字轉(zhuǎn)換為給定范圍內(nèi)的統(tǒng)計(jì)隨機(jī)數(shù)字,需要對(duì)它們進(jìn)行密碼轉(zhuǎn)換。因此,我們從熵源的非均勻分布值中得到均勻分布的偽隨機(jī)值。
得到的值之所以稱為偽隨機(jī)值,是因?yàn)樗鼈儾皇钦嬲碾S機(jī)值,而是由熵決定的。通過對(duì)數(shù)據(jù)進(jìn)行加密,任何好的加密算法都會(huì)生成統(tǒng)計(jì)上與隨機(jī)序列沒有區(qū)別的密文。因此,為了生成隨機(jī)數(shù)據(jù),您可以使用熵源來確保即使在很小的范圍內(nèi),值也具有良好的不可重復(fù)性和不可預(yù)測(cè)性,其余關(guān)于結(jié)果值中位的混淆和擴(kuò)散的工作將由加密算法處理。
在這個(gè)簡短的講解結(jié)束時(shí),我必須指出,即使在單獨(dú)的設(shè)備上生成隨機(jī)數(shù)也是數(shù)據(jù)安全支柱之一,因?yàn)樯傻膫坞S機(jī)數(shù)用于在各種網(wǎng)絡(luò)中建立安全連接、生成加密密鑰、負(fù)載平衡、完整性監(jiān)視以及許多其他方面。許多協(xié)議的安全性依賴于生成可靠的、外部不可預(yù)測(cè)的隨機(jī)數(shù)的能力,并保存它,直到下一個(gè)協(xié)議步驟才公開它,否則安全性將受到危害。對(duì)偽隨機(jī)生成數(shù)的攻擊是極其危險(xiǎn)的,并且威脅到大多數(shù)現(xiàn)代密碼軟件。
如果你上過密碼學(xué)的基礎(chǔ)課程,你一定知道這一點(diǎn),所以讓我們繼續(xù)討論分散式網(wǎng)絡(luò)中的隨機(jī)數(shù)。
區(qū)塊鏈中的隨機(jī)性
首先,我將討論支持智能合約的區(qū)塊鏈,因?yàn)樗鼈兛梢猿浞质芤嬗诟哔|(zhì)量、無可爭議的隨機(jī)性。這些算法稱為“公開可驗(yàn)證的隨機(jī)信標(biāo)(Publicly Verifiable Random Beacons)”,為了簡單起見,我將進(jìn)一步將它們稱為PVRB。由于區(qū)塊鏈?zhǔn)侨魏螀⑴c者都可以檢查數(shù)據(jù)的網(wǎng)絡(luò),因此名稱的關(guān)鍵部分是“公開可驗(yàn)證的”,即通過計(jì)算任何人都可以獲得證據(jù),證明區(qū)塊鏈中產(chǎn)生的隨機(jī)數(shù)具有以下性質(zhì):
· 結(jié)果應(yīng)該從一個(gè)可證明的均勻分布值中得出,即基于眾所周知的強(qiáng)密碼。
· 結(jié)果被控制是不可能的。因此,結(jié)果不能預(yù)測(cè)。
· 由于未參與協(xié)議或者網(wǎng)絡(luò)中的攻擊消息過多,很難破壞生成協(xié)議。
· 所有這些都應(yīng)該能夠抵抗一定數(shù)量的不誠實(shí)協(xié)議參與者的串通,例如1/3的參與者。
任何一群不誠實(shí)的參與者合謀提供受控的偶數(shù)/奇數(shù)隨機(jī)數(shù)的機(jī)會(huì)都是安全漏洞。這種停止隨機(jī)數(shù)生成的任何可能性都是一個(gè)安全缺陷。嗯,在這個(gè)領(lǐng)域還需要面對(duì)許多重要的問題,到目前為止,這只是一個(gè)簡單的任務(wù)…
PVRB最重要的應(yīng)用似乎是游戲、彩票和***。的確,這是一個(gè)重要的領(lǐng)域,但區(qū)塊鏈隨機(jī)數(shù)可以用于其他更重要的領(lǐng)域。我們來看看。
共識(shí)算法
PVRB在網(wǎng)絡(luò)共識(shí)組織中起著重要的作用。區(qū)塊鏈中的交易受發(fā)送方簽名的保護(hù),“攻擊交易”的唯一方法是在不同時(shí)刻將其包含或排除在塊(或多個(gè)塊)之外。因此,共識(shí)性算法的主要功能是建立交易的順序和包含交易的塊。此外,區(qū)塊鏈在現(xiàn)實(shí)中的一個(gè)基本特性是終結(jié)性。通常,為了確認(rèn)一個(gè)塊是有效的,最重要的是,也是最終的是需要收集大多數(shù)塊生產(chǎn)者(以下簡稱BPs)的簽名,這些簽名至少涉及到向所有BPs交付一個(gè)區(qū)塊鏈,并在所有BPs之間分發(fā)簽名。隨著BPs數(shù)量的增加,所需的網(wǎng)絡(luò)消息量呈指數(shù)級(jí)增長; 因此, 需要最終結(jié)果的協(xié)商共識(shí)算法 (如超分類帳中使用的算法) 在幾十個(gè) BpS 的參與下已經(jīng)不起作用, 因?yàn)樾枰罅康慕换ァ?/p>
如果網(wǎng)絡(luò)有一個(gè)不可否認(rèn)的公平的PVRB,那么您可以選擇一個(gè)BPs,并指定他為一個(gè)協(xié)議輪的“領(lǐng)導(dǎo)者”。如果我們有N個(gè)基點(diǎn),M: M 》 1/2 N是誠實(shí)的: 那么使用共識(shí)的 PVRB 將允許您選擇一個(gè)誠實(shí)的領(lǐng)導(dǎo)者。如果給每個(gè)領(lǐng)導(dǎo)分配一個(gè)時(shí)間段, 在這個(gè)插槽中, 他可以生成一個(gè)塊并驗(yàn)證一個(gè)鏈, 并且這些插槽是相等的, 那么誠實(shí) Bps的區(qū)塊鏈將比惡意 Bps 形成的鏈長, 而依賴鏈長度的共識(shí)算法將更長。Graphene (EOS的前身)首次采用了為每個(gè)Bps分配相同時(shí)間間隔的原則,允許用單個(gè)簽名批準(zhǔn)大多數(shù)塊,這大大降低了網(wǎng)絡(luò)負(fù)載,并確保了高共識(shí)速度和穩(wěn)定性。然而,在EOS中,需要使用特殊的塊(最后一個(gè)不可逆塊),它由BPs簽名的2/3 + 1來確定。這些塊用于確保最終結(jié)果(鏈叉不可能在最后一個(gè)不可逆塊之前開始)。
此外,在實(shí)際用例中,協(xié)議方案更為復(fù)雜——對(duì)提議的塊進(jìn)行投票涉及多個(gè)階段,以便在丟失塊和網(wǎng)絡(luò)問題時(shí)支持網(wǎng)絡(luò);但是,即使考慮到這一點(diǎn),使用PVRB的共識(shí)算法需要的BPs消息明顯更少,這使得它們比傳統(tǒng)的PBFT修改更快。
這類算法中最突出的例子是Cardano團(tuán)隊(duì)開發(fā)的Ouroboros算法,該算法被宣布在數(shù)學(xué)上對(duì)BPs合謀具有可證明的抵抗能力。
在Ouroboros中,PVRB用于定義所謂的“BPs計(jì)劃”,根據(jù)該計(jì)劃,每個(gè)BPs都被分配了一個(gè)用于塊發(fā)布的時(shí)間間隔。PVRB的最大優(yōu)勢(shì)是BPs“相等”(根據(jù)它們的平衡大?。VRB的公平性保證了惡意的BPs無法控制時(shí)隙的調(diào)度,因此無法操縱鏈。要選擇叉,只需要依靠鏈長就足夠了,而不需要對(duì)其塊的BPs“效用”或“重量”進(jìn)行復(fù)雜的計(jì)算。
一般來說,如果需要在分散式網(wǎng)絡(luò)中隨機(jī)選擇參與者,PVRB通常比基于塊哈希值的確定性變體要好。在沒有PVRB的情況下,影響參與者選擇的能力會(huì)導(dǎo)致攻擊,當(dāng)從幾個(gè)可用選項(xiàng)中選擇下一個(gè)腐敗參與者時(shí),攻擊者會(huì)立即選擇其中的一些,以確保在決策過程中獲得更大的利益。而PVRB不相信這些類型的攻擊。
擴(kuò)展與負(fù)載平衡
PVRB可以在減少負(fù)載和擴(kuò)展支付方面提供幫助。首先,我建議閱讀Rivest的文章“用電子彩票用作小額支付”。在Emercoin網(wǎng)絡(luò)中,可以很好地描述基于該方案的協(xié)議。
該方案有幾個(gè)問題(例如,收件人可能在收到中獎(jiǎng)彩票后立即停止為買方服務(wù)),但在特殊應(yīng)用中可以忽略這些問題,如每分鐘收費(fèi)或服務(wù)的電子訂閱。然而,彩票的公平性仍然是主要的要求,而PVRB是實(shí)現(xiàn)這一要求的關(guān)鍵。
選擇一個(gè)隨機(jī)參與者對(duì)于分片協(xié)議也非常重要,分片協(xié)議的目標(biāo)是水平擴(kuò)展區(qū)塊鏈,允許不同的BPs只處理它們自己的交易范圍。這是一項(xiàng)極其繁瑣的任務(wù),尤其是在分片組合安全性方面。這和在共識(shí)算法中一樣,選擇一個(gè)隨機(jī)的BPs來指派他負(fù)責(zé)一個(gè)特定的分片也是PVRB任務(wù)。在集中式系統(tǒng)中,分片由平衡器分配:它只計(jì)算請(qǐng)求的哈希值并將其發(fā)送給必要的執(zhí)行器。在區(qū)塊鏈中,影響這一分配的能力可能導(dǎo)致共識(shí)攻擊。例如,攻擊者可以控制交易的內(nèi)容,監(jiān)視哪些交易屬于分片。
分片是區(qū)塊鏈中最具挑戰(zhàn)性和最嚴(yán)肅的任務(wù)之一;它的解決方案將允許建立具有出色性能和容量的分散式網(wǎng)絡(luò)。PVRB只是解決這一問題的重要模塊之一。
游戲,經(jīng)濟(jì)協(xié)議,仲裁
怎樣高估隨機(jī)數(shù)在游戲行業(yè)中的作用都不為過。它們被顯式地用于在線賭場(chǎng),也被隱式地用于計(jì)算玩家行為中。對(duì)于分散式網(wǎng)絡(luò)來說,這些問題非常復(fù)雜,因?yàn)樗鼈儾荒芤蕾囉陔S機(jī)數(shù)的中心來源。然而,隨機(jī)選擇可以解決許多經(jīng)濟(jì)問題,并幫助構(gòu)建更簡單、更有效的協(xié)議。假設(shè)我們的協(xié)議中存在一些關(guān)于低成本服務(wù)支付的爭議,并且這些爭議很少發(fā)生。在這種情況下,如果存在不可否認(rèn)的PVRB,客戶和銷售者可以就隨機(jī)解決爭端達(dá)成一致,但具有給定的概率。例如,客戶以60%的概率贏,賣家以40%的概率贏。乍一看,這種荒謬的方法允許自動(dòng)解決爭端,并在不需要第三方參與和浪費(fèi)時(shí)間的情況下,以完全可預(yù)測(cè)的贏/輸份額來解決爭端。此外,概率比可以是動(dòng)態(tài)的,并依賴于一些全局變量。
大量有趣的分散協(xié)議,如代幣管理的注冊(cè)中心、預(yù)測(cè)市場(chǎng)、鍵合曲線,以及許多其他協(xié)議,都存在經(jīng)濟(jì)博弈。它們往往存在安全漏洞,而且防御方法是相互矛盾的。用數(shù)十億代幣(“大賭注”)保護(hù)自己不受“鯨魚”攻擊的東西,可能很容易受到余額較小的數(shù)千個(gè)賬戶的攻擊。針對(duì)單一攻擊所采取的措施,例如為使一塊大牛排不盈利而創(chuàng)建的非線性傭金,通常會(huì)因另一次攻擊而失去信譽(yù)。由于這是一個(gè)經(jīng)濟(jì)博弈,可以事先計(jì)算出相應(yīng)的統(tǒng)計(jì)權(quán)重,可以簡單地用具有適當(dāng)分布的隨機(jī)傭金代替常規(guī)傭金。這種概率的實(shí)現(xiàn)非常簡單:區(qū)塊鏈有可靠的隨機(jī)生成源,并且沒有復(fù)雜的計(jì)算即可。
與此同時(shí),請(qǐng)記住,對(duì)單個(gè)隨機(jī)位的控制允許降低或增加概率率。因此,公平的PVRB是這些協(xié)議中最重要的組成部分。
哪里可以找到公平的隨機(jī)性?
從理論上講,分散式網(wǎng)絡(luò)中的公平隨機(jī)性允許任何協(xié)議都具有可證明的抗碰撞安全性。理由很簡單——如果網(wǎng)絡(luò)同意生成0或1位,并且少于一半的參與者不誠實(shí),那么,如果有足夠的迭代次數(shù),網(wǎng)絡(luò)就可以保證以固定的概率就這個(gè)“位”達(dá)成一致。這是因?yàn)楣诫S機(jī)機(jī)制在51%的情況下從100個(gè)參與者中選擇了51個(gè)。但這只是一種理論上的方法,因?yàn)樵谡嬲膮^(qū)塊鏈中確保這種級(jí)別的安全性需要主機(jī)之間的大量消息和具有多種交互的復(fù)雜密碼術(shù)。在實(shí)際網(wǎng)絡(luò)中,任何協(xié)議增強(qiáng)都會(huì)立即增加潛在的攻擊向量,因此,實(shí)際的實(shí)現(xiàn)需要更多的協(xié)議增強(qiáng)來保證真實(shí)世界中的安全性。
這就是為什么在區(qū)塊鏈中仍然沒有足夠穩(wěn)定的PVRB用于實(shí)際測(cè)試、多次審計(jì)、負(fù)載測(cè)試和真正的攻擊,沒有這些測(cè)試,就很難稱一個(gè)產(chǎn)品是真正安全的。
盡管如此,一些有希望的方法在許多細(xì)節(jié)上存在差異,我們相信其中之一將解決實(shí)際問題。利用現(xiàn)代計(jì)算資源和將理論轉(zhuǎn)化為實(shí)際的用例。將來,我們會(huì)很高興地向您介紹PVRB實(shí)現(xiàn):現(xiàn)在有幾個(gè)實(shí)現(xiàn),每個(gè)實(shí)現(xiàn)都有自己的一組重要屬性、實(shí)現(xiàn)特性和一個(gè)好主意。由于研究隨機(jī)數(shù)的團(tuán)隊(duì)很少,所以每項(xiàng)研究都非常重要。我們希望我們的信息能讓其他團(tuán)隊(duì)在借鑒前輩經(jīng)驗(yàn)的基礎(chǔ)上更快地行動(dòng)。
評(píng)論
查看更多