区块链技术的普及推动了传统分布式技术的进一步发展。从区块链技术的本质来看,它基本上离不开传统分布式系统和密码学的核心技术。区块链技术真的值得研究吗?是区块链选择了我们,还是我们选择了区块链?本文试图从分布式系统研究者的角度来理解区块链。
人们常常把区块链看作一个分布式数据库或分布式账本,这是不准确和令人困惑的。与一般的分布式数据库相比,我认为区块链和分布式数据库有两个主要的区别:一致性算法和链式结构。这两者相辅相成,共同构成了区块链的独特性。
一致性算法
分布式数据库中使用的一致性算法通常是基于Paxos的一系列算法。这些算法都是由一个安全中心来管理的。在这个假设下,所有节点都被认为是“诚实的”,即所有节点都尽力传递消息,并且消息不会被篡改。如果少数节点关闭或断开连接,协议的安全性不会受到影响。
然而,区块链的一致性算法没有中心化假设,可以认为每个节点都有独立的行为,这是区块链“去中心化”的根源。该协议允许一些节点(通常小于1/3)成为拜占庭式节点。他们可以选择遵守或违反协议,发送任意消息或假装关机。拜占庭节点可以被攻击者控制,也可以是具有严重软件错误的节点。这种算法被称为拜占庭容错(BFT)。显然,区块链一致性算法的容错性远远高于传统的分布式数据库,因此往往效率低下。
对BFT一致性算法的研究起步很早,其中最有影响的是1999年osdi图灵奖获得者Barbara提出的pbft(实用BFT)[1]。但是,由于算法复杂度高,很难进行大规模部署。此外,这种算法还要求每个节点的身份是已知的,即当协议启动或新节点加入时,需要一个访问控制机制来确保节点能够相互验证身份。基于以上原因,2010年对传统BFT协议的研究并没有取得很大进展。
比特币的出现打破了人们对这一领域的理解。它使每个人都可以轻松地加入网络,而不需要任何访问控制机制。只要拥有至少51%算力的计算机是诚实的,整个网络是安全的,并且通过比特币奖励机制,鼓励参与者规范自己的行为。比特币通过其极为简单的设计,在一定程度上实现了“包罗万象,一视同仁”,这不得不说是一个奇迹。但奇迹是要付出代价的。在我看来,比特币有三大成本
巨大的资源消耗。参与电网的矿工需要支付大量的硬件和电力。
性能极低。比特币网络每秒可处理约7笔交易,每个区块的平均生成时间约为10分钟。
交易不确定性。即使在区块链中,fork仍然有可能被改写,因为在区块链中仍然存在被重写的风险。只有在等待一个块被确认几次(例如,6次)之后,该块被重写的风险才能被充分降低。这也进一步增加了交易确认的延迟。
为了降低这些成本,许多研究者做出了巨大的努力。例如,为了提高一致性算法的性能,康奈尔大学的研究人员于2016年在NDSI中提出比特币ng[2]。麻省理工学院和斯坦福大学的研究人员于2019年在CCS中提出了pri[3],以进一步扩大TCD的容量。此外,为了减少资源消耗,麻省理工研究人员在2017年提出了基于sosp堆栈证明的algorand,以消除挖矿消耗。
链式结构
区块链带来的另一个创新是链结构。每个块通过哈希与前一个块链接,并追溯到初始块,形成一个无穷无尽的链。这种结构的优点之一是当一个节点确认一个块时,意味着该块所在的链上的所有先前的块都被同时确认。基于这种链结构,很容易采用“最长链”原则在区块链中发布新区块。例如,在比特币中,由于网络问题和恶意攻击,一个矿工可能会看到多个链,但矿工总是倾向于在最长的链上挖矿。即使在挖矿过程中发现了一条较长的链条,也必须切换到较长的链条。“最长链”原则不一定要遵守,它不会对协议的安全性产生严重影响,但当所有矿工都遵守这一原则时,每个矿工都可以期望获得**的利益。当然,也有例外。当一个矿工拥有更多资源(少于50%)时,可以采取“自私挖矿”策略,以违反“最长链”原则,寻求更高的利润。
区块链的链结构也给研究传统BFT的研究者带来了很大的启发。许多为区块链量身定制的BFT协议开始出现。其中最**的是Facebook采用的librabft[5]共识协议。Librabft基于hotsuff[6],由VMware的研究人员提出。Hotsutff利用区块链的链式结构提高了传统BFT的性能,使得协议可以部署在数百个节点的网络中。让我简单地解释一下这个链式结构的魔力。
首先,我们设想使用传统的BFT协议来实现区块链。在传统的BFT协议中,一致性是一次性的,因此需要对每个块分别进行协商一致。例如,在提交准备中,提交准备有几个阶段。每一阶段都要经过一轮投票。看来他们也在做同样的事情。存在大量的消息冗余。如下图所示(来源[1])。
为了解决这个问题,hotsuff引入了基于pbft的链式结构。由于上述链结构的特点,节点对块的投票实际上是对块所在链上所有先前块的投票。因此,连锁酒店缩短了不同的投票阶段,保留了统一的提案投票形式。如下图所示(来源[6])。
hotsuff进一步利用链式结构的特点,制定了投票规则和提交规则,保证了协议的安全性。这种链式结构使得BFT协议简单、优雅,可以很好的流水线工作。它提高了协议的性能,大大减少了协议的状态空间。
除了以上优点外,链结构还为协议设计留下了足够的空间,如激励机制、信用管理、公平机制等,这将对多方网络起到积极的作用。
文章标题:了解区块链和分布式系统
文章链接:https://www.btchangqing.cn/93075.html
更新时间:2020年08月28日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。