什么是以太坊?

蓝石区块链2019-01-10 15:00:02
关注我们
更多精彩等你发现!


 

以太坊是一个开放的区块链平台,任何人都可以使用区块链技术构建和使用分散的应用程序。像比特币一样,没有人控制或拥有以太坊 - 它是由世界各地的许多人建立的开源项目。但与比特币协议不同,以太坊的设计具有适应性和灵活性。在以太坊平台上创建新应用程序很容易,而在Homestead版本中,任何人都可以安全地使用这些应用程序。


下一代区块链

 

区块链技术是比特币的技术基础,首先由其神秘作者中本聪(Satoshi Nakamoto)在2008年出版的白皮书“比特币:点对点电子现金系统”中描述。虽然区块链用于更广泛的用途已经是在原始论文中讨论过,直到几年后,区块链技术才成为一个通用术语。区块链是一种分布式计算架构,其中每个网络节点执行并记录相同的事务,这些事务被分组为块。一次只能添加一个块,并且每个块都包含一个数学证明,用于验证它是否依次跟随前一个块。通过这种方式,区块链的“分布式数据库”在整个网络中保持一致。个人用户与分类帐(交易)的交互由强密码术保护。维护和验证网络的节点受到编码到协议中的数学强制经济激励的激励。

 

在比特币的情况下,分布式数据库被设想为账户余额表,分类账,交易是比特币代币的转移,以促进个人之间的无信任融资。但随着比特币开始引起开发人员和技术人员的更多关注,新的项目开始将比特币网络用于除了价值代币转移之外的其他目的。其中许多采取“替代硬币”的形式 - 单独的区块链与他们自己的加密货币,改进了原有的比特币协议,以增加新的功能或功能。2013年底,以太坊的发明者Vitalik Buterin提出,一个能够重新编程以执行任意复杂计算的区块链可以包含这些许多其他项目。

 

2014年,以太坊创始人Vitalik Buterin,Gavin Wood和Jeffrey Wilcke开始研究下一代区块链,该区块链有望实施一个完全无信任的通用智能合约平台。

 

以太坊虚拟机

 

以太坊是一个可编程的区块链。Ethereum不是为用户提供一组预定义的操作(例如比特币交易),而是允许用户创建他们希望的任何复杂度的自己的操作。通过这种方式,它可以作为许多不同类型的分散式区块链应用程序的平台,包括但不限于加密货币。

 

狭义上的以太坊是指为分散应用程序定义平台的一套协议。其核心是以太坊虚拟机(“EVM”),它可以执行任意算法复杂度的代码。在计算机科学术语中,以太坊是“图灵完整”。开发人员可以使用以JavaScript和Python等现有语言为模型的友好编程语言创建在EVM上运行的应用程序。

 

与任何区块链一样,以太坊也包括点对点网络协议。以太坊区块链数据库由连接到网络的许多节点维护和更新。网络的每个节点都运行EVM并执行相同的指令。出于这个原因,以太坊有时被描述为“世界计算机”。

 

在整个以太坊网络中进行大规模的计算并行化并不是为了提高计算效率。实际上,这个过程使得以太坊上的计算比传统的“计算机”慢得多,也更昂贵。相反,每个以太坊节点都运行EVM,以便在区块链中保持一致。分散的共识为以太坊提供了极端的容错能力,确保零停机时间,并使存储在区块链上的数据永远不变且具有审查能力。

 

以太坊平台本身没有特色或与价值无关。与编程语言类似,由企业家和开发人员决定应该使用什么。但是,很明显某些应用程序类型比以太坊的功能更有益。具体而言,以太坊适用于自动化同伴之间直接交互或促进跨网络协调的群组行动的应用程序。例如,用于协调点对点市场的应用程序,或复杂金融合同的自动化。比特币允许个人交换现金而不涉及金融机构,银行或政府等任何中间人。以太坊的影响可能更为深远。从理论上讲,任何复杂性的金融交互或交换都可以使用在以太坊上运行的代码自动可靠地执行。除了金融应用程序之外,任何信任,安全性和持久性都很重要的环境(例如,资产注册,投票,治理和物联网)都可能受到以太坊平台的严重影响。

 

以太坊如何运作?

 

以太坊融合了比特币用户所熟悉的许多功能和技术,同时还引入了许多自己的修改和创新。

虽然比特币区块链纯粹是一个交易清单,但以太坊的基本单位是账户。以太坊区块链跟踪每个账户的状态,以太坊区块链上的所有状态转换都是账户之间价值和信息的转移。有两种类型的帐户:

 

外部拥有帐户(EOA),由私钥控制

 

合同账户,由合同代码控制,只能由EOA“激活”

 

对于大多数用户而言,这些用户之间的基本区别在于人类用户控制EOA - 因为他们可以控制控制EOA的私钥。另一方面,合同账户由其内部代码管理。如果它们被人类用户“控制”,那是因为它们被编程为由具有特定地址的EOA控制,该地址又由持有控制该EOA的私钥的任何人控制。流行的术语“智能合约”是指合约账户中的代码 - 在将交易发送到该账户时执行的程序。用户可以通过将代码部署到区块链来创建新合同。

 

合同账户仅在EOA指示时执行操作。因此,合同帐户不可能执行本机操作(如随机数生成或API调用) - 只有在EOA提示时才能执行这些操作。这是因为以太坊要求节点能够就计算结果达成一致,这需要保证严格确定性的执行。

 

与比特币一样,用户必须向网络支付小额交易费用。这可以保护以太坊区块链免受无聊或恶意的计算任务,如DDoS攻击或无限循环。事务的发送者必须为他们激活的“程序”的每一步付费,包括计算和内存存储。这些费用以以太坊的本地价值标记 - 以太币的金额支付。

这些交易费用由验证网络的节点收集。这些“矿工”是以太坊网络中接收,传播,验证和执行交易的节点。然后矿工将交易分组 - 其中包括对以太坊区块链中账户“状态”的许多更新 - 进入所谓的“区块”,然后矿工互相竞争,使他们的区块成为下一个要添加的区块。区块链。对于他们开采的每个成功区块,矿工都会获得以太奖励。这为人们将以太网和电力专用于以太坊网络提供了经济激励。

 

正如在比特币网络中一样,矿工的任务是解决复杂的数学问题,以便成功“挖掘”一个区块。这被称为“工作证明”。任何计算问题都需要数量级更多的资源才能在算法上解决,而不是验证解决方案,这是一个很好的候选工作证明。为了阻止由于使用专用硬件(例如ASIC)而导致的集中化,如比特币网络中所发生的那样,以太坊选择了存储器硬计算问题。如果问题需要内存和CPU,理想的硬件实际上是通用计算机。这使得以太坊的工作证明具有ASIC抗性,允许比采用比特币等专用硬件占主导地位的区块链更安全地分散安全性。

 

 

此文为翻译,源自http://www.ethdocs.org/



Copyright © 古田计算器虚拟社区@2017