对话以太坊核心开发者 Hsiao-Wei:以太坊 2.0 信标链 | Unitimes AMA

Python publisher01 59℃


全球视角,独到见解

前言
Unitimes AMA(Ask Me Anything)是 Unitimes 重点打造的微信群线上问答系列活动,每周举办一期。我们邀请发展较成熟的区块链项目的创始人、CEO、CTO或核心开发者等嘉宾做客社群,与群成员就该项目的突出技术亮点以及用例等进行高质量互动问答,旨在学习交流区块链最新技术和应用。

期数:第31期
特邀项目:以太坊
特邀嘉宾:Hsiao-Wei Wang,核心开发者
主题:以太坊 2.0信标链

AMA分为固定问答和自由问答两个环节。

固定问答

1
Unitimes:Hsiao-Wei你好,欢迎参加Unitimes AMA。 请先介绍一下你的背景和经历吧!

大家好,我是 Hsiao-Wei。我本身背景是在台湾CS与网路工程硕士背景,大约在三年前踏入区块链产业,并在两年前加入了以太坊基金会研究团队。

2
Unitimes:你在什么契机下加入了以太坊团队? 目前主要研究什么技术?

故事其实很简单,就是两年前 Vitalik 在亚洲招募开发者做 sharding 的初始版本PoC,而我从 contributor 开始贡献代码,开发第一版的sharding(和现在版本现在想想真是差很多呢!),后而加入团队:)

目前研究Ethereum 2.0的协议设计(https://github.com/ethereum/eth2.0-specs) ,还有Eth 2.0在 Python 客户端 Trinity (https://trinity.ethereum.org/) 的开发。

3
Unitimes:什么是信标链(Beacon Chain)? 它在ETH 2.0的进程中扮演什么角色?

信标链几个任务:

作为分片链的核心:为了实现 layer 1 的扩容,信标链负责协调数个分片链,分片链和信标链之间会以一种我们定义为“Crosslink”的链结串起。
作为 Proof-of-stake 核心:新加入的验证者的押金会被记录在信标链的状态上,验证者的余额会因得到的奖励和罚金在信标链上变动。

在目前的规划中,信标链是作为“phase 0”,作为整个ETH 2.0的地基。 巨观的角度来看,大致上如图:

同时在 phase 0,信标链要监听 ETH 1.0 PoW 链的资讯,以取得新验证者抵押的纪录。

4
Unitimes:如何成为信标链的验证者(validator)? 验证者需要做什么?

我们预计会在以太坊目前的链(ETH1.0 )上部署一个deposit contract(质押合约),这个合约很单纯地将押金burn掉,然后发出一个log even(日志事件)。
vyper contract code:
https://github.com/ethereum/eth2.0-specs/blob/dev/deposit_contract/contracts/validator_registration.v.py

新加入的验证者要呼叫质押合约上的deposit() function,并且监听这个ETH 1.0质押合约的日志,验证者需要纪录所有的质押日志,用以建立整个验证者名单(信标链客户端会更新这个验证者名单至信标链上的状态之中)。

接着验证者需要等待一段时间,成为”active”(激活的)验证者。 所有的激活的验证者会被分配到各个”委员会committee”中,而每个委员会各自会被指派一个分片链,这个委员会中的验证者要负责在一段期间中验证该分片链。

在phase 0时我们还不需要处理分片链,但若是phase 1后,验证会需要下载分片链的区块并且验证。

我们目前规划是6秒一个time “slot”,在这个slot中,其中一个验证者会被指派为block proposer,负责 propose 信标链区块。

其他在这个委员会的验证者们,如果同意这个新区块的内容正确性,那他就会投出他神圣的一票,我们称为”attestation” (其实就是投票)

验证者需要投票给:

目前他看到的信标链根区块
他所看到的 Casper FFG 的 source and target
验证到的分片分片根区块

一个乖乖的诚实好验证者大概就是这些工作要做:)

5
Unitimes:验证者在什么情况下会丢失保证金?

有很多种情况!

恶意的验证者罚金会比较严重,恶意的行为包括:

block proposer 在同一个 slot 出了两个不同的区块
验证者投票给两个互相冲突的区块

其他比较像是「不小心犯错」的情况,例如没投票,或是投了但是投的对象不是大多数人的选择,那么也会稍微被处罚一些。

6
Unitimes:各个客户端的初版信标链已经在5月份发布了。 请问目前运行得怎么样?

客户端开发进度还在不断更迭中。 目前都是各个客户端个别的测试网,目前ETH 2.0客户端开发者们也在制定客户端之间通信的networking protocol(网络协议),希望在 Devcon 前会有进一步的客户端之间的测试网出现!

大家可以去玩玩这些测试网:

Lighthouse:https://lighthouse.sigmaprime.io/update-09.html
Nimbus:https://our.status.im/the-nimbus-mvp-testnet-is-here/
Prysm:https://medium.com/prysmatic-labs/ethereum-2-0-phase-0-testnet-release-1e9e682db910

7
Unitimes:在以太坊完全转变为PoS机制之后,原来的PoW链会发生什么? 在Registration Contract机制下,会出现两个平行的以太坊吗?

1)目前有几种不同方案处里 ETH 1.0 链,各有权衡。 例如:将ETH 1.0链的状态转为一个 ETH 2.0 分片链上的合约状态,又或是转为在放在信标链的装填中。

Vitalik最新的提议是将分片链上的执行环境抽象化,如此一来,可以将 ETH 1.0 的链转化成其中一个分片链。 这样做的优点是对ETH 1.0发者来说迁移的成本小,跨分片交易的实现也很直观,和其他分片链一视同仁即可。 目前我们正在往这个方向做研究和讨论,希望能减少目前开发者的负担。

