術語“隨機性”是指缺乏模式或可預測性。拋硬幣的結果、指紋的圖案和雪花的形狀都被認為是不可預測的。雖然不可預測的結果在本質上是豐富的,但對於計算機產生的隨機性卻不能這麼說。由於計算機是確定性設備,純粹通過一組計算機算法可能無法生成真正的隨機數。
此外,雖然個別隨機事件被認為是不可預測的,但重複事件的不同結果的頻率是可以預測的。例如,雖然任何單個擲骰子的結果都是不可預測的,但超過100 次擲骰子的結果的概率可以很確定地計算出來。
隨著互聯網上越來越多地發生經濟、社會和文化互動,過去幾十年來,人們越來越需要模仿自然世界的不可預測性並創建包含不可預測結果的數字系統。這種不可預測性的用例包括引入人為稀缺性、建立更強大的安全機制以及促進可信的中立決策過程。
在本文中,我們將分解什麼是隨機性,了解隨機性的類型,並探討隨機性在涉及 區塊鏈 和Web3 生態系統。
隨機性真的是隨機的嗎?
首先,我們需要定義一組使序列隨機化的原則。如果要確定一個序列是隨機的,它必須具備以下品質:
- 不可預料的——結果一定是提前不可知的。
- 不偏不倚——每一個結果都必須是同樣可能的。
- 可證明的——結果必須是可獨立驗證的。
- 防篡改——產生隨機性的過程必須能夠抵抗任何實體的操縱。
- 不可重現——除非保留原始序列,否則無法再現產生隨機性的過程。
計算機是一種可預測的設備,具有預設的電路、組件以及一組定義的代碼和算法,使得在固定條件下預測計算機生成的隨機數輸出或序列成為可能。正如一個正常工作的計算器應該總是產生2+2 的輸出為4,計算機應該總是在給定相同輸入的情況下產生一個給定的輸出。因此,計算機可能無法生成條件條件和真正的隨機數。
為了規避這一限制,隨機數生成器(RNG) 使用種子——用於生成輸出的計算的起始值(輸入)。種子可以根據任何復雜的複制來生成——從照片中捕獲的數據、一天中的時間、用戶的鼠標移動或 熔岩燈.
然而,即使隨機數生成過程很難重現,但這並不意味著重現它在技術上是不可能的。如果將多種難以重複的種子生成方法結合起來,則可以認為結果相對可靠,即使可以合理地假設這些種子最終可能會隨著時間的推移而被發現。但是如果在生成不同的種子時使用相同的數學方法,結果就不會是真正隨機的。那麼問題就變成了:什麼樣的隨機性可以被認為是真正的隨機性?
偽隨機RNG 與真RNG
一般來說,我們可以將隨機數生成器分為兩類:偽隨機數生成器(PRNGs)和真隨機數生成器(TRNGs)。 PRNG 使用數學算法作為生成隨機值的手段,而TRNG 使用諸如大氣噪聲之類的物理手段。
PRNG 是一組算法,它使用數學公式生成模擬真實隨機數的隨機序列。由於計算機是不同的系統,因此這些數字對人類觀察者來說可能是隨機的,但它們可能包含可通過廣泛的統計分析揭示的可識別模式。
TRNG 利用不可預測的物理源(例如宇宙噪聲、同位素的放射性衰變或電波中的靜電)根據自然發生的現像生成隨機數。由於TRNG 從物理現像中“提取”隨機性,它們被認為比計算機產生更強(更不可預測)的隨機性。即便如此,TRNG 使用的信息也可能是確定性的。如果有人將自己插入TRNG 和它正在掃描的現象之間,他們可以接收到相同的信號並確切地知道數字序列是什麼。
雖然TRNG 可以生成隨機序列,這些序列被揭示包含可識別模式的可能性較低,但它們比PRNG 成本更高,因此對於常見用例來說不切實際。與TRNG 相比,PRNG 還具有另一個關鍵優勢——可重複性。如果觀察者知道序列的起點,他們可以重現相同的數字序列,從而使隨機數生成過程的驗證成為可能——這對許多人來說是一個有用的方面 Web3 包含隨機性的應用程序。
為什麼隨機性對區塊鏈很重要
安全隨機性是區塊鏈中使用的密碼學的基礎。作為為加密貨幣錢包生成私鑰的重要組成部分,加密哈希函數確保很難猜測特定錢包的私鑰是什麼。根據一些估計,SHA-256(比特幣協議中使用的哈希函數)中可能的私鑰組合的數量接近於可觀測宇宙中估計的原子數量。
分佈式共識從根本上受限於在一段時間內可以發送的消息數量(吞吐量)和通過網絡發送消息所需的時間(延遲)。在一個有數千個分佈式參與者需要達成協議的公共區塊鏈中,每個節點都需要向所有其他節點發送消息是不切實際的。為了限制為達成共識而需要發送的消息數量,比特幣使用工作量證明(PoW) 作為隨機性來源,以確定將哪個塊添加到區塊鏈中。由於計算謎題礦工競相完成成功添加區塊到區塊鏈的難度很大,多個節點同時解決謎題的概率很低,限制了網絡達成共識所需的消息數量.
隨機性也常用於權益證明(PoS) 系統中,以支持驗證者責任的公平和不可預測的分配。如果惡意行為者可以影響選擇過程中使用的隨機源,他們可以增加被選中的機會並危及網絡的安全性。
由於區塊鏈的透明性,所有輸入和輸出都暴露給系統參與者,可能使隨機生成的序列可預測。例如,一些用於鏈上隨機數生成的方法,例如塊散列,包含容易被利用的安全漏洞。如果礦工/驗證者對由隨機值或序列決定的特定結果感興趣,則塊生產者可以通過不發布會使其處於劣勢的塊來影響隨機序列的生成,本質上是重新擲骰子,直到獲得有利的結果他們出現。
另一方面,鏈下RNG 解決方案是不透明的,要求用戶相信中心化的數據提供者不會為了他們的利益而操縱結果,用戶無法區分真實隨機性或被操縱的隨機性。隨著RNG 解決方案所保護的價值數量的增加,這兩種解決方案都變得越來越令人擔憂。
Web3 中的隨機性
當人們想到區塊鏈遊戲時, NFT 項目或數字藝術,他們可能沒有考慮到隨機性在確定結果時的重要性。是否確定遊戲內資產的位置 元節、向生成藝術算法添加變體、生成戰利品盒的內容、鑄造NFT、向獲勝者分發獎品、驗證活動門票或定期確定選擇哪個DAO 參與者擔任特定治理角色,Web3 應用程序需要安全的來源隨機性以創造公平和不可預測的結果。
由於這些系統可以積累大量現實世界的價值,次優隨機性解決方案的可利用結果可能導致信息不對稱和部分參與者的不公平優勢。這些情景通常會產生負反饋循環,導致互動中的權力失衡,並導致旨在促進經濟活動和社會協調的經濟和博弈論機製完全失敗。
訪問一個不可篡改、不可預測且可供所有參與者審計的隨機源並非易事。然而,Web3 行業對公平和透明的渴望已經解鎖了許多與Web2 同行相比脫穎而出的應用程序和協議。以可驗證的安全方式訪問公平和無偏見的隨機源的能力在區塊鏈遊戲、NFT、 去中心化治理、Web3 社交媒體、籌款和慈善、社交代幣等。
Chainlink VRF
Chainlink 可驗證隨機函數(VRF) 是行業標準的RNG 解決方案, 使智能合約和鏈下系統能夠訪問可驗證隨機性的來源 使用鏈下計算和密碼學. VRF 將發出請求時仍未知的塊數據與預言機節點預先提交的私鑰結合起來,生成隨機數和加密證明。消費應用程序只有在具有有效密碼證明的情況下才會接受隨機數輸入,並且只有在VRF 過程是防篡改的情況下才能生成密碼證明。
自推出以來,Chainlink VRF 已完成超過 6.5 百萬個請求公平和無偏的隨機數,目前提供可驗證的隨機性超過 3,400 獨特的 智能合約 跨多個區塊鍊網絡,包括Avalanche、BNB Chain、以太坊和Polygon。
Chainlink VRF 提供了許多使其成為行業標準的關鍵功能,例如:
- 不可預料的— 沒有人可以預測Chainlink VRF 產生的隨機性,因為在隨機性請求時區塊數據是未知的。
- 公平/公正— 生成的隨機數是基於均勻分佈的,這意味著該範圍內的所有數字都有相同的機會被選中。
- 可驗證— 用戶可以通過加密證明的鏈上驗證,依靠來自Chainlink VRF 的隨機輸入來驗證應用程序的完整性。
- 防篡改——任何人——無論是預言機、外部實體還是開發團隊——都不能篡改隨機數生成過程。如果VRF 過程被篡改,節點無法生成有效的密碼證明,智能合約將不接受隨機數輸入。
- 透明的—由於代碼是開源的,用戶可以驗證採購隨機性的過程。
借助這些無與倫比的功能,大量內置的安全技術,以及 持續改進 根據用戶反饋,由Chainlink VRF 提供支持的應用程序可以通過防篡改的RNG 產生可證明公平、不可預測的結果,並解鎖有意義且令人興奮的功能和體驗。
如果您是開發人員並希望快速將您的應用程序連接到 Chainlink VRF訪問 開發者文檔 並參加技術討論 不和諧. 如果您想安排電話以更深入地討論集成,請聯繫 這裡.