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