什么是以太坊
以太坊是一个开放的区块链平台,他允许任何人构建和使用运行在区块链技术上的去中心化应用。与比特币相似,没有人可以控制或者拥有以太坊 – 以太坊是一项由世界各地人一起构建的开源项目。但是与比特币协议不同,以太坊设计得适应性强和灵活。在以太坊平台创建新应用很容易,使用以太坊Homestead release(以太坊第二版本),所有人可以安全地使用这些应用。
下一代区块链
区块链技术是比特币技术的基础,“比特币:一种对等的电子现金系统”第一次被比特币的神秘作者中本聪在他2008年发布的白皮书中描述。虽然在原始文献中已经讨论过使区块链拥有更广泛的用途,但是直到几年后区块链技术才描述为专业术语。区块链是一个分布式计算架构,每一个网络节点执行和记录相同的交易,这些内容被分组成块。同一时间只能添加一个块,每个块包含一个数学证明,验证他按照前一个块顺序排列。通过这种方式,区块链通过整个网络达成分布式数据库共识。密码系统使个人账户与分类账(交易)交互安全。维护和验证网络节点通过编码到协议中的数学强制经济来激励。
在比特币的情况下,分布式数据库被设想成账户余额表,分类账和交易是比特币令牌的转移去促进个体间无信任的金融交易。但是随着比特币开始吸引开发者和技术专家的关注,新的项目开始使用比特币网络而不是价值令牌转移。其中许多采取山寨币,使用自有加密的单独区块链,这些山寨币改善原有的比特币协议去添加新的特性和功能。在2013末,以太坊的发明者维塔里克•布特林提出一个具有重新编码以执行复杂计算能力的单链,他可以包含许多其他项目。
在2014年,以太坊创始人维塔里克•布特林,加文伍德和杰夫瑞威尔克开始研究下一代区块链,他们的目标是实现一个通用的,无信任的智能合约平台。
以太虚拟机
以太坊是一个可编程的区块链。相较于给予用户一系列预定义操作(例如比特币交易),以太坊允许用户去创建他们希望的任何复杂操作。就这样,以太坊作为一个平台服务于不同种类的去中心化应用,以太坊包括但不仅限于加密货币。
以太坊在狭义上指定义一个去中心化应用平台的一系列协议。以以太虚拟机为中心,他可以执行任何复杂度的算法代码。用计算机科学术语描述,以太坊就是图灵机。开发者可以使用友善的编程语言模仿存在的语言例如JavaScript和Python来创建能够运行在以太虚拟机上的应用。
和其他任何的区块链一样,以太坊也包含一个点对点的网络协议。以太坊区块链数据库通过链接在网络上的许多节点来维护和更新。每一个网络节点运行在以太虚拟机上执行一样的指令。因为这个原因,以太坊有些时候也被形象地描述为世界计算机。
大量通过完全以太坊网络计算机并行计算并没有使得计算更加高效。事实上,这个过程使得在以太坊上的计算相较于传统电脑更慢和更昂贵。相反,每个运行在以太虚拟机上的节点为了在区块链上保持一致。去中心化共识给予以太坊极高的容错水平,确保零停机时间,并使存储在区块链上的数据永远不可修改和审查。
以太坊平台本身是无特征或价值不确定的。与编程语言相似,企业家和开发人员应该决定使用他做什么。然而,很明显,某些应用程序类型从以太坊能力中获益更多。具体地说,以太坊适用于自动化链接或促进跨网络的协调组操作的应用程序。例如,用于协调点对点市场的应用程序,或者复杂金融合同的自动化。比特币允许个人在不涉及金融机构,银行和政府机构等中间人进行现金交易。以太坊的影响可能更深远。理论上,运行在以太坊上的代码可以自动可靠地进行任何复杂性的财务交互或交换。除了金融应用程序之外,任何信任,安全性和持久性都很重要的环境—-例如,资产注册,投票,治理和物联网—-都可能受到以太坊平台的巨大影响。
以太坊如何工作
以太坊包含许多与比特币相似的特性和技术,同时也介绍许多以太坊本身的修改和改革。然而,比特币区块链是纯粹的交易清单,以太坊的基础单位是账号。以太坊区块链跟踪每个账户,并且以太坊区块链上的状态转换都是在账户之间传输价值和信息。有两种类型的账户:
外部拥有的账户,由私钥控制
合约账户,由其合同代码控制,并且只能被外部拥有账户激活
对于大多数用户来说,基本的区别是,人类用户控制外部拥有的账户—-因为他们能够控制对外部拥有的账户进行控制的私钥。另一方面,合约账户受其内部代码管理。如果他们是由人类用户控制,那是因为他们被编程为由特定地址外部拥有的账户控制,而外部拥有的私钥反过来又要被拥有控制外部账户的私钥的人控制。流行的术语”智能合约”指的是合同账户中的代码—-当交易被发送到该账户时执行的程序。用户可以通过将代码部署到区块链来创建新的契约。
合约账户只有在外部拥有的账户发出指令的时候才能执行操作。因此,合约账户不可能执行本地操作,比如随机数生成或者API调用—-只有在外部拥有账户的提示下,他才能执行这些操作。这是因为以太坊需要节点能够就计算结果达成一致,这就要求保证严格的确定性的执行。
就像比特币一样,用户必须向网络支付小额交易费。这可以保护以太坊区块链避免不必要的或者恶意的计算任务,比如DDoS攻击或者无限循环。交易的发送方必须为其激活的程序的每一个步骤付费,包括计算和内存存储。这些费用是用以太坊的本地价值令牌标记和支付的。
这些交易费用由验证网络的节点收取。这些矿工是在以太坊中接受,传播,验证和执行交易的节点。然后,矿工把交易分组—-其中包括许多以太坊区块链中账户状态的更新—-归纳到所谓的块,并且然后矿工们相互竞争为了让他们的块能够成为区块链中下一个要添加的块。矿工们开采每一块成功的区块都能够得到以太坊的奖励。这为人们将硬件和电力投入到以太坊网络提供经济激励。
就像在比特币网络中一样,矿工被分配任务解决一个复杂的数学问题,以便成功地挖掘一个区块。这被称为工作证明。任何需要大量资源来解决算法问题的计算问题比验证该解决方案所需要的资源更多,是更好的工作证明的候选。为了阻止由于经常使用专用硬件(如ASICs)而导致的集中化,就像比特币网络中发生一样,以太坊选择一个难以记忆的计算问题。如果问题需要内存和CPU,理想的硬件实际上是通用计算机。这些使得以太坊的工作证明ASIC具有抵抗性,区块链的安全分布更为分散,区块链的开采主要是专门的硬件,例如比特币。
(全文未完)
阅读原文