更准确地说: 如果我有 Chainlink VRF 在单个查询中给我 500 个随机数(单词),那么我将它们全部存储在 uint256 的私有数组中,然后有一个 onlyOwner getter 函数,该函数本质上在数组上有一个时间掩码,直到某个块例如,数字已经过去(防止在时间到来之前达到即将到来的数字的峰值)。这可能吗?是否存在某种泄漏,导致这种方法无法成为抵消 Chainlink VRF 成本的可行方法?
我什么也没尝试。
澄清一下,
private
可见性有助于保护函数和变量免受区块链内不需要的访问。它确实不使它们完全隐藏在区块链上。
带有随机数的合约调用数据也将可见。
TLDR; 您应该使用将它们返回到您的合约的同一块中的值。
为了详细说明理查德的答案,存储在区块链上的任何数据在技术上都是不安全的,并且可供公众使用。
如果您存储的数字包含某种经济激励(即,为正确的猜测支付奖金的彩票系统),那么区块链并不是缓存它们的好地方,因为您正在向严重的问题敞开大门。攻击向量。
我很好奇你们在 VRF 上的每个请求的成本是多少,在什么链上?这些数字生成的随机性是否可以“公开验证”,或者任何真正的随机数都可以吗?如果没有,我想知道通过 Chainlink 预言机的传统请求模型是否能够稍微降低您的成本。