链上很难产生真正的随机数
原文作者:Cook Sun
原文来源:Twitter@Cook0x
Secret 提出的这个链上随机数解决方案还是值得说一说的,很多人并不知道的一个真相就是
链上很难产生真正的随机数
这是为什么呢?
是的,你们那些小图片的随机属性基本都是链下设置的。
1. 确定性的共识机制:区块链依赖于确定性的共识机制,如工作量证明(Proof of Work, PoW)或权益证明(Proof of Stake, PoS),来达成网络状态的共识。这些机制是确定性的,因此它们本身不提供真正的随机性来源。
2. 透明性和不可变性:区块链的核心特性是透明性和不可变性。所有的交易和数据都是公开的,并且一旦数据被记录到区块链上,就不能被更改。这意味着,任何尝试在链上生成随机数的方法都可以被所有的参与者看到,从而可能被预测或影响。
3. 外部随机数源的问题:使用外部数据源(如前一个区块的哈希或外部的随机数发生器)为区块链提供随机数是一种常见的方法。然而,这些方法要么是确定性的,要么依赖于可信的第三方,这可能导致安全和信任问题。
4. 操纵和攻击的风险:如果随机数的产生可以被某个节点或少数节点控制或预测,那么这些节点可能会操纵随机数以获得不正当的利益。例如,在权益证明的系统中,如果某个验证者能够预测或控制随机数,他们可能会使用这个能力来提高自己被选为下一个区块验证者的机会。
5. 性能和成本问题:一些可能产生真正随机数的解决方案可能需要大量的计算资源,这可能会增加交易费用和延迟。 所以除非新技术和新解决方案产生,目前很多的“伪随机数”产生都是在链下或者依赖第三方数据源来提供的。