本文介绍以太坊基础知识 Time、Slots和 Epochs,以及以太坊从 PoW 转向 PoS 后在出块方面有哪些变化。
原文标题:Ethereum Fundamentals: Time, Slots and Epochs
原文作者:Haym Salomon
原文来源:Twitter
编译:BTX Capital
以太坊以一种不直观的方式来表达时间:每 12 秒提出一个新块,代表 EVM(以太坊虚拟机)内的 1000 次瞬时变化。
本文介绍以太坊基础知识 Time、Slots和 Epochs,以及以太坊从 PoW 转向 PoS 后在出块方面有哪些变化。
以太坊(Ethereum)是一种世界性的计算机,换言之是一个全球共享的计算平台,存在于由成百上千台计算机组成的网络中,每台计算机都运行以太坊虚拟机(EVM)的本地版本。该网络能够使用共识系统保持同步。
在以太坊发展的前7年,以太坊使用Proof of Work(PoW)实现共识机制的同步,而如今使用Proof of Stake(PoS)。这两种方法都基于认证一个拥有向区块链添加新块特权的节点。
在PoW下,节点(矿工) 会竞争以获得成为下一个区块提议者的权利,区块提议者在挖矿的过程中具有极高的地位:他们不仅可以随心所欲地挑选和订购txns,还可以额外获得:
挖矿竞赛本质是一个解决极其困难谜题的一个过程,只能通过试验和试错来解决。矿工们在挖矿过程中不断猜啊猜,直到他们解开谜题,并证明他们在现实世界中做了相关工作(比如使用电力为解决这些谜题的机器提供动力)。
在PoW下,能够最快地解决密码谜题的矿工将成为区块提议者。完成后,它将其区块告知到网络中的每个其他节点。然后每个节点进行检查,以确保txns是有效的,并且谜题已经完成。
PoS从根本上与PoW是不同的,在PoS过程中完全不存在竞争。也就是说,与其通过浪费尽可能多的电力来选择下一个区块提议者,不如我们轮流成为区块提议者 ?
这是PoS的核心,为此你只需要32个ETH来作为保证金。
从PoW到PoS的一个影响是我们改变了以太坊计算的基本节奏:从不可预测的比赛转变为基于回合的系统。
如今,“世界计算机”以太坊上的时间以12秒为一个单位计数,称为“slots” 。每个 slot 都会分配一个不同的验证节点来提议一个新区块,如果它完成了它的任务,一个有效的区块(在4秒内)将会填充slot,否则slot将传递为空。
区块提议者将区块发送到网络中的每个节点,然后由节点负责处理它并更新其EVM的状态。
这使所有节点与提议者保持同步,并将EVM的环境转变为集体性的以太坊环境。
每个slot都有一个专门分配的委员会,这个所谓的委员会是一组验证节点,他们被指派验证和证明由区块提议者广播的区块的有效性。经过验证,委员会成员会广播其加密认证。
在发文此刻,就有超过44万个验证器。如果每个验证节点都在每个委员会中,网络将在大量的认证计算下崩溃。因此我们做了一个去中心化的权衡。每个验证器不会验证每个slot,但它们会验证每个epoch。
一个Epoch由32个slots组成。1个slot = 12秒,所以1个epoch = 6分24秒。在每个slot的开始,整个验证节点小组被随机分成32个委员会,对应于即将到来的Epoch的32个slots。这种随机性非常最重要,我们需要RANDAO。
每个slot都会带来一个新的委员会。其中,第一个成员是区块提议者,其余的都是证明人。区块提议者有4秒的时间向委员会发送区块。每个成员验证区块并创建BLS签名(如果没有指定区块,他们将验证最后一个块)。
BLS签名是一种数字签名,它提供了所有签名应有的作用 (证明特定的消息是由特定的人签名的),但有它一个有用的附加属性:它可以被聚合。一旦BLS签名被聚合,一个操作就可以验证数千个签名。
刚才说到了有超过44万个验证节点,如果按照一个epoch有32个slots计算,则每个slot将有1.37万个验证节点。这个数字仍然很大。因此,验证委员会被分成128个子网,这样算下来每个子网仅仅有100个验证节点。
在每个子网中,指定16个验证节点作为聚合器。所有的子网成员发布他们的BLS签名,但只有聚合器对签名进行聚合。事实上,如果所有16个都试图构建相同的理想聚合签名,则效果往往并不理想。
那么区块提议者将从128个子网中的每一个子网选择一个最佳的BLS聚合签名。选择完成后应用BLS聚合算法,将128个子网签名合并为一个最终的委员会BLS签名,这样就代表约1.37万个验证节点。
顺便说一句,这就是为什么成为验证节点需要至少抵押32个ETH。因为这种聚合过程既缓慢又复杂,如果把抵押金额降低,则会增加验证节点的数量,从而成倍地增加难度。
在每个epoch结束时,每个验证器都会运行process_epoch。下面的内容会给你更详细的信息,总结为两部分:
Finalization(最终性)是Casper FFG协议的应用。Finalization是一种协议承诺,确保epoch以及其中的区块与txns是不可逆的。
Finalization本质上是一个数学与经济上的保护措施,通过特定操作保障以太坊的安全性。撤销一笔已完成的交易将销毁 1/3 质押的 ETH(如今质押总量已超过 200 亿美元)。
Epochs标志着Finalization的边界。如果超过2/3的网络在一个epoch证实,它就能通过验证。如果第二个epoch紧随第一个epoch同样超过2/3的网络得到验证,这将意味着这个epoch将实现Finalization,并得到以太坊的安全保障。
Process_epoch的另一部分是Consensus and Housekeeping。这是指为维护共识规则所需要的一切(例如处理削减、奖励等),并为下一个epoch的重置提供舞台。同样,如果你想了解更多细节,请查看另一个长推。
Slot:一个slot是12s,以太坊寻求的一个新的区块(EVM)。
Epoch:一个epoch包含32个slots,也就是整个网络的投票。
Finalization:在证明之后,第二次验证节点的绝对多数投票将确认epoch。Finalization就是ETH的安全保障。
责任编辑:Kate