加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > DOGE > Info

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

Author:

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

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

SBF:人們知道如何計算年收益,只是有時不理會:FTX首席執行官SBF今日發推稱:“嘿兄弟,我認為每個人都忘記如何計算年收益。對此,他在最新的推特中補充說明:可以明確地說,人們知道如何計算年收益,但他們只是有時候不理會。”[2020/9/18]

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

直播 |“后浪”仙女力場-大丹如何乘風破浪:金色財經 · 直播主辦的《 幣圈 “后浪” 仙女直播周》第7期20:00 力場|大丹將在直播間聊聊“幣圈‘后浪’仙女如何乘風破浪”,感興趣的朋友掃碼移步收聽![2020/7/6]

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

趙錫軍:央行數字貨幣重點在于如何與傳統貨幣進行融合:對于“數字貨幣研發重點和難點”的看法,中國人民大學財政金融學院副院長趙錫軍指出,其中涉及兩個問題。一是技術是否成熟。比特幣實際上就是數字貨幣最初的雛形,從技術層面來講,比特幣是有一些缺陷的,一旦支付量變大,就會出現支付困難或者效率下降。另外,比特幣出現過被盜等安全問題。而據央行貨幣研究所所長穆長春的一個內部研討會指出,央行數字貨幣,效率是非常高的,支付能力很強,說明已經克服技術方面的問題。二是數字貨幣被引入后,如何與傳統的貨幣和貨幣管理運行體系進行融合。數字貨幣的發行,是基于區塊鏈的基礎,它是有上限的,從目前來講它的發行規模取決于互聯網的算力。盡管穆長春所長也提到,央行數字貨幣現在可以突破區塊鏈的上限限制,但是破獲以后,它的發行究竟是怎么樣的,是否能夠跟我們目前的人民幣發行順利融合,這需要在制度層面有所安排。(澎湃新聞)[2020/4/22]

大咖零距離 | 交易心理重塑:如何在爆倉后調整交易心態:10月22日19:30,由金色盤面主辦、UP交易所獨家贊助的《大咖零距離》正式開播。屆時實盤大V鐵頭0707,將在《大咖零距離》直播間分享《交易心理重塑:如何在爆倉后調整交易心態》。敬請關注,欲進群觀看直播掃描海報二維碼報名即可![2019/10/22]

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

美國銀行分析師解釋比特幣如何像常規貨幣:據CCN報道,美國圣路易斯聯邦儲備銀行內容策略師Christine Smith認為,比特幣不像人們想象的那樣異乎尋常,比特幣的兩個用例是作為價值和貨幣存儲的,史密斯論證比特幣與普通貨幣沒有區別的三大理由:

1.比特幣和美元都沒有實物資產支持;

2.“稀缺”是美聯儲貨幣體系穩定戰略的核心,因為“為了保持其價值,貨幣必須供應有限”,而比特幣的數量也是有限的。

3.比特幣“純粹的電子現金對等版本可以讓在線支付從一方直接發送到另一方,而無需通過金融機構”,這與現金花費方式有相似性,即“不需要中間人處理交易”。[2018/5/1]

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

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

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

驗證隨機性

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

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

Tags:LINKINKChainHAIZenlinktronlink錢包安全嗎pccschainSTARCHAINDOGE

DOGE
觀點:我因何改變了對token的看法_比特幣:Uniswap

治理代幣”這個詞,真的)指的是會給其持有者分發項目的手續費分紅,同時使持有者在治理中獲得一定的投票權的代幣。以SUSHI為例,這是sushiswap交易所的原生token.

1900/1/1 0:00:00
明牌牛市:大佬定投比特幣成本公開,不過有一點風險需要注意_BTC:wbtc幣怎么挖

編者按:本文來自風火輪社區,作者:佩佩,Odaily星球日報經授權轉載。大家好,我是佩佩,這屆“狗莊”是真的很牛,不僅創造歷史并不斷在突破新高,而且直接籌碼成本都告訴你: 所以剛跌了兩天,你們就.

1900/1/1 0:00:00
哪些機構在灰度清倉了GBTC?_BTC:ARK

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。作為加密市場的風向標,灰度持倉變化已經成為幣圈每日必看數據,持倉的增加被看作多頭信號,被市場解讀為機構持續進場.

1900/1/1 0:00:00
DEX聚合交易龍頭1inch發幣,取代Uniswap勢在必得?_INC:dexe幣怎么樣

距美國證監會正式起訴全球市值第三大的加密貨幣瑞波總公司過去不到三天,山寨幣總市值已縮水近310億美元。今日,DEX聚合交易龍頭1inch宣布發行治理通證1INCH,并向用戶進行空投.

1900/1/1 0:00:00
站上2萬美金,比特幣為什么一年能漲3倍?_比特幣:BTC

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。2020年的最后一個月,一定會在加密貨幣的歷史復盤中被一遍又一遍被提及,全球加密貨幣總龍頭比特幣先是刷新了自己的歷史.

1900/1/1 0:00:00
馬耳他“區塊鏈島國”計劃因銀行拒絕合作而停滯不前_區塊鏈:CAR

編者按:本文來自Cointelegraph中文,作者:SAMUELHAIG,Odaily星球日報經授權轉載.

1900/1/1 0:00:00
ads