我可以将 Chainlink 的 500 个随机数安全地存储在一个私有数组中,然后锁定它们的获取能力,而不是为每个数字付费吗?

问题描述 投票:0回答:2

更准确地说: 如果我有 Chainlink VRF 在单个查询中给我 500 个随机数(单词),那么我将它们全部存储在 uint256 的私有数组中,然后有一个 onlyOwner getter 函数,该函数本质上在数组上有一个时间掩码,直到某个块例如,数字已经过去(防止在时间到来之前达到即将到来的数字的峰值)。这可能吗?是否存在某种泄漏,导致这种方法无法成为抵消 Chainlink VRF 成本的可行方法?

我什么也没尝试。

random numbers chainlink
2个回答
0
投票

澄清一下,

private
可见性有助于保护函数和变量免受区块链内不需要的访问。它确实使它们完全隐藏在区块链上。

带有随机数的合约调用数据也将可见。

TLDR; 您应该使用将它们返回到您的合约的同一块中的值。


0
投票

为了详细说明理查德的答案,存储在区块链上的任何数据在技术上都是不安全的,并且可供公众使用。

如果您存储的数字包含某种经济激励(即,为正确的猜测支付奖金的彩票系统),那么区块链并不是缓存它们的好地方,因为您正在向严重的问题敞开大门。攻击向量。

我很好奇你们在 VRF 上的每个请求的成本是多少,在什么链上?这些数字生成的随机性是否可以“公开验证”,或者任何真正的随机数都可以吗?如果没有,我想知道通过 Chainlink 预言机的传统请求模型是否能够稍微降低您的成本。

© www.soinside.com 2019 - 2024. All rights reserved.