网站大量收购独家精品文档,联系QQ:2885784924

一种用于区块链的拜占庭容错算法.pdfVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一种用于区块链的拜占庭容错算法

张铮文

erik@

摘要

本文提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。我们假设在此网络中,

消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节

点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,

还可能发生各种人为或非人为的故障。我们的算法对由个共识节点组成的共识系统,提供

−1

=⌊3⌋的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

1.概述

区块链是一种去中心化的分布式账本系统,它可以用于登记和发行数字化资产、产权凭证、

积分等,并以点对点的方式进行转账、支付和交易。区块链技术最早是由中本聪在一个密码

学的邮件列表中提出的[1],也就是比特币。此后,基于区块链技术的各种应用纷纷出现,比

如基于区块链的电子现金系统、基于区块链的股权交易系统、基于区块链的智能合约系统等。

区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,

并且不依赖于任何的可信第三方。

然而,和任何分布式系统一样,区块链系统会面临网络延迟、传输错误、软件错误、安全漏

洞、黑客入侵等问题。此外,去中心化的特点决定了此系统的任何一个参与者都不能被信任,

可能会出现恶意节点,以及因各方利益不一致导致的数据分歧等问题。

为了防范这些潜在的错误,区块链系统需要一个高效的共识机制来确保每一个节点都有一个

唯一公认的全局账本。传统的针对某些特定问题的容错方法,并不能完全解决分布式系统以

及区块链系统的容错问题,人们需要一种能够容忍任何种类错误的容错方案。

比特币采用工作量证明机制[1],非常巧妙地解决了这个问题。但是代价也很明显,那就是巨

额的电力成本和资源浪费。此外,新的区块链必须寻找到一种与之不同的散列算法,用于避

免来自比特币的算力攻击,如莱特币采用了与比特币的SHA256不同的SCRYPT算法。

拜占庭容错技术是一种解决分布式系统容错问题的通用方案[5]。本文在Castro和Liskov

于1999年提出的PracticalByzantineFaultTolerance(PBFT)[3]的基础上,提出了一种改

进的拜占庭容错算法,使其能够适用于区块链系统。

2.系统模型

区块链是一个分布式账本系统,参与者通过点对点网络连接,所有消息都通过广播的形式来

发送。系统中存在两种角色:普通节点和记账节点。普通节点使用系统来进行转账、交易等

操作,并接受账本中的数据;记账节点负责向全网提供记账服务,并维护全局账本。

我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的

顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、

伪造消息、停止工作等,还可能发生各种人为或非人为的故障。

我们采用密码学技术来保证消息传递的完整性和真实性,消息的发送者要对消息的散列值进

〈〉()

行签名。我们定义是节点对消息的电子签名,D是消息的散列值。如果没有特

殊说明,本文所规定的签名都是对消息散列值的签名。

3.算法

−1

我们的算法同时提供了安全性和可用性,只要参与共识的错误节点不超过⌊3⌋,就能保证整

−1

||

个系统正常运作,其中=表示参与共识的节点总数,是共识节点的集合。令=⌊3⌋,

则就表示系统所容许的错误节点的最大数量。由于实际上全局账本仅由记账节点来维护,

因此系统中的普通节点不参与共识算法,但可以看到完整的共识过程。

参与共识的节点,需要维护一个状态表,用于记录当前的共识状态。一次共识从开始到结束

所使用的数据集合,称为视图。如果在当前视图内无法

文档评论(0)

138****8628 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档