上一期CelesOS研究院讲解了当前区块链技术领域随机数攻击层出不穷,造成巨大损失;主流的三大随机数算法和方案的不足与缺陷是其症结所在,区块链行业急需更加安全可靠的随机数算法和策略。 而由CelesOS核心技术团队独创研发的【随机数承诺】算法,可有效防止节点操纵随机数、彩虹攻击等问题,让其他人很难预测随机数的值。其算法共分为产生随机数和校验随机数两个部分,最新披露技术内容详解如下: 产生随机数 1 随机数消费者 必须获取未来某个块的随机数,这样才能保证公平性和不可预知性。因为在该算法内,谁都不知道未来某个块的随机数是多少,这也是我们要的结果。 2 区块生产者 生成区块的时候需要提供一个承诺next_random_hash。其目的是为了让其他人无法获知区块生产者将要提供的随机数是什么,同时也保证了它自己不能替换自己所提供的随机数。只有在区块生产者公布自己的随机数的时候,其它节点才知道该随机数,并通过承诺去验证该随机数是否正确。 为防止彩虹攻击,随机数的承诺是由该随机数和其承诺的前一个区块的特征,通过椭圆函数F计算的结果。因为随机数承诺的前一个区块的特征在一个极大的范围内,所以攻击者就很难提前生成彩虹表,对随机数进行彩虹攻击。 区块生产者,从当前区块向前遍历X个区块获取所有的随机数(包含当前区块的随机数),最后通过计算得到最终的随机数result_random。因为获取到了尽可能多的区块生产者的随机数,减少了少数节点串通操纵随机数的危险。 计算随机数 R 1.从当前块开始往前遍历下一个区块; 2.如果被遍历的区块存在随机数则把随机数保存起来{PR1,PR2,……}; 3.如果被遍历的块不存在随机数则直接进入第4步; 4.如果已经累计遍历了X块了,则通过椭圆函数F计算{PR1,PR2,……}的值,生成随机数R并将R写入区块。如果没有累计遍历到X块,则继续1-4步骤。 随机数验证逻辑 其它节点验证当前区块生产者节点的随机数是否正确: 1.收到当前区块生产者节点生产的区块,获取区块中的随机数PR; 2.在区块链上查询随机数PR的承诺next_random_hash; 3.在区块链上查询承诺next_random_hash的前一个区块的特征值; 4.利用随机数PR和其承诺的前一区块特征值通过椭圆函数F计算出v_hash,并比较v_hash和承诺next_random_hash是否一致。如果一致则随机数正确,反之则不正确。 综上所述,CelesOS【随机数承诺】算法摒除了简单的区块链中的随机数要么是合约自己生成(容易被其他人发现与预测),要么是第三方生成(缺少公信力,难以信服)的尴尬境地。 随机数算法 上期回顾:CelesOS研究院丨如何对抗随机数攻击(一) 技术课题下期预告:CelesOS在区块链上实现RAM随时间衰减的方法 CelesOS CelesOS作为首个DPOW金融区块链操作系统,采用共识机制3.0突破“不可能三角” 既可提供高TPS,又能兼顾去中心化。致力于打造拥抱监管的金融区块链操作系统,为金融机构和监管链上开发应用提供服务,为监管制定角色和共识生态的监督层协议。 CelesOS团队致力于为区块链和监管机构/金融业之间搭建桥梁。我们相信只有与监管机构合作的区块链技术才会拥有真正的未来。我们相信并为实现这一目标而做出贡献。 本文来源:CelesOS —- 编译者/作者:CelesOS 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
CelesOS研究院丨如何对抗随机数攻击(二)
2020-03-18 CelesOS 来源:火星财经
LOADING...
相关阅读:
- BCH 开发者与 Bitcoin ABC 团队因新难度算法 Grasberg 产生分歧2020-08-04
- 三分钟读懂Allocate Dividend技术构架之拜占庭容错算法(PBFT)2020-08-04
- 【深耕or离场】币乎新算法发文和点赞如何赚更多KEY?2020-08-01
- DTB文旅公链采用PoT算法的优越性2020-07-31
- 借鉴生物学的思路,我们能辨认出,在演化算法中存在两种重要的机制2020-07-30