分享 Jito 推出的三明治攻击缓解机制与 Demo 示例

aaa · 2025年06月02日 · 38 次阅读

Jito 推出的三明治攻击缓解机制与 Demo 示例

在两个月前,Jito 推出了一个新特性,用于缓解三明治攻击,而无需使用投票账户方法。这一机制的推出标志着 Jito 在提高交易安全性方面迈出了重要一步。为此,我编写了一个 Demo 仓库,展示了如何使用这一机制,并提供了相关示例。

Jito 的三明治攻击缓解机制

机制简介

Jito 通过新增一个特殊格式的账户来实现三明治攻击的缓解。其基本规则如下:

  1. 在 Solana 交易中,添加任何有效的 Solana 公钥,并确保该公钥以 jitodontfront 开头。例如:
  • jitodontfront111111111111111111111111111111
  • jitodontfront111111111111111111111111111123
  1. 任何包含 jitodontfront 账户的交易都将被区块引擎拒绝,除非该交易出现在 Bundle 中的第一位(索引 0)。

  2. 该账户不需要在链上存在,但必须是一个有效的公钥。

  3. 建议将该账户标记为只读,以优化处理速度。

允许的 Bundle 模式

  • [tx_with_dont_front, tip]
  • [tx_with_dont_front, arbitrage, tip]

不允许的 Bundle 模式

  • [tip, tx_with_dont_front]
  • [txA_with_dont_front, txB_with_dont_front]
  • [txA_with_dont_front, txB_with_dont_front, tip]
  • [trade, tx_with_dont_front, arbitrage, tip]

重要提示

  • 该账户不需要在链上存在,但必须是一个有效的公钥。
  • 将该账户标记为只读以优化处理速度。
  • 可选:为您的应用程序使用 jitodontfront 的唯一变体(注意:使用您自己的公钥)。例如:

    • jitodontfront111111111114511111111111111123
    • jitodontfront111111111111234565432123456782
  • 该解决方案支持 Jito 的 sendBundlesendTransaction 接口,而不像投票账户方法那样不兼容。

  • 支持 Address Lookup Tables(ALT)。

示例

您可以查看以下使用该保护机制的示例 Bundle: Jito Bundle Explorer 示例

Demo 仓库

为了展示这个机制的实现,我写了一个 Demo 仓库,其中包含了一个基于 Jito Bundle 交易功能的演示,并实现了三明治攻击保护机制。您可以通过此仓库学习如何将这一新特性应用到 Solana 交易中。

免责声明

尽管该特性可以帮助减少三明治攻击的发生,但并不能保证完全解决所有类型的交易排序问题,特别是第三方排序问题。此外,此功能仅适用于区块引擎,无法应用于其他软件。


此机制的推出为 Solana 生态系统中的交易提供了更高的安全性和防护,尤其是在去中心化金融(DeFi)交易中防止恶意攻击。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号