以太坊:分布式世界的计算机
比特币作为开创性的加密货币,基于区块链技术及其配套的技术和经济机制,推动了一个创新产业的形成。比特币主要被设想为一种在政府或第三方管辖范围之外的价值存储和交换媒介,其应用重点是通过创造一种新型金融技术来提供个人经济自由。然而,区块链技术、密码学、分布式计算和经济学在比特币等系统中的应用,仅仅是未来具有巨大潜力的产业的冰山一角。以太坊则打开了将区块链技术用于广泛应用的大门。
什么是以太坊?
以太坊被定位为一个分布式世界计算机,是一个开源的、公共的区块链和去中心化计算平台,具备图灵完备的智能合约功能。2013年底,年仅19岁的Vitalik Buterin提出了以太坊的概念,作为一个可以假设利用区块链在国际分布式节点网络中存储和执行计算机程序的平台。如今,以太坊已成为除比特币之外最知名和最成熟的加密货币。
以太坊的历史
以太坊有着一段漫长、争议不断且极具影响力的历史,对现代加密货币领域产生了重大影响。2013年底,Vitalik提出的白皮书开启了以太坊时代。白书中概述了一个用于执行和存储计算机程序的分布式世界计算机,目标是创建一个充分利用区块链技术潜力的分布式计算平台。
正如Vitalik在论文引言中所说:“以太坊旨在提供一个内置完备图灵编程语言的区块链,用于创建‘合约’,这些合约可以编码任意状态转换函数,允许用户通过编写几行代码逻辑来创建上述系统,以及许多我们尚未想象的系统。”
他所说的“上述系统”指的是如今建立在以太坊区块链上的常见应用(dapps),如链上数字资产(ERC-20代币)、非同质化资产、去中心化交易所、链上身份和声誉系统、点对点赌博、去中心化自治组织(DAOs),以及最著名的智能合约。
智能足以太坊的主要功能,本质上是自我执行的程序,促进网络上任何有价值的东西的交换,并不可变地存储在区块链上。只要满足特定条件,它们就会执行,不受第三方或审查的影响,并且在以太坊网络运行时不会出现停机。
白皮书中概述的项目雄心以及其年轻创始人的技术专长,吸引了许多加密货币领域人士的关注。平台的核心创新被称为“以太坊虚拟机”(EVM),它是一种图灵完备的软件,运行在以太坊网络上,使任何人都可以在以太坊区块链上运行任何程序,无论使用何种编程语言。其结果是有可能在单一平台上创建大量去中心化应用程序。
以太坊的早期开发始于2014年初,由Vitalik和包括Anthony Di Iorio、Charles Hoskinson和Mihai Alisie在内的小团队进行。该项目通过瑞士公司Ethereum Switzerland GmbH启动,随后通过瑞士非营利组织以太坊基金会推进。
2014年7月,以太坊进行了众筹,7月至8月期间筹集了超过1400万美元。同年9月,以太币(以太坊的货币)分配给投资者和开发团队,剩余资金则归以太坊基金会所有。
2015年7月,以太坊的第一个主网实验版本发布,被称为“Frontier”版本。2016年3月,以太坊平台的首次重大升级“Homestead”发布,这是首个被认为稳定的升级,重点关注gas定价、安全和交易处理。当时,尽管图灵完备平台提供了大量的潜在开发应用,但也带来了一些严重且可能致命的安全问题。
DAO事件
尽管存在安全问题,在社区的兴奋浪潮中,DAO作为一个去中心化自治组织,作为投资者导向的风险投资基金被创建。DAO通过来自11000多人的贡献筹集了约1.5亿美元,被视为新颖的、自我执行的智能合约组合,旨在作为去中心化投资工具。
2016年6月,DAO被黑客攻击,未知用户利用其代码中的漏洞,将5000万美元转移到另一个DAO(称为Dark DAO)。此外,一旦漏洞公开,其他用户利用相同漏洞将剩余资金转移到第三个DAO,称为White Hat DAO。
事件的影响激烈且高度两极分化。两派观点出现,一方认为区块链的不可变性和“代码即法律”的核心原则不可打破,另一方则强烈主张硬分叉协议以返还投资者的资金,并消除黑客对原始以太坊区块链上资金的访问。
最终,Vitalik Buterin在2016年7月宣布,矿工已同意硬分叉,分叉即将到来。然而,少数矿工仍然坚持他们的信念,认为不应分叉协议,认为这破坏了平台的核心原则。因此,以太坊被分叉,新链被称为以太坊,旧链被称为以太坊经典,以太坊社区实际上分裂了。
随着时间的推移,大多数企业、开发者、矿工和用户倾向于以太坊(分叉)链,成为目前市值第二高、拥有庞大社区支持的以太坊链。以太坊经典(ETC)也仍然是一种受欢迎的加密货币,ETC背后的团队实施了与以太坊链相同的升级,并积极开发平台。
以太坊的工作原理
以太坊虚拟机(EVM)是一种图灵完备的软件,运行在以太坊网络上。它在分布式计算机网络上执行脚本,并支持从智能合约到DAO的所有内容的执行和存储。功能上,以太坊允许开发者在其上构建去中心化应用程序。这可以包括游戏、分布式注册表、组织等等。
以太坊的设计基于白皮书,旨在遵循以下原则:
- 简单性——协议应尽可能高效,即使以数据存储或时间效率为代价。
- 通用性——提供一个内部图灵完备的脚本语言,开发者可以用它来编程任何智能合约或交易类型。
- 模块化——以太坊协议应尽可能模块化和可分离。
- 敏捷性——协议不是一成不变的,任何改进协议架构或EVM在可扩展性或安全性方面的机会都会被利用。
- 非歧视/非审查——协议不应试图主动限制或阻止特定类别的使用。
以太坊的优势
以太坊的优势不仅在于其基于区块链的平台本身,还在于与其他基于区块链的平台相比,包括:
- 不可变性——第三方无法对数据进行任何更改。
- 防篡改——在PoW共识下,去中心化网络同意其全局状态,审查是不可行的。
- 安全性——PoW共识、交易模型中使用的加密技术以及缺乏单点故障,保护网络免受黑客攻击和操纵。
- 无停机——运行在以太坊区块链上的应用程序、智能合约、组织等始终运行,无法关闭。
以太坊的劣势
作为一个图灵完备的平台,以太坊容易受到通过智能合约主要编程语言Solidity的复杂性所利用的漏洞。智能合约安全已成为一个主要问题,DAO黑客事件是导致主流对智能合约长期可行性担忧的启示性事件。
以太坊还过于关注安全和去中心化,而忽视了可扩展性。尽管可扩展性解决方案正在开发和即将到来,但目前的低吞吐量和高gas成本使得主流用户寻找免费使用的应用程序变得不便,对于构建应用程序的开发者来说,gas成本在某些情况下也变得过高。
交易模型
以太坊使用基于账户的模型,类似于现代银行模型,而不是比特币的UTXO模型。以太坊的全局状态分为这些账户,每个账户由20字节的地址组成,账户之间的任何价值或信息交易都被视为状态转换。
以太坊账户包含4个字段:nonce、ether余额、合约代码和存储。有两种类型的账户:外部拥有账户和合约账户。外部拥有账户是由私钥控制的用户账户,不包含任何代码,可用于创建和签署交易。合约账户是智能合约,由代码运行,接收消息,允许存储消息和代码,并联系其他合约和外部拥有账户。
以太币是以太坊平台的货币,而Gas是以太币的衍生物,用于支付网络上的交易和计算。以太坊选择基于账户的模型而不是比特币的UTXO模型,有多种原因。
以太坊挖矿
以太坊挖矿在许多方面类似于比特币挖矿。然而,主要区别在于以太坊区块链不仅存储区块链的交易列表,还存储网络的最新状态。
以太坊还使用Patricia树而不是Merkle树作为其区块链状态调节的一部分。Patricia树是Merkle树的修改形式,使以太坊能够有效地在每个区块中存储和调整区块链的状态。
以太坊区块链和挖矿的一些其他显著特征包括:
- 12秒的区块时间
- Ethash挖矿算法(使用DAG)
- 静态区块奖励3 ETH
- 矿工补偿区块中消耗的gas
- 包括Uncles区块的额外奖励
共识
以太坊目前采用修改后的Nakamoto共识PoW(工作量证明)共识模型。以太坊的PoW共识非常安全,因为网络由全球数千个去中心化节点组成。
以太坊的PoW模型挖矿使用Ethash(DAG)算法,该算法设计为具有快速可验证性时间。此外,由于算法的大内存需求,大型矿工从更大规模的运营中获得的相对收益较少。
该模型最终将被即将到来的Casper升级中的PoS(权益证明)共识实现所取代。
智能合约与Dapps
智能合约以及开发者在以太坊上构建去中心化应用程序的能力是其最突出的特性。从构建作为游戏的dapps到团队在以太坊上发布自己的ERC-20代币,许多在更广泛的加密货币行业中的重大发展都是通过利用EVM的这一功能实现的。
目前,Solidity是用于编写智能合约和构建dapps的主要编程语言,然而,以太坊目前正在试验一种名为Vyper的新Beta编程语言,该语言被认为是一种更简单、安全和可审计的智能合约语言,以缓解围绕Solidity的一些复杂性缺陷。
如果以太坊能够扩展到满足主流应用和吞吐量需求,平台上dapps的可能迭代是无穷无尽的。开发者将拥有新的途径来货币化他们的创作,用户将不会受到昂贵和低效的第三方的负担,最终应用程序(甚至区块链)将相互可操作,赋能一个全新的应用开发和创新范式。
以太坊的未来
以太坊似乎与比特币一起,不可避免地成为加密货币世界的中心。随着标准在以太坊网络上的提出和实施,一个庞大且专注的开发者社区和各种其他贡献者在其背后,以及Vitalik Buterin这位有才华的领袖引领方向,以太坊的未来看起来光明。
以太坊仍然处于行业创新的前沿,其计划向分片过渡被视为一些最艰巨的任务,不仅在区块链领域,而且在更大的技术社区中也是如此。以太坊还列出了一些他们正在积极或潜在开发的未来技术,包括:
- 保存钱包
- 作物保险
- 去中心化数据馈送
- 多重签名托管
- 云计算
- 点对点赌博
- 预测市场(如Augur)
- 去中心化市场(如0x)
不仅以太坊团队正在开发开创性创新,参与网络的大型社区也在以太坊网络的范围内开发自己的项目,做出了重大贡献。一些有趣和探索性的以太坊使用包括Aragon、0x、Augur、Golem和Loom Network等项目。
结论
以太坊是当今区块链/加密货币行业中最重要的平台之一。随着技术人才继续涌入该领域,采用变得更加主流,以及可扩展性解决方案的实施,以太坊有望继续成为明天去中心化应用程序的分布式世界计算机。