美国联邦储备委员会,华盛顿特区ISSN 1936-2854 (印刷版)ISSN 2767-3898 (Online) 赫拉克略斯:一个具有现代支付系统潜在应用的拜占庭容错数据库系统 詹姆斯·洛夫乔伊,塔拉卡拉姆·戈拉穆迪,杰里米·卡西斯,纳拉扬那南·皮莱,杰里米·布罗塞顿,及埃里克·汤普森 2025-012 请引用此论文为:Lovejoy, James, Tarakaram Gollamudi, Jeremy Kassis, Narayanan Pillai, Jeremy Broth-erton, 和 Eric Thompson (2025). “Heraclius: A Byzantine Fault Tolerant Database系统具有对现代支付系统的潜力,”《金融与经济研讨会》sion系列2025-012. 华盛顿:美联储理事会,https://doi.org/10.17016/FEDS.2025.012. 注意:金融与经济讨论系列(FEDS)的工作人员论文是初步材料,旨在激发讨论和批判性评论。所述分析和结论是作者的观点,并不代表研究团队成员或董事会成员的同意。出版物中引用金融与经济讨论系列(除致谢外)的内容,应征得作者同意,以保护这些论文的初步性质。 赫拉克略斯:一个具有现代支付系统潜在应用的拜占庭容错数据库系统 詹姆斯·洛夫乔伊,波士顿联邦储备银行;塔拉卡兰·戈拉穆迪,波士顿联邦储备银行;杰里米·卡西,旧金山联邦储备银行;纳拉亚纳纳·皮拉伊,旧金山联邦储备银行;杰里米·布罗瑟顿,国家情报局联邦储备银行;以及埃里克·汤普森,波士顿联邦储备银行 摘要 现代支付系统对美国及全球经济至关重要,它们都利用计算系统来促进交易。这些计算系统可能容易受到故障的影响,而支付系统的中断可能会对其支持的经济造成严重的连锁反应。 常用的现有分布式计算机系统设计往往缺乏针对某些类型故障(例如恶意攻击和静默数据损坏)的内置防御措施,并且依赖于通过系统本身之外的技术来防止这些故障的发生。这些计算机系统故障可能导致依赖于它们的系统(例如现代支付系统)出现停机。拜占庭容错(BFT)系统具有提高鲁棒性和安全性的潜力。BFT系统可以容忍比当代设计更广泛的故障模式,但存在性能挑战。我们的工作旨在设计和评估一个可扩展的BFT架构,并将其特性与其他用于支付基础设施的数据库架构进行比较。这项分析旨在更好地理解技术权衡,并对更广泛的政策或运营考虑因素持中立态度。 本文介绍了Heraclius,一个可并行化的基于领导者的BFT键值存储,可扩展用于支付系统。Heraclius通过并行执行交易来实现高交易量。我们分析了该协议的可扩展性、瓶颈及其潜在解决方案。我们在最多256个节点的原型实现中,实现了每秒110千次操作的交易量,交易延迟为0.2秒。 引言 支付系统预计将提供速度、低成本、高可用性和计算正确性,并在对抗性环境中运行。此类系统中的停机时间将使其无法结算支付,可能导致经济遭受重大破坏。许多支付系统利用分布式计算来提供崩溃故障容错(CFT),这在提供速度和低成本方面相对较好,但必须依赖封闭式花园和其他保护措施,以便在对抗性环境中提供高可用性。相比之下,拜占庭容错(BFT)技术可能被用于开发在恶意方和沉默数据损坏存在的情况下具有高可用性和保证正确性的系统。i然而,BFT系统通常比当代的CFT设计提供更差的表现,并且可能存在新的安全或操作缺陷。在本文中,我们提出了Heraclius,一个利用新型BFT系统的创新系统。 并行处理以实现更高的性能,同时容忍拜占庭错误。这样一个系统在支付系统领域可能会有有趣的应用。 容错与电子支付 电子支付系统,如FedNow、自动清算所(ACH)、Venmo和Visa,本质上执行的是从付款人账户余额到收款人账户的指定金额资金转移。这些传统电子支付系统通常依赖于数据库管理系统(DBMS)作为账本来记录交易和用户余额。数据库管理系统通常作为一个独立的应用程序运行,与支付系统分开。 一个故障是指在组件、设备或子系统层面上的异常状态或缺陷,这可能导致故障,电子支付系统可能会遭受硬件故障,并且其软件可能包含错误。ii许多这些故障预计会以某种规律性发生,这是由于硬件可靠性、软件正确性和自然灾害等外部事件的固有局限性。总的来说,硬件或软件组件的故障可能导致两类故障:崩溃故障和拜占庭故障。崩溃故障是一种组件停止处理且不再响应用户请求的故障(例如,由于电源故障)。对于拜占庭故障,组件可能会表现出崩溃故障,但也可能错误处理数据或选择性响应用户请求。任何对于所涉及组件而言不正确的行为都被认为是拜占庭行为。拜占庭故障可能比崩溃故障由更多潜在故障引起,从软件错误到宇宙射线或恶意攻击。能够容忍崩溃故障的系统被称为崩溃故障容错(CFT),而能够容忍拜占庭故障的系统被称为拜占庭故障容错(BFT)。 在一个CFT系统中,拜占庭故障可能导致数据完整性违规、造成停机,并且可能难以检测。在CFT系统中,与拜占庭故障相关的风险通常在系统外部进行缓解,通常通过仔细的代码审查、备份、入侵检测和物理安全。这些缓解策略可能受到人类因素的影响,并且实施起来可能成本高昂。一种替代的BFT设计可以通过软件自动和可预测地缓解许多这些风险,使系统操作员能够减少与现有缓解策略相关的成本,或者简单地通过多层次防御提供额外的保证。在一个电子支付系统被视为关键国家基础设施且故障无法容忍的世界中,BFT可能是一个理想属性。然而,BFT系统通常具有吞吐量可扩展性限制,这可能会使它们不适合需要高吞吐量容量的系统。 共识算法 数据库管理系统(DBMS)通常被架构为分布式系统来实现现代支付系统,这包括大多数,如果不是所有传统的电子支付渠道。以一个简单的例子来说,一个设有用于灾难恢复的后备位置的支付渠道将被视为分布式系统。 分布式系统通过利用共识算法提供容错、高可用性和可伸缩性。在分布式共识中,多个服务实例在不同的服务器(称为“节点”)上运行,并通过网络进行通信。每个节点以锁步的方式执行相同的操作,并对结果(通常称为“状态”)进行投票以达成一致。一组共同工作以执行特定应用程序的分布式共识的节点被称为“集群”。分布式共识通过假设故障是不相关的来提供容错性,因此一个节点的故障不会发生 独立于其他节点。共识协议依赖于节点执行冗余工作以容忍故障。各个节点执行工作,分享他们的结果,并对一个结果进行投票。其他节点可以要求对投票决策进行密码学证明。 如果所谓的“法定多数”即节点总数的一定阈值持续处理操作并对相同的结果进行投票,那么整个集群可以通过检测无效工作并忽略它们的投票来容忍有故障的节点。当集群中的法定多数节点成功对一个新的提议状态进行投票时,便做出了一项“决定”。根据特定的分布式一致性算法,集群可以容忍不同类型的故障,包括崩溃或拜占庭式的故障。 由于需要一定数量的节点对决策进行投票,集群的吞吐量(即每秒的交易数量)受最慢节点的限制。这使得基于单个集群的系统难以扩展(即增加节点可以提高吞吐量)。相反,可扩展的系统使用额外的技术,特别是分区,其中多个不同的集群并行工作,以分配工作量。这使得整个系统可以通过添加更多集群来扩展,同时保持单个集群的吞吐量保持不变。 先前工作 以下部分确定了数据库管理系统(DBMS)和拜占庭容错(BFT)技术领域的前期研究成果。这些成果被提出是为了展示其对该领域的技术贡献。 项目汉密尔顿和帕尔塞克 项目汉密尔顿iii和 PArSEC iv是利用Raft算法实现分布式共识的专业系统。无效输入。请提供有效的英文文本以便进行翻译。共识算法和分区以实现一个具有容错能力的可扩展电子支付系统。哈密尔顿项目展示了每秒至少1.8百万笔交易的吞吐量,延迟低于5秒,而PArSEC展示了每秒11.8万笔交易的吞吐量,具有线性可扩展性和类似的延迟。这两个系统并行执行支付,从而提高了吞吐量。它们还展示了容错能力。然而,这两个系统都不能容忍拜占庭错误。 项目Hamilton可以通过增强来提供对拜占庭错误的检测。这个增强系统可以检测到拜占庭错误的发生,并防止在错误被识别和解决之前进一步处理交易。vi尽管该系统可以防止拜占庭故障损坏数据,但在拜占庭故障存在的情况下,系统无法安全保持可用。因此,拜占庭故障可能会影响系统的可用性。 Hotstuff和BFT-SMaRt Hotstuff第七部分和 BFT-SMaRt第八章是基于领导者的BFT共识算法,适用于权限设置,其中节点集合由系统操作员严格控制。与早期的BFT算法相比ixHotstuff和BFT-SMaRt可以在不降低吞吐量的情况下支持更多节点参与共识。虽然这些BFT共识算法提供了高容错性、更好的安全性、吞吐量和延迟,但它们仍然是单集群算法。因此,它们在不增加支持并行工作更多集群的附加功能的情况下,无法提供吞吐量可伸缩性。 比特币 最大的且运行时间最长的能够容忍拜占庭错误的电子支付系统是比特币。比特币通过其共识机制提供非常高的弹性和安全性。然而,这却以两个挑战为代价。 首先,比特币由于其无需许可的工作量证明共识算法(比特币节点可以自由加入和离开,并且可以被任何人操作),需要大量的能源消耗和计算能力。这对于在授权设置下运行的集中式支付系统并非必要组成部分,中央银行可以采用其他避免高额成本的BFT算法。 其次,比特币是一个不支持并行化或分区的单一集群系统。这两个因素导致比特币具有高延迟和低吞吐量。如今,比特币每秒只能处理大约7笔交易,延迟从10分钟到1小时不等,具体取决于收款人需要考虑的决策包含支付最终性的概率阈值。x 我们的贡献 我们的当前工作旨在构建一个适用于既支持拜占庭容错(BFT)又具有横向扩展能力的电子支付系统的数据库。我们介绍了赫拉克勒斯(Heraclius)。xi一个可扩展、分布式键值存储数据库管理系统,利用加密证明的共识协议以提供拜占庭容错能力。我们创新的跨BFT集群通信协议允许将多个BFT集群组合成两层网络架构,以协调客户端请求并分别处理数据。该协议通过验证跨集群请求和响应的真实性和完整性,保留了整个系统的拜占庭容错能力。这解锁了数据分区和并行处理请求的能力,通过增加共同工作的集群数量来提高吞吐量。 我们已在云平台上实施了系统的原型版本,并通过基准测试对其可扩展性、吞吐量和延迟进行了定量评估。我们表明,虽然我们可以构建一个安全的协议,同时保留整体系统中的BFT,但与我们的先前工作相比,协议设计限制了系统的可扩展性,并增加了额外的成本和复杂性。 本文的剩余部分首先描述了我们的架构、协议设计和安全论证。其次,我们描述了我们的实现和基准测试设置。第三,我们展示了我们的可扩展性基准测试结果。最后,我们将我们的定量结果与现有系统进行比较,对与我们的设计相关的权衡进行了定性分析,并提出了未来工作的想法。 系统概述 赫拉克利乌斯是一个单键操作键值数据库,同时结合了分布式共识算法。键值存储是一种数据库类型,它以简单的键值对形式存储数据:一个唯一的键及其对应的值。该系统由两个不同的子系统组成,即分片子系统和协调器子系统。每个子系统都是一个集群网络。每个集群包含多个在独立服务器(称为“节点”)上运行的服务副本,并通过网络进行通信。如果一个节点(或副本)偏离了协议规范,则被视为故障节点。 下面的图表是赫拉克利乌斯及其碎片子系统和协调器子系统的示意图。 BFT round每个集群都有一个指定的领导者,该领导者与客户互动。领导者将外部客户或集群的多个请求组合起来,并提交给投票提案。集群中的所有节点处理请求,生成任何响应并将它们附加到提案中,然后投票决定是否接受或拒绝提案。领导者将投票汇总成包含每个投票节点加密签名的议会证书(QC)。议会证书需要集群中总节点数的超级多数同意相同的提案,在此之后,提案成为决定并最终确定。一旦议会做出决定,领导者将带有加密证明的请求分发给对应集群的决定队列。对应集群在提取和处理来自远程集群的任何请求或响应之前,将验证这些决定。集群结构提案,以便对应集群可以从总