该怎么猜智能合约上的随机数?

本文探讨了在区块链上猜智能合约生成的随机数的挑战。通过解析合约代码,了解到随机数是根据前一区块的哈希和时间戳通过keccak256函数计算得出。通过收集相关信息,如区块哈希和时间戳,可以重新创建合约的随机数,并通过编写合约接口来尝试猜中这个数字,从而解决挑战。
摘要由CSDN通过智能技术生成

该怎么猜智能合约上的随机数?

未标题-3

img

在链上创建随机数是一项复杂的任务。事实上,有一些方法可以做到这一点,但总的来说,强烈建议在链下进行,因为几乎所有用于熵的输入都是公开的,或者在某种程度上可以被操纵。

幸运的是,这个挑战要求我们猜测链上创建的一个“随机”数字。这是怎么回事?

img

​ 猜随机数字挑战智能合约代码

合约的第一行是一个uint8变量,answer。记住uint8变量最多包含256个可能的整数:0到255。

这个变量在构造函数中被分配给两个输入的 keccak256 哈希:包含我们部署交易的那个区块的前一个区块的blockhash (block.blockhash(block.number - 1), of type bytes32)和我们的区块被挖的时间戳*(now, of type uint256)*。

请记住,这个合约使用的是编译器版本^0.4.21,从那以后,一些语法发生了变化:block.blockhash()现在是blockhash(),now现在是block.timestamp。

正如我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值