一文读懂以太坊:过往、现状与未来
摘要:“公众认知匮乏和糟糕的DApps用户体验是未来需要解决的问题,这是实现大规模应用的关键。”
作者:sheinix@The Startup
翻译:Lisa Liu
编辑:Sonny Sun、樊绪新
以太坊网络
早在2013年,BTC程序员、BTC杂志的出版人Vitalik Buterin发表了《以太坊》白皮书。以太坊的目标是将区块链技术的应用范围拓展到支付之外。
以太坊是一个通用的区块链。像许多其他区块链一样,它是开源的,公开的,并拥有自己的货币:以太或ETH。通用的区块链意味着有一个去中心化的平台,它提供了一种编程语言,开发者可以使用它来创建智能合约。智能合约运行在网络的每个节点上,使得开发分布式应用程序(DApps)成为可能。这些Dapp继承了区块链技术的显著特点,即防篡改、透明、可靠和安全。
以太坊编程语言
Solidity 是由Gavin Wood博士创建的以太坊上的主要编程语言。它是一种可用于智能合约开发的面向对象的高级编程语言,深受Python和JavaScript语言的影响。这是有意为之,这样开发人员就可以很容易地直接开始开发智能合约。
Solidity是一种“图灵完备”语言,这意味着它拥有开发复杂用例的所有能力。相比之下,BTC的编程语言Scrypt在设计上不是“图灵完备”的。对于智能合约来说,Solidity是最流行的编程语言,每个开发人员如果想要开始开发智能合约,都应该研究它。
Vyper是以太坊团队创建的另一种编程语言,它在以太坊虚拟机(“EVM”)上运行。它的设计目的是简化智能合约的编写过程,同时使其更易于阅读。它与Solidity的关键区别是Vyper不包含一些面向对象的功能,这使得Vyper更安全,因为开发人员犯错误和引入bug的空间更小。
Gas & ETH Price
Gas是衡量在以太网络上执行一项交易的成本的单位。每次智能合约运行一笔交易,都会消耗Gas。这些Gas需要在交易运行时输入智能合约。支付Gas的方法是使用ETH。
以太坊面临的问题和挑战
以太坊面临的主要问题是可扩展性。该网络被认为是“世界计算机”,但目前它每秒只能处理大约15笔交易,而像Visa这样的私营公司每秒可以处理多达4.5万笔交易。如果以太坊想要实现大规模应用,这是一个亟待解决的问题。
为了说明为什么这个问题很重要,我们可以看看CryptoKitties的例子。在2017年,这个项目非常受欢迎,以至于在智能合约上执行的交易堵塞了网络。因此,处理交易有相当大的延误。
此外,安全一直是以太坊的一大难题。主要是因为在一些项目中存在糟糕的开发实践,导致黑客攻击和资金损失。以太坊需要为开发人员提供在智能合约中更好的安全性的工具,同时又不影响其Solidity。
ETH的价格和Gas 的成本使得交易的运行过程变得十分脆弱,在某些情况下这不值得。特别是对于以太坊验证者,他们目前必须花费大量的电力才能运行节点与PoW共识算法,在这一过程中,他们没有得到太多的回报。
公众认知匮乏和糟糕的DApps用户体验是未来需要解决的问题,这是实现大规模应用 的关键。
以太坊的现状
以太坊的生态系统在过去几年里一直在稳步发展,尽管它仍然存在很多问题。ETH是全球市值第二大的数字资产。Solidity是最流行的开放区块链编程语言,拥有最著名的开发人员社区(这是项目健康状况的一个指标)。一个平台拥有的开发人员越多,就可以在其上开发出更多有价值的项目。多年来,我们已经看到了许多在以太坊上涌现的优秀项目,当然,也不乏贫庸者和纯粹的诈骗项目。
2017年,我们看到项目数量的大幅增长,主要体现为首次代币融资热潮和市场看涨。但现实情况是,其中只有几个项目存活了下来,而且在接下来的几年内将会越来越少。
一般大众还没有采用DApps,主要是因为该平台不够成熟,公众对该技术也缺乏普遍了解。尽管如此,在过去的一年中,有不少与游戏、赌博和金融相关的项目发展迅速,并获得了良好的用户基础。
source: stateofthedapps.com
source: stateofthedapps.com
以太坊开发阶段
以太坊的开发计划分为四个不同的阶段。每个阶段都是为了引入更多的特性和修复问题。每个步骤还包括“子版本”,即所谓的“硬分叉”,它以一种不向后兼容的方式改变功能和特性。
以下时间轴是最初计划的以太坊发展阶段:
这是以太坊从2015年7月30日到2016年3月的初期开发阶段。
Ice Age是一个“硬分叉”,它引入了一个指数级的难度增加,以促使在一切就绪的情况下顺利完成从PoW到PoS的过渡。
以太坊的第二个阶段启动于2016年3月。
臭名昭著的DAO案例。这是一个硬分叉,补偿了DAO黑客的受害者,并导致以太坊和以太坊经典分裂成两个对立的系统。
另一个硬分叉用于更改某些I/O繁重操作的gas计算,并在利用这些操作的低gas成本的DoS攻击后清除累积状态。
硬分叉解决了 DoS 攻击问题,与此同时,另一种状态也被完全清除。此外,它也是一种重放攻击的保护机制。
这是以太坊发展的第三阶段,于2017年10月启动。Byzantium是Metropolis两大分叉中的第一个。
这是Metropolis阶段上的第二个硬分叉,于2019年2月完工。这个硬分叉还包括其他修改,以修复代号为Petersburg的安全问题。
这是另一个硬分叉,计划在2019年12月4日激活,将包括更多的安全修复和激励措施,从PoW转移到PoS算法。
Serenity — Ethereum 2.0
Serenity 是以太坊发展的最后阶段。它将引入以太坊2.0——一个新的以太坊区块链,完成PoS的集成,并引入一个新的以太坊虚拟机,此外还有很多细节的改变。
关于Serenity何时上市有很多讨论和传言。这个庞大的阶段将分为不同的子阶段:
Serenity 路线图
以太坊2.0
“Ethereum 2.0”这个术语描述了所有来自Serenity的更新,它将使以太坊的可扩展性更好,速度更快,区块链状态更好。正如以太坊研究员Danny Ryan所说,以太坊2.0的主要设计目标是:
为了理解这一切是如何实现的,让我们看看每个Serenity阶段的细节:
第0阶段: 信标链Beacon Chain
信标链将是从以太坊区块链中独立出来的的区块链。这个新的链将由权益证明(PoS)作为共识机制算法,它将与主要的工作证明共识机制(PoW)以太坊区块链并行运行。最初,为了简单起见,区块链不支持智能合约或帐户。
在撰写本文时,以太坊正在使用一种“工作证明”(Proof of Work, PoW)共识机制算法,与BTC使用的算法非常相似。在以太坊中,这个算法的名字叫做Ethash。在信标链上,我们将看到新的PoS算法,称为Casper。在过去的几年里,Casper取代Ethash的计划已经被推迟了好几次,这就需要采取一些干预措施来化解困难,并推迟PoW被强制淘汰。现在我们终于有了信标链。
PoS的简短说明:
根据PoS共识机制,区块链会跟踪一组验证,任何持有区块链基础数字资产(在此例中为Ether)的人都可以通过发送特定类型的交易将其以太币锁定为存款来完成验证。验证者轮流对下一个有效块进行提议和投票。验证者投票的权重取决于他们的存款(赌注)的大小。如果大多数验证者拒绝他们所建立的块,那么验证者将面临失去存款的风险。相反,验证者每获得一个被多数人接受的区块,就会获得一个与他们所持有的股份成比例的小奖励。因此,PoS迫使验证者诚实行事,并通过奖惩制度遵守共识规则。
ETH2: 新的Ether
阶段1的另一个特征是引入了ETH2,是一个在新信标链上验证的新资产。这个新的ETH2将被创建作为在信标链上验证交易的奖励,并且任何ETH1都可以购买它。最初,还没有办法将ETH2从信标链中取出。如果有人要为新链验证者,他们至少需要32个 ETH来抵押原始链。
第1阶段: 分片链Shard Chains
分片是一种可拓展性技术,可允许并行进行交易。这是为了将网络划分为多个分片来帮助扩展交易规模,从而允许网络同时处理许多事务。
Vitalik Buterin针对“分片”发表过如下看法:
“想象以太坊被分裂成成千上万的岛屿。每个岛屿都可以做自己的事情。每个岛屿都有自己独特的特征,每个人都属于那个岛屿。比如,账户之间可以相互交互,他们可以自由地沉迷于它的所有功能。如果他们想与其他岛屿接触,他们将不得不使用某种协议”。
分片将在信标链上引入,最初的规模约为100个。验证者将从自己的碎片中验证交易,在第一阶段,它们不会批准任何智能合约、帐户或资产。
虽然分片将带来更多的可拓展性,但是需要考虑一些挫折点。验证者有一个小的交易池需要验证,这使得51%的攻击更容易,因为它们只需要51%的计算能力(或权益),而不是整个网络。
这种技术还可以导致更高的集中化,因为每个碎片都可以通过一小组验证者进行验证。看看这个阶段如何实现将是非常有趣的,因为它仍然需要彻底的测试,以确保所有的验证者都是随机选择的,以避免集中化和任何风险攻击。
第2阶段: 新的以太坊虚拟机eWASM
什么是EVM
以太坊系统上的所有节点都需要运行智能合约来执行区块链上的最终交易。以太坊虚拟机(EVM)允许执行这些智能合约。
EVM是以太坊网络的心脏,是承担智能合约部署和执行的核心之所在。它可以被认为是一个包含数百万个可执行对象的全球分布式计算机,每个对象都有自己的永久数据存储。从技术层面上来说,它是一个基于堆栈执行的机器语言指令。智能合约以诸如Solidity之类的“高级”语言编写,并编译为字节码以便在EVM上执行。
当前EVM的问题
当前EVM的主要问题之一是它按顺序处理交易。随着PoS和分片的更改,需要并行处理交易,而当前的EVM不适合这样做。
新的EVM
新的EVM称为eWASM,代表Ethereum WebAssembly。WebAssembly是一个开放标准,为可执行程序定义了一种可移植二进制代码格式。这种用于EVM的新架构将提供更好的性能,并将有可能在新的区块链上支持智能合约、帐户、状态等。eWASM的开发目前处于非常早期的阶段,计划在2021年发布。目前,仍需要进行大量研究。
第3阶段:持续改进 Continued Improvement
“持续改进”是一个代码名称,它包含前面阶段的所有未来的更改、修复和改进,以及随之而来的更多内容。不幸的是,关于这个阶段的信息并不多,因为它最初计划在2022年启动。我们所知道的是,将实施以下技术:
以太坊2.0对加密经济意味着什么?
关于了解以太坊 2.0最重要的一点是,它不是一夜之间就能发生的变化。最初的发布计划分为4个阶段,但是没有人说开发就到此为止,或者在这个过程中不会有延迟和变化。每个软件都没有最终版本,总有需要改进和修正的地方。
以太坊是密码学领域最重要的项目之一,也是许多其他项目所依赖的。它得到了开发社区和企业的大力支持。有很多人对以太坊的未来投入巨资,因此承载了很大压力。如果这个团队成功地实现了这一点,我们将拥有一个完全可扩展的通用区块链,它将更接近于最初的以太坊口号:“全球超级计算机”,并将向世界展示“区块链梦想”是可能实现的。这将吸引更多的开发者和投资者在此基础上继续构建明星项目。
在接下来的几年里,关注以太坊2.0的开发是理解以太坊1.0区块链当前项目如何迁移到新链以及加密空间将会发生的重大变化的关键。只有时间才能告诉我们,这些事件将在何时、以何种方式发生。