11月27日,以太坊开发者MikhailKalinin提出了一种名为「可执行信标链」的Eth1-Eth2过渡提案,据悉,该提案的最初想法来自以太坊联合创始人VitalikButerin,其旨在将eth1数据嵌入到信标区块中,并强制信标链提议者生成可执行的eth1数据来消除复杂性。
以下是该提案的具体内容:
特别感谢VitalikButerin的创意,@djrtwo、@zilm以及其他人的评论和有用的贡献。
最近提出的以rollup为中心的路线图,提出数据分片作为以太坊2.0中执行的主要扩容因子,允许在单个执行分片上进行扩展,并简化了总体设计。
Eth1?分片设计假设通过信标链与数据分片进行通信。如果具有多个执行分片的第二阶段在以后推出,那么这种方法将是有意义的。由于当前主要集中在以rollup为中心的路线图上,将以太坊1.0放在一个专用的分片上给共识层带来了不必要的复杂性,并增加了在分片上发布数据以及在Eth1?中访问它们之间的延迟。
我们建议通过将eth1数据嵌入到信标区块中,并强制信标链提议者生成可执行的eth1数据来消除这种复杂性。这会把eth1执行和有效性作为共识的一等公民。
提案概述
Eth1引擎由系统中的每个验证者负责维护。当验证者打算提出一个信标区块时,它会要求eth1引擎创建eth1数据。然后,Eth1数据会被嵌入正在生成的信标区块体当中。如果eth1数据无效,它也会使得承载它的信标区块失效。?
Hut 8 Mining与USBTC的对等合并交易预计将于9月底完成:金色财经报道,Hut 8 Mining正准备以“全股票对等合并”的方式与USBTC合并,随着股东投票期接近尾声,该交易预计将在本月底完成。合并后的公司将更名为 Hut 8 Corp.,总部位于美国,它打算在纳斯达克和多伦多证券交易所上市,交易代码为“HUT”。
据悉,一旦Hut 8的注册声明生效,USBTC公司的股东批准程序将开始,完成交易还需要不列颠哥伦比亚省最高法院于9月15日发布最终批准。合并后的公司预计其六个采矿设施的自采矿能力将达到 7.5 EH/s。[2023/9/9 13:28:19]
Eth1引擎修改
?根据之前的方案,Eth1分片中枢、Eth1引擎以及eth2客户端是松散结合并通过RPC协议进行通信的。Eth1引擎继续维护交易池和需要自己网络堆栈的状态下载器,它还应该保存eth1区块的存储。
当前的提案删除了eht1区块的概念,eth1引擎有两种潜在的方法来处理这种变化:
由信标区块携带的eth1数据合成生成eth1区块;修改引擎,使交易处理不需要eth1区块,而是使用eth1数据;前者看起来比后者要更容易实现,它允许更快地将eth1客户端转换为eth1引擎,并且已经被eth1分片poc证明。我们使用术语「可执行数据」来表示包括eth1状态根、交易列表、coinbase、时间戳、区块哈希以及eth1状态转换功能所需的所有其他数据位的数据。在eth2规范中,它可能如下所示:
BTC闪电网络上的公共节点数量已正式超过18000 个:金色财经报道,BTC闪电网络上的公共节点数量已正式超过18,000个。[2023/6/26 21:59:52]
classExecutableData(Container):coinbase:bytes20#Eth1addressthatcollectstxsfeesstate_root:bytes32gas_limit:uint64gas_used:uint64transactions:receipts_root:bytes32logs_bloom:ByteListeth1引擎的职责列表与我们以前对eth1分片的职责类似。主要的观察项有:
交易执行,eth2客户端向eth1引擎发送可执行数据。eth1引擎通过处理数据更新其内部内部状态,如果共识检查通过,则返回true,否则返回false。高级用例,比如即时存款处理,也可能需要结果中的完整交易凭证。交易池维护,Eth1引擎使用ETH网络协议来广播和跟踪网络中的交易。等待中的交易保存在mempool中,用于创建新的可执行数据。可执行数据创建,Eth2客户端发送先前的区块哈希以及eth1状态根、coinbase、时间戳以及创建可执行数据所需的所有其他信息。Eth1引擎返回ExcecutableData的实例。状态管理,Eth1引擎维护状态存储以能够运行Eth1状态执行函数。4、1它涉及到最终触发的状态trie修剪机制,需要基于信标区块链的状态trie版本控制;注意:长时间没有最终结果,会导致存储中出现大量垃圾,因此会消耗额外的磁盘空间。4、2当无状态执行和“区块创建”就绪时,eth1引擎可选择作为纯状态转换功能运行,它可以禁用状态存储,从而减少对磁盘空间的需求。JSON-RPC支持,为了便于使用及采用,保留对以太坊JSON-RPC的支持非常重要。这一责任将由eth2客户端和eth1引擎分担,因为eth1引擎可能会失去独立处理JSON-RPC端点子集的能力,例如基于区块号和哈希的调用。这种分离将在以后解决。?
BTC最后活跃10年以上的供应量到历史新高:金色财经报道,据Glssnode数据显示,BTC最后活跃10年以上的供应量刚刚达到2,658,567.739 BTC的历史新高。[2023/3/15 13:06:03]
信标区块处理
?ExecutableData结构替换信标区块体中的Eth1Data,此外,信标链和eth1的同步处理可实现即时存入,因此,可以从信标区块主体移除deposit。
更新的信标区块体:
classExecutableBeaconBlockBody(Container):randao_reveal:BLSSignatureexecutable_data:ExecutableData#Eth1executabledatagraffiti:Bytes32#Arbitrarydata#Operationsproposer_slashings:Listattester_slashings:Listattestations:Listvoluntary_exits:List我们按照以下方式修改process_block函数:defprocess_block(state:BeaconState,block:BeaconBlock)->None:process_block_header(state,block)process_randao(state,block.body)#process_eth1_data(state,block.body)usedtobehereprocess_operations(state,block.body)process_executable_data(state,block.body)在process_operations完成后处理可执行数据是合理的,因为在许多地方,操作处理可能会使整个区块失效。不过,这种方法可能是次优的,这为客户端优化留下了空间。?
数据:X2Y2过去30天交易额超越OpenSea:金色财经报道,据Cryptomonday.de发布的分析数据显示,X2Y2在过去30天内处理了5.6亿美元的交易量,而Opensea同期处理了4.4897亿美元的交易量。X2Y2一直是OpenSea的强劲竞争对手,此前向其NFT市场的用户免费赠送X2Y2 Token。另据Dune Analytics数据显示,当前X2Y2总交易额为284,518 ETH,总用户量达到152,321。(investorideas)[2022/9/13 13:25:02]
在EVM中访问信标状态
?我们更改用于返回eth1区块哈希的BLOCKHASH操作码的语义。现在,它返回的是信标区块根,这允许检查从256个slot开始直到前一个slot的信标状态或区块中包含的那些数据的证明。
异步状态读取有一个主要缺点。客户端必须要等待一个区块,才能创建带有链接到该区块的证明或它产生的状态根的交易。简而言之,异步状态访问至少要延迟一个slot的时间。
直接状态访问
?假设eth1引擎可以访问表示整个信标状态的merkle树。然后,可以使用操作码READBEACONSTATEDATA(gindex)?来提供EVM功能,以提供对任何信标状态的直接访问。此操作码具有几个不错的属性。首先,这种读取的复杂性取决于gindex值,并且易于计算,因此可以轻松推断出gas价格。其次,返回数据的大小为32字节,这完全适合EVM。
拜登数字资产责任创新型行政命令要求多个机构在9月5日之前提交相关反馈报告:金色财经报道,对乔·拜登关于加密货币的行政命令的大部分回应将在劳动节后到期。预计财政部和司法部的回应将对美国未来的加密货币政策产生特别的影响。根据3月9日的命令,各机构的七份报告应在命令发布后120天内提交给白宫,因此他们的最后期限为9月5日,即劳动节的第二天。
行政命令强调了机构间合作的必要性,但这些命令及其带头机构细分如下行政命令强调机构间合作的必要性,但命令及其牵头机构分解如下:
财政部:关于与美联储合作特别感兴趣的中央银行数字货币或 CBDC 的报告。
司法部:对国会是否需要制定新法律以发布 CBDC 的法律评估。
美国财政部和主要市场和消费者保护监管机构:关于数字资产在市场和支付中的风险和回报的报告。
科技政策办公室:一份关于加密货币在跨时间跨度能源转型中的作用的报告。
司法部在财政部和国土安全部的帮助下:执法机构在“检测、调查和起诉与数字资产相关的犯罪活动”中的作用。
商务部:提高美国在数字资产技术方面的经济竞争力和利用的框架。(the block)[2022/8/29 12:54:16]
有了这个操作码,人们可以创建一个更高级别的信标状态访问器库,从而为智能合约提供便捷的API。例如:
v=create_validator_accessor(index)#createsanaccessorv.get_balance()#returnsbalanceofthevalidatorv.is_slashed()#returnsthevalueofslashedflag该模型消除了状态访问延迟。因此,通过对信标链操作和eth1执行适当的排序,可以在slotN中访问到slotN-1分片数据的交联,从而允许rollup以最快的方式证明数据包含在内。而且,这种方法还降低了信标状态读取的数据及计算复杂性。
注意:可能值得一开始就使READBEACONSTATEDATA操作码的语义独立于特定的承诺方案,以便于轻松升级。
直接访问的成本增加了eth1引擎的复杂性。读取信标状态的能力可以通过不同的方式实现:
传递状态以及可执行数据。这种方法的主要问题在于处理大的状态副本,如果将直接访问限制为状态数据的一个子集,而该状态数据的子集需要将一小部分状态传递给执行,那么它可能会起作用。双工通信信道,有了一个双工通道,eth1引擎将能够向信标节点请求EVM同步请求的状态片段。将能够同步向信标节点询问EVM请求的状态。根据通道的设置方式,延迟可能会成为执行具有信标状态读取的交易的瓶颈。嵌入式eth1引擎,如果eth1引擎被嵌入到信标节点中,它可以通过该节点提供的主机功能从同一内存空间读取状态。?
分析
?1、网络带宽目前的提案通过可执行数据的大小来扩大信标区块。不过,由于该提案允许使用高级存入方案,因此有可能删除Deposit操作。根据区块利用率,以及平均eth1区块大小,预期的增长在10%到20%之间,这对网络接口要求的影响很小。
值得注意的是,如果rollup使用CALLDATA,那么eth1区块的大小在最坏的情况下可能会增长到200kb,从而使可执行信标区块大小在300kb左右,增加了60%。
2、区块处理时间平均处理时间如下:
信标区块12msEpoch64ms以太坊主网区块200ms很难推断出信标链的处理时间,尤其是在验证器集和交联处理相对较大的情况下。也许在某个时候,epoch处理将与eth1执行几乎同时进行。减少epoch边界处处理时间的潜在方法,是在epoch的最后一个区块及时到达的情况下,不必等待下一个slot的开始而提前处理epoch。异步状态访问模型允许进行另一种优化。在这种情况下,process_executable_data可以与主process_block甚至process_epoch有效负载并行运行。
改善这项设计
?有人可能会说,当前的提案会把执行模型设置为一成不变的,并降低了在需要时引入更多可执行分片的能力。
另一方面,一些可执行分片引入了诸如跨分片通信、共享帐户空间等问题,而这些问题与执行模型的预期转变同样重要且难以解决。
对于该提案,VitalikButerin评论称:
“干得好!我确实担心eth1执行和信标链之间的同步交互。原因是使用同步交互虽然更简单,但会永久性地规定了验证eth2区块需要运行相应的eth1执行的要求。例如,它排除了允许eth2节点成为eth1无状态客户端等替代方法,并且仅验证eth1方是否是指定委员会的一部分。因此,即使可执行数据直接在信标区块中,我也会倾向于保持可执行数据与信标链逻辑之间的通信完全异步。”
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。