在 relay 级别上解绑,以应对抢先交易协议黑客攻击 - 安全性

本文提出了一种新的以太坊JSON-RPC方法,eth_clandestineSubmitTransactioneth_clandestineSubmitBlock,用于MEV中继。这些方法允许直接与MEV Boost中继交互,为交易和区块提交提供高级机制。该提案旨在通过抢先黑客的交易并确保包含“秘密交易”的区块获胜来降低与恶意活动相关的风险。资金必须返还给项目,一部分可用于保险。


摘要

我们提出了为 MEV Relays 实现两个新的 Ethereum JSON-RPC 方法,eth_clandestineSubmitTransactioneth_clandestineSubmitBlock。这些方法允许与 MEV Boost Relays 直接交互,为交易和区块提交提供本质上是“秘密(clandestine)”的高级机制。

该提案旨在通过抢跑黑客的交易,并谎报其提议区块的价值来确保包含“秘密交易”的区块获胜,从而减轻与恶意活动(即项目被黑)相关的风险。这通过中继完成成功缓解来确保排他性。追回的资金必须返还给项目,其中一部分可以选择保留用于集中保险金库,减去向参与的安全公司支付的服务费用。

该提案需要多家安全公司参与,通过模糊测试交易并达成法定人数,从而就恶意交易达成某种共识。这种方法也不一定用于抢跑交易攻击,因为安全集体(如 SEAL911)也可以使用它来提交白帽交易。

动机

各个安全公司在模糊测试方面的进展已经证明了他们能够及时发现恶意交易并尝试“抢跑”(即超越支付给验证者的 gas 和费用)它们以保护易受攻击的项目。然而,这导致了 gas 成本和费用的恶性竞争,试图“抢跑抢跑”。通过利用 MEV Relay 的可信性质,我们可以“欺骗”验证者,确保明确选择我们的受保护交易(称为“秘密(clandestine)”交易)。

  1. 可以消除约 95% 的 DeFi 黑客攻击。
  2. 需要多家安全公司参与。
  3. 通过确保区块内状态一致性(通过模糊测试交易),带来额外的好处。
  4. 黑客攻击仍然可能发生,黑客可以启动一个验证器并在本地构建一个区块来执行攻击。
  5. “追回”资金的一部分可以保留用于资助项目的合作保险池,以补偿安全公司的工作和开发。
  6. 通过提供一种提交与预防措施相关的交易的方式,例如更新某些协议状态的交易(例如,由于新披露的漏洞而禁用向项目存款),增加了对安全组(如 SEAL911)的安全合作的明确支持。
  7. LST 运营商/协议不再存在“接收赃物”的争议问题,他们也可以从“追回资金”中获得补偿。示例:验证者将获得追回资金总额的 2%。

规范

所有方法都必须使用提前列入白名单的地址签名。授权:需要 Ethereum-Signature 头部以获得权限。

方法

eth_clandestineSubmitTransaction

描述: 将机密交易直接提交到 MEV Boost Relay,以便优先包含在区块中,并提供可选参数以增强控制。

参数:

参数 类型 必需 描述
from string 发送交易的地址。
to string 接收交易的地址。
value string 要发送的以太币数量(以 wei 为单位)。
blockNumber string 包含交易的区块号(十六进制)。
data string 与交易一起发送的数据负载(十六进制)。
multiplier number 修改中继出价的乘数。
blockGasLimitIncrease number 增加区块 gas 限制的数量。
TargetTransactionHashes array of strings 用于抢跑保护的目标交易哈希数组。

示例请求:

{
  "jsonrpc": "2.0",
  "method": "eth_clandestineSubmitTransaction",
  "params": {
    "from": "0xYourAddress",
    "to": "0xRecipientAddress",
    "value": "0x9184e72a000",
    "blockNumber": "0x5BAD55",
    "data": "0xOptionalData",
    "multiplier": 1.2,
    "blockGasLimitIncrease": 2000000,
    "TargetTransactionHashes": [\
      "0xTargetTransactionHash1",\
      "0xTargetTransactionHash2"\
    ]
  },
  "id": 1
}

示例响应:

{
  "jsonrpc": "2.0",
  "result": "0xTransactionHash",
  "id": 1
}

eth_clandestineSubmitBlock

描述: 提交整个区块,以便由 MEV Boost Relay 独占处理。

参数:

参数 类型 必需 描述
blockHeader string RLP 编码的区块头。
transactions array of strings RLP 编码的交易数组。
uncles array of strings RLP 编码的叔块头数组。
blockNumber string 提交的区块号(十六进制)。
blockGasLimitIncrease number 增加区块 gas 限制的数量。

示例请求:

