
- 知道 Rollup 的运作以及为什么 Rollup 需要把交易上传到 L1 上

















- 「呼叫 DepositTransaction 的人附带了多少 ETH」:,0因为我没有要从 L1 充值 ETH 进到 L2
- 「L2 交易发起者要附带多少 ETH 给 L2 接收者」:5566(wei),因为我要转钱给我自己
- 「L2交易Gas限额」:50000
- 「给L2接收者的数据」:0x666f72636520696e636c7573696f6e,清晰“强制包含”这个字串的十六进制编码








- L1 靠为数群的人来保证网路的「安全性」及「抗审查能力」,而 Rollup 靠「L1 的抗审查能力」来获得「和 L1 同样的安全性」,但不包含Rollup的抗审查能力
- 相反地,Rollup 因为都是由少数或什至单一的 Sequencer 来写入交易,抗审查能力反而更弱。因此 Rollup 需要有 Force Inclusion 机制来让用户绕过 Sequencer,将交易写入历史中,避免被 Sequencer 审查而无法使用也无法离开 Rollup
- 强制包含让用户可以强制将交易写入历史中,但在设计上需在「交易是否能立即插入历史、立即生效」上做选择。如果允许交易立即生效的话,会造成排序器的麻烦和使用体验上的困难,因为L2上等待被收入的交易都可能会被L1强制收入的交易所影响
- 因此目前 Rollup 的强制包含机制都会先让 L1 上插入的交易先进到一个等待状态中,并让 Sequencer 有一段时间窗口来反应、来选择要不要收入这些等待中的交易
- zkSync 和 Arbitrum 都是在 L1 维护一个实体的队列,用于管理用户从 L1 送出的 L2 交易或给 L2 的消息。Arbitrum 称为延迟收件箱;zkSync 称为优先队列
- 但 zkSync 发送 L2 交易的方式和 Optimism 比较像,都是以 L2 地址去 L1 上发送,所以 L2 交易的发起人会是该 L2 地址。Optimism 发送 L2 交易的函式称为depositTransaction;zkSync 称为requestL2Transaction。而 Arbitrum制作填写完整的L2交易并签名,然后透sendL2Message函的方式送出,Arbitrum在L2上会透签名还原签章者来作为L2交易的发起人
- StarkNet 目前还没有强制包含机制;zkSync 撕像做了半套的强制包含 — 有优先队列且每个队列里的 L2 交易都有收入有效期限,但这个有效期限目前只是装饰用,实际上 Sequencer 可以选择完全不再收入任何优先队列里的L2交易