作者说明:init4研究团队专注于开发下一代以太坊工具。本文是一篇研究笔记而非正式披露文档。在讨论已部署和提议系统的安全模型时,我们会分析其中的细微差别和潜在不足,但将这些描述为”漏洞”或”之前未知的问题”并不准确。
抗审查一直是加密货币特别是以太坊的核心价值主张。我们坚信链上交易的益处应该向所有人开放,区块链规则应当平等适用于所有用户和使用场景。这些价值观推动着整个领域的发展,而工程学的使命就是将这些理想与现实对照,发现它们在何处以及如何可能出现偏差。

多米诺骨牌也有其序列规律 :) 图片由 Tom Wilson 提供,来源于 Unsplash
审查的重新定义
传统上,我们将审查定义为故意阻止交易出现在标准排序中(即交易排除)。当排序完全依赖经济激励时,我们认为排序是公平的;而当排序依赖其他非经济因素时,则视为不公平或被审查。例如,区块创建时排除低手续费交易是可接受的,但仅因交易发送者身份而排除交易则不可接受。因此,当交易包含与否取决于非经济信息时,该交易就被视为被审查。如果一笔交易能为排序系统带来比其他已包含交易更多的可观察收益却未被包含,那么它就被认定为被审查。这一定义推动了对审查抗性强制包含机制的研究,因为如果用户能强制包含交易,根据定义该交易就无法被审查。
强制包含机制的实际应用
OP Stack链的核心安全目标之一是确保排序器不能阻止用户向L2链提交交易。现代Rollup通常采用中心化排序机制,这使得排序器可以轻易审查特定用户的交易。为解决这一问题,包括Optimism和Arbitrum在内的多个Rollup都实施了强制包含机制。这些机制允许用户确保其交易在一定延迟后由Rollup执行,不受排序器行为影响。强制包含通过部署在L1上的合约实现,理论上具有与以太坊交易相同的抗审查性。

强制包含机制为有效排序设定了新的约束条件。以EIP-7547为例,该提案为以太坊设计了一个强制包含机制。包含列表允许区块提议者部分指定下一个区块的内容,在假设区块提议者审查动机低于区块构建者的情况下,能有效缓解审查问题。
审查模型的扩展思考
交易确认只是手段而非目的,现有的审查模型存在明显不足。审查应当基于目标来定义:用户希望发送代币、购买NFT或借入资金,而交易确认只是实现这些目标的附带结果。审查者也有特定目标,可能是阻止黑客交易、遵守法规或干扰竞争对手业务。考虑到双方意图,我们需要重新审视审查定义。
更准确地说,当第三方能够阻止交易实现其目标时,该交易就被审查。审查者不需要阻止交易确认,只需使智能合约执行回退即可。使EVM交易回退就是对该交易的审查,尽管该交易已被包含在标准链中。忽视交易内容的威胁模型无法准确模拟审查,也就无法有效保护用户。
从半正式角度看,对于每次链上交互,我们可以使用评分谓项f来评估排序结果,输出0(目标未达成)或1(目标达成)。在这个模型中,审查者的评分函数实际上是f’=!f。当用户未达成目标时,审查者就实现了目的。虽然用户目标可能隐藏,但交易本身通常包含足够信息进行推断。由于区块链的确定性,审查者可以完美预测哪些排序能满足其谓项。因此用户不能依赖隐藏信息来保护自己免受EVM模型中的审查。
假设我们在标准提前排序器模型下工作,排序器对排序有完全控制权并能完美模拟任何结果。我们提出的半正式问题是:”是否存在某个有效排序使f评估为0?”如果存在,排序器就可以选择它。强制包含只是约束了排序器的行为,而非剥夺其控制权。遗憾的是,强制包含存在根本性问题,使其在许多交易中无法成为有效的抗审查机制。
交接问题的本质
强制包含机制意味着排序发生在两种模式间转换:非强制与强制。这个转换点就是交接,它给强制包含机制设计带来了棘手问题。