{
  "jsonrpc": "2.0",
  "method": "eth_clandestineSubmitBlock",
  "params": {
    "blockHeader": "0xRLPEncodedBlockHeader",
    "transactions": [\
      "0xRLPEncodedTransaction1",\
      "0xRLPEncodedTransaction2"\
    ],
    "uncles": [\
      "0xRLPEncodedUncle1"\
    ],
    "blockNumber": "0x5BAD55",
    "blockGasLimitIncrease": 2000000
  },
  "id": 1
}

示例响应:

{
  "jsonrpc": "2.0",
  "result": "0xBlockHash",
  "id": 1
}

eth_sendPriorityTransaction

这是为了预防措施,而不是为了抢跑。

[!NOTE]

此方法是可选的,实际上不是必需的,我只是为了征求反馈而包含它

目的:在目标区块的顶部广播交易,绕过某些传统的 mempool 检查,以实现超低延迟包含。

主要特点

  • 优先包含:确保交易出现在区块的顶部。
  • 绕过检查:忽略 nonce 和 gas 价格验证;用户负责正确性。
  • 可选乘数:调整中继的出价或支付机制。
{
  "jsonrpc": "2.0",
  "method": "eth_sendPriorityTransaction",
  "params": {
    "from": "0xYourAddress",
    "to": "0xRecipientAddress",
    "value": "0x9184e72a000",
    "blockNumber": "0x5BAD55",
    "data": "0xOptionalData",
    "multiplier": 1.2,
  },
  "id": 1
}

安全公司参与要求

法定人数定义

  1. 阈值: 法定人数是预定义的参与者阈值(例如,“至少 3 分之 2”、“5 分之 3”或某些其他 n-of-m 公式)。此阈值通常由 relay operator 设置或通过链上治理设置。
  2. 合格的投票者: 只有列入白名单的各方(在此上下文中,经过审查的 安全提供商)才被允许参与法定人数。

法定人数的目的

  1. 分担风险和验证: 通过要求多个提供商为同一交易哈希提交匹配的抢跑请求,网络确保:

    • 没有一方可以单方面利用该机制。
    • 多个受信任的实体证实了同一目标。
  2. 欺诈缓解: 要求多个参与者合作,限制了恶意或轻率的抢跑尝试的可能性(例如,用不相关的目标哈希来 spam 中继)。
  3. 集体决策: 因为提供商必须就哪个交易进行抢跑或保护达成一致,所以最终提交反映的是集体判断,而不是个人的单方面行动。

如何形成法定人数

  1. 目标哈希协议:

    • 每个列入白名单的提供商独立地识别出一个他们认为有理由进行抢跑的交易哈希(frontRunTargetHash)。
    • 提供商通过 eth_clandestineSubmitTransaction 提交此哈希,以及他们自己的凭据和签名。
  2. 匹配逻辑:

    • 中继的 Quorum Manager 比较传入的请求。
    • 当多个请求引用相同的交易哈希时,它们会被分组在一起。
  3. 阈值检查:

    • Quorum Manager 检查引用相同哈希的提供商数量是否达到或超过阈值(例如,2 或 3)。
    • 如果低于阈值,则请求要么保持在挂起状态,直到更多提供商确认相同的哈希,要么直接被拒绝。
    • 如果等于或高于阈值,则该组被认为已形成有效的法定人数。

请求选择(轮循)

  1. 轮循调度:

    • 一旦达到特定目标哈希的法定人数,Quorum Manager 将使用轮循方法在提交该哈希的提供商中选择“获胜”请求。
    • 这确保了公平轮换,并防止单个提供商始终垄断抢跑机会。

交易执行和收益分配

  1. 交易最终确定:

    • 一旦选择了一个抢跑交易来继续进行(即,成为“获胜”请求),它就会作为秘密交易通过中继转发给验证者。
    • 然后,该交易将使用指定的抢跑逻辑执行(例如,超过某个其他交易的出价,或利用套利)。
  2. 收益分配:

    • 然后,任何追回的 MEV 或收益的一部分将分配给“获胜”的提交者,如 proceedsAddresses 中指定的那样,这是一个由参与的安全公司和中继运营商控制的 MultiSig 地址。
    • 追回的资金将返还给项目。参与达到法定人数的提供商也可能获得较小或成比例的份额。
  3. 法定人数重入:

    • 在处理完抢跑请求后,中继会更新其内部状态,以反映获胜的提供商刚刚在轮循中使用了他们的插槽。

结束语

我要感谢 Justin Drake 在首次讨论时接受了这个想法,并感谢 Vasily(p2p.org)提出的关于法定人数协议的最有帮助的建议。我还要感谢 fuzz.land、dedaub 和 blocksec 提供的有益意见。

MEATBAL 可能不是最好的名字,也许世界计算机需要一个 CPU:秘密保护单元 (Clandestine Protection Unit)。

  • 原文链接: ethresear.ch/t/unbundlin...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展