专栏首页区块链入门以太坊2.0:脱胎换骨迈向”世界计算机“之路

以太坊2.0:脱胎换骨迈向”世界计算机“之路

早在以太坊启动之初,就已经规划了开发的四个阶段:边境(Frontier)、家园(Homestead)、大都会(Metropolis)和宁静(Serenity)。目前以太坊已经走过了前三个阶段。它开启了一个智能合约新时代,引领了区块链2.0时代。众所周知,以太坊的终局是走向“宁静”,也就是我们说的以太坊2.0(eth2.0)时代,但在“宁静”到来之前还将经历“伊斯坦布尔”,“以太坊1.X”两个阶段。以太坊2.0是一次脱胎换骨的大改变,是一次全面的修订和重新设计,是一场漫长的马拉松。那么“宁静”阶段(eth2.0)到底改变了什么呢?“宁静”的主要内容包括从PoW(工作量证明)到PoS(权益证明)的完全转变,“宁静”的所有升级将分为四个分阶段实现:

  • phase 0:信标链(Beacon Chains)
  • phase 1:分片链(Shard Chains)
  • phase 2:eWASM用于替代以太坊虚拟机(EVM)
  • phase 3:Continued Improvement

在以太坊走向“宁静”期间,“eth1.x”也将持续得到完善,以确保原始PoW 链的延续。 在 eth2.0 交付计划中,首先需要实现的是信标链的建立。分片技术开发公司 Prysmatic Labs 的联合创始人Preston Van Loon 于2019年5月7日在博客网站 Medium 上发文宣布 eth2.0 的信标链测试网正式上线,这也标志着 eth2.0 phase 0 的测试网终于完成。信标链测试网浏览器地址:https://beacon.etherscan.io/

信标链信标链(Beacon Chains)是使用 POS 共识算法的链,它是 eth2.0 的基础设施,在 eth2.0 第二阶段的 shard chains 必须要借助信标链才能运行起来。信标链会为每个 Shard 随机指定不同的 Validators 用于出块,同时也会为每个 Shard Chain 分配一个委员会,委员会的作用是对 Shard Chains 的 Validators 生成的区块进行投票。分片链的中区块需要有半数以上的委员会成员达成共识,Shard Chains也可以借助信标链完成跨 ShardS 的操作。目前信标链会与 eth1.0 链并行运行一段时间,信标链也会依赖 eth1.0 链上的状态。

信标链如何工作?信标链采用的是 PoS 算法,在 PoS 算法中每个矿工出块的概率与矿工拥有的权益成正比. 但在信标链中每个矿工的权益都是相同的。每个矿工只能向信标链上抵押 32ETH。要成为信标链的 Validators,需要向 eth1.0 上的 Deposit Contracts 上发送一个交易,在交易中需要携带 32ETH,在 eth1.0 的 Deposit Contracts 的公开方法中有两个参数:

  • Pubkey,用于 Beacon 中 Validators 的签名公钥;
  • Withdrawal_credentials,用于之后取回抵押的 ETH ;

调用 Deposite 合约成功后,合约会返回一个 Log Event ,信标链会自动感知到 eth1.0 链上发生的事件.信标链会将新加入的 ValidatorS 放入到 Pending Valiadtors 中,过一段时间后会变成 Active Validators ,成为 Active Valiators 后就可以参与 PoS 协议出块了。对于长时间不活跃的 Validators 以及作恶的 Validators ,Beacon 会采取惩罚措施,当 Validators 的权益减少到 16ETH 时,就不能参与 PoS 协议的出块操作,Beacon 会将权益低于 16ETH 的 Validators 剔除出去。

在 Beacon Chains的区块中一共维护以下几个信息:

  • 维护注册的Validators
  • Pending Validators,即将加入 Validators 列表的账号
  • Active Valiators ,已经加入Validators 列表的账号
  • Exit Validators ,即将退出 Validators 列表的账号
  • 维护投票信息
  • Validator Votes
  • Random Number,用于随机选择 Proposer,以及 Committee

Proposer选择Validators 需要被选中为 Proposer 才可以提交区块,在 eth1.0 中下一个区块的提交权是通过矿工的算力决定的,哪个矿工的算力大,哪个矿工就有很大的概率被选中为下一个区块的生产者。 在 eth2.0 中出块节点的选取是基于 Random Number,在区块链系统中很难产生质量良好的随机性,但是 PoS 协议需要随机数的随机性的来源是分布式的,可验证的,不可预测的,并且是不可替代的。使用 Random Number 随机从 Validators 中选择 Proposer 可以使 Validator 无法预知哪个 Validators 被选中,这样可以防止 Validators 之间串谋发起攻击。 在 Beacon Chains 中每隔6秒产生一个区块,这6秒也被称为slot 间隙,在每个时隙,被选中的 Proposer 会收集先前块的 Beacon Chains 验证者的所有投票,并将它们组成一个新的区块。

image

CommitteeProposer 提案的区块,需要进行投票才可以进入到 Beacon Chains 的主链上,在 Beacon Chains 中每隔一个 Epoch 会通过 Random Number 选择一些Validators 组成 Committee ,每隔64个slot 组成一个 epoch,所以一个 epoch 大概是6.4分钟。 Committee 可以对 proposer 提案的区块进行投票,投票通过的区块才有可能得到最终的确认。理想情况下,如果可以快速收集投票,那么 committee 中的成员可以是系统中所有的 active validators。Fork Choice Rule在 eth1.0 上是根据算力决定最长链,而 Beacon Chains 中使用的是PoS 算法,所以会需要另外一套规则来决定大家需要跟从哪条分叉链,Beacon Chains 最终采用的是 LMD GHOST (Latest Message Driven GHOST),LMD GHOST 方法中,算法运行是基于 message 也就是投票,总的来说,拥有最多投票的分叉链会被认为是主链。

