Zilliqa 的设计构思(第3部分:使共识更有效)

本文探讨了Zilliqa为何需要不同于Nakamoto共识的实用拜占庭容错(pBFT)协议,并指出经典pBFT在节点通信效率上的局限。通过引入数字签名和多重签名技术,Zilliqa有效地减少了网络中消息传输的数量,降低了通信成本,提高了共识协议的效率。文中还介绍了Schnorr签名等多重签名方案,强调其在区块链效率提升上的作用。
摘要由CSDN通过智能技术生成

2018年2月5日
Zilliqa博客发布,Rita译

Nakamoto共识协议(或PoW)不理想以及为什么Zilliqa需要一个不同的共识协议。Zilliqa使用的共识协议被称为实用拜占庭容错(PracticalByzantine Fault Tolerance),简称pBFT,该协议具有计算成本低、在低能耗的情况下即可赋予交易最终性、提出下个区块无需确认等多个优点。

然而,卡斯特罗和利斯科夫(Castroand Liskov)在其论文(链接https://dl.acm.org/citation.cfm?id=296824)中设计的经典pBFT 只有在共识组(在Zilliqa中指一个分片)较小时,例如少于50个节点,才具有较高的通信效率。当共识组变大,节点之间的通信成本将骤升从而成为效率的障碍。而我们此前的文章提到,Zilliqa中任何分片都必须有至少600个节点才能确保其中拜占庭节点(即恶意节点)的比例低于三分之一的概率非常低。
本文是此系列文章的终篇,我们将讨论经典pBFT协议对通信的要求有多高以及我们如何使用多重签名的方法来降低这个要求。

在本文中,我们将用n来表示共识组的大小, Zilliqa中n假设等于600。

pBFT的通信成本

在此前提到的论文中,经典pBFT要求每个节点与所有其他节点通信共享协议消息,从而对系统状态达成一致。这意味着每个节点都必须发送n条消息,因此总的通信数量为n2,这一通讯成本是很高的。

认证消息的成本

此外,在拜占庭网络中仅仅发送消息是不够的。特别是在一个公开的拜占庭网络中,当节点A接收到来自节点B的消息时,A必须确定该消息确实由B发送,且该消息在传输过程中未被修改,没有这种保证,节点就很难确保消息的真实性,因为黑客可以在中间环节修改消息并给节点提供不正确的信息。

一种验证消息传输的解决方案是在A和B之间生成保密的密钥,然后可以使用该密钥为每个传出的消息生成“标签”。由于只有A和B知道密钥,所以标签只能由A或B生成,从而他们可以验证消息的来源。
消息认证码(MessageAuthentication Code,简称 MAC)是可以生成这种标签的加密方法。构建MAC的一种可能方式是使用加密散列函数(cryptographichash function),该函数将密钥和消息作为输入并生成标签作为输出。

下图显示了发送者和接收者使用MAC的方式。发送者用消息和密钥通过MAC生成标签,并将其与消息一起发送给接收者。接收者再次计算MAC得到一个标签,将之与收到的信息进行比对࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值