最后会用哪种方案,会需透过社区共识决定。

2)除非像是 ETH/ETC 硬分叉发生,否则这些升级计画中,ETH 1.0 和 ETH 2.0 都还在同一个宇宙之中。 但是”初期“有可能1.0链上的ETH和信标链上的ETH (有人称为BETH)在市场上有不同的价值。

8
Unitimes: 作为6月29日以太坊技术及应用大会的演讲嘉宾之一,可否透露一下你将演讲的主题,以及你对此次大会的期待?

题目预计会围绕着最新版本的 Ethereum 2.0 protocol,目标是能让大家对目前的以太坊2.0最新发展的路线图有更清楚地了解,会着重阐述一些目前设计的重点。当然也希望能见到很多开发者共襄盛举!听说大会前还有黑客松,也希望能认识到优秀的团队!

自由问答

固定问答环节结束后,参与此次AMA的成员可以自由提问。以下为 Unitimes 从群成员的提问中精选的几个问答:
1
Hello Hsiao-Wei,我有几个问题,信标链上线后,参与 ETH 2.0 Staking 的收益是 BETH?短时间可以换成 ETH 在交易所交易吗?

Phase 0目前没有 BETH/ETH 的链上转换,因为比较干净的方式是在phase 2时实现1.0 <> 2.0的ETH交易。 如果要在短期 (phase 0 or 1) 的 layer 1 做这件事恐怕伤筋动骨。 但或许会有交易所会尝试在layer 2 上做撮合。

2
规划 slot 六秒,请问这个6秒是依据什么来确定的呢? 验证者可以提前或者延后出块吗?

其他验证者会根据 global clock(全局时钟)的时间,若该slot超过时间还没有看到区块,则这个slot会被“skip”掉,所以延后出块会被其他验证视为无效。

另外目前的 committee and proposer selection (委员会和proposer挑选)机制,是根据RANDAO产生的伪随机数(pseudo random number),在时间之前无法确认下个区块的 proposer 是谁,因此也不能提早出块。

3
Hsiao-Wei 你好,请问在ETH 2.0完成之前,新的以太坊前期无法运行智能合约? 意思是不能增加新的合约还是之前已经存在的合约也无法运行了? 非常感谢。

ETH 2.0 phase 1 没有原生的 EVM,但你仍能在 ETH 1.0 链上部署、运行合约,迁移不会一夕剧变。 phase 2 后多了你可以部署在分片链上的选项:)

4
以太坊serenity(宁静阶段)中使用信标链来产生随机数,管理分片链等。 信标链来会不会成为整个以太坊分片设计的性能瓶颈? 信标链来作为中继有没有可能影响serenity的去中心化程度?

信标链上没有 EVM,和 ETH 1.0 相比算力需求小很多。 目前效能瓶颈发生在取决于验证者的总数影响信标链状态的大小。

「作为relay」是指对于 ETH1.0 来说吗? 我们希望人人有机会能够加入 ETH1.0 初始验证者池,订于 32 ETH,协议上也尽量减少算力,你不需要超高级的电脑来执行客户端。

5
请问升级到了 ETH 2.0 之后,ETH1.0 上的已经在运行智能合约是否需要重新部署呢?

如果你想要「在某个 shard chain 上运行一样的合约」,那么你会需要重新部署;但如果是 Vitalik 最新的 phase 2 提议,目前的 ETH 1.0 链可以理论上无痛转移(这方面的细节仍在讨论中)

6
如果没有轮到出块的 验证者 也 propose 块,会有惩罚? 还是根本没法 propose 的?

会直接被ignore(忽略掉)。
7
这样用信标链 的 sharding 和多个完全不同的链比较起来,安全方面有什么区别?

PoS chain 的安全性是由整体押金总数,攻击者要有利可图才有攻击的价值(因为会被slash),因此 sharding 中的链都受到同一个押金总数的安全保证。 而多个平行链则需各自有各自的 staking。

8
请问当信标链正式上线之后,用户通过质押32ETH在当前 ETH1.0 上的 deposit contract 中,成为了验证者之后,因为一开始信标链上还不存在交易,那验证者需要验证什么呢? 还有,如果验证者因为行为不当(不管是因为验证 propose/attest invalid block 还是一直处于离线状态)而导致其质押的 ETH 被 slashed了,请问直到当验证者质押的ETH剩下多少之后,这个验证者就会被驱逐出验证者名单?

信标链上和“交易”相似的是“operations”,包含像是检举别人 dishonest, deposit, exits 要求等等。 另外也有信标链上 transfer 的功能。 最重要要验证的还是“attestation”,即投票,多数人投票的 attestations ,会在分片链和信标链之间形成 crosslink,为 phase 1 做准备。 EJECTION_BALANCE 参数目前是16 ETH。

9
目前的开发进度来看, 信标链仍然是年底上线吧?

目前看来是年底至一月之间,在测试链出来后,估时可能会调整。

以上是本次 AMA 的全部内容,非常感谢社群成员对 Unitimes 的大力支持,感谢 Hsiao-Wei!

【本文版权属于Unitimes,转载请保留版权信息。未经授权,不得以任何方式加以使用,包括转载、摘编、复制或建立镜像。Unitimes将追究侵权者的法律责任。合作或授权请联系contact@unitimes.io或添加微信unitimes2017】

转载请注明:Python量化投资 » 对话以太坊核心开发者 Hsiao-Wei:以太坊 2.0 信标链 | Unitimes AMA

喜欢 (0)or分享 (0)