与比特币协议不同,以太坊的设计具有灵活性和适应性。在以太坊平台上创建新的应用程序非常容易,任何人都可以安全地使用该平台上的应用程序。
下一代区块链
区块链技术是比特币的底层技术,最早出现在2008年中本聪的白皮书《比特币:一种点对点的电子现金系统》中。原书中讨论了区块链技术更一般的用途,但直到几年后,区块链技术才作为一个通用术语出现。
区块链是一种分布式计算架构,每个网络节点执行并记录相同的交易,这些交易被分组为区块。每次只能添加一个区块,每个区块都有数学证明,以确保新区块保持前一个区块的顺序。
这样,区块链的“分布式数据库”在整个网络中保持一致。个人用户与账本的交互(交易)受到安全的加密保护。以数学方式强制执行并编码到协议中的经济激励机制激励着维护和验证网络的节点。
在比特币中,分布式数据库被设想为一个账户余额表,一个总账,交易通过比特币的转移进行,使个人之间无需信任即可进行金融活动。但随着比特币吸引了越来越多开发者和技术专家的关注,新的项目开始将比特币网络用于除转移有价值的代币之外的其他目的。
其中许多都以“代币”的形式存在——基于原始比特币协议的独立区块链,并添加了新特性或功能,每个区块链都有自己的加密货币。2013 年底,以太坊的发明者建议,可以重新编程以运行任意复杂计算的单个区块链应该包含其他程序。
2014年,以太坊创始人Gavin Wood等人开始研究下一代区块链,试图实现一个完全去信任的智能合约平台。
以太坊虚拟机
以太坊是一种可编程区块链。它不会为用户提供一组预定义的操作(如比特币交易),而是允许用户根据自己的意愿创建复杂的操作。这使得它能够作为多种类型的去中心化区块链应用的平台,包括但不限于加密货币。
以太坊是一系列定义去中心化应用平台的协议。其核心是以太坊虚拟机(“EVM”),可以执行任意复杂算法的编码。用计算机科学术语来说,以太坊是“图灵完备的”。开发人员可以使用现有的和其他友好的编程语言作为模型来创建在以太坊模拟器上运行的应用程序。
与其他区块链一样,以太坊也采用点对点网络协议,以太坊区块链数据库由连接到网络的众多节点维护和更新,每个网络节点都运行以太坊模拟器并执行相同的指令,因此人们有时形象地称以太坊为“世界计算机”。
以太坊网络的大规模并行性并非旨在提高计算效率。事实上,这一过程使以太坊上的计算比传统“计算机”更慢、更昂贵。然而,每个以太坊节点都运行以太坊虚拟机来维护整个区块链的一致性。去中心化共识使以太坊具有极强的容错能力,保证零停机时间,并允许存储在区块链上的数据保持不变且不受审查。
以太坊平台本身毫无特色,也毫无价值。就像编程语言一样,企业家和开发者可以自行决定如何使用它。但是,很明显,某些类型的应用程序比其他类型的应用程序更能从以太坊的功能中获益。以太坊特别适合那些能够自动实现点对点直接交互或促进跨网络群体协调活动的应用程序。
例如,用于协调点对点市场或自动化复杂金融合同的应用程序。比特币使个人无需金融机构、银行或政府等其他中介机构即可进行货币兑换。以太坊的影响可能更为深远。
理论上,任何复杂的金融活动或交易都可以在以太坊上使用代码自动可靠地执行。除了金融应用之外,任何需要高信任、安全和持久性的应用场景——例如资产登记、投票、管理和物联网——都将受到以太坊平台的大规模影响。
以太坊的工作原理
以太坊融合了许多比特币用户熟悉的功能和技术,同时也进行了许多修改和创新。比特币区块链纯粹是交易列表,而以太坊的基本单位是账户。以太坊区块链跟踪每个账户的状态,以太坊区块链上的所有状态转换都是账户之间的价值和信息转移。
有两种类型的帐户:
1. 外部拥有账户(EOA),由私人密码控制
2. 合约账户,由合约代码控制,只能由外部账户“激活”
对于大多数用户来说,两者之间的基本区别在于,外部账户由人类用户控制——因为他们控制私钥,而私钥又控制外部账户。另一方面,合约账户则由内部代码控制。如果它们被人类用户“控制”,那是因为它们被编程为由具有特定地址的外部账户控制,而外部账户又由持有控制外部账户的私钥的人控制。
流行的术语“智能合约”是指合约账户中的代码——当交易发送到该账户时运行的程序。用户可以通过在区块链中部署代码来创建新合约。
合约账户只会在外部账户发出指令时才会执行相应的操作。因此,合约账户无法自发执行任意数字生成或应用程序接口调用等操作——它只会在外部账户提示时才会做这些事情。这是因为以太坊要求节点与计算结果保持一致,这需要严格的确定性执行。
与比特币一样,以太坊用户必须向网络支付少量交易费。这可以保护以太坊区块链免受无关紧要或恶意计算任务的干扰,例如分布式拒绝服务 (DDoS) 攻击或无限循环。交易的发送者必须为激活的“流程”的每个步骤付费,包括计算和内存存储。费用以以太坊自己的价值代币以太币支付。
交易费用由节点收取,从而支持网络。这些“矿工”是以太坊网络中的节点,负责收集、传播、确认和执行交易。矿工将交易(包括对许多以太坊区块链中账户“状态”的更新)分组为称为“区块”的组,矿工们竞相将他们的区块添加到下一个区块链。矿工每成功挖掘一个区块都会获得以太币奖励。这为人们向以太坊网络贡献硬件和电力提供了经济激励。
与比特币网络一样,矿工需要解决复杂的数学问题才能成功“挖出”一个区块。这被称为“工作量证明”。如果一个计算问题需要的资源在算法上比验证解决方案多几个数量级,那么它就是工作量证明的绝佳候选对象。
为了防止比特币网络中已经出现的由专用硬件(如 ASIC)引起的中心化,以太坊选择了难以存储的计算问题。如果问题需要内存和 CPU,那么实际上理想的硬件就是普通计算机。这使得以太坊的工作量证明能够抵抗 ASIC,并且与比特币等由专用硬件控制挖矿的区块链相比,可以带来更去中心化和安全的分布。
Web 3:去中心化应用平台
很多人认为,像以太坊这样开放、去信任的区块链平台非常适合作为Web 3.0的共享“后端”。像Web 3.0这样的去中心化、安全的互联网,其DNS、数字身份等核心服务都是去中心化的,个人可以参与经济互动。
正如以太坊开发人员所期望的那样,以太坊是一块空白画布,您可以在其上构建任何您想要的东西。以太坊协议旨在通用化,以便可以以任何方式组合其核心功能。理想情况下,以太坊上的数据收集和处理程序将使用以太坊区块链来构建依赖于去中心化共识的解决方案,以提供以前不可能实现的新产品和服务。
以太坊最好被描述为一个生态系统:核心协议由不同的基础设施、代码和社区支持,它们共同构成了以太坊项目。您还可以通过查看使用以太坊的项目来了解以太坊。目前已经有许多非常著名的基于以太坊的项目,例如 Augur、Digix、Maker 等(请参阅数据收集和处理程序)。
此外,还有一些开发团队构建了每个人都可以使用的开源组件,虽然这些组织独立于以太坊基金会,有各自的组织目标,但无疑对整个以太坊生态系统是有益的。
智能合约
你会和一个素未谋面的人签订合同吗?你会同意借钱给埃塞俄比亚的农民吗?你会投资一家由战乱地区少数民族经营的报纸吗?你会不辞辛劳地签署一份具有法律约束力的合同,用于网上购买价值 5 美元的商品吗?
大多数情况下答案是否定的,因为合同依赖于许多不同的基础:有时它们需要双方之间建立信任的工作关系,有时它们依赖于法律工作系统、警察和律师费。
而在以太坊中,这一切都不是必要的:如果一个合约的要求可以放在区块链上,那么它们就都会放在区块链上,这是一个不需要信任基础、几乎没有成本的环境。
不要考虑将现有合同转移到区块链的麻烦;想想那些因为经济上不可行或没有足够的法律保护而被你拒绝的数千份小合同。
去中心化自治组织
举个简单的例子:假设你和朋友经营一家小公司。律师和会计师的费用很高,而将账簿交给一个合伙人可能会让人感到不安(甚至有可能造成欺诈)。你可以尝试让多个合伙人记账,但只要不遵守协议,就可能导致欺诈。
使用智能合约,公司所有权和资金分配的条款可以在一开始就详细规定。智能合约的签署方式是,只有大多数所有者批准才能更改。这种智能合约可以像开源软件一样获得,你甚至不必雇佣自己的程序员来代替会计师和律师。
这样的智能合约可以立即按比例确定股份分配。几个年轻人可以以同样的透明度分割柠檬水摊的收益,就像主权财富基金将基金收益分配给拥有该基金的数十亿公民一样。在这两种情况下,这种透明度的成本都低于一美元。