当合约调用方已知时,使用keccak256实现稳固随机数安全



我在这里读到使用keccak256和时间戳、合约调用者和nonce作为熵源来生成随机数的标准方法。

我还在上面链接的文章中读到,这种方法的主要问题是,当合约的调用者也有自己的节点时,他可以将无限的交易发布到自己的节点,但不能共享,直到他生成他想要的数字。

我的问题是,如果我的智能合约只能从可信来源调用,那么这种生成随机数的方法安全吗?

我也想知道我是否每次都生成一个新的以太坊地址来调用合约,这是否会增加熵,并使数字无法预测?

在我看来,每次生成新地址增加了足够的熵,在某种程度上,生成地址和调用合约的源扮演了一个oracle的角色。对吗?

智能合约中生成的任何随机数都可以被某人事先猜到。因此,在智能合约中生成的任何随机数都是不安全的。

如果你从可信源调用智能合约,你也可以在可信源中生成随机数,而不是把问题推到后面。生成地址只是烟雾和镜子,当然,有人知道他们正在生成什么地址。

最新更新