首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Chainlink VRF中使用哪个块作为种子?

在Chainlink VRF中使用哪个块作为种子?
EN

Ethereum用户
提问于 2022-09-16 03:47:48
回答 1查看 80关注 0票数 0

Chainlink VRF是一种使用VRF(可验证随机函数)来生成链上可验证的随机性的服务,智能契约提供了一个种子(对于提供种子的先知来说这应该是不可预测的),然后种子被用来生成一个随机数,该随机数被送回合同。

我读了一些文件和一些代码,函数RequestRandomWords在智能合同VRFCoordinator中预置到事件日志。然后,Oracle节点以预设的种子和块哈希作为输入,为VRF生成一个种子。最后,VRF利用种子及其私钥产生可验证的随机性。

我的问题是:

哪个块在VRF中被用来生成种子?它看起来像是VRF请求所在块之后的下一个块,但我没有看到文档中的详细信息。

提前谢谢。

EN

回答 1

Ethereum用户

发布于 2023-02-10 07:11:07

在其源代码中,请参见VRFCoordinatorV2#getRandomnessFromProof:

代码语言:javascript
复制
bytes32 blockHash = blockhash(rc.blockNum);
if (blockHash == bytes32(0)) {
  blockHash = BLOCKHASH_STORE.getBlockhash(rc.blockNum);
  if (blockHash == bytes32(0)) {
    revert BlockhashNotInStore(rc.blockNum);
  }
}

使用包含请求的块的散列。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/135713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档