几十年来,分散式系统的研究,特别是拜占庭共识和状态机复制(SMR)的研究,一直聚焦于两个主要目标:一致性和活性。一致性意味著所有节点对事务的顺序达成一致,而活性则确保系统能够持续接收新的事务。然而,这些特性并不能阻止恶意行为者在事务接收后篡改其顺序。
在公共区块链中,传统共识机制的缺陷已成为一个严重的问题。验证者、 区块建构者或 排序者可以利用其在区块排序中的特权地位来获取经济利益,这种做法被称为最大可提取价值( MEV )。这种操纵手段包括有利可图的抢先交易、抢后交易以及交易夹层。由于交易执行顺序决定了去中心化金融(DeFi)应用中的有效性和获利能力,因此交易排序的完整性对于维护公平性和信任至关重要。
为了解决这个关键的安全漏洞,交易顺序公平性被提出作为第三个必要的共识属性。公平排序协议确保交易的最终顺序取决于外部客观因素,例如到达时间(或接收顺序),并且能够抵抗恶意重排序。透过限制区块提议者重新排序交易的权力,这些协议使区块链更加透明、可预测且能够抵抗最大事件价值(MEV)攻击。
孔多塞悖论与理想公平的不可能性
最直观、最强有力的公平性概念是接收顺序公平性(ROF) 。 ROF 可以非正式地定义为“先接收,先输出”,它规定,如果足够多的交易(tx)比另一笔交易(tx′)更早到达大多数节点,则系统必须将tx 的执行顺序排在tx′之前。
然而,除非假定所有节点都能瞬间通讯(即在一个瞬间同步的外部网路中运行),否则实现这种普遍接受的「秩序公平」从根本上来说是不可能实现的。这不可能的结果源自于与社会选择理论,特别是孔多塞悖论之间令人惊讶的关联。
孔多塞悖论阐明了即使每个节点都保持著传递的内部交易顺序,整个系统的集体偏好也可能导致所谓的非传递循环。例如,可能大多数节点先接收交易A再接收交易B ,大多数节点先接收交易B再接收交易 C ,而大多数节点又先接收交易C再接收交易A。因此,这三种多数偏好构成了一个循环( A → B → C → A )。这意味著,交易 A、B 和 C 的任何单一且一致的顺序都无法同时满足所有多数偏好。
这个悖论表明,在非同步网路中,甚至在共享相同时钟的同步网路中,如果外部网路延迟过长,完美实现接收顺序公平性的目标都是不可能实现的。这种不可能性迫使我们采用较弱的公平性定义,例如批次顺序公平性。
Hedera Hashgraph 和中位数时间戳记的缺陷
Hedera采用Hashgraph共识演算法,力求近似实现更强的接收顺序公平性(ROF)。它透过为每笔交易分配一个最终时间戳记来实现这一点,该最终时间戳记的计算方法是取所有节点上该交易本地时间戳记的中位数。
然而,这种方法本身就很容易被操纵。即使所有诚实的参与者都按正确的顺序收到了交易,一个恶意节点也可以故意篡改其本地时间戳,并颠倒两笔交易的最终顺序。
考虑一个简单的例子,其中包含五个共识节点(A、B、C、D 和 E),节点 E 恶意行事。两个交易 tx₁ 和 tx₂ 被广播到网路中。所有诚实节点都先收到 tx₁,然后再收到 tx₂,因此预期的最终顺序应该是 tx₁ → tx₂。
在这个例子中,攻击者给 tx₁ 分配一个较晚的时间戳 (3),给 tx₂ 分配一个较早的时间戳 (2),以扭曲中位数。
当协议计算中位数时:
对于 tx₁,时间戳记(1、1、4、4、3)的中位数为 3。
对于 tx₂,时间戳记 (2, 2, 5, 5, 2) 的中位数为 2。
因为 tx₁ (3) 的最终时间戳大于 tx₂ (2) 的最终时间戳,所以协定输出 tx₂ → tx₁,从而颠倒了所有诚实节点观察到的真实顺序。
这个玩具例子显示了一个关键缺陷:中位数函数虽然看起来是中立的,但矛盾的是,它实际上是造成不公平的原因,因为即使只有一个不诚实的参与者也可以利用它来影响最终的交易顺序。
因此,Hashgraph 经常吹捧的「公平时间戳」实际上是一种非常薄弱的公平概念。 Hashgraph 共识机制无法保证接收顺序的公平性,而是依赖授权验证者集合,而非密码学保证。
实现切实可行的保障
然而,为了规避孔多塞所证明的理论上的不可能,实际的公平排序方案必须在某种程度上放宽公平的定义。
Aequitas 协议引入了区块顺序公平性 (BOF)准则,也称为批次顺序公平性。 BOF 规定,如果足够多的节点在收到另一笔交易 tx′ 之前收到交易 tx,则 tx 必须在 tx′ 之前或同时交付到区块中,这意味著任何诚实节点都不能在 tx 之后交付 tx′。这放宽了规则,将 ROF 的要求从「必须在之前交付」放宽到「必须在不晚于之前交付」。
考虑三个共识节点(A、B 和 C)和三笔交易:tx₁、tx₂ 和 tx₃。如果至少三个节点中的两个(多数)首先观察到某笔交易,则该交易被认为是「较早收到的」。
如果我们采用多数投票制来决定全球秩序:
tx₁ → tx₂(A 和 C 同意)
tx₂ → tx₃(A 和 B 同意)
tx₃ → tx₁(B 和 C 同意)
这些偏好形成了一个回圈:tx₁ → tx₂ → tx₃ → tx₁。在这种情况下,没有单一的顺序可以同时满足所有人的观点,这意味著严格的 ROF 是不可能实现的。
BOF 透过将所有冲突的交易分组到同一个批次或区块中来解决这个问题,而不是强制规定一个交易必须先于另一个交易。该协议的输出结果如下:
块 B₁ = {tx₁, tx₂, tx₃}
这意味著,从协议的角度来看,这三笔交易被视为同时发生。在The Block内部,一个确定性的决胜机制(例如哈希值)决定了它们的执行顺序。透过这种方式,BOF 确保了每对交易的公平性,并保持最终交易日志对所有使用者的一致性。每笔交易的处理时间都不会晚于其前一笔交易。
这一虽小但重要的调整使得协议能够处理交易顺序冲突的情况,方法是将冲突的交易分组到同一个区块或批次中。重要的是,这不会导致部分排序,因为每个节点仍然必须就单一的线性交易序列达成一致。每个区块内的交易仍然按照固定的顺序执行。在没有此类冲突的情况下,协议仍然能够实现更强的 ROF 特性。
尽管Aequitas成功实现了BOF(基于孔多塞演算法的加密),但它也面临著许多局限性,尤其是通讯复杂度极高,且只能保证弱活性。弱活性意味著只有在交易所属的整个孔多塞循环完成后,才能保证交易的交付。如果循环「炼式」连接,这可能需要任意长的时间。
Themis 协定的引入旨在确保与 BOF 协定相同的强 BOF 特性,同时降低通讯复杂度。 Themis 透过三种技术实现这一目标:批次展开、延迟排序和更强的批内保证。
标准版的Themis要求每个参与者与网路中的大多数其他节点交换讯息。所需的通讯量随网路参与者数量的平方而增加。然而,在其最佳化版本SNARK-Themis中,节点使用简洁的加密证明来验证公平性,而无需直接与每个其他参与者通讯。这降低了通讯负载,使其仅呈线性成长,使Themis即使在大型网路中也能高效扩展。
假设参与共识的五个节点(A–E)收到三笔交易:tx₁、tx₂ 和 tx₃。由于网路延迟,它们的本地顺序不同:
与 Aequitas 类似,这些偏好也构成了一个孔多塞循环。但 Themis 并没有等待整个循环完成,而是使用一种称为批量展开的方法来保持系统运作。它识别出循环中的所有事务,并将它们分组到一个集合中,称为强连通分量 (SCC)。在本例中,所有三个交易都属于同一个 SCC,Themis 将其输出为一个进行中的批次,标记为 Batch B₁ = {tx₁, tx₂, tx₃}。
透过这种方式,即使 B₁ 批次的内部订单仍在最终确定中,Themis 也能确保网路持续处理新的交易。这保证了系统保持运行,避免系统停滞。
概述:
交易排序中「完全公平」的概念看似简单明了:谁的交易最先到达网络,就应该先处理。然而,正如孔多塞悖论所揭示的,这种理想在真实的分散式系统中无法实现。不同的节点看到的交易顺序各不相同,当这些顺序发生冲突时,任何协议都无法在不做出妥协的情况下建构一个普遍适用的「正确」顺序。
Hedera 的 Hashgraph 尝试用中位数时间戳来近似实现这一理想状态,但这种方法更依赖信任而非证明。一个不诚实的参与者可以扭曲中位数并颠倒交易顺序,从而揭示出「公平时间戳记」并非真正公平。
像 Aequitas 和 Themis 这样的协议透过承认哪些可以实现、哪些不能实现,推动了相关讨论向前发展。它们没有追求不可能的目标,而是重新定义了公平,使其在真实的网路环境下仍能维护秩序的完整性。最终呈现的并非对公平的否定,而是公平的演进。这种演进清晰地区分了感知到的公平和可证明的公平。它表明,去中心化系统中真正的交易顺序完整性不能依赖声誉、验证者信任或许可控制,而必须来自协议本身嵌入的加密验证。
本文不构成任何投资建议或推荐。所有投资和交易行为均有风险,读者在做出决定前应自行进行研究。
本文仅供一般资讯参考,不构成法律或投资建议,亦不应被视为法律或投资建议。文中所表达的观点、想法和意见仅代表作者个人立场,不一定反映或代表Cointelegraph的观点和意见。
Cointelegraph不会将本文内容及文中提及的任何产品背书。读者在采取任何与文中提及的产品或公司相关的行动前,应自行进行调查研究,并对自身决定承担全部责任。




