区块链原理与技术
  • 区块链原理与技术
  • 比特币密码学基础
    • 密码学简介
    • 哈希函数
    • 数字签名
  • 比特币数据结构
    • 哈希指针
    • 默克尔树
    • 数据结构
  • 比特币交易模型
    • 身份确认
    • 交易服务
  • 比特币共识机制
    • 共识机制
    • 区块链的共识机制
  • 挖矿&脚本
    • 挖矿
    • 比特币脚本
    • 多重签名
  • 区块链分叉
    • 硬分叉与软分叉
  • 问题
  • 比特币匿名性
    • Page 1
  • 以太坊数据结构
    • 以太坊概述
    • 以太坊账户
    • 以太坊状态树
  • 交易树&收据树
    • 以太坊交易树&收据树
    • 布隆过滤器
    • GHOST协议
  • 以太坊:从PoW到PoS
    • 工作量证明PoW(节能)
    • 权益证明PoS
Powered by GitBook
On this page
  • 时间(Slots & Epochs)
  • 验证者和证明(Validations & Attestations)
  • 委员会 & LMD GHOST
  • 检查点 & Casper FFG投票
  1. 以太坊:从PoW到PoS

权益证明PoS

Previous工作量证明PoW(节能)

Last updated 4 months ago

权益证明是目前支撑以太坊共识机制的基础。与PoW相比,能耗更低且利于扩容。

权益证明可以证明参与者已经将具有价值的东西投入到网络中,如果他们表现出欺诈行为,这些东西可能会被销毁。

时间(Slots & Epochs)

在PoW中,生成区块的时间是由挖矿难度决定的,而在PoS中,这个时间是固定的。以太坊2.0引入了信标链(Beacon Chain),为PoS提供时钟心跳,分为slots(12s)和epoch(32个slot即6.4min)。

slot是将区块添加到信标链的机会,理想情况下,每12秒就会添加一个区块,slot可以是空的。在每个slot中随机选择一位验证者作为区块提议者,该提议者负责创建新区块并发送给网络上的其他节点。

验证者和证明(Validations & Attestations)

PoS的验证者可以类比为虚拟矿工。验证者负责运行以太坊的共识,也有类似矿工的激励机制。区块提议者(proposer)是伪随机选出来的验证者。大多数情况下,验证者是对区块进行投票,这些投票记录在信标链中,并决定信标链的链头(新区块)。

在每个epoch,验证者都会被伪随机分配到一个slot。Attestation是验证者的投票,由验证者的质押余额加权,除了区块之外,验证者还会广播证明Attestation。验证者之间也会互相监督,如果验证者举报其他验证者的投票有冲突,验证者就会得到奖励。

随机选出的验证者在每个slot提出区块,如果区块被其他验证者采纳则该提出者收到奖励,如果被选中的验证者没有提出区块,slot为空。

在以太坊的PoS机制下,可以通过向存款合约中存入32个以太币成为验证者。信标链会停用余额到达16ETH的所有验证者。验证者也可以在2048个epoch后自动退出。

委员会 & LMD GHOST

理想状态下,区块链始终只会有一个新区块并且所有验证者都会证明它。然而,由于网络延迟或因为区块提议者提议多个区块,不同验证者可能看到不同的新区块。因此,需要一种算法来确定支持哪一个区块。 PoS中使用的算法称为 LMD-GHOST。

LMD-GHOST投票算法中,首先会通过伪随机进程RANDAO选择一个至少包含128名验证者的委员会,一个验证者在一个epoch中只能参与一个委员会,每个激活的验证者在每个epoch都会被分配到一个委员会中。每个slot的区块的 Proposer 也由 RANDAO 根据验证人的余额加权选出。

在验证者提出新区块后,委员会中的其他验证者的职责是为他们认为的最新区块进行投票(即对信标链头的证明),这被称为 LMD GHOST投票。

LMD GHOST投票的目的是解决分叉。

当出现分叉时,委员会要根据LMD GHOST投票结果确定主链。每当遇到分叉时选择权重最大的区块作为主链,一直重复该操作直至找到叶子区块即链头。对于某一个区块的权重,它等于投给该区块以及该区块所有子孙后代区块的票数总和。

检查点 & Casper FFG投票

检查点是epoch第一个slot的区块。第一个slot中若是没有区块,则检查点是前一个最近的区块。每个epoch必定有一个检查点块,一个区块可以是被归属于多个epoch的检查点。