你还记得自己第一次对区块链世界发出 “原来如此” 感叹时候的喜悦吗?
你想不想对信标链(Beacon Chain)也有这么透彻的理解?
信标链是整个 Eth2 系统的核心;关于信标链的内容,大多都仅仅是在搬弄技术词汇,很琐碎,也不够深刻。
在这里,我们会给你提供对信标链诸要素和机制的透彻解读。我们也会提供例子,恰如其分地点出关键细节,使你能事半功倍。
我们假定,你已经拥有对以太坊区块链或者比特币区块链的坚实理解,也熟悉权益证明(Proof of Stake)。
现在,我们先来看看分片(shard)、验证者(staking validator)、见证消息(attestation)、委员会(committee)、检查点和最终确定性(finality)所组成的全景。
分片:远大理想
要理解信标链,先了解一下分片的概念会有所帮助。区块链(包括以太坊)当前在提高可扩展性(scalability)上面临的主要难题是:每个节点都必须验证和执行所有交易。
而从计算机科学的角度来看,要扩展吞吐量,主要有两种办法:
A. 垂直扩展:大意是加强节点,让节点变得越来越强大。
B. 水平扩展:大意是,加入更多节点。
为了去中心化,区块链系统只能水平扩展。以太坊 2.0(也叫 Eth2 或者 Serenity)的其中一个目标是,让普通的消费级硬件就能运行节点。分片这个术语的本意,就是对数据库进行水平分区(horizontally partitioning)。
基本上,一条分片链会由一部分节点(即全网节点的一个子集)来处理。而系统中的虚拟矿工,验证者(validator),会被分配到不同的分片上,仅仅处理和验证自己所在分片链上的的交易。
在这个系统中,按块处理某个分片的节点群是会不断更换的。
要对一个区块链系统做分片,主要的挑战就是分片的安全性。因为验证者分散在各个分片上,恶意验证者攻陷单个分片的难度会降低。
因此,分片解决方案的关键是:随机混洗验证者,让每个分片区块都由一组(伪)随机选出的验证者所组成的委员会来处理,使得一个所控制权益少于全体验证者权益 1/3 的攻击者的成功概率为 0(mathematically improbable)。
错误性证明(fraud proof),数据托管证明(custody proof)和数据可用性检查(data availability check)同样也是重要的安全组件,但要专门写文章才能解释清楚。
Eth2 现在的计划是启用 64 个分片。虽然分片跟信标链在概念上是相互独立的,我们还是准备讲讲整个系统的一些关键元素。
分片概念反映出了信标链的功能和需要;通过分片这个概念,我们可以理解为什么需要在传统的区块链系统中加入这些额外的部分。这个全新的领域也欢迎有所感悟的读者提出创新。
以太坊 2.0 各阶段
以太坊 2.0 会分三个阶段部署:
- Phase 0:信标链
- Phase 1:分片
- Phase 2:执行
可以类比为人体的三个部分:
- Phase 0:心脏
- Phase 1:四肢
- Phase 2:大脑
也可以类比为一支气势磅礴的管弦乐团:
- Phase 0:指挥家
- Phase 1:乐器
- Phase 2:乐手
每个阶段都会整合到系统中,分别担任不同的角色。比起其它阶段,Phase 1 所引入的功能会更加波澜不惊,而 Phase 2 会更关乎执行。
时隙和时段(Slot and Epoch)
信标链就是以太坊 2.0 的心跳,是整个系统的和谐及共识中的主旋律。
一个时隙(slot)是 12 秒,一个时段(epoch)由 32 个时隙组成,因此是 6.4 分钟。
- 时段 0 的 32 个时隙。创世块就在时段 0 产生 -
(本文中所用的参数数据都来自信标链技术规范 v0.10.1)
时隙是用来标记产生信标链区块及分片区块的机会的:在信标链和各分片上,每一个时隙就有一次产生新区块的机会。你可以想象信标链和各分片链是精心设计、紧密同步的。理想情况下,每 12 秒,就会产生 1 个信标链区块,和分布在不同分片链上的 64 个分片区块。验证者之间确实需要在时间上达成同步。
因此,时隙就像区块时间一样,只不过,时隙也有可能出空块。信标链和分片链的创世块是在时隙 0 时产生的;不过,各分片链会在信标链的时段 0 完成之后才开始运行,而且各有各的时段 0(产生创世块的起点)。
验证者、见证消息以及信标链
PoW 区块链是靠矿工来维系的,以太坊 2.0 的权益证明系统则是靠 “虚拟矿工” —— 验证者。验证者即是以太坊 2.0 协议共识过程的主动参与者。TA 们的经济激励会在后文的 “信标链验证者奖惩措施” 部分讨论。
区块的提议者<