Unitimes AMA(Ask Me Anything)是 Unitimes 重点打造的微信群线上问答系列活动,每周举办一期。我们邀请发展较成熟的区块链项目的创始人、CEO、CTO或核心开发者等嘉宾做客社群,与群成员就该项目的突出技术亮点以及用例等进行高质量互动问答,旨在学习交流区块链最新技术和应用。
期数:第31期
特邀项目:以太坊
特邀嘉宾:Hsiao-Wei Wang,核心开发者
主题:以太坊 2.0信标链
Unitimes:Hsiao-Wei你好,欢迎参加Unitimes AMA。 请先介绍一下你的背景和经历吧!
大家好,我是 Hsiao-Wei。我本身背景是在台湾CS与网路工程硕士背景,大约在三年前踏入区块链产业,并在两年前加入了以太坊基金会研究团队。
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/) 的开发。
Unitimes:什么是信标链(Beacon Chain)? 它在ETH 2.0的进程中扮演什么角色?
信标链几个任务:
在目前的规划中,信标链是作为“phase 0”,作为整个ETH 2.0的地基。 巨观的角度来看,大致上如图:
同时在 phase 0,信标链要监听 ETH 1.0 PoW 链的资讯,以取得新验证者抵押的纪录。
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" (其实就是投票)
验证者需要投票给:
一个乖乖的诚实好验证者大概就是这些工作要做:)
Unitimes:验证者在什么情况下会丢失保证金?
有很多种情况!
恶意的验证者罚金会比较严重,恶意的行为包括:
其他比较像是「不小心犯错」的情况,例如没投票,或是投了但是投的对象不是大多数人的选择,那么也会稍微被处罚一些。
Unitimes:各个客户端的初版信标链已经在5月份发布了。 请问目前运行得怎么样?
客户端开发进度还在不断更迭中。 目前都是各个客户端个别的测试网,目前ETH 2.0客户端开发者们也在制定客户端之间通信的networking protocol(网络协议),希望在 Devcon 前会有进一步的客户端之间的测试网出现!
大家可以去玩玩这些测试网:
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)在市场上有不同的价值。
Unitimes: 作为6月29日以太坊技术及应用大会的演讲嘉宾之一,可否透露一下你将演讲的主题,以及你对此次大会的期待?
题目预计会围绕着最新版本的 Ethereum 2.0 protocol,目标是能让大家对目前的以太坊2.0最新发展的路线图有更清楚地了解,会着重阐述一些目前设计的重点。当然也希望能见到很多开发者共襄盛举!听说大会前还有黑客松,也希望能认识到优秀的团队!
自由问答
固定问答环节结束后,参与此次AMA的成员可以自由提问。以下为 Unitimes 从群成员的提问中精选的几个问答:
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 上做撮合。
规划 slot 六秒,请问这个6秒是依据什么来确定的呢? 验证者可以提前或者延后出块吗?
其他验证者会根据 global clock(全局时钟)的时间,若该slot超过时间还没有看到区块,则这个slot会被“skip”掉,所以延后出块会被其他验证视为无效。
另外目前的 committee and proposer selection (委员会和proposer挑选)机制,是根据RANDAO产生的伪随机数(pseudo random number),在时间之前无法确认下个区块的 proposer 是谁,因此也不能提早出块。
Hsiao-Wei 你好,请问在ETH 2.0完成之前,新的以太坊前期无法运行智能合约? 意思是不能增加新的合约还是之前已经存在的合约也无法运行了? 非常感谢。
ETH 2.0 phase 1 没有原生的 EVM,但你仍能在 ETH 1.0 链上部署、运行合约,迁移不会一夕剧变。 phase 2 后多了你可以部署在分片链上的选项:)
以太坊serenity(宁静阶段)中使用信标链来产生随机数,管理分片链等。 信标链来会不会成为整个以太坊分片设计的性能瓶颈? 信标链来作为中继有没有可能影响serenity的去中心化程度?
信标链上没有 EVM,和 ETH 1.0 相比算力需求小很多。 目前效能瓶颈发生在取决于验证者的总数影响信标链状态的大小。
「作为relay」是指对于 ETH1.0 来说吗? 我们希望人人有机会能够加入 ETH1.0 初始验证者池,订于 32 ETH,协议上也尽量减少算力,你不需要超高级的电脑来执行客户端。
请问升级到了 ETH 2.0 之后,ETH1.0 上的已经在运行智能合约是否需要重新部署呢?
如果你想要「在某个 shard chain 上运行一样的合约」,那么你会需要重新部署;但如果是 Vitalik 最新的 phase 2 提议,目前的 ETH 1.0 链可以理论上无痛转移(这方面的细节仍在讨论中)
如果没有轮到出块的 验证者 也 propose 块,会有惩罚? 还是根本没法 propose 的?
会直接被ignore(忽略掉)。
这样用信标链 的 sharding 和多个完全不同的链比较起来,安全方面有什么区别?
PoS chain 的安全性是由整体押金总数,攻击者要有利可图才有攻击的价值(因为会被slash),因此 sharding 中的链都受到同一个押金总数的安全保证。 而多个平行链则需各自有各自的 staking。
请问当信标链正式上线之后,用户通过质押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。
目前的开发进度来看, 信标链仍然是年底上线吧?
目前看来是年底至一月之间,在测试链出来后,估时可能会调整。
【本文版权属于Unitimes,转载请保留版权信息。未经授权,不得以任何方式加以使用,包括转载、摘编、复制或建立镜像。Unitimes将追究侵权者的法律责任。合作或授权请联系contact@unitimes.io或添加微信unitimes2017】
本文分享自微信公众号 - Unitimes(Uni-times)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4277503/blog/4646928