BTCV高分资讯 > 数字货币 > 块链=分布式数据库?区块链与分布式系统异同的

块链=分布式数据库?区块链与分布式系统异同的

作者:高分资讯来源:高分资讯 数字货币 2020年08月27日

将区块链视为分布式分类账是不准确的,两者的区别主要体现在一致性算法和链式结构上。

原标题:《区块链与分布式系统》

作者简介:盖,UBC计算机学院博士,研究分布式系统、拜占庭容错和区块链

区块链技术的普及促进了传统分布式技术的进一步发展。从区块链技术的本质来看,它基本上离不开传统的分布式系统和密码学的核心技术。那么,区块链技术真的值得研究吗?是区块链选择了我们,还是我们选择了区块链?本文从分布式系统研究者的角度来理解区块链。

人们经常把区块链看作一个分布式数据库或分布式分类账,这是不准确和令人困惑的。我认为区块链和分布式数据库有两个主要区别:一致性算法和链式结构。两者相辅相成,构成了区块链的独特性。

一致性算法分布式数据库中使用的一致性算法通常基于从Paxos派生的一系列算法。这些算法的安全性取决于集中化的假设,即所有节点都由一个可靠的中心管理。在这个假设下,所有的节点都被认为是“诚实的”,也就是说,所有的节点都尽一切努力传输消息,并且消息不会被篡改。如果有几个节点发生故障或丢失,协议的安全性不会受到影响。

然而,区块链的一致性算法没有集中化的假设,每个节点都可以被视为具有独立的行为,这就是区块链“分散化”的起源。该协议允许一些节点(一般小于1/3)为拜占庭节点,它们可以根据自己的意愿选择遵守或违反协议,发送任意消息或假装关闭。拜占庭式的节点可以完全被攻击者控制,或者在他们自己的软件中有严重缺陷的节点。这种算法被称为拜占庭容错算法,简称BFT。显然,区块链的一致性算法的容错能力远远高于传统的分布式数据库,因此它的效率往往较低。

对BFT共识算法的研究起步很早,其中最有影响的是图灵奖获得者巴巴拉most于1999年提出的PBFT(实用BFT)。然而,由于算法的高度复杂性,很难将其大规模部署。此外,这种算法还要求每个节点的身份都是已知的,也就是说,当协议启动或新节点加入时,需要一种访问控制机制来确保节点能够验证彼此的身份。基于上述原因,2010年对传统《BFT议定书》的研究没有取得很大进展。

比特币的出现打破了人们在这一领域的认知,使得每个人都可以在没有任何访问控制机制的情况下轻松加入网络。只要拥有至少51%计算能力的计算机是诚实的,整个网络就是安全的,并且鼓励参与者通过比特币的奖励机制来规范他们的行为。比特币通过极其简单的设计实现了“所有的河流都流入大海,所有的河流都得到平等对待”,这可以说是一个奇迹。然而,奇迹是有代价的。在我看来,比特币支付了三大成本:

巨大的资源消耗。参与网络的矿工需要支付巨额硬件和电费。非常低的性能。比特币的网络每秒可以处理约7笔交易,每个区块的平均生成时间约为10分钟。交易的不确定性。即使一个块在比特币网络中被确认,区块链也可能有分叉,所以这个块仍然有被重写的风险。只有在等待一个块被确认几次(例如,六次)之后,才能将重写该块的风险降低到足够低的水平。这进一步增加了交易确认的延迟。为了降低上述成本,许多研究者做出了杰出的努力。例如,为了提高一致性算法的性能,康奈尔大学的研究人员于2016年在NDSI提出了比特币-天然气。麻省理工学院和斯坦福大学的研究人员于2019年在CCS中提出了Prism [3]来进一步扩展比特币。此外,为了减少资源消耗,麻省理工学院的研究人员于2017年在SOSP提出了基于股权证明的算法,该算法消除了采矿的消耗。

链式结构区块链带来的另一个创新是链式结构。每个块通过哈希与前一个块链接,哈希返回到初始块,形成一个循环链。这种结构的一个优点是,当一个节点确认一个块时,这意味着该块所在的链中所有先前的块都同时被确认。基于这种链结构,很容易采用“最长链”原则来发布新块。例如,在比特币中,由于网络问题和恶意攻击,一个矿工可能会看到多个链,但矿工总是倾向于在最长的链上采矿。即使在采矿过程中出现较长的链条,也应该改用较长的链条。不必遵守“最长链”原则,它不会对协议的安全性产生严重影响。然而,当所有矿工都遵守这一原则时,每个矿工都可以期待最大的利益。当然,也有例外。当一个矿工占有更多的资源(不到50%)时,他可以采取“自私开采”的策略[4],这违反了“最长链”的原则,寻求更高的利润。

区块链的链式结构也给研究传统BFT的研究者带来了巨大的启发,许多为区块链量身定制的BFT协议开始出现。最著名的是脸书采纳的自由党共识协议。LibraBFT是基于由VMware研究人员提出的热点图[6]。HotSutff通过采用区块链的链式结构改善了传统BFT协议的性能,因此该协议可以部署在具有数百个节点的网络中。让我简单解释一下这种链式结构的魔力。

首先,我们设想用传统的BFT协议来实现区块链。因为在传统的BFT协议中,协商一致是一次性的,所以我们需要就每个区块分别达成协商一致。例如,在PBFT,每个区块链都必须经历几个阶段,如提议、准备、预提交和提交。每个阶段都必须经过一轮投票,这似乎是在做同样的事情,而且有很多信息冗余。如下图所示(来源[1])。

区块链 = 分布式数据库?技术解读区块链与分布式系统异同

为了解决这个问题,HotStuff引入了基于PBFT的链式结构。由于上述链结构的特征,节点对一个块的投票实际上是对链中该块之前的所有块的投票。因此,连锁投票缩短了不同的投票阶段,只保留了提议投票的统一形式。如下图所示(来源[6])。

区块链 = 分布式数据库?技术解读区块链与分布式系统异同

HotStuff进一步利用链式结构的特点来规定投票规则和提交规则,从而保证协议的安全性。链式结构使BFT协议简单而优雅,能够很好地执行流水线操作,提高了协议的性能,大大减少了状态空间。

除了上述优势,连锁结构也为协议留下了足够的设计空间,如激励机制、信用管理、公平机制等,将在多方网络中发挥积极作用。

总而言之,十多年前,中本聪发明了比特币,区块链诞生了。现在,我们对区块链的研究逐渐浮出水面,我们也用客观和专业的视角来看待这项技术。毫无疑问,区块链的诞生给分布式系统的研究带来了新的活力。然而,在研究区块链时,我们不能粗略地将一致性算法与链式结构分开,因为它们相辅相成,构成了区块链的基本要素。

延伸阅读

[1]实用拜占庭容错

[2]比特币-NG:一种可扩展的块链协议

[3] Prism:解构区块链以接近物理极限

[4]天秤座区块链中的状态机复制

[5]多数是不够的:比特币挖掘是脆弱的

[6]热图:块链透镜中的BFT共识

来源链接:zhuanlan.zhihu.com

标签: 比特币金库