以太坊|以太坊2.0方案及进展研究报告( 四 )


为系统随机分配验证者 , 解决分片 51% 攻击问题
区块链系统出块过程中的随机性至关重要 , 它必须是分布式、可验证、不可预测的 , 并且是不可剥夺的 。 对于公链来说 , 在将全网任务划分到不同分片的同时 , 也就把算力划分到了相应分片中 。 对于单个分片来说 , 只能得到原来 1/n 的算力保证 , 此时对单个分片发起 51% 攻击的难度也会降到原来的 1/n , 这会导致分片更容易被恶意矿工掌控 。 因此对于一个分片系统来讲 , 需要很好的随机性来防止特定分片被单独攻击 , 而信标链就是负责向系统提供这种随机性的 , 它会为每个分片随机选出验证者委员会 。
验证者委员会是由信标链随机选择的一组验证节点 , 负责见证信标链和各分片产生的区块 。 信标链有其对应的委员会 , 每一个分片也各有一组验证者委员会 。 委员会负责保证它们所在分片的安全性和完整性 , 并负责证明信标链上的分片状态 。
在每一次 Slot 中 , 信标链会在验证者委员会中随机为该链选出一位验证者负责出块 , 一定数量的其他验证者则检查该区块并验证正确性 。 到下一次出块时 , 则再从委员会中随机选出一个验证节点提议生成区块 , 同时换另一组不同的验证节点验证正确性 。
在完成一个 Epoch 的出块和验证任务后 , 信标链会将所有的验证节点重新洗牌 , 给每一分片随机选出下一个 Epoch 的新的验证者委员会 。 验证节点的选举过程在随机数生成算法的帮助下 , 从根本上避免了验证节点间的勾结串通 , 提高了协议的安全性 。
跨分片通信 , 解决分片间双花攻击问题
双花攻击是指将同一笔资金分别发给两个人或者多个人 。 在分片中也存在双花问题 , 攻击者完全可以尝试将同一笔资金发送给不同分片中的帐户来实施双花攻击 , 这就需要做好跨分片通信来避免双花攻击 。
跨分片通信需要借助信标链来完成 , 分片与信标链直接通信 , 信标链会同步更新所有分片的区块头作为验证的信息 , 不同的分片就能通过信标链通信 。 当信标链区块完成时 , 相应的分片区块就被认为是最终确定的 , 而其余分片则可依赖其进行跨分片交易 。 信标链作为枢纽能够记录所有分片的状态和信息 , 避免出现双花问题 。
具体来看:当分片 1 向分片 2 发出消息时 , 分片 1 会将相关信息打包到它的区块头中 。 等待信标链将分片 1 的区块头打包到新的区块中 , 信标链完成区块共识后 , 分片 2 会接收到信标链广播的包含分片 1 区块头的信息 。 在此之后 , 分片 2 会验证关于 分片 1 的信息然后开始执行相关操作 , 并将执行完成的区块信息发送给信标链 。


(跨分片通信过程 , 图片来源于欧易研究院)

2)共识机制 Casper——解决无利害攻击、长程攻击、简单攻击问题 , 以奖惩机制规范节点行为

Casper 是以太坊 2.0 的核心共识协议 , 负责管理系统节点 , 对验证者施行奖励和惩罚 。
通过节点质押解决 PoS 无利害攻击问题 , 以奖惩机制规范节点行为
由于 PoS 存在\"无利害攻击\"问题 , 即在 PoS 机制下 , 恶意的节点验证者可以在没有任何损失的情况下把自己的币押在分叉链上推动硬分叉 。 因此在持币者需要向信标链抵押一定数量的 Eth(目前为 32Eth)申请成为节点 , 当被标记为\"active\" 之后 , 才能运行协议 。
同时信标链也会跟踪和管理验证节点 。 节点们每成功打包一个区块 , 就会获得一个与他们所持有的 Token 成比例的以太坊系统奖励 。 节点负责出块、验证区块 , 还需要一直在线以完成系统分配给它们的任务 。 如果大多数验证者拒绝他们所建立的区块 , 节点将面临失去抵押 token 的风险;如果验证者没有履行对区块投票的责任 , 他们质押的 Eth 也会被罚没;如果验证节点的余额减小到验证阈值以下 , 则将被踢出验证节点池 , 无法继续参与验证工作 。 因此 , Casper 迫使验证者诚实行事 , 并通过奖惩制度遵守共识规则 。