首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在雪崩块链实体码中发现“随机”数

如何在雪崩块链实体码中发现“随机”数
EN

Stack Overflow用户
提问于 2022-03-29 01:39:29
回答 1查看 148关注 0票数 1

我试图帮助别人发现他们的代码是如何被黑的。

他们在区块链中使用了一个随机数生成器,如下所示:

代码语言:javascript
复制
uint256 random = uint256(
                    keccak256(
                        abi.encodePacked(
                            block.difficulty,
                            block.timestamp,
                            msg.sender                            
                        )
                    )
                ) % 100;
if (random >= 90) {
        //get1;
    } else {
        //get2;
    }

得到介于1到100之间的随机数。有人能够“猜测”何时提交一笔交易,总能得到2.有人告诉我,这可能是分叉的链条,但我仍然不知道如何。这是在雪崩链上,其中块是随机时间,所以有两个问题:

你是怎么猜到雪崩上未来街区的block.timestamp的?我可以非常接近地尝试(以过去10个街区的平均水平)来猜测前面的1到2个街区将会是什么,但只有大约70%的时间。

他说:更重要的是,要做到这一点,如何才能在特定的块上完成事务?我试过加注汽油等,但没能瞄准一个街区。

我目前正在使用python web3进行测试(在主链上,而不是分叉),但是任何语言(甚至理论)都是朝着正确的方向迈出的一步。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-03-29 10:38:15

这些类型的攻击(“猜测”一个特定的伪随机数)通常来自矿工(PoW)和验证器(PoS)。

当矿工/验证器发布一个块时,它们包含一个任意的block.timestamp值。只要时间戳在预期的范围内(大于上一个块时间戳,并围绕预期的新块时间),网络就会接受它。

它们还可以将任意事务(由他们持有私钥的地址签名)放到发布的同一块上。这个事务甚至不需要经过内存池。

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

https://stackoverflow.com/questions/71655507

复制
相关文章

相似问题

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