以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > USDC > Info

如何使用Chainlink VRF在Solidity中生成隨機數?_LINK

Author:

Time:1900/1/1 0:00:00

Solidity中無法原生地完成隨機數生成。要在區塊鏈上生成一個真正可驗證的隨機數,智能合約必須將種子發送到像預言機這樣的鏈外資源,而預言機必須將隨機數連同可驗證的證明一起返回給智能合約,證明隨機數是使用種子生成的。隨著ChainlinkVRF現已在Ethereum主網上線,開發者可以在Solidity中以安全可靠、可驗證的方式輕松生成隨機數。在這篇技術文章中,我們將向您展示如何使用ChainlinkVRF在Solidity中生成隨機數。在您的智能合約中生成安全隨機數的例子可以在Chainlink文檔中找到。這里有一個Remix上在Kovan測試網生成區塊鏈隨機數的例子,供現在想測試的人使用。只要記得按照請求和接收方法,用LINK轉賬到你的智能合約就可以了。ChainlinkVRF的高級概述

李禮輝:如何進行必要的數字金融制度建設等問題值得關注:12月31日,由清華大學經濟管理學院數字金融資產研究中心主辦的“數字金融:創新、發展與監管”高端研討會中,中國銀行原行長李禮輝表示,如何能滿足適用于我國規模化可靠應用的需求、如何進行必要的數字金融制度的建設、負責數字人民幣技術架構的研發、維護、運行等方面工作的機構體制如何設立及如何探索我國主導的全球化數字貨幣的可行路徑是值得關注的重要問題。[2021/1/4 16:22:26]

ChainlinkVRF是一個為智能合約設計的公平的可驗證的隨機性來源。Solidity開發人員可以使用它作為防篡改的隨機數生成器,為依賴不可預測結果的Ethereum應用構建安全可靠的智能合約。在Solidity中使用ChainlinkVRF生成隨機數的第一步是確定一個種子。選擇一個難以被影響或預測的種子極為重要。如果有人能夠影響或預測種子,理論上他們可以嘗試與執行隨機性請求的預言機節點串通,產生一個對自己有利的結果。正因為如此,建議不要使用來自區塊鏈狀態的值,如區塊高度或區塊時間戳。然后,這個種子會以請求的方式發送到Chainlink預言機。然后,預言機會用給定的種子生成一個偽隨機數,并將結果返回給智能合約,一同返回的還有一個加密證明,用來驗證隨機數是使用種子生成的。這種加密證明是通過公鑰加密技術創建的,這是區塊鏈技術中廣泛使用的技術。重要的是,結果可以被驗證,避免礦工或預言機等參與者為了自己的利益而影響隨機數的結果。這是對ChainlinkVRF工作方式的高級概述。關于底層技術實現的更多細節可以在我們對ChainlinkVRF的介紹中找到。然而,作為開發者,除了獲取種子,然后向Chainlink預言機創建一個請求之外,你不需要擔心任何事情。創建消費者合約如何在Solidity智能合約中獲得一個隨機數,我們應該首先從ChainlinkVRFConsumerBase合約中繼承。消費者合約還應該包含存儲隨機數結果的變量,用于生成隨機性的公鑰哈希,以及為完成請求而付給預言機的費用。

維珍銀河董事長:PayPal消息傳出后各大銀行討論如何支持比特幣:維珍銀河董事長Chamath Palihapitiya今晨發推表示,PayPal消息傳出后,各大銀行都在開會討論如何支持比特幣。它不再僅作為一個選項。[2020/10/22]

接下來,在構造函數中,我們應該初始化ChainlinkVRF協調器。調用VRFConsumerBase函數,傳入VRF協調器的地址和給定環境的Chainlinktoken的地址作為參數。還需要設置keyHash變量,這是生成隨機性的公鑰。這些的環境特定值可以在ChainlinkVRF文檔的合約地址部分獲得。最后,我們需要設置LINKtoken的支付金額。對于Kovan測試環境,它是0.1個LINK。

幣情觀察室 | 我是如何在18年4月帶群友賺到上千萬:4月15日19:00,行情大V 貝吉塔做客《幣情觀察室》直播間,將分享《我是如何在18年4月帶群友賺到上千萬》敬請關注,欲觀看直播掃描下圖二維碼即可![2020/4/15]

接下來,我們重寫合同中的兩個函數`getRandomNumber`和`fulfillRandomness`。`getRandomNumber`函數應該把種子作為輸入參數,并且調用VRFConsumerBase中的`requestRandomness`函數,傳遞keyHash,費用金額和給定的種子作為參數。

動態 | 芬蘭海關對如何處理繳獲的比特幣感到困惑:金色財經報道,芬蘭財政部下屬的海關一直在考慮如何處理幾年前從販手中繳獲的1666枚比特幣。據悉,芬蘭海關不想拍賣沒收的比特幣,因為可能會將其返還給犯罪分子。這些比特幣在沒收的時候價值不到70萬歐元(約合76萬美元)。根據Coin360的數據,截至目前,這1666枚比特幣的價值接近1500萬歐元(超過1550萬美元)。據報道,該機構最初計劃在2018年拍賣這些資金,但最終以“反洗錢”為由凍結了這些比特幣。報告指出,除了持有超過1500萬美元的比特幣外,芬蘭海關還持有一些價值數百萬歐元的山寨幣。[2020/2/26]

