比特币是世界上最安全的区块链,其由工作量证明(PoW)矿工网络的巨大算力提供支持,但该网络会消耗大量的能源。相比之下,权益证明(PoS)链是节能的,其具有快速的确定性等有益特性,但PoS链会面临几个基本的安全问题:易受不可罚没的长程安全攻击、交易审查以及停滞攻击影响,并且PoS链在低估值的情况下,还会面临难以引导的问题。
那我们是否有可能同时去结合比特币工作量证明(PoW)和权益证明(PoS)共识机制的好处呢?如果能够成功实现,那这将解决很多PoS链会面临的安全难题。
由斯坦福大学电气工程专业博士生Ertem Nusret Tas、美国国家工程院院士David Tse以及华盛顿大学助理教授Sreeram Kannan等人提出的Babylon区块链架构,旨在借助比特币网络算力来增强PoS链的安全性。简单来说,Babylon提供的是一种数据可用时间戳服务,通过允许PoS 链对 Babylon 上的可用数据区块检查点、欺诈证明和审查交易添加时间戳来保护PoS 链。此外,由于Babylon矿工和比特币是合并进行挖矿的,因此该平台的额外能源成本为零。
注:本文只是简单描述了Babylon区块链架构涉及到的一些概念,如果你有兴趣深入了解它,可以通过以下的链接查看完整原论文:
https://arxiv.org/pdf/2201.07946.pdf
从工作量证明(PoW)到权益证明(PoS)
比特币是世界上最有价值的区块链,它由一个工作量证明(PoW)协议保护,该协议要求矿工通过计算随机哈希来解决数学难题。截至目前,全球比特币矿工网络的总算力约为205.98 EH/s,巨大的算力网络是比特币的安全基础,因为试图重写比特币账本或审查交易的攻击者必须掌握一定比例的算力,这使得攻击协议的成本达到了一个天文数字。
然而,这种安全保障也需要付出巨大的能源成本。因此,很多较新的区块链避开了工作量证明(PoW)范式,转而采用节能替代方案,其中最流行的就是权益证明(PoS)。以太坊就是一个突出的转PoS方案的例子,该计划已经酝酿了6年的时间。而其他知名的PoS区块链,包括Cardano、Algorand、Solana、Polkadot、Cosmos Hub以及Avalanche等。除了能源效率,很多PoS区块链的另一个主要优势是,它们有可能让违反协议的人承担责任,并罚没他们质押的代币以作为惩罚。
权益证明(PoS)面临的安全问题
早期证明PoS协议安全性的尝试,是在假设大多数或绝大多数token属于诚实方的情况下进行的。然而,诸如加密货币之类的现代 PoS 应用,越来越多地由受财务激励驱动的经济主体运行,而不是先验诚实的。为了确保这些代理人遵守协议规则,通过对违反协议的行为进行惩罚,并奖励诚实行为,这对系统的安全性而言是至关重要的。为了实现这一目标,Vitalik Buterin和Virgil Griffit提出了责任安全的概念,即在发生安全违规事件时,能够识别出违反协议的验证者。
相比无法验证的诚实多数假设,这种方法旨在通过让违反协议的人承担责任,并罚没他们质押的token来获得这些协议安全的加密经济学概念,从而能够准确量化违反协议的惩罚。
这种信任最小化的安全概念,是一些重要PoS共识机制的核心(例如以太坊2.0 采用的Gasper,以及支持Cosmos 生态系统的Tendermint协议)。然而,为 PoS 协议实现这种信任最小化的加密经济安全,存在着几个基本限制:
安全攻击不可罚没:虽然具有责任安全性的 PoS 协议可以识别攻击者,但并不总是可以罚没他们的权益,这意味着会缺乏可罚没的安全性。例如,可以在已提取token权益后使用旧币进行长程历史修正攻击,因此无法罚没。这些攻击方式在比特币这样的PoW 协议中是不可行的,因为攻击者需要对抗现有最长链的总难度。相比之下,在PoS 协议中,这种攻击是可以负担得起的,因为旧币的价值不大,并且可以被攻击者以很小的价格购买。这种长程攻击是PoS 协议面临的一个众所周知的问题,并且已经有几种方法可以处理它们。但根据研究发现,没有任何PoS协议可以在没有外部信任假设的情况下,提供可罚没的安全性。实践中使用的典型外部信任假设是「链下社区共识检查点」。但是由于这种类型的检查点不能频繁地进行,因此必须将质押锁定期设置得很长(例如,Cosmos zone区块链的典型锁定期是21天),从而降低了系统的流动性。而且,在具有不成熟社区的较小区块链中,不能依赖于社区共识。
活性攻击(Liveness attacks)是不可追责的,也是不可罚没的,这些攻击的例子包括协议停滞和交易审查攻击。与对手双重签名冲突区块的安全攻击不同,此类攻击很难在PoS 协议中被追责。例如,以太坊 2.0 试图通过inactivity leak 的过程,罚没没有投票权的证明者,以追究协议停滞的责任。然而,正如在Babylon原论文第 4.2 节中讨论的那样,攻击者可以创建一条替代链,并在很长时间后将其公开,在该链中,诚实的证明者不会投票,因此会遭到罚没。
此外,目前还没有已知的机制来追究对特定交易的审查责任。在这种情况下,我们可以认为,没有外部信任假设,任何PoS协议都不可能拥有可追责的活性,更不用说可罚没的活性。
引导问题:即使PoS协议可以提供可罚没的安全保障,攻击者因罚没而遭受的最大经济损失,也不会超过其质押token的价值。因此,PoS协议的加密经济安全性,是与其代币估值成正比的。而很多新的PoS链,尤其是那些支持某个特定应用的Cosmos PoS链,它们一开始的经济规模很小,代币估值较低,这使得新区块链难以支持去中心化金融(DeFi)或NFT等高价值应用。
利用比特币挖矿算力提供外部信任
图 1: Babylon架构,Babylon是一条与比特币合并挖矿的PoW链,然后PoS协议可以使用它来获得可罚没的安全性。
上面我们提到,没有外部信任来源,PoS系统面临的安全问题就无法得到解决。
而区块链生态系统中已经存在着一个强大的信任来源:比特币挖矿。基于这一观察,研究者们提出了Babylon区块链架构,它可以利用现有的比特币算力,以增强任何使用该平台的PoS链的安全性(图1)。Babylon是一个PoW区块链,多个PoS链可以在其网络上发布信息,并使用该信息的顺序和可用性来获得加密经济安全保障,同时保留PoS链所有可取的功能(例如快速确定性)。而比特币矿工可通过一种称为“合并挖矿”的技术挖取Babylon,这种技术可以在多条链上重复使用相同的算力(参见原论文附录B)。因此,通过利用现有的比特币算力,Babylon在不增加额外能源成本的情况下增强了PoS链的安全性。
Babylon: 一种数据可用时间戳服务
以上描述的PoS协议安全问题背后的一个主要原因,是缺乏可靠的时间箭头。
Babylon 通过为 PoS 链提供数据可用的时间戳服务来解决这些安全限制。为了获得可罚没的安全保证,PoS 协议的全节点将协议相关信息的承诺发布到Babylon PoW区块链上(图2)。Babylon 检查这些commitments背后的消息是否可用,并根据其commitments在Babylon链中的位置为消息提供时间戳。
这使 PoS 节点(包括后来的节点)能够了解每条数据首次公开的时间和顺序。然后,PoS节点可以将该数据的时间戳与原PoS协议的共识逻辑结合使用,以解决安全冲突,识别协议违反者,并在发生安全或活性违规事件时撤销其质押token之前罚没他们。例如,每当 PoS 协议中存在安全违规导致分叉时,Babylon 上的时间戳可用于通过选择具有较早时间戳的分支来解决分叉(图 2)。只要在Babylon上记录了双重签名或违反活性的证据,就可以使用Babylon上的信息无可辩驳地识别和罚没需要负责的PoS 参与者。
图2:Babylon PoW 链提供了 PoS 链上事件发生时间的记录
为了解决 PoS 协议的安全问题,Babylon 除了为 PoS 数据添加时间戳外,还必须保证这些数据是可用的,即在加时间戳时已经向诚实的 PoS 节点公开。
否则,控制多数质押token的对手,就可以发起不可罚没的长程攻击(图3)。
图3:不可罚没的长程攻击
因此,Babylon还必须提供额外的功能来检查其增加时间戳的 PoS 数据的可用性。通过直接在比特币或以太坊上发布简洁的承诺,来为PoS数据添加时间戳的解决方案无法满足这一功能 ,而发布所有数据会引起可扩展性问题(参见论文第2节了解更多信息)。因此,它需要一个新的PoW链,而Babylon的矿工被指示在PoS 节点的视图中检查时间戳数据的可用性。
Babylon的架构由两个主要的组成部分组成:
(1)Babylon PoW 链(简称Babylon),它和比特币网络是合并挖矿的,以及(2)Babylon增强PoS协议,每个协议由一组不同的PoS节点(简称节点)维护。Babylon增强PoS协议,是建立在标准的Cosmos安全PoS协议之上的。
与Cosmos hub一样,Babylon也是极简主义的,因为它只是提供了一个数据可用时间戳服务,它并不执行PoS链上的交易,也不跟踪参与者,事实上,它甚至不需要理解PoS区块内容的语义,而且Babylon也不存储PoS数据。Babylon需要做的,就是检查它所标记的PoS数据的可用性,并向PoS节点公开这些数据,这可以高效地完成。这种极简主义,允许Babylon在实现可扩展性的同时,支持多条PoS区块链的安全性。
COSMOS SDK 参考设计
Cosmos 是一个知名的开源区块链生态系统,它支持可定制的区块链,它还通过使用Cosmos Hub (ATOM) 作为信任锚来实现区块链间通信。
因此,Cosmos通过其SDK和生态系统提供了演示Babylon增强PoS区块链协议所需要的工具。
为此,我们先来简要回顾基本的Cosmos模块如何协同工作,以保护Cosmos zone的安全,然后展示Babylon如何通过简单的模块扩展来增强这些Cosmos zone区块链的安全性。
Cosmos 概述
Cosmos将核心共识协议和网络封装在其Tendermint共识引擎中,该引擎的底层是Tendermint BFT。开发者们已经构建了几个可互操作的模块,以与这个共识引擎一起作为一个完整的区块链系统。每个模块提供了不同的功能,例如授权、token传输、staking质押、罚没等,并且可以进行配置以满足应用程序的要求。在这些模块当中,以下的模块是与安全性直接相关的:
证据模块:允许任何协议参与者提交证据,并处理对抗性行为的证据,如双重签名和不活动等行为;
罚没模块:基于有效证据,通过罚没质押权益等方式惩罚对抗性验证者,并将其排除在BFT委员会之外;
危机模块:在出现预先定义的灾难性事件时暂停区块链,例如,当所有账户质押的权益超过系统质押的总权益时;
治理模块:在软件更新和社区资金支出等决策中实现链上区块链治理;
论文作者们注意到,这些模块目前无法处理上述的长程攻击和交易审查攻击问题,此外,如果出现诸如链分叉等灾难性事件,系统无法自行从停机状态恢复。这类事件只能通过人工干预来解决,而人工干预可以是主动的,也可以是被动的。在主动的人工干预场景下,系统的利益相关者会定期在区块链上达成共识并发布检查点,以防止长程攻击。而在被动的人工干预场景下,当发生分叉事件时,利益相关者会聚在一起并决定选择一个分叉作为规范链。
由于这两种干预都需要利益相关者进行商讨决定,因此它们是“社区共识”的一部分。
使用Babylon促进Cosmos PoS链的安全性
为了增强Cosmos PoS链与Babylon的安全性,研究者们在Cosmos SDK中添加了一个名为BE(Babylon enhancement)的新模块。
该模块执行了Babylon论文中描述的协议,只需要与现有 Cosmos 模块进行直接交互。一些关键交互如下图所示:
BE 实现了特定于Babylon的附加组件,例如分叉选择规则,以输出规范PoS 链。它会监控检查点、欺诈证明、审查投诉和拖延证据。它与治理模块通信以获得社区资金支出的批准,以支付Babylon交易费用。它通过定制的客户端将上述消息提交给Babylon链,并使用Babylon交易向矿工付款。
如果通过解释Babylon上的消息检测到任何敌对行为,它会将证据提交给证据模块,然后与罚没模块一起罚没PoS链上的敌对验证者。在PoS链发生分叉的情况下,它与危机模块交互以暂时暂停系统,并通过治理模块提出解决方案以恢复系统。
当取款请求以及与Babylon相关的PoS 交易提交给 Tendermint 共识引擎时,它会帮助共识引擎验证此类交易。
而现有的Cosmos 模块,可以通过API 和数据格式配置支持上述所有交互。
关于Babylon方案, Osmosis联合创始人Sunny Aggarwal 评论称:
“Babylon的想法本质上是使用比特币 PoW作为密码学时间戳及数据可用性层,这个想法已经被很多核心 Tendermint 开发人员讨论过,而由David Tse教授带领的团队所构建的Babylon协议,旨在有效地使用比特币作为 Tendermint 区块链的附加安全层。“