BDLS协议

BDLS:区块链中最有效的 BFT确定性工具协议。

基于 C. Dwork、 N. Lynch和 L. Stockmeyer开发的 DLS协议, Sperax开发了 BDLS。BFT共识协议,能够真正地满足当今互联网等开放环境的需要。BDLS协议,与 Casper FFG (以太坊2.0)、 HotStuff BFT (Facebook Libra)、 GRANDPA (Polkadot)等其他著名协议相比,兼具前所未有的安全性(security)和无可比拟的性能(performance),特别是在部分异步环境中。

绩效方面(performance):

BDLS协议在安全性和性能上都优于现有的区块链协议 BFT协议。如下表所示, BDLS通过减少回合次数和交流复杂性达成共识[https://eprint.iacr.org/2019/1460.pdf]。

因为它。

安全措施(安全) 然后, 高效能(performance)

它保证了 BDLS在不同参与者数、网络延迟的网络环境下仍然能够平稳、无错出块的运行机制。通过这种方式, BDLS和它所构建的 Sperax区块链都可以实现。

高效(efficiency)

是的,我

真实的满足

如今区块链行业的需求。

解答。

安保方面(安全):

虽然很多著名的协议(例如 Tendermint BFT和 HotStuff BFT)都宣称它们在异步环境中是安全的(secure

i. e. safe live),因而也可以在因特网环境中使用,但是这并不是真的。局部异步网络通常可分为两类: I类和 II类(见本文第二节)。技术上的定义见本文第二部分。结果表明,这些声称是安全的协议(如 HotStuff BFT)在 II级网络中实际上是不安全的,因为它们可能由于受到攻击而停滞不前,导致网络参与者无法达成一致意见,最终导致整个网络瘫痪。[https://eprint.iacr.org/2019/1460. pdf]而且,即使对于 I型网络,对那些用于破坏 II型网络中的协议的攻击进行轻微修改,也同样可能使它们陷入无法解决的困境。相反,与这些协议不同的是,在部分异步网络中, Sperax的 BDLS被证明是真正安全的(secure),这是 Sperax的 BDLS (https://eprint.iacr.org/2019/1460. pdf)。[eprint.iacr.org/2019/1460.pdf] 如何运行 BDLS。

考虑到 BDLS是一个创新而又实用的协议,读者自然会问 BDLS是如何工作的?具体地说,给定块高度 h

BDLS如何确定该高度处的块 B?回答是:

假定当开始生成高度 h的块时,网络中有 n个参与者P0、P1、…、Pn-1和 m个有效候选块B0、B1、Bm-1。每一个参与者 Pj都有一些甚至全部的有效候选块,我们将这组候选块表示为 BLOCKj。很明显, BLOCKj是B0、B1、…和Bm-1所有候选块集合的一个子集。

简而言之, BDLS通过“逐轮循环”来确定块高度 h的终结块。换而言之,在每一轮中,所有参与者都试图把一个 B块作为高度 h的最后一个块。若在此轮中成功,则网络成功识别出高度为 h的区块,而整个网络将移动到下一个高度为 h 1的区块;若失败,则再次尝试识别出高度为 h的区块。

于是问题变成了:在某一轮 r中,参与者如何确定一个块 B是一个高度 h的块?BDLS协议的核心就是这个问题。算法概述如下;请参阅本文第七节[https://eprint.iacr.org/2019/1460.pdf]以获得完整的技术细节。

计算开始前,网络的公共功能(公共函数),

莱德尔

(h

r)本轮领导人 Pi是从所有参与者中随机选出的。这个算法本身,一共包含了8个步骤。但并非每个步骤都必须执行,因为有些步骤只是为了防止整个网络由于异常行为(如无限的网络延迟)而陷入瘫痪。运算过程:

1.每一个参与者 Pj,包括领导者 Pi本身,都会将带有其数字签名的消息发送给 Pi< h

r

b’ j> j。H为块状高度。r代表轮数。B'j是 Pj的区块保留区 BLOCKj中有效的最大候选区块。这条信息被视为一条回合开始信息,即,如果领袖 Pi收到了足够多这样的信息, Pi就会开始一个新的回合。在发送了该消息之后,每个参与者将在第 r轮开始其超时。

r

b’ j

2.如果领导 Pi从步骤1中收到所有参与者的至少2 t 1条消息,包括他自己,它通过广播将消息分组,开始一个新的循环。

当 Pi从第一步接收到的所有消息中,至少有2 t 1条由2 t 1参与者发送的签名消息具有相同的候选块B'时,领导 Pi将广播下列签名消息:

> lock

h

r

b’, proof> i

h

r

b’, proof

proof是一个包含至少2 t 1个签名消息的列表,表示至少2 t 1个参与者建议使用 B’。

若 Pi从第1步收到的所有消息中没有这样的块B',则 Pi首先将建议的所有块添加到它自己的区块池 BLOCKi,然后广播下列签署的消息:

proof>< b/b> proof>。

在 Pi的区块池 BLOCKi中, BLOCKi最多的候选块是 B

proof是它从第1步接收到的至少2 t 1个更改消息的列表。

3.如果参与者 Pj从领导 Pi处收到< b>

proof>,则 Pj将 B “添加到其区块池 BLOCKj。proof>

若 Pj收到来自领导的有效< lock

h

r

b’, proof> i,则 Pj执行以下操作:

h

r

b’, proof>。

㈠解除前一轮对块B'的任何可能锁定。

㈡通过锁< lock

h

r

b’, proof> i将 B’

h

r

b’, proof>锁上。

㈢将带有自己电子签名的 commit消息发送回领导 Pi,内容如下:

< commit

h

r

b’> j

h

r

b’>

4.如果领导者 Pi收到来自参与者的至少2 t 1条来自步骤3的有效 commit消息,他将块B'决定(即最终决定)变成一个高度 h的块,并广播决定消息(decide message),如下所示:

>安全, h

r

b’, proof> i

h

r

b’, proof>。

Proof是提交消息的列表,至少2 t 1。

五、如果参与者 Pj从网络接收到一条决定消息,它会把 B’最终识别为一个高度 h的块,然后移动来生成下一个高度的块;同时,它会向邻居传播接收到的决定消息。

如果 Pj没有从网络收到任何决策信息,它将执行下列锁定-释放过程:

㈠(锁定-释放)如果与会者 Pj有一定的锁定值,那么它的所有锁定值都会随证明一起传播。如 r’>= r”和B'!如果 lock< lock

h

r'

b'

proof>i',则释放对值< lock

h

r

b

proof> i”。

h

r”, b “, proof>

h

r'

b'

proof

㈡移至下一轮 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协议安全性的严格数学证明。以下是供感兴趣读者阅读的一些证明关键要点:

(引理1)不能将 B’和 B'这两个候选块锁定在高度 h的同一个轮子上。

(引理2)如果领导 Pi在一个高度为 h的回合中确定一个区块B',而 r是做决定的最低回合,则至少有 t 1个诚实的参与者在第 r轮中锁定候选区块B'。另外,每一个诚实的受试者在R'>= r回合中总是会在R'>= r回合中锁定B'。

(引理3)诚实参与者在 GST回合期间或之后的任何锁定释放步骤之后锁定的候选块集合包含最多一个值。

在此基础上,对 BDLS协议提出了以下三个定理:

(定理1:安全性/safety)假设有多达 t个恶意参与方,不可能由两个参与方决定不同的块值。

原理2:活动/liveness)假定最多有 t个恶意参与者,并且 Bh (也就是高度为 h的块)提议机制总是产生 Bh的有效候选子块,直到所有高度为 h的第一轮开始。BDLS协议将会最终确定每一块高度 h。这就是说, BDLS协议并没有陷入死锁(deadlock)。

因为证明 BDLS (safety)和(liveness)都是安全的(secure),所以这个协议在异步环境中是安全的。

斯派拉克斯 Bug Bounty计划

你也许会怀疑:像 BDLS这样的同时具有创新和实用价值的区块链公链,能跨越象牙塔,以代码的形式实际实现,并被业界广泛采用吗?

回答是肯定的

如今, BDLS不仅在理论上得到了证实,而且还被 Sperax的优秀开发团队所真正实现。而且, Sperax刚刚在 GitHub上发布了它的开放源码—— BDLS代码库。因为我们坚信,真正优秀的去中心化解决方案应该用去中心化的方式来开发。如今,我们本着这一精神,宣布了以下“SperaxBug Bounty计划”。 是的 斯派拉克斯 Bug Bounty计划

斯派拉克斯 Bug Bounty计划对 Bug给予奖励。在 Sperax项目中,我们呼吁所有的奖励猎人来帮助我们发现并反馈 Bug。若您是一位出色的赏金猎人,请不要错过此活动,详情请参阅下文。所有猎人都要好好打猎了~。 是的 规章制度

1.必须是新发现的、以前未得到反馈的安全漏洞。

2.所发现的安全漏洞必须是 SperaxGitHub代码的一部分,而非第三方代码。

三、您必须没有编写任何与 Sperax项目漏洞有关的代码,并且不能以其他方式参与生成 Sperax项目代码漏洞。

4. Sperax项目的雇员、承包商和与 Sperax基金会或其任何附属公司有业务关系的其他人员(包括前雇员、前承包商和曾经有业务关系的人员)不得参与该计划。

5.请尊重我们的协商一致模式,不要攻击它(我们保留追究法律责任的权利)。

6.公开披露漏洞将失去奖金发放资格,并有可能受到惩罚。

7.你必须符合 KYC的标准和要求,并经过审查,才有资格获得奖励。

8.斯派拉克队保留对整个比赛的最后解释权。 是的 奖赏规则

Sperax奖励计划为每个漏洞设定的奖金是根据公开发行股票的 SPA值为1000美元而定的。

获得奖金的条件是,第一个团队/个人提交的 pull请求被加入到 sperax代码库中。

三、本次活动的漏洞等级没有设定。

四、活动时间为北京时间2020年X月X日 XX:00至X月X日X日 XX:00,超过截止日期上报无效。

你还在呢

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢
相关推荐
新闻聚焦
猜你喜欢
热门推荐
 
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。