专栏首页深入浅出区块链技术区块链与分布式系统

区块链与分布式系统

区块链技术的火热推动了传统分布式技术的进一步发展。从区块链技术的本质来看,基本脱离不开传统分布式系统跟密码学的核心技术。那么区块链技术真的值得去研究吗?是区块链选择了我们,还是我们选择了区块链?本文从一个分布式系统研究者的角度来理解区块链。

人们常常把区块链当作分布式数据库,或者是分布式账本,这种说法不准确,而且具有迷惑性。区块链与我们常见到的分布式数据库相比,我认为区别主要有两个:共识算法和链式结构。这两者相辅相成,共同构成了区块链的独特性。

共识算法

分布式数据库所采用的共识算法一般都是基于 Paxos 所衍生出来的一系列算法。这些算法的安全性仰赖于中心化的假设,即所有的节点由一个可信赖的中心管理。在这个假设下,所有节点都被认为是“诚实”的,也就是说,所有节点都竭尽全力去传递消息,并且消息不会被篡改。如果有少部分节点宕机,或者失联也不会影响协议的安全性。

然而区块链中的共识算法没有中心化的假设,每个节点都可以被认为是有独立行为的,这也是区块链“去中心化”的由来。协议允许一部分节点(一般少于 1/3)是拜占庭节点,它们可以按照自己的意愿选择遵从或者违背协议,发送任意消息或者假装宕机。拜占庭节点可以是被攻击者完全控制的节点,也可以是自身软件出现严重 bug 的节点。这类算法被称作拜占庭容错(Byzantine fault-tolerant)算法,简称 BFT。很明显可以看出,区块链的共识算法的容错性要远远高于传统的分布式数据库,因此往往也更低效。

针对 BFT 共识算法的研究从很早就开始了,其中影响力最大的就是图灵奖得主 Barbara 在 1999 OSDI 年提出的 PBFT (Practical BFT) [1]。然而由于算法的复杂性过高,很难进行大规模部署。除此之外,这类算法还要求每个节点的身份已知,也就是说,在协议初始或者新节点加入时,都需要有准入控制(Access Control)机制,保证节点之间可以互相验证身份。基于以上原因,针对传统的 BFT 协议的研究到了 2010 年也没有很大的进展。

比特币的出现打破了人们对这一领域的认知,它使得人人都可以轻易加入到网络中来,不需要任何准入控制机制。只要拥有至少 51% 算力的计算机是诚实的,整个网络就是安全的,并且通过比特币的奖励机制鼓励参与者规范自己的行为。比特币通过极其简单的设计就在某种程度上实现了“海纳百川,一视同仁”,不得不说是一个奇迹。然而奇迹的诞生是要付出代价的。比特币付出的代价在我看来主要有三个:

  1. 极大的资源消耗。参与到网络中的矿工需要付出庞大的硬件费用和电费。
  2. 极低的性能。比特币的网络每秒钟大概能处理 7 个交易,每个区块的平均生成时间是 10 分钟左右。
  3. 交易的不确定性。即使一个区块在比特币网络中被确认了,由于区块链可能存在分叉fork,这个区块仍然有被重写的风险。只有等待一个区块被确认若干次(比如 6 次)之后,才能使得这个区块被重写的风险降到足够低。这也进一步提高了交易被确认的延迟。

为了减少上述代价,有不少研究者都做出了卓越努力。例如,为了提高共识算法的性能,来自 Cornell 大学的研究者在 2016 年的 NDSI 提出了 Bitcoin-NG [2]。来自 MIT 和 Stanford 的研究者在 2019 年的 CCS 提出了 Prism [3],进一步对比特币进行扩容。此外,为了减少资源消耗,来自 MIT 的研究者在 2017 年 SOSP 上提出了基于 Proof-of-Stake 的 Algorand,移除了挖矿的消耗。

链式结构

区块链带来的另一项革新就是链式的结构。每个区块都通过哈希跟前面的区块链接在一起,一直追溯到初始区块,形成一条绵延不绝的链。这个结构带来的一个好处就是当一个节点确认一个区块的时候,意味着同时确认了这个区块所在链上之前的所有区块。基于这种链式的结构,区块链中很容易采用一种“最长链”原则发布新的区块。比如在比特币中,由于网络问题和恶意攻击的存在,一个矿工可能会看到多条链,但矿工总是倾向于在最长的一条链上挖矿。即使挖矿挖到一半发现了一条比所在的链更长的链出现,也要切换到更长的链。“最长链”原则并不一定是非遵守不可,它并不会对协议安全造成严重影响,但当所有矿工都遵守这一原则的时候,每个矿工所能期望获得的收益最大。当然,也有例外,当一个矿工占有比较多的资源的时候(少于50%),可以采取一种“自私挖矿”(selfish mining)[4] 的策略,违背“最长链”原则,谋求更高的收益。