上图展示了 LMD GHOST 方法的细节;笑脸符号代表投票信息,每个区块中有个数字,代表投票的数量总和,也就是该区块的权重。在上图中,虽然最上面那条链是最长链,但绿色那条才是主链。分片链分片链(Sharding Chains)是 eth2.0 网络未来可扩容性的核心特征。从整体概念来看,分片是指将数据库(去中心化数据库或其他类型数据库)中多节点的数据处理职责分割开,允许同时进行交易、存储和信息处理。分片理念与目前的 eth1.0 模式完全不同,后者需要每个全节点对每一笔交易进行处理和验证。 “宁静”第一阶段将在分片链上处理最终确定性和共识。此阶段的分片链更倾向于“测试运行”,而不是立即解决扩容问题。信标链将对分片链的执行情况进行监督。验证者质押 32个ETH 之后将被随机分配到特定的分片链上进行验证工作(此处的随机性可以确保验证者的分配路径是不可预测的,否则将面临人为操纵的风险)。根据 eth2.0 规范,信标链将支持1024个分片链,每条分片链上将有128个节点进行验证工作。eWASM在“宁静”第二阶段中,随着新虚拟机 eWASM(Ethereum-flavored Web Assembly)的引入,分片链将从相当基本的数据标记形态演变为功能完整的交易链,从而担当起以太坊网络扩容的重任。为了维护区块链生态系统的正常运行,节点必须在虚拟机中执行交易和智能合约。 Eth1.0 的虚拟机被称为EVM,切换到 eth2.0 后,以太坊网络的虚拟机将升级为 eWASM ,这是一个基于 Web Assembly 的虚拟机,由万维网链盟(W3C)定义为开源标准。由于 WASM 支持多种编码语言, eWASM 使得任何语言编写的智能合约都能在以太坊上运行,而 eth1.0 的 EVM 只允许由 Solidity 语言编写的智能合约运行。ETH 1.XETH 1.x是一个代号,表示针对 eth1.0 的一系列升级, eth 2.0 还需要2-3年才能全面推出,第零阶段的信标链和第一阶段的分片链将在1-2年内完成,第二阶段的 eWASM 将在2022年的某个时候完成。Eth2.0 作为一个独立的区块链被部署,所以它不会取代 eth 1.0,这意味着 eth1.0 链需要在未来5-10年内保持可持续性。Eth1.X 背后的团队还处在确立路线图的早期阶段,但他们决定了 eth1.x 升级的三个首要目标:

  • 提高每秒吞吐量来提高主网可扩展性(通过优化客户端来使得网络可以持续提高区块的 Gas Limit);
  • 保证可以长久运行全节点(通过“状态租金”减低和限制全节点对磁盘空间的要求);
  • 通过包括 eWASM 在内的虚拟机升级在优化开发者体验,使用不同的交易费用模型来稳定整体交易手续费;

总结V神(Vitalik Buterin)曾说过:eth1.0 是一群人杂乱无章地尝试建立世界计算机,而 eth2.0 将是实际上的世界计算机。如果以太坊真的完成了他们的目标,结束了这场漫长的马拉松,那我们将迎来真正的世界计算机,拥有一个完全可扩展的通用区块链。

*本文转载自 PPIO -吴寿鹤 同名文章 https://mp.weixin.qq.com/s/UEKa100N0bl7VW9uWO_NlQ)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【实践】GO语言框架REDIGO使用REDIS数据库入门

    基于GO的REDIOS调用框架有开源库redigo。本文主要讲解redigo的框架和调用样例。

    辉哥
  • 【链安科技】无限授权转账漏洞

    Lightcoin 合约的 transferFrom() 函数,即授权转账函数,在执行完转账后本该修改授权金额,减去已转出部分金额。但这一步骤中把这授权账户地址...

    辉哥
  • 【区块链技术工坊37期】HPB芯链区块链中间件解决方案及落地案例

    2)议题: 区块链是目前国际国内社会很火热的词,但真正的商业化落地之路仍然是在不断的探索之中,还未有大范围的落地应用铺开。为什么会出现这种情况?区块链目前存在...

    辉哥
  • CSDN专访腾讯蒋杰:深度揭秘腾讯大数据平台

    image.png 大数据,这个词越来越热,很多人都在谈大数据,其实很多张口闭口大数据的人,或许都不知道数据是如何产生、传递、存储、运算到应用的。其实我一直...

    腾讯高校合作
  • CSDN专访腾讯蒋杰:深度揭秘腾讯大数据平台

    腾讯业务产品线众多,拥有海量的活跃用户,每天线上产生的数据超乎想象,必然会成为数据大户,为了保证公司各业务产品能够使用更丰富优质的数据服务,腾讯的大数据平台做...

    腾讯大数据
  • 破解.net程序 编译和反编译方法

     有好多.net程序有加密狗或者有验证,如果exe或dll没有做过特殊处理,破解.net程序其实很简单,不过你要有足够的耐心! 我只做个简单的小例子,给大家...

    lpxxn
  • MySQL的锁1 MySql的三种锁2 表锁的锁模式3 MyISAM的并发锁4 InnoDB锁问题5 关于死锁6 总结7 索引与锁

    JavaEdge
  • memcache和redis的区别

    1.定义 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API Memcac...

    joshua317
  • 讲真,我发现这本书有个地方写错了!

    我手上这本《Java并发编程的艺术》的版次是:2019年3月第1版第14次印刷。

    why技术
  • Spark参数配置说明

    1  修改$SPARK_HOME/conf目录下的spark-defaults.conf文件

    用户3003813

扫码关注云+社区

领取腾讯云代金券