在区块链上如何生成随机数。
Chainlink 如何解决以太坊“随机数问题”
在以太坊上使用的随机数来源主要有链上和链下两种途径,其中链上生成核心要解决随机数生成种子的不可预测性。
通过实例学习,建立一个安全的高赌注随机数游戏
随机数的核心是数的随机性。随机性是信息安全领域,尤其是密码学领域一个很关键的研究问题。在密码学中,对一个序列的随机性是这样定义的:“看起来是随机的,即能通过我们所能找到的所有正确的随机性检验。”
研究如何利用 Solidity 新操作码 Prevrandao 获取随机数
如何实现Solidity智能合约的安全随机数?
Libra中采用的椭圆曲线是ED25519,而不是像以太坊比特币使用的是secp256k1. 虽然有不同,但是从本质上来说他们都是椭圆曲线,基本性质都是完全相同的.因此适用于S256曲线的VRF算法在Libra中也是相通的.
Libra
ED25519
secp256k1
S256
在区块链上,由于一切信息都是透明公开的,提供一个安全实用的随机数是一个非常困难的问题。但是随机数是很多应用的基础,比如游戏,博彩,流程控制等。因此,提供一个实用可靠的随机数是基于智能合约的应用的迫切需求。
在日常生活中,很多场景都需要应用到“随机数”,例如福利彩票、车牌摇号、公租房的分配等等。虽然借助互联网,随机数的应用愈加的方便,但是不可避免中心化的系统带来的弊端,即中心化系统产生的随机数可能是弱随机数。借助区块链以及相关的加密算法,使得拆解、破解随机数几乎不可能,因为需要消耗大量的时间和人力,并且结果也并不理想。因此,使用区块链可以保证竞猜类应用的随机性和公平性。
随机数在密码学体制中,占据重要的位置,如果不正确使用会带来非常大的安全隐患,历史上发生此类事故也不在少数。伪签名是一个弱问题,可能会对不熟悉的人造成欺骗。
Chainlink VRF(可验证随机函数)是一个为智能合约设计的公平的可验证的随机性来源。Solidity 开发人员可以使用它作为防篡改的随机数生成器,为依赖不可预测结果的 Ethereum 应用构建安全可靠的智能合约。
EOSDice 在2018年11月10日再次受到黑客攻击,被盗4,633 EOS,约合 2.51 万美元,针对这个漏洞,零时科技团队进行了详细的分析及攻击过程复盘,尽管这个漏洞已经发生过一段时间,不过因随机数被预测依旧值得大家关注。
4,633 EOS
EOSDice 在2018年11月3日受到黑客攻击,被盗2,545 EOS,约合 1.35 万美元,针对这个漏洞,零时科技团队进行了详细的分析及攻击过程复盘,尽管这个漏洞已经发生过一段时间,不过这个因随机数被预测引发的漏洞还是比较典型。