如何使用 ZK 和 VDF 实现「隐私 mempool」构想
Time:2023-08-01 Click:91
现在大部分的 L2 Sequencer 基本上都采取 「先到先出」 (FIFS) 的交易排序方式来保护用户不被 MEV,但是这样也弱化了区块的价值。
而通过这种分割的 Blockspace 的方案我们就可以做到鱼和熊掌兼得。
具体流程是:用户用一个 「时间谜题」 来加密自己的交易,并且同时计算一个「zk proof」 来证明这个时间谜题 「有解」,接着把用「时间谜题」和 对应的 「Zk Proof」一起发送给 「Sequencer」。
Sequencer 接收到「 加密的交易」后:
- 验证 「zk proof」是否有效,如果证明有效则说明这个 「时间谜题」 可以在计算一段时间后得出答案;
- 把它放到「Top Blockspace」并且给出 交易 所在的区块内的「Order Committee」;
- Sequencer 会计算「时间谜题」一段时间,最后得出一个答案;
- Sequencer 拿到答案之后就可以解密用户的「加密交易」了,得出「交易的原始」数据;
- Sequencer 将 「Top Blockspace」都填满之后,把这个只有 「Top Blockspace」有交易的 「半成品区块」扔到 L2 的 p2p 网络广播;
- MEV Searcher 接收到 「半成品区块」之后就可以根据 「Top Blockspace」里的交易顺序构造自己的有利可图的「交易 bundle」;
- MEV Searcher 把自己的 「交易 bundle」以及 「出价」发给 L2 Block Builder;
- 这个时候 Builder 已经接收到「半成品区块 」 了,他会把「最高出价」的那部分「交易 Bundle 」放进 「Botton Blockspace」;
- 最后 Builder 需要走 L2 Mev Boost 的流程, Sequencer 会就接受带有它指定的 「Top Blockspace」的「最高价值的区块」。
总结
通过将「Blockspace」分成两部分可以让 用户交易在 「Top Blockspace」被保护起来,让 Mev Searcher 一起去卷 「Bottom Blockspace」 ,即保护了用户交易不被 hamful mev,Sequencer 又可以最大化 「区块收益」。但该方案付出了额外的计算成本, 主要因为用户需要为自己的时间谜题计算一个「zk proof」以及 Sequencer 需要为每个用户提供的「时间谜题」求解。
我们可以跟 Arbitrum 之前提出来的让 Mev Searcher 可以去通过更高的出价获得最高 0.5s 的优先权的交易排序策略做一个比较。相比本文提出的方案,Arbitrum 这个方式特点是:
- 省计算资源;
- MEV Searcher 看不到区块内的交易(Private Mempool);
- 用户的交易还是会被插队。
最后顺带提一句:需要「zk proof」的原因是为了防止 sequencer 被 DDOS 攻击。
标签:隐私