科普 | 给新来贡献者的以太坊 2.0 Phase0 指南_UST:以太坊

介绍

本文旨在帮助那些第一次接触ETH2.0并且想要参与开发工作的人。本文将概述重要内容并介绍关键术语,不会深入探讨开发细节。文末附有更多资源的链接。如果对当前以太坊区块链的术语有所了解,对阅读本文会有帮助。阶段

JustinDrake很好地总结了以太坊2.0的开发阶段:质押:通过Eth1上部署的智能合约引入验证者阶段0-系统:信标链,即本文主要介绍的部分阶段1-数据:并行处理“分片”中的交易阶段2-状态:EVM2.0、智能合约概述

目标:交易排序

以太坊主链创建了一个有效交易的有序列表。有效交易指的是由一组运行以太坊挖矿软件的独立互联计算机达成共识的交易。以太坊2.0依旧维持这个目标不变,只是改用PoS机制代替PoW机制来对交易顺序达成共识。并行处理

在PoW机制下,近期交易的集合会被打包放入区块中。PoW与PoS的区别在于节点如何决定区块的顺序,也就是如何将新挖出的区块链接起来。此外,以太坊1.0主链只是单独一条由区块组成的链,以太坊2.0则是由很多分片组成的,会创建出并行的几条区块链,不过这要等到阶段1才能实现。为了让这些分片协同工作,会有另一条链来将各个分片的有效区块统一起来。这条专门用于主导系统运行的区块链被称为信标链。以太坊2.0阶段0的规范聚焦于信标链,完整的解决方案请参见其它资料。信标链由信标链节点构建

运行以太坊2.0客户端信标链节点软件的联网计算机就是以太坊2.0网络上的节点。在以太坊1.0中,互联的节点会通过分享信息来创建/分享新的区块。因为要等待所有节点都就链上最新挖出的区块达成共识,所以交易确认需要一点时延。以太坊2.0阶段0的核心是,信标链节点之间如何对信标链上的出块顺序达成共识。随机出块

为了不引入中心化金融系统中可能有害的属性,我们需深思熟虑才能设计出良好的去中心化系统。一方面是要确保在分布式网络中的一大拨人都有机会产生/验证数据,以此来避免中心化/腐败:必须保证提议区块的节点是从网络中随机选择出来的创建有效区块会得到奖励以及/或者无效区块会遭受惩罚工作量证明是利用算力来实现这一点:区块提议者之间进行周期性的随机出块创建有效区块需要负担一定的经济成本权益证明是通过质押ETH的方式来实现这一点:每个时隙都会随机分配验证者如果提议的区块无效会被罚款,提议有效区块会则会得到奖励虽然我们提到过信标链节点也在生成区块,但是它们实际上不是通过质押来参与以太坊2.0网络的节点。这是验证者的职责。验证者

验证者是质押32ETH来参与以太坊2.0的个人地址。验证者会被频繁且随机地分配到任务,签署新提议区块中他们认为是有效的区块。一台运行以太坊2.0客户端上验证者客户端软件的联网计算机必须与一个信标链节点相连接。这种模式是相信信标链节点会返回正确的数据,而且只有在数据有效的情况下,由验证者客户端管理下的对应验证者才会对这些数据签名。欲知更多详情,请阅读下一部分。等到以太坊2.0汇集了一批验证者之后,会对这些验证者进行伪随机混洗,然后将他们组成一个个委员会。在每个时段内,会有一或多个委员被分配到一个时隙中去参与验证工作。

-验证者、委员会、时隙、时段-每个时段内,验证者都会被分配去签署新提议的区块、为已经产生的区块投票)。一个时段结束之后,验证者们就会经历再度混洗,然后重复这个过程。信标链节点

除了管理已经质押过32ETH的验证者列表,信标链节点还有以下职责:保证时隙长度创造随机性为每个时隙分配委员会响应与之相连的验证者客户端硬件/软件

互联计算机

要想具备高可用性并且让区块验证获得足够高的随机性,需要汇集一大批验证者。在理想情况下,这些验证者都分散在多个验证者客户端之间,后者与组成以太坊2.0网络的一个或多个信标链节点相连。

-信标链节点之间通过网络连接;验证者客户端和信标链之间通过网络或本地连接-运行信标链节点的硬件之间会进行通信,分享已签署的区块和证明信息。验证者客户端会连接到它所信任的信标链节点上,以便了解其验证者被分配到了哪个时隙。此外,验证者客户端会为其管理的验证者请求数据。运行信标链节点的经济激励、能否在同一个机器上运行信标链节点和验证者客户端,以及信标链的信任问题等等都不在本文的探讨范围内。在本文撰写期间,这些问题依然未有定论。最简单的配置是一个信标链节点,加上一个与之相连的只管理一名验证者的验证者客户端。然而,考虑到运行信标链节点的要求较高,而运行验证者客户端的要求要低得多,验证者客户端在数量上很可能大大超过信标链节点。验证者客户端只需要一台性能较好的家用个人电脑或是一个树莓派就可以搞定,因此一个验证者客户端上可能只有很少几名验证者。因此,一个信标链节点上可以连接多个验证者客户端,一个验证者客户端也可以选择连接到多个信标链节点上。这是为了预防某个信标链节点掉线,或者在错误时隙上提供了数据。如果是前者这种丧失可用性的情况,验证者被罚的钱很少,而在误签的情况下,验证者被罚的钱要多得多。这种削减验证者权益的惩罚在规范中被称为罚没。从软件到数据

如果你将来想协助开发以太坊2.0客户端的话,最好了解一下不同软件之间是如何连接并通信的。阶段0规范不涉及这一点,主要专注于作为数据的信标链,比“节点”概念更高一层。所有信标链节点都需要就信标链状态达成共识。将最新提议的区块与老状态结合获得新状态,就可以改变信标链节点的状态。后续。。。

希望这篇文章能够让你更好地理解以太坊2.0的规范以及实现。接下来还有几点需要探究:验证者的押金如何存入以太坊1.0的智能合约内,并让信标链节点发现的。以太坊2.0上的账户是如何创建的,例如,Lighthouse中的账户管理员。强荐这个视频。注:音频已改进。更多资料

规范

以太坊2.0:https://github.com/ethereum/eth2.0-specs#ethereum-20-specificationsLighthouse实现:https://github.com/sigp/lighthouse/#lighthouse-ethereum-20图解版:https://github.com/protolambda/eth2-docs#justification-and-finalization讲解

阶段0规范+对象:JustinDrake:视频研究和分片:JustinDrake:视频参考资料

信标链:VitalikButerin和JustinDrake:视频

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-3:363ms