以太坊技术(ethereum)连载(一)前言

什么是ethereum?


Ethereum是一个开放的区块链平台,允许任何人构建和使用在块链技术上运行的分散式应用程序。 Bitcoin一样,没有人控制或拥有Ethereum – 这是一个由世界各地许多人建立的开源项目。 但是,与比特币协议不同,Ethereum的设计更具有适应性和灵活性。 Ethereum平台上创建新的应用程序很容易,并且随着Homestead发行版,任何人都可以安全地使用这些应用程序。


下一代区块链


区块链技术是比特币的技术基础,首先由神秘的作者Satoshi Nakamoto2008年出版的白皮书“BitcoinA Peer-to-Peer Electronic Cash System”中描述。虽然使用区块链更广泛的用途已经是在原始论文中讨论过,直到几年后,区块链技术才成为一个通用术语。区块链是分布式计算架构,其中每个网络节点执行并记录相同的事务(交易),这些事务(交易)被分组成块。一次只能添加一个块,每个块都包含一个数学证明,用于验证它是否从上一个块中顺序排列。以这种方式,整个网络中的区块链“分布式数据库”保持一致。与帐户(交易)的单独用户交互是通过强大的密码学来保护的。维护和验证网络的节点是通过在协议中编码的经济激励机制来激励的。

2013年,Ethereum的发明者Ethereum提出,一个可以重新编程的单一区块链,可以进行任意复杂的计算,可以将这些其他项目包含在这些项目中

2014年,以太坊的创始人Vitalik Buterin、加文伍德和Vitalik Buterin开始在下一代区块链上工作,他们有实现一个全面、完全信任的智能合约平台的雄心。


Ethereum虚拟机


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

狭义上的Ethereum是指一套协议,用于定义分散应用的平台。它的核心是可以执行任意复杂算法代码的Ethereum虚拟机(“EVM”)。在计算机科学方面,Ethereum是“图灵完备”的。开发人员可以使用以现有语言(如JavaScriptPython)为基础的编程语言创建在EVM上运行的应用程序。

像任何一个区块链,Ethereum还包括一个对等网络协议。 Ethereum区块链数据库由连接到网络的许多节点维护和更新。网络的每个节点运行EVM并执行相同的指令。因此,有时可以将Ethereum描述为“世界电脑”。

整个Ethereum网络中的这种大规模并行计算并不能使计算更有效率。事实上,这个过程使得Ethereum的计算速度比传统的“计算机”要慢得多。相反,每个Ethereum节点都运行EVM,以便在整个区块链中数据保持一致。分散化的共识使得Ethereum用友极端的容错能力以确保了“零停机”,并且使数据存储在块上永远是不变的和抗审查的。

Ethereum平台本身是无特征的或与价值无关的。类似于编程语言,由企业家和开发者决定应该使用什么。它的特点使它适合那些在点与点之间自动进行直接交互或者跨网络需第三方协调活动的应用。例如,协调点对点市场的应用,或是复杂财务合约的自动化。理论上,任何复杂的金融活动或交易都能在Ethereum上用代码自动且可靠地进行。除金融类应用外,任何对信任、安全和持久性要求较高的应用场景——比如资产注册、投票、管理和物联网——都会大规模地受到以太坊平台影响。

 

Ethereum如何工作?


Ethereum集成了Bitcoin用户熟悉的许多功能和技术,同时还引入了自己的许多修改和创新。比特币区块链是纯粹的交易列表,而Ethereum的基本单位就是账户。Ethereum跟踪每个帐户的状态, Ethereum的所有状态转换都是账户之间的价值和信息的转移。帐户有两种类型:


外部账户(EOAs),由私钥控制

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


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

合约账户只有在EOA指示的时候才执行操作。因此,合约帐户不可能执行类似随机数生成或API调用等本地操作只有在EOA提示的情况下才能执行这些操作。这是因为Ethereum要求节点能够就计算结果达成一致,这需要严格确定性执行的保证。

Bitcoin一样,用户必须向网络支付小额的交易费用。这样可以保护Ethereum块免受轻率或恶意的计算任务,如DDoS攻击。交易的发起人必须支付他们激活的“程序”的每个步骤的费用,包括计算和存储。这些费用是以Ethereumether支付的。

这些交易费用由验证网络的节点收集。这些“矿工”是Ethereum网络中接收,传播,验证和执行交易的节点。矿工们相互竞争,将这些交易更新为所谓的“块”,然后成为下一个被添加到区块链的块。矿工们获得了他们开采的每一个成功的区块的奖励。这为人们提供了将硬件和电力用于以ethereum的经济动力。

就像Bitcoin网络一样,矿工的任务是解决一个复杂的数学问题,以便成功地“挖掘”一个块。这就是所谓的工作证明为了阻止由于使用专用硬件(例如ASIC)而集中化,如比特币网络中所发生的那样,Ethereum选择了 memory-hard 计算问题。如果问题需要内存以及CPU,理想的硬件实际上是一般的电脑。这使得Ethereum的工作证明ASIC具有抗拒性,允许一个更分散的分布式安全性,而不是像Bitcoin这样专门的硬件占主导地位的区块链。



本文引自:

http://ethdocs.org/en/latest/introduction/what-is-ethereum.html#a-next-generation-blockchain