PBS(Proposer-Builder Separation)的核心思路是把"打包区块"和"提交区块"拆开:
但这里有一个绕不开的死结——Proposer 必须先承诺出块,才能拿到区块内容,否则就会出现两种作弊:
这两种攻击互为对偶,所以需要一个双方都信任的第三方来做"中介托管"。这就是 Relay。
| 职责 | 解决的问题 |
|---|---|
| 验证 Builder 提交的区块 | 确保 Proposer 不会签到一个无效块(数据有效性、签名、gas、状态根)。 |
| 托管 payload,仅暴露 header 给 Proposer | Proposer 只能看到 header(含 fee、blockHash),看不到内部交易顺序,无法 unbundle。 |
| 凭 Proposer 签名换取完整 payload | Proposer 一旦签字承诺出这个 header,Relay 才把 body 释放回来,形成原子交换。 |
| 抗 DoS / 准入控制 | Builder 数量多、提交频繁,Validator 没能力逐个校验,Relay 作为漏斗过滤掉垃圾提交。 |
设想没有 Relay 的世界:
Builder ──(完整 block)──> Proposer ──签名──> 网络
加上 Relay 之后:
Builder ──block──> Relay ──header──> Proposer ──签名──> Relay ──block──> 网络
▲ │
└────────── 校验 + 托管 ─────────────────┘
Relay 同时面对 Builder 和 Proposer 收押金式的承诺: