Vitalik: 关于两个slot的提议者/构建者分离方案的具体设计

来源|ethresear.ch

作者|VitalikButerin

翻译|EthereumCN

原标题:《Vitalik:两个slot的提议者/构建者分离方案》

译者注:目前新的分片方案Danksharding融合了PBS(提议者/构建者分离方案)和crList的设计。其中,PBS方案的构造设计采用的是两个slot的PBS,这也是crList的设计基础。关于这种“混合式PBS”的抗审查分析,可以参见《Vitalik:如何提高PBS方案的交易抗审查性》。本文是两个slot的PBS方案的具体设计。

在一个slot对里的事件顺序

就在0秒之前—发布执行头部发布:任何人都可以发布一个执行头部,它包含一个执行哈希,一个出价,和一个构建者的签名。

0秒—信标区块期限:信标区块必须打包胜出的执行头部

0—2.67秒—对信标区块做证明:只有一个委员会对信标区块做证明投票

8秒—中间区块的期限:胜出的区块构建者发布一个中间区块,由执行区块主体和他们可以找到的对信标区块尽可能多的证明组成。

Coinswitch Ventures和GravityX Capital联合推出Web3加速扩展项目:金色财经报道,Coinswitch 旗下 Web3 投资部门 Coinswitch Venturess 宣布与 Web3 风投公司GravityX Capital 联合推出 Web3 加速项目LevitateX,旨在为选定的早期 Web3 初创公司提供发布准备、加速牵引和运营等方面的支持,也为中后期阶段的 Web3 企业解决业务增长和规模扩展等问题,以及为希望进军亚太市场的全球 Web3 创企给予资金帮助。据悉该计划还将帮助选定的公司完善其产品、增强用户体验并优化技术基础设施,以确保在 Web3 领域的稳健和成功推出。(thehindubusinessline)[2023/8/16 21:26:17]

8—10.67秒—对中间区块的证明:剩下的N-1委员会对中间区块做证明投票

10.67—13.33秒—聚合中间区块的证明

13.33—16秒—发布下一个执行头部

如果错失了一个信标区块,下一个slot会被换为信标区块而不是中间区块。

图表解释

Vitalik:因FTX的中心化性质,其崩溃是不可避免的:11月12日消息,以太坊联合创始人Vitalik Buterin表示,FTX的巨大崩溃是不可避免的,因为它的中心化性质。在被问及FTX和其他加密货币公司今年的崩溃时,V神说:“今年我们看到了大量这样的事情,因为它们的模式从根本上说是坏的”。

Buterin指出,FTX的营销类似于“1930年代独裁者”的“个人主义风格”,这与加密货币精神完全相反。(decrypt.co)[2022/11/12 12:54:33]

关键的特性

从分叉选择的角度来看,该系统可以被描述为就像现在的信标链,只是委员会的规模是不平均的,且会有一个(区块,slot)分叉选择。唯一的区别是有些区块只是用来选择为紧随其后的区块选择提议者。这就简化了分析。

每个步骤之间的委员会有助于确保每个步骤都是“安全的“,并且减少被单个行动者滥用带来的影响。

构建者的安全特性

在发布出价那一步,构建者看到执行头部,并知道它是否安全(如果有很多反对票或缺失的证明,这个执行头部可能是不安全的)。

Vitalik Buterin登上《时代》周刊封面:金色财经消息,据《时代》周刊杂志官方公布,以太坊创始人Vitalik Buterin成为《时代》周刊封面人物。

此外,《时代》周刊发文表示,以太坊已成为仅次于比特币的第二大加密货币,为与Visa相媲美的万亿美元生态系统提供动力。以太坊已将全球数千名无银行账户的人带入金融系统,允许资本不受阻碍地跨境流动,并为企业家提供基础设施,以构建各种新产品。[2022/3/18 14:05:24]

如果执行头部是安全的,除非出现大于45%的攻击、非常大量的罚没,或非常严重的网络延迟,执行头部才可能被回滚。在这种情况下,构建者可以放心进行安全出价。

如果执行头部是不安全的,在他们发布他们的主体后区块链还是有重组的风险,以“偷走”他们的MEV机会。在这种情况下,构建者看到这个风险后可以调低他们从这个风险获得风险溢价的出价。

在发布中间区块时,会有两种情况:

信标区块还未被发布。在这种情况里,证明委员会已经对该区块投反对票,因此中间区块产生者(即构建者)可以安全地不发布,也不会受到惩罚。

信标区块已经发布。在这种情况下,中间区块会有“提议者得分激励(proposerboost)',这个激励会比整个证明委员会幅度的大,因此如果构建者发布了,他们的区块将在其余N-1证明委员会的证明里获胜。

Vitalik为打假推特更名:犯罪分子通过伪造名人推文加密货币粉丝,这激怒了一名声名显赫的领袖人物,让他做出改换身份的决定。以太坊创始人Vitalik Buterin近日将自己的推特名字更换成了“Vitalik No I'm not giving away ETH Buterin”(Vitalik Buterin不会给你ETH)[2018/3/16]

这确保了如果证明委员会是诚实的,且网络延迟没有非常严重的情况下,构建者就能保证:

如果他们发布了区块就能被打包

如果他们因为信标区块头缺失而不发布区块是不会被惩罚的

构建者有大约5.33—8秒的时间发布区块。在他们看到信标区块时可以放心马上发布;但是,他们可能会想等看到更多证明时再发布,因为他们打包证明会得到奖励(被打包的证明者也会得到奖励)。他们可以自由地在这段时间内(即5.33秒的窗口,获得打包证明奖励与第8秒的窗口没能获得打包证明奖励)协商权衡。

信标链规范变更的概要?

提议者索引定义

把get_random_proposer_index(state:State)设为现在get_beacon_proposer_index(state)返回的内容。

TAVITT将允许用虚拟货币进行结算:位于泰国曼谷的Tavitt(Thailand)Co.,Ltd.公司日前表示,将允许比特币、Tavittcoin(TVC)等虚拟货币在“TAVITT网页”上购买机票、预订酒店、结算Tavitt规划的旅行团等。虚拟货币Tavittcoin(TVC)已经于2018年3月1日开始在Waves交易所上市。Tavittcoin(TVC)的销售期限是从2018年3月1日凌晨12点(星期日)至2018年3月31日晚间12点(日本时间)。[2018/3/6]

添加状态变量chosen_builder_index和chosen_exec_block_hash。如果slot是空的,设state.chosen_builder_index=NO_BUILDER(一个等于2**64-1的常量)。如果slot包含一个信标区块,它会包含BuilderBid,设:

state.chosen_builder_index=builder_bid.message.builder_index

state.chosen_exec_block_hash=builder_bid.message.exec_block_hash

get_beacon_proposer_index(state:State)的定义如下:

如果state.chosen_builder_index==NO_BUILDER,返回get_random_proposer_index(state)

否则,返回state.chosen_builder_index

携有出价区块的条件

如果state.chosen_builder_index==NO_BUILDER,这个区块需要包含一个BuilderBid,且可能不包含一个ExecBody。builder_bid需要通过以下检查,且其中val=state.validators:

bls.Verify(val.pubkey,compute_signing_root(builder_bid.message),builder_bid.signature)

val.activation_epoch==FAR_FUTURE_EPOCHorval.withdrawable_epoch<=get_current_epoch(state)

val.balance>=builder_bid.bid_amount

在处理逻辑中添加余额转账:

val.balance-=builder_bid.bid_amount

state.validators.balance+=builder_bid.bid_amount

把get_committee_count_per_slot改为接受输入(state:BeaconState,slot:Slot)(而不是epoch)。如果一个slot出现state.chosen_builder_index==NO_BUILDER,委员会数应该返回1。

携有执行主体的区块的条件

如果state.chosen_builder_index!=NO_BUILDER,区块需要包含一个ExecBody且可能不包含BuilderBid。ExecBody需要通过以下的检查:

hash_tree_root(exec_body)==state.chosen_exec_block_hash

eth1_validate(exec_body,pre_state=state.latest_exec_state_root)

在处理逻辑中添加:

state.latest_exec_state_root=exec_body.post_state_root

get_committee_count_per_slot应该返回(get_epoch_committee_count(epoch)-state.committees_in_this_epoch_so_far)//(slots_remaining_in_epoch)

如果state.chosen_builder_index!=NO_BUILDER,设state.chosen_builder_index=NO_BUILDER,无论是否有区块。

请注意

slot时间减少到8秒(请记住:执行区块会是每2个slot出现一个)。

所有信标区块,包括携有出价和执行主体的,在分叉选择时都应该有proposerboost。

分叉slot应该改为(block,slot)

可能的延展:通过一项费用延迟发布

如果中间区块的构建者在slotN不发布区块,在slotN+1就没有交易捆可选。整个提议者序列会被往后推一个slot(因此slotN+1的构建者会变成slotN+2的提议者,以此类推),且slotN+1需要选出一个新的随机提议者。构建者会获得另一个机会(即额外的12秒作为松弛空间)来发布。该slotN+1执行区块不能包含任何高价值的共识交易(例如罚没)。但是,他们会被罚款block.basefee*block.target_gas_limit。

原因是他们的执行区块被延迟了一个slot,并前置了一个空的执行区块,因此他们需要为这个slot付费。提议者序列被延迟确保延迟某个提议者的执行区块对于当被提议的区块是高价值时窃取未来的提议权是没用的。

对分片可能的延展

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-3:764ms