---
title: "什么是 crypto bundler？"
description: "crypto bundler 将多笔交易或操作合并为一次链上提交，应用于 batching、MEV、rollup、代币发行和账户抽象等场景。"
---

# 什么是 crypto bundler？

<ImageBlock
  src="https://media.alchemy.com/overviews/crypto-bundler-hero-2026-06-23.png"
  alt="什么是 Crypto Bundler？"
  width={1920}
  height={900}
  priority
/>

在加密领域，很少有词像“bundling”（打包）这样含义繁多。一个应用把二十次余额查询合并成一次调用，是打包。一个 rollup 把数千笔交易压缩成一次 L1 提交，是打包。一个 searcher 向 block builder 提交一组有序交易，也是打包。一个交易者在代币上线的那个区块里，用十几个钱包买光其流通量，同样是打包。每次都是同一个词，但每次的机制都不一样。

从高层次看，crypto bundler 指的是一种把多笔交易合并成一次链上提交的具体操作。只要单独执行的成本更高、泄露的价值更多，或失败率更高，打包就会出现。在 [Ethereum](https://www.alchemy.com/ethereum)、[Solana](https://www.alchemy.com/solana) 和各个 L2 上，其机制各不相同，这也是这个词造成困惑的一半原因。

## crypto bundler 究竟做什么？

crypto bundler 可以是任何将多个待处理操作合并成一次链上交易的参与者、合约或服务。交易者打包是为了控制代币上线的走势。Searcher 打包是为了保证执行顺序。[Rollups](https://www.alchemy.com/rollups) 打包是为了摊薄结算成本。钱包和应用打包是为了减少请求开销、让多步操作具备原子性，并[代付 gas](https://www.alchemy.com/gasless-transactions)，使用户无需持有原生代币。

这些不同 bundler 的实现方式，除了这个动词之外几乎没有共同点。有些 bundler 是[交易机器人](https://www.alchemy.com/blog/how-to-build-an-ai-trading-bot)，有些是协议基础设施，有些是任何人都能调用的单个已部署合约，还有一种是 Ethereum 标准中一个具名角色。要判断文档中说的是哪一种,只能靠上下文。常见的 bundler 类型见下文。

## 为什么要打包？

总的来说,打包做的是三件事之一:降低成本、锁定顺序,或代人执行操作,而且通常不止一件。

最明显的原因是成本。每笔链上交易在做任何有用的事之前,都要先支付一笔固定开销:EVM 链上的 21,000 gas,外加 calldata 和签名成本。把十个操作打包进一笔交易,你只需付一次这笔开销,而不是十次。对于 DEX 路由或索引器读取这类高频操作,这个差异会迅速累积。

其次是顺序。有些操作只有按固定顺序一起执行才安全,或才有利可图。一次 approval 和随后的 swap,如果之间有间隙,就可能被抢跑。一次套利,只要买入和卖出之间出现任何滑动就会失败。一次 launch snipe,即在代币上线瞬间下单买入,只有当买单和代币创建落在同一个区块时才有效。打包把“这些操作,按这个顺序,否则都不做”这种要求变成了单一的保证。

最不易察觉的原因是委托。[smart contract account](https://www.alchemy.com/overviews/how-do-smart-contract-wallets-work) 无法自行发送交易,因此必须有持有私钥的一方来包装该账户的意图、支付 gas 并提交交易。这就是 account abstraction bundler 的工作,也是应用代用户支付 gas、或为不持有 ETH 的 agent 签名的方式。

## crypto 中有哪些打包类型？

crypto 中有五种常见的打包类型。

### 交易批处理与 multicall

Multicall 是最常见的打包形式,是一个把一笔交易扇出成多次调用的小合约。其规范实现是 [Multicall3](https://github.com/mds1/multicall3),部署在 100 多条 EVM 链上的 `0xcA11bde05977b3631167028862bE2a173976CA11` 地址。它最常见的用途是批量读取。一个需要查询二十种代币的余额、授权额度和价格的应用,只需对 Multicall3 发起一次 `eth_call`,而不是二十次独立的 JSON-RPC 请求。对于写操作,包括 router 调用和 DeFi 协议组合,从单一发送方进行批处理能让多步操作具备原子性:approval 和 swap 要么一起成功,要么都不成功。

这种打包方式的关键限制是:multicall 不会跨多个发送方聚合。交易来自单个账户,进入批处理合约,再从那里扇出。这里没有 mempool,也没有 operator。EVM 链上生产环境中很大一部分读取都通过 Multicall3 完成,这使它成为交易量最大、也最不为人注意的打包形式之一。

### MEV bundle

MEV(maximum extractable value)bundle 是 searcher 希望在下一个区块中被原子性纳入的一组有序交易。Searcher 将其提交给 [block builder 或 relay](https://www.alchemy.com/overviews/proposer-builder-separation),而不是[公共 mempool](https://www.alchemy.com/overviews/what-is-a-mempool),并为此付费以求被纳入。关键在于顺序:一次依赖买入和卖出背靠背执行的套利,只有当 searcher 能控制执行顺序时才有效。Flashbots 通过 mev-boost 在 Ethereum 上实现这一点;Jito 通过其 Block Engine 在 Solana 上实现类似的功能。

Bundle 是密封的,这意味着其中的每笔交易都按指定的确切顺序执行,要么全部执行,要么全部不执行。包括 Beaverbuild、Titan 和 Flashbots 在内的 builder 竞相用价值最高的 bundle 组装区块,而 relay 则位于 builder 与 validator 之间。关于这对通过公共 mempool 路由交易的普通用户意味着什么,可参见我们的 [MEV protection 概述](https://www.alchemy.com/overviews/what-is-maximum-extractable-value-and-mev-protection)。

### Rollup batch

[rollup sequencer](https://www.alchemy.com/overviews/optimistic-rollups) 默认就会打包交易:它对 L2 交易排序、压缩,再把成百上千笔交易作为一笔 L1 交易的 calldata 或 blob 载荷提交上去。Optimism、Arbitrum、Base 以及其他所有主要 rollup 都是这样工作的。从用户角度看,一笔 L2 交易和其他交易没什么两样。从 L1 角度看,rollup 只付了一笔交易的开销,就结算了整批交易。

2024 年 3 月 Dencun 升级引入的 [EIP-4844 blobs](https://www.alchemy.com/overviews/danksharding),把这些批次的 L1 成本降低了大约一个数量级,这正是 L2 手续费从几美分骤降到几分之一美分的结构性原因。对开发者而言,这是最不可见的一种打包形式,因为没有任何应用代码会直接接触到它,同时也是对 L2 经济模型影响最大的一种。

### 代币上线打包

在 memecoin launchpad 上,“bundler”指的是一种交易工具。它部署一个代币,并在同一个区块内从多个钱包原子性地买入一部分流通量。在 Solana 上,这通常通过 Jito bundle 实现。创建者用它来抢在狙击者之前完成自己代币的上线,或是把内部持仓分散到多个钱包中以掩人耳目。链上看起来供应是分散的,实际上却由一方控制。

这就是为什么“bundled”在交易看板上是一个警示标签。筛查 [Pump memecoin 上线](https://pump.fun)的工具会标记在创建区块中被买入的供应比例,因为隐藏的集中持仓可能会一次性抛售。其机制与 MEV bundle 使用的原子性、有序纳入完全相同,区别只在于用途。

### Account abstraction bundler

在 smart account 文档中,“bundler”通常指 ERC-4337 中的一个角色:一个链下服务,它收集 [user operations](https://www.alchemy.com/overviews/user-operations),把许多操作打包进一笔交易,垫付 gas,再由账户本身或代为赞助的 [paymaster](https://www.alchemy.com/overviews/what-is-a-paymaster) 偿还。如果你是从钱包或 [account abstraction](https://www.alchemy.com/overviews/what-is-account-abstraction) 文档跳转过来的,你想的正是这种 bundler。

<ImageBlock
  src="https://media.alchemy.com/1703862507-user-operations-validations-executions.png"
  alt="展示用户操作如何通过账户抽象 Bundler 进行验证和执行的示意图"
  width={960}
  height={540}
/>

## 五种 crypto bundler 的对比

<EmbeddedTable
  table={{
    columns: [
      {
        key: "bundlingType",
        width: 220,
        title: "Bundling type",
        dataType: "object",
      },
      {
        key: "whatGetsBundled",
        width: 240,
        title: "What gets bundled",
        dataType: "object",
      },
      {
        key: "whoDoesIt",
        width: 240,
        title: "Who does it",
        dataType: "object",
      },
      { key: "why", width: 280, title: "Why", dataType: "object" },
    ],
    data: [
      {
        bundlingType: { title: "Multicall / batching", tooltip: "", icon: "" },
        whatGetsBundled: {
          title: "Many contract calls from one sender",
          tooltip: "",
          icon: "",
        },
        whoDoesIt: {
          title: "Any wallet or app calling a batching contract",
          tooltip: "",
          icon: "",
        },
        why: {
          title: "Cut request overhead; make multi-step actions atomic",
          tooltip: "",
          icon: "",
        },
        id: 0,
      },
      {
        bundlingType: { title: "MEV bundle", tooltip: "", icon: "" },
        whatGetsBundled: {
          title: "An ordered set of transactions",
          tooltip: "",
          icon: "",
        },
        whoDoesIt: {
          title: "Searchers, via block builders and relays",
          tooltip: "",
          icon: "",
        },
        why: {
          title: "Guarantee order and atomic inclusion",
          tooltip: "",
          icon: "",
        },
        id: 1,
      },
      {
        bundlingType: { title: "Rollup batch", tooltip: "", icon: "" },
        whatGetsBundled: {
          title: "Thousands of L2 transactions",
          tooltip: "",
          icon: "",
        },
        whoDoesIt: { title: "The rollup's sequencer", tooltip: "", icon: "" },
        why: { title: "Amortize L1 settlement cost", tooltip: "", icon: "" },
        id: 2,
      },
      {
        bundlingType: { title: "Launch bundle", tooltip: "", icon: "" },
        whatGetsBundled: {
          title: "Token creation plus multi-wallet buys",
          tooltip: "",
          icon: "",
        },
        whoDoesIt: {
          title: "Trading bots on launchpads",
          tooltip: "",
          icon: "",
        },
        why: {
          title: "Control or conceal early supply",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        bundlingType: {
          title: "Account abstraction bundle",
          tooltip: "",
          icon: "",
        },
        whatGetsBundled: {
          title: "User operations from smart accounts",
          tooltip: "",
          icon: "",
        },
        whoDoesIt: {
          title: "Bundler services and wallet infrastructure",
          tooltip: "",
          icon: "",
        },
        why: {
          title: "Let accounts without keys or gas transact",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
    ],
  }}
/>

同样是打包这个概念,却有五种不同的实现方式和背后的原因。最快的区分方法是问一句:谁从中受益。交易者从 launch bundle 中获利,searcher 从 MEV bundle 中获利,rollup 的批次让其用户受益,批处理和 gas 代付则让应用的用户受益。

## 常见问题

### 一次代币上线被打包,就一定是骗局吗?

不一定,但这是一个警示信号。打包让创建者能在上线区块内通过多个钱包买入代币的大部分流通量。这可能是合理的防狙击手段,也可能是掩盖集中持仓、日后集中抛售的方式。在买入前,应把大量被打包的供应视为一个值得核查的风险信号。

### 我怎么判断一次代币上线是否被打包了?

链上分析工具和 memecoin 看板会标记在代币创建区块内被买入的供应比例。大量新钱包中出现较高的比例,就是一个信号。买入前应检查代币首个区块的买入情况和持币分布,不要轻信供应是自然分散的。

### ERC-4337 中的 bundler 是什么?

在 ERC-4337 account abstraction 中,bundler 是一个链下服务,它从 smart contract account 收集 user operations,把若干操作打包进一笔交易,支付 gas,并提交给 EntryPoint 合约。它会由账户本身或某个 paymaster 偿还费用。Alchemy 维护着一个名为 [Rundler](https://github.com/alchemyplatform/rundler) 的开源实现。

### Multicall 和 bundler 是一回事吗?

不完全是。Multicall,通常指 Multicall3,把来自单一发送方的多次调用打包进一笔交易,主要用于减少读取时的 RPC 请求次数。ERC-4337 bundler 则聚合来自许多不同 smart account 的 user operations,并为它们支付 gas。二者出发点相似,但作用范围不同。Multicall 局限于单一发送方内部;bundler 则横跨多个账户。

### MEV bundle 和 rollup batch 有什么区别?

MEV bundle 是 searcher 提交给 block builder 的一组有序交易,以求获得原子性、抗抢跑的纳入。Rollup batch 则是 sequencer 把成千上万笔 L2 交易压缩成一次 L1 提交,以摊薄结算成本。前者控制的是顺序,后者控制的是成本。

## 用 Alchemy 构建 crypto bundler 相关能力

我们的 [RPC API](https://www.alchemy.com/rpc-api) 是开发者会直接接触到的打包相关能力的入口:Multicall3 这类合约扇出的批量读取、L2 流量所经过的 rollup RPC 接口,以及我们所支持的每条链上的标准 endpoint。对于构建 smart-account 流程的团队,我们还提供开源的 Rust bundler [Rundler](https://github.com/alchemyplatform/rundler),以及用于 gas 代付策略的 [Gas Manager](https://www.alchemy.com/gasless-transactions)。设计细节可参见[我们如何构建 Rundler](https://www.alchemy.com/blog/open-sourcing-rundler)。

创建一个应用,获取一个 key,同一个 key 可用于以上所有场景。无需签约,无需排队等待。[开始构建](https://dashboard.alchemy.com/)。

不存在一个统一的“bundler”定义,大概以后也不会有。这个词之所以广泛流传,是因为它背后的问题——在一次交易中做更多的事——出现在 crypto 的每一层。找出是哪一层,是合约调用、区块、L2 batch、代币上线,还是 smart account,你也就找到了对方所说的到底是哪种 bundler。