区块链的链式结构也给研究传统 BFT 的研究者带来很大启发,很多为区块链量身定做的 BFT 协议开始涌现。这其中最著名的要数 Facebook 所采用的 LibraBFT [5] 共识协议。LibraBFT 基于 HotStuff [6],由来自 VMware 的研究者提出。HotSutff 通过采用区块链的链式结构改进了传统 BFT 的性能,使得协议能够部署在具有上百个节点的网络中。下面我简单说明一下这种链式结构的神奇之处。

首先,我们想象用传统的 BFT 协议实现区块链。由于在传统的 BFT 协议中共识是一次性(one-shot)的,我们需要对每个区块单独进行共识。例如在 PBFT 中,每个区块链都要经历 Propose,Prepare,Precommit,Commit 若干阶段。每个阶段都要经历一轮投票,似乎都在做相同的事情,存在很多消息冗余。如下图所示(来源[1])。

为了解决这一问题,HotStuff 在 PBFT 的基础上引入了链式结构。由于之前所说的链式结构的特性,一个节点对一个区块的投票实际上是对这个区块所在链上之前的所有区块的投票。因此链式 HotStuff 缩减了不同的投票阶段,只保留了统一的 Propose-Vote 的形式。如下图所示(来源[6])。

HotStuff 进一步利用了链式结构的特点规定了投票规则(voting rule)以及区块被确认的规则(commit rule),从而保证协议的安全性。链式的结构使得 BFT 协议变得简洁而优美,能够很好地进行流程化(Pipelined)作业,提高了协议的性能,极大降低了状态空间。

除了上述的好处之外,链式的结构也给协议留足了设计空间,比如激励机制,信用管理,公平机制等,这些机制对一个多方参与的网络来说都会起到积极作用。

总结

在10多年前,中本聪发明比特币,区块链应运而生。现在,我们对区块链的研究逐渐拨云见日,我们也应用一种客观专业的眼光去看待这项技术。毫无疑问,区块链的诞生给分布式系统的研究带来了新的生命力。但在研究区块链的时候,不能粗暴的将共识算法和链式结构分开去研究,因为这两者相辅相成,共同构成区块链的基本要素。

注:本文由作者首发在知乎:https://zhuanlan.zhihu.com/p/197749432。

扩展阅读

[1] Practical Byzantine Fault Tolerance

[2] Bitcoin-NG: A Scalable Blockchain Protocol

[3] Prism: Deconstructing the Blockchain to Approach Physical Limits

[4] State Machine Replication in the Libra Blockchain

[5] Majority is not Enough: Bitcoin Mining is Vulnerable

[6] HotStuff: BFT Consensus in the Lens of Blockchain


本文作者:盖盖

作者主页:

https://learnblockchain.cn/people/18


本文分享自微信公众号 - 深入浅出区块链技术(blockchaincore),作者:盖盖

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Conflux的自我进化:从DAG到树图

    采访前我们想要Conflux的首席技术官伍鸣博士帮我们解答的疑问是:「DAG」与「链」的本质区别是什么?我们为什么要用它?它自身的局限性又在哪里?

    Tiny熊
  • 如何学习区块链

    Tiny熊
  • Conflux共识算法解读

    上次我们讲到GHOST算法[2],它在中本聪共识的基础上提出的确定主链的算法,在保障了在高吞吐量的同时还保障了安全性(即不容易分叉,依然保证51%攻击)。但是G...

    Tiny熊
  • 别把区块链玩坏了!

    当加密数字货币的总市值在2018年1月7日达到7985亿美元峰值的时候,有信仰者为了自己理想的现世价值能发酵而激情荡漾,有按捺不住的正规军也纷纷入场,更有人在热...

    数据猿
  • 区块链概况:什么是区块链

    定义 区块链技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。 wikipedia 给出的定义为: A blockchain —originally, bl...

    首席架构师智库
  • 零伽壹浅谈:产业区块链发展将迎来爆发期

    在今年4月份的时候,国家发改委首次明确新基建范围,区块链被正式纳入其中。站上新基建风口,区块链发展进入一个新时期,迎来多行业场景布局和加速落地应用的新阶段。

    用户7573724
  • 技术与思想:区块链的双重属性

    当区块链作为一种技术开始变得成熟的时候,越来越多的人开始将关注的焦点聚焦在了应用和落地上。

    孟永辉
  • 区块链行业缺乏统一标准,成为金融新基建尚存距离

    全国金融标准化技术委员会官网披露的信息显示,2020年6月22日至7月3日,国际电信联盟电信标准化部门(ITU-T)第十六研究组(SG16)全会在线上召开。在该...

    用户7358413
  • 产业互联网:区块链与数字货币的分水岭

    成为技术,逐渐并且正在成为区块链行业发展的主题。无论是头部巨头,还是新型玩家无不这么认为。

    孟永辉
  • 零伽壹深度解析:区块链技术在电力行业的应用展望

    世界各地电力系统发展日新月异。一个多世纪以来,电力系统主要依靠化石燃料发电,并通过杂乱的电网输送给终端用户。公用事业只有一个简单的目标:以低成本提供可靠性高的电...

    用户7573724

扫码关注云+社区

领取腾讯云代金券