作者|BenEdgington
编译|Jhonny
我知道你们最近几天都被有关Libra的消息刷屏了,所以这里有一点精神慰藉:本文不会提及Libra的相关信息,在这里我们将回顾一些最新的以太坊2.0开发进展。
本文的内容不是非常全面的,这些天发生的事情太多了。我将把过去几周积累的各种片段整理成一些连贯的东西。
让我们从开发更新开始。众所周知,以太坊2.0的交付计划分为三个不同的阶段。最近最令人兴奋的是有关阶段0(接近信标链客户端的互操作性)和阶段2(以太坊2.0计算模型的开始)的进展。
阶段0:信标链实现
信标链(beaconchain)是整个以太坊2.0系统的协调层,可能也是最难交付的部分。有关信标链的背景知识,请参阅我之前发表的StateofEthereumProtocol#2:TheBeaconChain这篇文章。
去年6月份,信标链被设想为以太坊2.0的未来。仅仅一年之后,阶段0的规范将在今年6月30日被冻结敲定。它是一个全新的区块链设计,其野心之大前所未有,包含了几十项重大的创新和见解,8个客户端实现已经准备就绪:这是惊人的以太坊社区一年以来的成就。坦率地说,这将使Libra相形见绌。任何对此不以为然的人,都生活在与我不同的宇宙中。
既然有关以太坊2.0规范的更新进展已经在Github上被很好地跟踪和记录了,我就不像在以前那样详细介绍了。今天我们将从更广泛的角度来介绍相关的进展。
01.互操作性
随着阶段0的规范趋于稳定,现在的重点转移到各个以太坊2.0客户端实现之间的互操作性(interoperability)。当前由8个活跃团队正在跟上最新的以太坊2.0规范。
一旦信标链网络启用,每个客户端都将需要相互进行通信,以便就信标链的状态达成一致。每个客户端都需要遵循相同的规则:即使是一个位(bit)不正确,也会导致无法达成共识。
考虑到这一点,我们在布鲁克林的BushwickGenerator举办了一个研讨会,名为“通往互操作之路”(TheRoadtoInterop)。我拍了一些照片,感兴趣的人还可以观看现场录制的长达四个小时的视频,还有研讨会的议程。这是一个让几个客户端实施团队聚在一起,计划如何让我们的客户端彼此连贯地通信的场合。Vitalik在当天下午做了一个关于阶段2想法的演讲(见下文)。TerenceTsao也发布了关于Prysm客户端架构和设计的演讲幻灯片。
计划中的下一个重大事件是大约在9月初举办的主题为“InteropLock-in”的研讨会。那时,客户端实现团队将在聚集在安大略省某个偏远的小屋,但只有在我们确认了所有客户端都能够很好地相处之后才会进行。
BTC突破26900美元关口:火币全球站数据显示,BTC短线上涨,突破26900美元关口,现报26900.92美元,日内跌幅达到1.68%,行情波动较大,请做好风险控制。[2020/12/28 15:51:15]
JonnyRhea在Github上整理发布了拟定通往互操作性之路的各阶段,大家可进行参阅。
02.网络(Networking)
最终目标是使Libp2p成为以太坊2.0网络基础上的P2P通信协议(备注:Libp2p是一个便于使用者开发去中心化点对点应用程序的网络框架)。
然而,作为实现这一目标的一个简化步骤,各个客户端正在实现更简单的Hobbits协议,TrentonvanEpps发表的这篇文章对Hobbits协议进行了很好地介绍。Jonny也以推文风暴的形式阐述了Hobbits协议的基本原理,且ConsenSys也提供了一些奖励金来鼓励各团队在客户端中整合该协议。
与此同时,Whiteblock在Libp2p上做了一些性能测试,DanielChoi在ScalingEthereum探讨会上进行了介绍。他们的发现对Libp2p在某些情况下的性能提出了一些问题。但是,通过与PrtcocolLabs进行合作,我们还将对Libp2p进行一些进一步的测试,以探索与以太坊2.0相关的更真实的参数范围。
另一个有趣的进展是,PegaSys研发团队发表的拜占庭容错聚合协议Handel:PracticalMulti-signatureAggregationforLargeByzantineCommittees(《Handel:实现更大规模的拜占庭委员会的实用多重签名聚合》)。
该协议可以显著地加快以太坊2.0中验证者搜集区块证明(attestations)的速度,允许更大的委员会规模(committeesizes),因此可能更快地实现交易的最终性(finality)。
03.Testing测试(Testing)
在当前对阶段0进行开发的期间,大量的测试工作正在进行。值得注意的是AntoineToulme关于测试运行器(runner)的工作,这项测试工作由MolochDAO资助,可以通过这个视频来了解最近的进展更新,该视频非常值得客户端开发人员查看。
该规范是可执行的,并且所有跨客户端测试向量都可以直接从编写好的规范生成,这一点是非常棒的。
还需要进行大量的工作来对该规范进行模糊测试(fuzz-test),并提供一个用于对客户端进行模糊测试的框架,正如在最新版的以太坊2.0规范中所体现出来的那样。
04.形式化验证(FormalVerification)
BTC再次突破11000美元:火币全球站数据显示,BTC已再次突破11000美元,现报11027.23美元,日内跌幅为1.09%,行情波动较大,请做好风险控制。[2020/7/29]
RuntimeVerification已经编写了有关以太坊2.0存款合约增量Merkle树实现的审计报告,该报告使用Vyper语言(而不是Solidity)进行编写。
这是一个重要的里程碑,为将存款合约部署到当前的以太坊1.0链铺平道路。为了便于阅读,我们团队(备注:即PegaSys团队)的JoeDelong撰写了一篇解释性的有关以太坊2.0存款Merkle树的实现的文章。稀疏的Merkle数是非常棒的!
RuntimeVerification还将在K语言中生成信标链的正式可执行规范。
05.信标链上线
在上周以太坊2.0实施者的电话会议上,JustinDrake提出了信标链部署阶段的两个目标日期:
在DevCon5会议期间:将存款合约部署到当前的以太坊1.0链上。这一公开仪式将有助于避免子发布虚假地址来窃取人们的存款。
2020年1月3日:信标链创世区块可能诞生。那时信标链将正式启用。
信标链创世区块的诞生将取决于两个先决条件。首先,存款合约中必须质押有足够多的ETH。之前的一个硬性目标是质押的数量超过200万ETH,但这个要求已经被移除。但质押数量的目标将是一个保证信标链安全启动的指令。
第二个先决条件是目标为3个(或至少两个)“生产就绪”的信标链客户端和网络验证者。在此之前,所有客户端都要完成大量的兼容性、优化、测试、审计、改进、工具化、文档化和打包工作,所以我认为1月3日的目标有些雄心壮志。
阶段1:分片数据
最近,阶段1的规范已经成了Serenity的一片绿洲。
阶段2:状态执行
公平地说,就在几个月前,以太坊2.0要交付的阶段2还是一片迷雾。阶段2是所谓的“执行层”,这使得以太坊2.0区块链实际可用。该阶段将提供资金转移、实现智能合约和所有让dapp得以构建等功能。但是,就在最近的4月初,我们还不清楚该阶段将会是什么样子。CaseyDetrio在ScalingEthereum会议期间上做了一个关于阶段2的历史和现状的精彩演讲,非常值得你花五分钟的时间进行观看……当时针对此阶段的所有问题都是开放的,设计空间仍然是巨大的,可能性也是无限的,那时我们不知道从哪里开始。
为了打破这一僵局,Casey在Ethresear.ch上发布了一项令人兴奋的提议:PhaseOneandDone:eth2asadataavailabilityengine。在不深入所有细节的情况下,这引发了一股创新浪潮,阶段2迅速而令人兴奋地开始成为关注的焦点。
之后Vitalik默默地公开了有关阶段2的首个提案及其后续跟进,以回应Casey的提议。新成立不久的Quilt团队的WillVillaneuva在Medium上发表了一篇对此进行解释的文章。在纽约的Interopday期间,Vitalik讲述了有关阶段2的最新想法(相关视频见),最后在多伦多的ScalingEthereum会议期间阐述了更多的背景信息(视频见)。
Vitalik提议的主旨是将以太坊区块链在执行交易中的作用降至最低。在以太坊1.0链中,只有一种执行交易的方式,即通过EVM。在执行了某个区块中的交易之后,交易状态的Merkle根将被写入该区块中。为了在该区块中的交易上运行EVM,所有的节点都需要存储整条链的状态(包含账户余额、合约存储情况等)。
目前的阶段2建议采用这个模型并加以推广。现在可以有几种(甚至很多)EVM类型(我们称之为执行环境,executionenvironments(EEs))。
执行环境(EE)就是在eWASM中编写的、(几乎)作为纯函数运行的代码。这意味着执行环境本身并不会存储任何状态:执行环境所需要知道的任何信息都必须伴随着交易一并被提供。因此,假如我想要发送一枚代币给你,那伴随这笔交易,我需要提供一个证明(比如一个Merklebranch),从而证明我的余额中有这枚代币;该执行环境不知道我的余额有多少,因为它并不存储任何信息。实际上,这并不完全正确:每个执行环境都将存储一个32字节的值,该值是其当前全局状态的某种概要或累加器(也许是一个Merkle根,但这并不是规定性的,它可以是任何足够安全的东西)。
以这种方式将执行层提取出来,这能够提供最大程度的灵活性。可能会出现针对zk-Rollups、ERC20之类的代币或者企业友好型环境、Plasam,亦或者使用Haskell编写的智能合约的EE(执行环境)等等。
其理念是,只要支付相当高的费用(大约100ETH?),任何人都可以部署自己的EE来支持自己的专业区块链环境。以太坊2.0分片链只关注基本方面:交易排序和数据可用性。
当前,一些问题仍在积极讨论中:是否支持EE之间的同步调用、如何组装区块的细节以及收取gas费用、EE是永久性的还是需要支付一些存储费用(storagefee)、EE最初将在以太坊2.0中部署什么等等。但在我看来,这无疑是正确的方向。
如果你想了解更多关于这一切的细节,你可以查看Casey和Alex的Scout库,他们正在做一些可能的原型,以及他们在Ethersear.ch上发表的文章:Phase2executionprototypingengine。
对于我们这些更熟悉当前EVM执行的具体情况的人来说,所有这些听起来可能相当抽象和陌生。不用担心,适应以太坊1.0和以太坊2.0之间的平稳过渡路径已经成为一项优先事项,现在有一些有趣的想法可以有效地实现这一点。虽然还存在一些挑战,但相关的讨论一直在Ethresear.ch行进行展开。
其他信息
以下是我在过去一个月左右的时间里随机收集的一些零碎信息:
Chainsafe的ColinSchwartz正在撰写一篇以太坊2.0的完整指南以及有关以太坊2.0扩展性的第一部分;
DannyRyan在Ethereal会议期间传递的“CautiousOptimism(审慎的乐观态度)”;
EthGasStation与Prysm团队合作并发布了相关报告;
AlexStokes撰写了一篇解释以太坊2.0如何充当以太坊1.0的最终性小工具的文章,以及一篇有关以太坊2.0共识的经济安全性的文章;
MattGarnett列出的开启以太坊2.0学习的资源列表;
可以在Twitter或Peepeth上关注我,了解更多信息。
更多资源
相关的规范文档
?Pullrequests
?Commits
?Issues
验证者注册合约
两周一次的以太坊2.0实施者电话会议
https://ethresear.ch/
https://gitter.im/ethereum/sharding&https://gitter.im/ethereum/casper
Eth2.0Handbook更新
Sharding路线图更新
信标链相关问题
https://github.com/ethresearch/p2p/issues
以太坊Reddit社区地址
加密货币领域相关推特账户
----
文中涉及的链接:
:https://media.consensys.net/state-of-ethereum-protocol-2-the-beacon-chain-c6b6a9a69129
:https://github.com/ethereum/eth2.0-specs/releases
:https://photos.app.goo.gl/eV81rzNZoBBtnm1HA
:https://www.youtube.com/watch?v=NlDA3gKqysA
:https://hackmd.io/@vJTdwcwQSByvMaZGfTX_oQ/Hyz8Mw-9V?type=view
:https://docs.google.com/presentation/d/1UN5EV6nb2UHAQdVkE5BGkL2fyKKND0cdWi7gS2SWhAw/edit#slide=id.p
:https://github.com/ethereum/eth2.0-pm/tree/master/interop/hobbits
:https://medium.com/whiteblock/introducing-hobbits-a-lightweight-wire-protocol-for-eth-2-0-b1bfae5e4843
:https://twitter.com/JonnyRhea/status/1139245584169209858
:https://explorer.bounties.network/profile/0xb7693d3f040d66ab89ab86e7f8688c01febbc77c
:https://youtu.be/RW7K3JQOZOg?t=9335
:https://twitter.com/DeanEigenmann/status/1137032627230089216
:https://arxiv.org/pdf/1906.05132.pdf
:https://www.youtube.com/watch?v=4V-WQ2CnRfA
:https://github.com/ethereum/eth2.0-specs/tree/dev/test_generators
:https://github.com/ethereum/eth2.0-specs/releases/tag/v0.7.1
:https://medium.com/@josephdelong/ethereum-2-0-deposit-merkle-tree-13ec8404ca4f
:https://twitter.com/RosuGrigore/status/1131066228460675072
:https://github.com/ethereum/eth2.0-specs/pull/1152
:https://github.com/ethereum/eth2.0-specs/blob/dev/specs/core/1_shard-data-chains.md
:https://www.youtube.com/watch?v=RW7K3JQOZOg&t=6284
:https://ethresear.ch/t/phase-one-and-done-eth2-as-a-data-availability-engine/5269?u=benjaminion
:https://notes.ethereum.org/s/HylpjAWsE#
:https://ethresear.ch/t/proposed-further-simplifications-abstraction-for-phase-2/5445
:https://medium.com/@william.j.villanueva/a-journey-through-phase-2-of-ethereum-2-0-c7a2397a36cb
:https://youtu.be/NlDA3gKqysA?t=9441
:https://www.youtube.com/watch?v=RW7K3JQOZOg&feature=youtu.be&t=2090
:https://sites.google.com/consensys.net/fae
:https://ethresear.ch/t/one-fee-market-ee-to-rule-them-all/5608?u=benjaminion
:https://github.com/ewasm/scout
:https://twitter.com/alexberegszaszi/status/1132242394102009856
:https://ethresear.ch/t/phase-2-execution-prototyping-engine-ewasm-scout/5509?u=benjaminion
:https://twitter.com/cdetrio/status/1134949249974767616
:https://twitter.com/matt_garnett/status/1135925934882775043?s=03
:https://ethresear.ch/t/work-to-natively-integrate-eth1-into-eth2/5573?u=benjaminion
:https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-d46d8ac914ce
:https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-3739a74be61a
:https://www.youtube.com/watch?v=Z_dhq0MlFtc
:https://ethgasstation.info/blog/eth2-proof-of-stake-testnet-what-we-learned/
:https://medium.com/@ralexstokes/the-finality-gadget-2bf608529e50
:https://medium.com/@ralexstokes/how-secure-is-ethereum-2-0-consensus-41523a59f270
:https://twitter.com/matt_garnett/status/1136049338176720896
:https://twitter.com/benjaminion_xyz
:https://peepeth.com/benjaminion_xyz
:https://github.com/ethereum/eth2.0-specs/tree/master/specs
:https://github.com/ethereum/eth2.0-specs/pulls?q=is:prsort:updated-desc
:https://github.com/ethereum/eth2.0-specs/commits/master
:https://github.com/ethereum/eth2.0-specs/issues
:https://github.com/ethereum/deposit_contract/
:https://github.com/ethereum/eth2.0-pm
:https://notes.ethereum.org/s/BkSZAJNwX
:https://github.com/ethereum/wiki/wiki/Sharding-roadmap
:https://github.com/ethereum/beacon_chain/issues
:https://www.reddit.com/r/ethereum/
:https://twitter.com/benjaminion_xyz/following
金色相对论之“牛熊突与围”,看金氪资本如何360度赋能项目!金色财经合伙人、CoinTimeCOO佟扬对话金氪资本联合创始人&CEOMagGieWu.
王兴在饭否上关于Facebook做Libra,用了这么一个比喻:在这场巨变中,如果中本聪比作马克思,那小扎就相当于列宁吧,确实是天才的设计.
本次测评的产品是一款很符合应用场景的产品,在区块链的应用中,币、智能合约、账本是三项重点,这三项重点中,智能合约是所有能力输出的集合,如果为各场景提供能力的话,在智能合约上可以做很多事.
新自由主义代表人物,著名经济学家,诺贝尔奖得主《货币非国家化》哈耶克曾经说过:“什么是金钱?金钱是人类发明的最伟大的自由工具”。该句名言,可以说是资本主义的核心所在.
译者注:面对EOS当前由交易所和贿选问题导致的节点中心化的问题,EOS创始人BM给出了他最新的解决思路,即将21个节点分成4个选举大类,并对应于4种不同的选举标准,该方案在增加系统复杂性的同时.
文章标题:《LibraBFT算法简述》文章来源:知乎专栏作者:任之劼首先,不熟悉BFT的人可以看看我之前的三篇文章:《区块链时代的拜占庭将军们》《区块链时代的拜占庭将军们》《区块链时代的拜占庭将.