一 什么是信标链
1.1 信标链存在的背景
第一: 以太坊1.0网络可扩展性不足,导致交易处理速度慢和交易费用高
第二: 对能源消耗不友好: PoW需要大量的计算资源和电力来解决复杂的数学难题,从而验证交易。这种高能源消耗对环境不友好。
第三: 需要消耗大量硬件资源: PoW对硬件设备有高要求,通常需要专门的矿机,这增加了成本并导致中心化问题。
1.2 什么是信标链以及信标链作用
第一: 信标链是以太坊2.0核心组成部分,是独立于以太坊主链的一条链,但是和以太坊主链互相交互和协作
第二: 通过引入新的PoS共识机制,从而降低对能源消耗和硬件资源的消耗
第三: 为后期的分片方案提供了基础
第四: 主链作为执行层,负责执行智能合约和更新区块全局状态,以及区块写入链上;信标链主要作为共识层,负责从执行层交易池捞取数据生成区块,并进行验证
二 信标链commitment level
信标链中,区块的状态分为unsafe、safe、finalized, 那什么时候区块的状态会发生改变呢?这里就涉及到slot和 epoch。
2.1 Slot
Slot代表一个时间间隔,这个时间间隔是12s, 每隔12秒验证者就会从执行层的交易池捞取交易数据进行区块打包,我们也可以认为每个12秒就会打包一个区块。
2.2 Epoch
Epoch是每隔32个slot的时间间隔,也就是 12s * 32 = 6.4分钟。
2.3 unsafe、safe、finalized转换
第一: 当slot到期,验证者就会打包一个区块,此时区块状态是unsafe, 一个区块被称为unsafe意味着该区块还没有经过足够的验证者投票确认,可能会被重组或替换。
第二: 当32个slot到期,也就是6.4分钟,这时候会产生一个epoch, epoch内的所有区块的commitment level 会修改为safe 状态。该区块已经过大多数验证者的验证和投票,且在短期内被撤销或替换的可能性非常低, 它仍然有微小的可能性会被重组
第三: 当下一次epoch到期,即12.8分钟后,不仅会将当前epoch内的区块修改为safe, 并且还会把前一个epoch内的区块状态修改为finalized。一旦一个区块被最终确认,它和它之前的所有区块都不可更改,这意味着所有包含在这些区块中的交易状态都是永久性的。
三 信标链有哪些作用
3.1 共识管理
信标链提供了PoS权益证明共识机制,可以减少对能源的消耗,和硬件的依赖。验证者对执行层的区块进行提案和验证,达成共识
3.2 验证者管理
信标链负责管理验证者质押、激活和退出等。
质押: 验证者必须质押32个ETH
激活: 验证者质押后,并不会立即参与到验证者委员会的选举,而是放入到一个队列中等待被激活
退出: 质押者也可以退出
四 信标链如何和主链交互
4.1交易提交和进入交易池
#1用户创建并签名交易后,将其广播到以太坊网络。
#2 执行层节点接收交易,并进行初步验证,验证通过的交易被放入交易池(mempool)。
4.2 交易执行和区块生成
交易执行:执行层节点从交易池中选择交易进行执行,包括智能合约的执行和状态更新。
区块生成:执行层在本地节点上生成一个包含已执行交易和状态变化的区块。
4.3 区块提议和提交
调用GetPayload():信标链通过PoS机制随机选择一个验证者,验证者调用Engine API的GetPayload()函数,从执行层获取已经生成并打包好的区块。
提交新区块:验证者将获取到的区块通过Engine API的NewPayload()函数提交给信标链。
4.4 区块验证和投票
验证和投票:信标链中的其他验证者对新区块进行验证和投票,确保区块和交易的有效性。
达成共识:如果区块获得足够多的验证者投票支持,则该区块被确认并添加到区块链中。
4.5 状态更新和最终性
状态同步:信标链通过Engine API的ForkChoiceUpdated()通知执行层其他节点更新或者同步状态,并将区块写入区块链。
最终性确认:信标链确保区块的最终确认和不可篡改性。
五 信标链共识层和以太坊执行层
第一: 信标链共识层属于信标两;以太坊执行层属于以太坊主链
第二: 信标链共识层的客户端节点有自己的P2P网络;以太坊执行层客户端有自己的P2P网络,如图示:
第三: 信标链共识客户端的作用就是共识管理、验证者管理等;执行层客户端作用就是收集交易,放入交易池,本地执行交易和同步共识层达成共识的区块
第四: 信标链共识客户端和执行层客户端是通过Engine API进行通讯的