2019-04-03 以太坊Beacon Chain

以太坊2.0,也就是业内常说的“Serenity”,实际上是以太坊规划的一系列升级版本。在这些升级版本中,第一个面世的就是beacon chain。Beacon chain将基于以太坊现有的平台开发。这些升级会在未来几年中陆续问世。大家都期望这一系列版本升级能让以太坊变得更高效,可扩展性更好,TPS达到每秒数千。

以太坊2.0的目标不仅仅是提高TPS,它还包括下面这些:

简洁性:系统复杂度越低越好,甚至可以为此牺牲部分效率。

系统恢复能力:其目标是为了让系统在节点大规模宕机或者全网被分割肢解时仍然能保持正常运转。

持久性:尽量为系统选择能保证量子安全的组件。如果组件暂时无法保证量子安全,那就选择容易被替换的组件。日后当有了量子安全的组件时,可以方便地将这些临时组件用量子安全的组件所替代。

安全性:目标是为了利用加密和设计技巧让尽量多的验证节点在每个单位时间内充分参与验证。

去中心化:其目标是为了让普通的笔记本电脑用复杂度为O(C)的资源就可以处理/验证复杂度为O(1)的分片任务(包括任何系统级的验证比如beacon chain中的验证)。(注:复杂度是计算机算法中的术语,用来描述处理一项任务所要耗费的时间,复杂度越高表明所要消耗的时间就越多)

2019-04-03 以太坊Beacon Chain_第1张图片

上图所示为以太坊规划中的若干版本升级。这些升级的路线图为:

阶段0:Beacon Chain

阶段1:分片链(Shard Chain)

阶段2:执行引擎(Execution Engine)

以太坊beacon chain是基于POS的区块链,是以太坊2.0的核心,也是第一个规划发布的升级版本。它主要的功能如下:

- 存储和维护验证人(矿工)注册表

- 处理交叉链接(crosslink)

- 处理共识,进行区块确认。

验证人(矿工)和共识机制

由于beacon chain是基于POS的,因此,没有类似POW那样的矿工。在beacon chain中,所谓的矿工就是验证人。每个验证人在注册后,都可以参与产生区块并提交区块的工作。一个验证人也可以对其他验证人提交的区块进行验证。创建和提交区块的验证人被称为是“提案人”(proposer)。验证提案的验证人被称为是“证人”(attestor)。

当验证人确认一个区块合法后,会投赞成票表示同意这个区块被加入到beacon chain中。这个验证人也可以说是“证明”了这个区块提案(一个证明也可以被视作是一次对区块提案的投票)。验证人要在区块被加入到beacon chain之前对它进行签名。

在beacon chain中,只有被标记为“活跃”状态的验证人才能提交和验证区块。系统会从一群活跃的验证人中随机(随机数由RANDAO + VDF产生)选取提案人和证人。所有随机选取的证人会被组成一个委员会,该委员会负责验证区块提案。要验证一个区块提案,委员会中至少要有(按截稿时的设计)111个成员。提交和验证一个区块的时间被称为一个“时间槽”(slot)。在若干个时间槽内,所有随机选取的证人都有机会验证区块提案。这若干个时间槽一起被称为一个"纪元"(epoch)。

在以太坊2.0的初期,要成为验证人,必须要向以太坊1.0(也就是现在基于POW的以太坊)的存储合约抵押32个以太币。这个过程是这样:当存储合约收到收到32个以太币时,beacon chain会进行处理,产生一个收据,发送32个以太币的用户就成为验证人。

如果验证人在一段时间内无法正常在线工作,则有可能会损失部分抵押的以太币。无法正常工作的时间越长,则损失越大。但验证人不会损失所有抵押的以太币,当他损失的以太币达到某个阀值,则验证人资格被取消。现在,这个阀值是16个以太币。也就是说只要验证人的以太币被扣到低于16个以后,就会被剥夺验证人资格。

验证人只要不作弊(比如把一笔无效交易判定为有效)就可以一直作为验证人。一旦作弊则其抵押的以太币将被全额没收。系统中执行这个惩处措施的算法被称为“刀斧手”(Slasher)。beacon chain会实时跟踪和更新所有验证人的抵押状态:验证人正常工作时得到报酬,作弊时受到处罚。要注意的是一旦用户向现在(基于POW)的以太坊抵押了32个以太币,将无法取回其抵押,只能用于基于POS的新区块链系统中。

交叉链接(Crosslinks)

以太坊2.0的阶段1被称为“shard chain”,分片链。分片链采用了分片技术。这种技术源自传统数据库技术中的分片。在传统数据库领域,分片技术将一个数据库分为若干子系统,每个子系统放在不同的服务器上。这一方面能提高整体性能,另外也使系统更容易管理。在以太坊中,采用分片技术后,交易将被分配到不同的分片。这使得每个节点不再必须处理所有的交易。当交易被分配到不同的分片处理后,以太坊每秒处理交易的能力将极大加强。

分片链部署后,每个分片会被系统随机选取一个验证人,这个验证人将验证这个分片中发生的所有交易,打包区块,并提交区块提案。该提案会由一组随机选取的委员会验证。当这个提案得到足够多的委员投票通过后,一个“交叉链接”(crosslink)就会产生。这个“交叉链接”确认该区块被加入了beacon chain。交叉链接是beacon chain获取分片最新状态的主要方式。

Casper FFG(Friendly Finality Gadget)

“交易确认”,或者简单地说“确认”,是指一旦某个操作完成,就无法逆转。在去中心化的系统中比如比特币,确认指的是区块确认。比如在比特币中一个交易一旦得到至少6个区块的确认,则此交易在很大程度上就被视作确认了,也就是说此时这个交易再被攻击(比如双花)的可能性就很低。

Casper FFG是基于底层共识机制的一种中继协议(在以太坊beacon chain中会用到)。相对于POW机制,它能提供更牢靠的交易确认。当区块被确认要加入到beacon chain中后,Casper用于保证该区块一定会被加入到beacon chain中。

Casper之所以被认为能比POW提供更牢靠的确认是因为它对“确认”有了标准的定义。在Casper中,当三分之二的验证人对区块投票认可后,该区块就被视作“确认”。三分之二的多数票就是个很强的激励机制,它能在很大程度上打消验证人企图通过合谋作弊来推翻一个已确认区块的动机。一旦验证人有任何不轨行为,将损失掉其抵押的以太币。

另外,Casper的优势还表现在它要求验证人要事先注册。这就避免了突然会冒出另外一批验证人用另外创造的一条区块链来替代现有的区块链。

结论

beacon chain的研发部署是以太坊一系列版本升级中的第一个。当beacon chain部署后,一条基于POS的区块链将和现有的基于POW的区块链共存一段时间,最终基于POW的区块链将彻底退出,而只剩基于POS的区块链。

参考链接:https://www.mycryptopedia.com/ethereum-beacon-chain-explained/

你可能感兴趣的:(2019-04-03 以太坊Beacon Chain)