必须从非强制包含过渡到强制包含。在交接时,强制交易在特定状态下执行,这就再次引入了状态争用问题。当交接发生在交易批次(如区块)内时,批次创建者可以控制交接时的状态。如果强制交易读取任何公共状态,批次创建者就能在强制交易执行前后修改这个状态,这种状态争用足以导致审查。
由于批次创建者控制交接状态,他们可以影响强制交易结果。例如考虑一个简单的AMM交互:用户设置了最低可接受价格,但批次创建者可确保交接时市场价格低于此价格,导致用户交易回退,实际上就是对用户的审查。值得注意的是,通过状态争用进行的审查比排除更有效:被排除的交易可被重新包含,而通过争用被审查的交易则永久无效,用户必须重新创建并提交交易。
现实系统中的挑战
在提前排序模型中,排序器对交接位置有近乎完美的控制,且支付费用减少(因为他们不需要支付小费,并能对EIP-1559的基础费用进行一定控制)。这使得排序器在使用状态争用审查用户操作方面处于特权位置。交接问题确保排序器可以审查大量交易类别。
对于EIP-7547,构建者选择区块中交接发生的位置。这意味着他们可以自由选择前缀和后缀,只要遵守区块Gas规则。前缀可将链置于交易会回退的状态,后缀则将链恢复至正常状态。EIP-7547的包含列表不足以防止访问有争议状态的交易被审查。交接问题阻止了包含列表在多数情况下确保交易执行。
强制包含对大多数区块链非一般用途而言,无法有效保护用户免受审查。交接问题确保即使排序自由度不足,审查者也有足够的状态控制权。这一问题影响AMM、借贷市场、拍卖及大多数其他DeFi操作。即使能保证交易包含,许多重要操作仍可能被审查。状态争用严格限制了强制包含作为抗审查机制的有效性。
典型案例分析
考虑用户在Optimism借贷市场存入USDC的场景。当用户想提取USDC时,他们提交Optimism交易但被排序器审查。于是用户使用官方强制包含机制将交易排队至以太坊,绕过排序器。

排序器可以看到这个排队交易并执行夹心交易进行审查:在强制交易前立即借出所有可用USDC,使市场失去流动性导致强制交易回退,然后立即偿还USDC。这要求排序器拥有足够抵押品,但实际借款成本很低,且抵押品在所有审查操作中可重复使用。因此在Optimism或Arbitrum等集中排序rollup上使用AAVE或Compound的用户无法保证能赎回抵押品。排序器可随时审查任何借贷市场的提款,强制包含根本无法保护用户。
未来研究方向
我们有几个后续研究方向:首先,EIP-7547可通过要求IL交易在下一个区块末尾处理来改进。在PBS拍卖背景下,审查即MEV。构建者从中获得非经济价值,这些价值需以ETH为单位分配主观价值。因此构建者审查会导致其区块竞标增加。将强制包含交易放在区块末尾可消除构建者轻松夹心IL交易的能力,增加有争议审查的经济成本。
其次,交接问题存在是因为审查者可通过交易模拟预见并控制输入状态。许多MEV抵抗机制引入隐藏信息以去除审查者推断用户目标和模拟结果的能力。这些”提交-揭示”方案通常与MEV供应链、以太坊共识过程及rollup排序模型不兼容。消除模拟交易能力的方法将解决审查和大类MEV,但对协议、操作员、应用和用户都极具侵入性。
第三,”顺序无关”评分函数值得研究。这些是无法通过状态争用审查的目标,要么不访问有争议状态,要么访问的有争议状态具有足够约束使其”可靠”。与顺序无关的操作包括向EOA发送ETH、大多数ERC-20转账及某些DeFi交互如向市场添加抵押品。这类目标在安全跨链通信和MEV抵抗中有趣对应关系,值得深入研究。
最终结论
丰富的状态使恶意行为者能在包含交易的同时进行审查。交接问题是强制包含机制的根本问题,只能缓解而无法根除。在中心化排序rollup中,这一问题无法缓解。强制包含无法解决存在有争议状态时的审查问题,大量经济重要交易仍可被审查。交接问题在现代rollup中普遍存在,也存在于以太坊抗审查EIP中。因此强制包含虽有益,但永远不足以为丰富状态的链提供完整抗审查性。Rollup并不”继承”以太坊所有安全属性,认为它们会这样做是片面的。当我们不再过度关注交易包含时,很明显抗审查性只是抗MEV的一个特例。
特别感谢Mike Neuder、Tarun Chitra和Brandon Curtis对本文的审阅和宝贵反馈。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/15925.html