執行時,這個函數將請求發送到給定的VRF協調器合約,然后建立一個最終種子,并將其發送到該VRF協調器的Chainlink預言機。最后的種子是用以下值的哈希值建立起來的。-用戶提供的種子-滿足請求的Chainlink預言機的公鑰哈希值-請求時的用戶nonce-提出請求的合約地址-當前區塊號使用這些額外的值的原因是為了防止合約使用相同的種子不止一次地得到相同的結果。nonce有助于防止合約在同一區塊內做多個請求,所以理論上,合約可以在同一區塊內使用相同的種子為請求多個隨機數,而且他們仍然會為每個請求得到唯一的可驗證的隨機數。`fulfillRandomness`函數接受隨機數響應參數為一個無符號整數,以及請求的ID,然后將給定的隨機數存儲在合約中。當VRFCoordinator合約接收并驗證一個隨機數時,這個函數會被調用。關于這兩個函數的更多信息可以在ChainlinkVRF文檔中找到。

動態 | 歐盟議會報告揭示銀行如何打敗比特幣:7月24日消息,歐洲議會政策部發布的一份報告中解釋了央行發行的加密貨幣如何勝過比特幣。ECON委員會在報告中稱,中央銀行發行的數字貨幣將對當前的加密貨幣市場產生重大影響,并將私人發行的數字貨幣(如比特幣)與中央銀行發行的數字貨幣區分開,將它們相互對立。報告還指出:中央銀行和商業銀行基本上可以通過阻止用戶訪問交易所或錢包或通過拒絕服務,來對比特幣7708.68以及其他加密貨幣進行定價。[2018/7/24]

現在,我們在Solidity中擁有了一個完整且可行的隨機數生成示例,現在可以部署和測試該合約了。測試隨機數生成消費者合約以上完整的合約可以很方便地在Remix中打開、編譯,并部署在Kovan網絡上。部署好后,一定要給合約轉入一些LINK。一旦合約至少有0.1個LINK的資金,我們就可以調用`getRandomNumber`函數,傳入一個數字作為種子。這將把請求和種子一起發送給運行在Chainlinkoracle上的VRF協調器。

事務被處理后,需要等待幾秒鐘,讓Chainlink預言機完成對隨機數的請求,然后調用我們之前創建的'fulfillRandomness'函數,將隨機數返回給我們的消費者合約。然后我們可以調用`randomResult`getter函數來查看Chainlinkoracle用給定種子生成的可驗證隨機數的結果。現在我們有了一個可驗證的隨機數,它可以在我們的消費者合約和任何其他應用中使用。

驗證隨機性

現在,我們有一個隨機數返回到我們的合約,你可能會想知道,我們如何確定它是由執行請求的Chainlinkoracle的給定種子和公鑰哈希生成的。當使用ChainlinkVRF時,答案是你不需要這樣做。驗證作為`VRFCoordinator`合約完成請求的一部分,會自動進行。如果驗證失敗,那么隨機數就不會返回到消費合約,交易也會被還原。因此,使用ChainlinkVRF的區塊鏈開發者可以放心,他們通過ChainlinkVRF獲得的隨機數是可驗證的隨機數。關于驗證的底層技術細節,可以參考我們對ChainlinkVRF的技術演練。總結

ChainlinkVRF幫助Solidity開發者以安全、可靠和經過驗證的方式在智能合約中快速、輕松地生成隨機數。

Tags:LINKINKCHANLINKBaby LinkGWINK幣BlockChain Search Artifactstronlink錢包哪個國家的

USDC
這個世界正在不斷向開發者示好?_區塊鏈

昨晚參與了Dfinity的大會,雖然令人期待的主網上線發幣依舊沒來,但是在為時兩個小時的內容分享中,讓很多人進一步開始了解Dfinity的設計理念.

1900/1/1 0:00:00
行情分析:大盤頂部下跌,行情結束了?_BTC

本文來自:哈希派,作者:哈希派分析團隊,星球日報經授權轉發。金色財經合約行情分析丨市場活躍度降低 BTC維持在9000美元上方震蕩:據火幣BTC永續合約行情顯示,截至今日18:00(GMT+8).

1900/1/1 0:00:00
比特幣已成主流投資機構標配,行情向好但需警惕回調風險_比特幣

比特幣今日中午再次突破24000美元,隨后慢慢回落。隨著比特幣行情不斷突破歷史最高點和山寨幣的流動性增強,業界普遍認為加密貨幣的牛市已經開始.

1900/1/1 0:00:00
比特幣「長牛」是散戶的悲歌_比特幣

比特幣繼12月16日突破2萬美元整數關口后,20日上攻至24188美元/枚,再次刷新歷史高點。暴漲之下,引起眾多主流媒體關注.

1900/1/1 0:00:00
SEC沒有告訴你的Ripple往事_ripple

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。即便提前對外公布自己收到了SEC起訴函,Ripple也沒能擋住恐慌的投資者砸盤離場.

1900/1/1 0:00:00
Glassnode:BTC存在嚴重的供給側危機?_比特幣

編者按:本文來自加密谷Live,作者:LieslEichholz,翻譯:Sherrie,Odaily星球日報經授權轉載。 BTC在今年最后一周持續增長,達到了超過2.8萬美元的新高.

1900/1/1 0:00:00
ads