注:原文作者是 Alex Beckett,目前就职于 Celestia。
全节点验证区块的方式,是通过下载所有交易并重新执行它们来检查其有效性,毫不奇怪的是,更大的区块会给全节点带来更大的负担,因为处理和验证每个区块需要更多的硬件。而欺诈和有效性证明等技术使得节点能够检查有效性,而无需重新执行每笔交易。数据可用性采样技术使得节点能够验证数据可用性,同时只下载每个区块的一小部分。
剩下的最后负担之一就是状态。要验证区块,全节点还必须存储整个状态的副本。随着状态的增长,对全节点的存储需求也会增加。幸运的是,状态增长在一定程度上也是可以解决的。
所谓无状态(Statelessness)是一种特性,是指全节点可以在不存储状态的情况下验证区块(这就叫无状态)。而无状态主要有两种:
Chiliz:将于5月10日启动专注于体育的新区块链:金色财经报道,体育和娱乐区块链解决方案Chiliz宣布,将于5月10日启动专注于体育的新区块链。[2023/3/28 13:31:17]
强无状态:不需要节点来存储状态。
弱无状态:只需要区块生产者来存储状态。
强无状态引入了一个数量级的复杂性和权衡,所以我们现在只关注弱无状态。
一个(弱)无状态 rollup 是一种至少需要定序器(sequencer)来存储状态的 rollup,但全节点是无状态的。一个 optimistic rollup 可能还需要观察器( watcher)存储状态以生成欺诈证明,这取决于是否允许为定序器(sequencer)节点生成欺诈证明。
知情人士:FTX需要40亿美元才能保持偿付能力:金色财经报道,据一位知情人士透露,FTX需要40亿美元才能保持偿付能力,并试图以债务、股权或两者结合的形式筹集救援资金。
此前消息,FTX首席执行官Sam Bankman-Fried(SBF)向投资者表示,FTX面临高达80亿美元的资金缺口,正尝试以债务、股权或二者结合的方式筹集资金。此外,SBF承认FTX存在严重的财务漏洞,称若无资金注入,FTX将申请破产。[2022/11/10 12:44:55]
为了验证一个区块的有效性,全节点从一个 pre-state root 开始,它是在将前一个区块附加到链上之后的状态树的根。然后重新执行交易,生成一个新的状态根(称为 post state root)。然后,根据提议的区块头中的 post state root 来验证计算的 post state root。如果匹配,则该区块有效,如果不匹配,则该区块无效并被拒绝。但是,无状态节点一开始没有 pre-state root,因为它们不存储状态。
数据:比特币全网7日平均算力二季度增长7%,大幅低于一季度的15%:7月18日消息,Hashrateindex统计显示,比特币全网7日平均算力在2022年第二季度仅增长了7%,相比之下2022年第一季度增长15%,去年第四季度增长27%。
此外2022年初至今,低于38J/T的比特币矿机价格下降了51%,38-68J/T的矿机价格下降了66%,68J/T以上的矿机价格下降了56%,目前中等级矿机在0.07美元每KWh以下的电价仍然可以勉强工作。[2022/7/18 2:19:56]
在无状态 rollup 当中,定序器将为每个区块分配一个 pre-state root 和 post state root,以验证该区块。还有许多其他细微差别,但这是无状态验证的基本思想。
腾讯音乐测试NFT头像、虚拟音乐室:金色财经报道,腾讯周一表示,开始在其QQ音乐应用程序上测试NFT(PFP)头像和“虚拟房间”音乐区。这些NFT PFP头像是基于腾讯区块链智信链的二次元卡通人物。QQ音乐还将推出虚拟房间功能“音乐区”,用户可以邀请好友的头像成为房间的客人,一起听音乐。腾讯QQ音乐账号的一篇帖子称,安卓用户已经可以在周一上午开始正式销售之前尝试PFP NFT功能和虚拟房间。每个PFP的价格定为0.88 元(0.13 美元),限量 40,000 个。[2022/7/5 1:51:56]
如果无状态 rollup 具有一个 p2p 网络,则定序器只需将区块和相应的状态根发送到初始对等组,然后它们可以在整个网络中传播它们。但如果无状态 rollup 没有 p2p 网络(目前很多 rollup 都是这种情况),那么单个定序器将需要将区块和状态根单独分发到网络中的每个节点。在没有 p2p 网络情况下的 rollup 中实现无状态,将给定序器带来不切实际的巨大负担。因此,p2p 网络是一个先决条件。
除了验证区块,全节点还服务于状态请求(例如,将地址 0x 的账户余额发送给我……)。无状态节点与全节点一样完全验证状态转换,但依赖于全节点来访问状态。因此,仍然需要最少数量的全节点来向网络的其余部分提供状态请求。
实际上,由于硬件要求较低,用户可能会倾向于使用无状态节点,因此,能够依赖的全节点会越来越少。如果没有足够的全节点来服务于状态请求,那么无状态 rollup 将遇到瓶颈,因为状态无法在整个网络中以足够快的速度传播以满足需求。
全节点在将传入交易转发到 mempool 之前验证它们,以防止 mempool 和区块生产者收到无效的垃圾交易。然而,交易验证需要访问状态以获取发送者的帐户余额和 nonce 等数据,无状态节点在没有向全节点发出状态请求的情况下无法执行这些数据。此过程会给无状态节点带来 DoS 攻击的问题,它们可能会收到垃圾交易,但不能拒绝交易,直到它们发出所需的状态请求以检查交易是否有资格转发到 mempool,此外,由于无状态节点在转发交易之前必须采取的额外步骤,因此交易传播速度会变慢。
取消全节点存储状态的要求会降低硬件门槛,从而降低更多用户运行全节点的障碍。减轻状态增长的负面影响对于 rollup 以及任何其他链一样重要,因为它们也很脆弱。由于弱无状态并不能免除定序器存储状态的责任,因此使用最多的 rollup 会发现状态增长可能会成为一种障碍。我们可以实施进一步的措施来减少定序器的状态增长,例如,在状态到期时,在给定的时间段内未被访问的状态将从状态中删除。
顺便说一句,无状态还移除了磁盘 IO 的 DoS 攻击向量,因为无状态节点不再需要执行状态访问,如果 rollup 具有较大的状态,这将特别有用。
无状态(Statelessness)和欺诈证明是同一枚硬币的两面,只要实现了其中一个,就能免费获得另一个。节点需要 pre-state root 和 post state root 来验证欺诈证明,这与无状态区块验证的的要求类似。诚然,关于欺诈证明还有其他考虑因素,例如单轮与多轮、bonding(绑定)以及一般审查阻力细节。
如果防欺诈实现允许它们在 rollup 的 p2p 网络中分布,则轻客户端在此过程中的信任度会最小化。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。