Sperax Bug Bounty计划 Sperax的BDLS共识代码上线啦!Sperax团队一直将项目安全放在首位,同时我们坚信真正去中心化的解决方案应该以去中心化的方式开发。本着这种精神,我们将启动“Sperax Bug Bounty计划”。 我们号召所有感兴趣的开发者来帮我们找出并反馈Sperax项目中的Bug,经过提交确认的Bug将有机会获得我们提供的激励奖金。如果你是个优秀的漏洞赏金猎人请千万不要错过这次活动,详情请参考下文。祝各位猎人狩猎愉快!
BDLS:最有效的区块链BFT确定性工具协议 BDLS由Sperax开发,基于C.Dwork,N.Lynch和L.Stockmeyer开发的著名DLS协议。这是一种BFT共识协议,可以真正满足当今互联网等开放环境的需求。与Casper FFG(以太坊2.0),HotStuff BFT (Facebook Libra),GRANDPA (Polkadot) 等其他著名协议相比,BDLS协议兼具前所未有的安全性(security)和无与伦比的性能(performance),尤其是在部分异步环境(例如互联网)下。 安全(security)方面: 尽管许多著名的协议(例如Tendermint BFT和HotStuff BFT)都声称它们在部分异步环境下是安全(secure, i.e. safe + live)的,因此可以在互联网环境中使用,但事实并非如此。部分异步网络通常可以分为两种类型:I型和II型(有关技术定义,请参阅论文的第2节[https://eprint.iacr.org/2019/1460.pdf])。事实证明,这些自称安全的协议(如HotStuff BFT)在II型网络中实际上并不安全,因为它们可能会因受到攻击而陷入停滞,导致网络参与者永远无法达成共识,最终使得整个网络瘫痪。而且,即使对于I型网络,如果稍微修改了用于破坏II型网络中那些协议的攻击,同样也可能使这些协议陷入无法解决的困境。相反,与这些协议不同,在部分异步网络中,Sperax的BDLS被证明是真正安全(secure)的。 性能(performance)方面: 与其他现有的区块链BFT协议相比,BDLS协议不仅最安全,而且性能也是最佳的。BDLS通过降低回合复杂度和降低通信复杂度达成了共识,如下面的表格所示: 由于其安全性(security)和高性能(performance),BDLS保证了在各种不同数量参与者和网络延迟的网络环境下依然能平稳,无错误的出块机制。以此方式,BDLS以及在其上构建的Sperax区块链可实现高效率(efficiency),并且是真正满足当今区块链行业需求的唯一解决方案。 BDLS如何运行 鉴于这是一种创新且实用的协议,读者自然会问BDLS如何实际运行?具体来说,给定一个块高度h,BDLS如何确定该高度处的特定区块B?答案如下: 假设在开始生成高度为h的块时,我们在网络中有n个参与者P0, P1, …, Pn-1和m个有效候选块B0, B1, …, Bm-1。对于每个参与者Pj,它具有所有有效候选块中的一些,我们将这组候选块表示为BLOCKi。显然, BLOCKj是所有候选块{B0, B1, …, Bm-1}集合的子集。 BDLS通过“逐轮循环”确定块高度h的最终块。换句话说,在每一轮中,所有参与者都尝试将块B确定为高度h的最终块。如果他们在这一轮中成功,则确定高度为h的区块,整个网络移至下一个高度为h + 1的区块;如果他们没有成功,他们会再开始一轮,重新尝试确定高度为h的区块。 然后,问题就变成了:在给定的回合r中,参与者如何尝试针对块高h最终确定区块B?这个问题触及了BDLS协议的核心。下文将概述算法;有关完整的技术细节,请参阅本文[https://eprint.iacr.org/2019/1460.pdf]。 在算法开始之前,公共函数领导者 (h, r) 从所有参与者中随机选择一轮的负责人Pi 。该算法本身总共包括8个步骤。但是,在给定的回合中,由于其中的某些步骤会导致网络的异常行为(例如无限的网络延迟),因此不一定需要执行每个步骤。算法如下: 1.包括领导者Pi 本身在内的每个参与者Pj都向Pi 发送带有其数字签名的消息<h, r, B’j > j。h是块的高度。r是轮数。B’j 是Pj的区块保留区BLOCKj中的最大有效候选区块。该消息被视为回合开始消息,也就是说,如果领导者Pi接收到足够的这类消息,则Pi开始新的回合r。发送此消息后,每个参与者都将在第r轮中启动其超时计数器。 2.如果领导者Pi 从步骤1接收到包括自己在内的所有参与者的至少2t + 1条消息,则它通过广播分组消息开始新的回合r。 如果在Pi从步骤1收到的所有消息中,至少有2t + 1个由2t+1个参与者发送的签名消息具有相同候选块B',则领导者Pi 广播以下签名消息: <lock, h, r, B’, proof> i 其中的proof是一个包含至少2t + 1条签名消息的列表,表明至少有2t + 1位参与者提议了B’。 如果在Pi从步骤1收到的所有消息中,没有这样的块B',则Pi首先将所有建议的块添加到自己的区块池BLOCKi中,然后广播以下已签名的消息: <B”, proof> 其中B”是Pi的区块池BLOCKi中的最大有效候选区块,proof是它从步骤1收到的至少2t + 1轮变更消息的列表。 3.如果参与者Pj从领导者Pi那里收到有效的<B”, proof>,则Pj将B”添加到它的区块池BLOCKj中。 如果它从领导者那里收到有效的<lock, h, r, B’, proof> i,则Pj执行以下操作: (i)释放上一轮对块B'的任何潜在锁定。 (ii)通过锁<lock, h, r, B’, proof> i锁定B’ (iii)将附有自己电子签名的commit消息发送回领导者Pi,如下所示: <commit, h, r, B’> j 4.如果领导者Pi从步骤3接收到来自参与者的至少2t + 1条有效commit消息,则它将块B'决定(即最终确定)为高度h块,并广播决定消息 (decide message) ,如下所示: <decide, h, r, B’, proof> i proof是至少2t + 1个提交消息的列表。 5.如果参与者Pj从网络接收到决定消息,则它将块B’最终确定为高度h的块,并移动以产生下一个高度的块;同时,它将收到的决定消息广播给邻居。 如果Pj没有从网络接收到决定消息,则它将执行以下锁定-释放过程: (i)(锁定-释放)如果参加者Pj具有某些锁定值,则将其所有锁定值与证明一起广播。如果参与者收到r’ >= r”和B' != B”的lock<lock, h, r', B', proof> i',则释放对值<lock, h, r”, B”, proof> i”的锁定。 (ii)移至下一轮r + 1。 6.(高度同步)如果参与者Pj在步骤4中接收到最终确定的块,即确定消息,则将其最终确定为高度h的块,并开始生产下一个高度的块。 7.(回合同步)如果参与者Pj从领导者Pi收到回合r’> r的有效信息,则它将移至回合r’。 8.(超时)如果在指定的时间段内,参与者Pj没有收到足够的消息来继续前进,则它会自动移至下一轮。 通过上述算法,在给定的回合中,BDLS以所有参与者P0, P1, …, Pn-1从所有有效的候选块B0, B1, …, Bm-1 中确定给定高度h的块B,如果成功则移至下一轮,如果失败则重试。 现在,读者可能想知道为什么具有上述算法的BDLS协议可以在异步环境下抵御各种攻击。我们的论文,不仅详细地描述了算法本身,并且还给出了BDLS协议安全性的严格数学证明。这里将列出该证明的一些关键点供感兴趣的读者阅读:
基于以上三个引理,对于BDLS协议,我们有以下两个定理:
由于BDLS被证明既具有安全性(safety)又具有活性(liveness),因此该协议在异步环境下是安全(secure)的。 关于Sperax Sperax是一个旨在连接传统金融和分布式生态系统的可信的去中心化经济基础设施。凭借其创新的BDLS协议,Sperax提供了一个安全、高性能的共识模块。在通证经济设计上,Sperax引入了嵌入式金融层,以为开发者提供开发分布式应用和业务模型的扩展性,并赋能其与现实世界金融交易相关联。 关注我们 Sperax官网:sperax.io Weibo:@sperax Twitter:twitter.com/sperax_io Medium:medium.com/sperax Facebook:facebook.com/SperaX-1465830513569601 LinkedIn:linkedin.com/company/sperax Telegram:t.me/sperax —- 编译者/作者:Sperax 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
BDLS协议重磅发布——Sperax启动BugBounty计划
2020-04-08 Sperax 来源:区块链网络
LOADING...
相关阅读:
- 基于区块链的IP保护应用获得投资2020-08-03
- 卡尔达诺凭借雪莱硬叉赢得了权力下放2020-08-03
- 波卡周报 | DOT 转账功能将于下周二进入执行阶段2020-08-03
- 区块链游戏文摘7月27日至8月2日2020-08-02
- 辉神解币:8.2比特币趋势分析2020-08-02