1. 在 proto-danksharding 中,一个 Block 扩容 3 个 blob 不够,在 full-danksharding 中会进一步扩展。( Target: 16 MiB, Max: 32 MiB )
2. Blob 的存在,对 Node 的带宽,和 Consensus Layer 的数据可用性提出了较高的要求,无法要求每一个 Node 都能同步 Blob 数据
3. 这种情况下,如何证明数据是完整的?存储整个 Blob → 存储部分 Blob 数据并对其他数据进行抽查。DAS (Data Availability Sampling)
- Validator 会对 Blob 进行随机抽查,将抽查的数据存在本地,然后照常提交 Attestation
- 只要有足够多的 Validator 进行了抽查,Blob 就会分散地存储在网络中,每个节点只保存一部分数据,整个网络合起来是有 Blob 的完整数据的
- 所以,只要有足够多的 Validator,我们就认为 Blob 数据是 Available 的
- 网络中要有足够多的节点,才能保证 Blob 得到充分的抽查和备份。所以这种方法牺牲了部分安全性,让整个网络变得更加脆弱。
(https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) (Proposer-Builder Separation)
1. 虽然验证 Block 所需的带宽减小了,但是创建 Block 的时候,Proposer 还是要下载保存完整的 Blob 数据,并且需要有足够的带宽广播给其他 Validator 来抽查。
2. PBS 本来是用来对抗网络中的 MEV,但同时也能解决网络中带宽要求过高的问题。PBS 的核心思想是分离两种角色:
# Builder
# Proposer
3. PBS 的出块步骤(以 Hybrid PBS 为例):
# step1
Proposer 先把它的 Mempool 中的所有交易公布出来,组成一个 [crList](https://notes.ethereum.org/@fradamt/H1ZqdtrBF) (censorship resistance list) ,广播给所有的 Builder。
# step2
每个 Builder 从 crList 中选取交易进行排序,直至填满 Block 的 Gas Limit。
# step3
所有 Builder 都公布自己最终排序出来的交易列表的 Hash,并发送给 Proposer,Proposer 从中选取一个 Hash,填入 Block header 并广播。
# step4
其他节点从 Proposer 处同步 Block header,从 Builder 处同步 Block body
>第一阶段:PBS 设计
- 最初的 PBS 是被设计用来对抗 MEV 的。所以,PBS 有 5 点设计要求:
1. Untrusted proposer friendliness: 一个 PBS 机制不应该依赖于某些受信任的 proposer。
2. Untrusted builder friendliness: 同样,它也不能依赖于 builder 不会作恶。
3. Weak proposer friendliness: 它不对 proposer 有过高的要求(设备好,带宽大等要求)
4. Bundle unstealability: proposer 不能从 builder 构建好的包中,提取交易来构建自己的 block body。
5. Consensus-layer simplicity and safety: 不能损害共识层。
# 第一个方案
Builder 打包好一个 bundle。这个 bundle 里的所有获益都打给 builder,并在最后添加一笔给 proposer 的费用。builder 将这个 bundle header ,自己的签名,和 转账的交易发给 proposer。
proposer 选择有最大收益的 bundle header,并基于该 header 构建一个 proposal。
当该 proposal 被广播出去了,builder 就将 bundle body 放出来,这才是一个完整的 block。
它增加了共识层的复杂度!(分叉选择增加了一种)
Proposer 可以故意延迟发布 proposal 来攻击 builder。
# 第二个方案
和第一个方案一样
Proposer 把自己看到的 bundle list 记录下来,签名并发布出去。
Builder 看到自己的 bundle 被签名了,就把这个 bundle body 发布出去。
Proposer 从自己公布的 list 中选择 bundle,构建 proposal 并发布出去。
它对 proposer 不友好!需要大带宽,以及,容易被 DoS
>第二阶段:mev-boost 实现
- 如何去平衡这两种方案?在 proposer 和 builder 中间加一个 relay。
- 它基本继承了第二个方案的设计,增加了 Searcher 和 Relay 两个角色。
>第三阶段:enshrine Proposer-Builder Separation (ePBS) 设计
- 所谓的 ePBS 其实就是 in-protocol PBS
- 有很多的实现方法:以 Vitalik 提出的 Two-Block HeadLock (TBHL) 为例。
- TBHL 最基本的思想是,在一个 slot 中分别提出两个 block,再 merge 起来。
- 它需要把 slot time 延长至 16 秒。
- 乔治·奥威尔(George Orwell)在《动物庄园》(Animal Farm)中描述了一场动物起义,反抗人类的统治:“四足善,两足恶”
- 理想社会的滑坡开始于猪作为领导层逐步篡改最初设定的原则和法律:“所有动物都是平等的,但有些动物比其他动物更平等”
- PBS 是牺牲 去中心化 的妥协产物,它会不会让以太坊滑向中心化的深渊?
- 生于忧患,死于安乐。如果以太坊不动,它会被淹没的更快。
> references
[State of research: increasing censorship resistance of transactions under proposer/builder separation (PBS) - HackMD](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance)
[Proposer/block builder separation-friendly fee market designs](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725)
[Why enshrine Proposer-Builder Separation? A viable path to ePBS](https://ethresear.ch/t/why-enshrine-proposer-builder-separation-a-viable-path-to-epbs/15710)
[Single-slot PBS using attesters as distributed availability oracle](https://ethresear.ch/t/single-slot-pbs-using-attesters-as-distributed-availability-oracle/11877?u=barnabe)
作者:陈玄
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。