如何对抗随机数攻击(一)

据区块链安全公司 PeckShield(派盾)数据显示,2019 年全年区块链安全事件共 177 件,其中重大安全事件 63 起,总共损失达到了 76.79 亿美元,环比 2018 年增长了 60% 左右。

虽然过去一年开发者安全意识和举措整体有所提高,DApp、智能合约等原先存在的溢出、重放、随机数等基础型攻击方式整体减少,但这也倒逼了黑客手段的升级,使他们的攻击方式趋于多样化,不按“常理”出牌。

攻击事件层出不穷

EOS 公链上今年共发生超 78 起典型攻击事件,损失在 1000 个 EOS 之上的案例(见下表)发现,攻击手法主要有交易阻塞、回滚交易攻击,假转账通知,随机数破解等,其中 9 起为交易阻塞攻击,8 起为随机数问题引起的攻击,5 起交易回滚攻击。

截止2019年12月初,目前运行在ETH、EOS、波场等公链上的DApp总数量超3000个,智能合约漏洞事件超百起,大多被黑事件发生于EOS DApp,同时有逐渐向 TRON ,Defi生态蔓延的趋势,需要开发者警惕,但就目前区块链技术来讲,还没有出现完美的随机数方案,只要是采用链上的变量作为随机数因子,都存在被黑客攻破的可能。

随机数算法3.0

CelesOS团队总结分析,现存相关随机数的技术方案大致分为三种:

方案I:随机数消费者使用未来的区块Hash作为自己的随机数种子,自行产生随机数。

不足:使用未来的区块Hash作为自己的随机数种子,自行产生随机数的方案在过去的几个月内是被使用最多的方案,该方案的问题在于:区块生产者可以通过增加打包或放弃打包部分交易来“控制”产生的随机数。

方案Ⅱ:区块链上引入预言机机制,由一个可信的第三方合约产生随机数,并广播到所有的节点上。

不足:到目前为止,预言机的逻辑还停留在讨论层面,并没有实际的应用,并且,一个“可信的预言机”比一个“可信的区块生产者”更难以说服消费者。

方案III:由区块生产者自行产生本区块的随机数方案。不少的区块链主链采用了此方案。

缺陷:这个方案更试用于联盟链、私链,因为在联盟里,所有的区块生产者都是可信的,可是在公链中,并不是所有的区块生产者都是好人,一个安全的公链上需要有一定的校验机制来保证区块生产者的可信度。

CelesOS使用的随机数算法是由CelesOS核心技术团队充分调研比对当前各大随机数算法策略和技术方案,创新研发【随机数承诺】算法:

其算法可以实现在即保证随机数的安全生成,也不需要引入一个“可信的第三方”,由区块生产者自行就可以产生一个“安全的”随机数,且其他的验证节点均可以对这个区块生产者的出块行为进行校验,可有效防止区块生产者进行作弊行为且此随机数将永远的保存在每个区块中,任何人都不会修改这个随机数。并且,对于随机数消费者来说,它不需要等待一个特别长的时间,在任何时候,都可以以非常快速的时间拿到这个随机数。

目前区块链中的随机数要么是合约自己生成(容易被其他人发现与预测),要么是第三方生成(缺少公信力,难以信服)。

Celes随机数算法优势:本随机数的算法是由生成区块的所有节点共同生成,有很强的公信力且不容易被预测。由区块链的共识机制保证随机数的正确性,所有节点参与到随机数的生产过程中,保证了随机数不可被操纵。采用承诺的前一区块的特征值和随机数通过椭圆函数F计算出承诺,有效的防止了彩虹攻击,让其他人很难预测随机数的值。该随机数作为区块链的一部分,已经融入到了区块链体系当中。

下期预告:CelesOS研究院丨CelesOS随机数技术方案详解说明,为何CelesOS随机数算法3.0是如何做到接近完美的算法优势

CelesOS

CelesOS作为首个DPOW金融区块链操作系统,采用共识机制3.0突破“不可能三角” 既可提供高TPS,又能兼顾去中心化。致力于打造拥抱监管的金融区块链操作系统,为金融机构和监管链上开发应用提供服务,为监管制定角色和共识生态的监督层协议。

CelesOS团队致力于为区块链和监管机构/金融业之间搭建桥梁。我们相信只有与监管机构合作的区块链技术才会拥有真正的未来。我们相信并为实现这一目标而做出贡献。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • EOS.IO技术白皮书链接:EOSIO/Documentation 摘要 EOS.IO 软件引入一种新的区块链架构...
    yuyangray阅读 1,748评论 0 4
  • 公平理论美国心理学家约翰·亚当斯1965年提出了著名的公平理论:员工的激励程度来源于自己和参照对象的报酬和投入比例...
    铁川阅读 1,553评论 0 0
  • 参数 在函数名后边的括号里写两个参数,就相当于在函数里声明了两个变量,可以有可以没有 形参 fun...
    哇塞薛之谦阅读 243评论 0 0
  • 前两天与老公带两个宝宝出去玩,回家路上老公问我,你是不是快过生日了,我随口回答还得几周吧。进家门时老公掏出手机看了...
    猫小杜在写作阅读 274评论 0 6
  • 今日和朋友聊起遗憾一词,感慨特别多,每每说起,心中的愧疚感就越深,我总是愧疚于自己没有把握好每一个当下。 有时候想...
    小十菇凉阅读 215评论 0 1

友情链接更多精彩内容