以太坊是一个开源的、有智能合约功能的公共区块链平台。它通过其专用加密货币以太币提供去中心化的以太虚拟机(Ethereum virtual machine)来处理点对点合约。以太坊是一个平台,提供了各种模块让用户来搭建具体的应用。如果将搭建应用比作造房子,那么以太坊就提供了墙面、屋顶、地板等模块,用户只需像搭积木一样把房子搭起来,因此在以太坊上建立应用的成本和速度都大大改善。
图片来自网络
以太坊的概念最早是由人称“V神”的俄裔程序员维塔利克·巴特林(Vitalik Buterin)提出,并在2014年通过ICO众筹建立的。截至2019年,以太坊是市值第二大的区块链项目,仅次于比特币。而以太坊本身也被认为是区块链2.0的代表。
从本质上讲,以太坊是一个基于交易的状态机(transaction-based state machine)。“状态机”是一个计算机术语,它能够将输入的状态信号按照预先设定的状态进行状态转移。在“创世状态”(Genesis State),网络中没有任何交易的产生状态。当交易被执行后,这个“创世状态”就会转变成最终状态。在任何时刻,这个最终状态都代表着以太坊当前的状态。
以太坊的状态有百万个交易。这些交易都被“组团”到一个区块中。一个区块包含了一系列的交易,每个区块都与它的前一个区块连接起来。
为了让一个状态转换成下一个状态,交易必须是有效的。为了让一个交易被认为是有效的,它必须要经过“挖矿”验证。任何网络的节点都可以成为“矿工”,尝试创建和验证区块。每个“矿工”在提交一个区块到区块链上的时候都会提供一个数学机制的“证明”,这个证明就像一个保证:如果这个证明存在,那么这个区块一定是有效的。
由于以太坊最早是受比特币网络启发而产生的,它继承了很多与之类似的技术。同时,以太坊也进行了很多修正和创新。比特币区块链纯粹是一个关于交易的列表,而以太坊的基础单元是账户。以太坊区块链跟踪每个账户的状态,所有以太坊区块链上的状态转换都是账户之间价值和信息的转移。账户分为两类:
(1)外部账户(EOA),由私人密码控制;
(2)合约账户,由它们的合约编码控制,只能由外部账户“激活”。
对于大部分用户来说,两者基本的区别在于外部账户是由用户掌控的,用户能够控制私钥,进而控制外部账户,而合约账户则是由内部编码管控,用户可以通过在区块链中部署编码来创建新的合约。
只有当外部账户发出指令时,合约账户才会执行相应的操作。所以,合约账户不可能自发地执行诸如任意数码生成或应用程序界面调用等操作。只有受外部账户提示时,它才会做这些事。这是因为以太坊要求节点能够与运算结果保持一致,这就要求保证严格确定执行。
和比特币一样,以太坊用户必须向网络支付少量交易费用。这可以使以太坊区块链免受无关紧要或恶意的运算任务干扰,比如分布式拒绝服务(DDoS)攻击或无限循环。交易的发送者必须对激活的每一步“程序”付款,包括运算和记忆储存。费用通过以太坊自有的通证——以太币的形式支付。
交易费用由节点收集,节点使网络生效。这些“矿工”就是以太坊网络中收集、传播、确认和执行交易的节点。“矿工”们将交易分组,分成的组被称为“区块”,袁文泽博客www.yuanwze.cn他们会互相竞争,以使其区块可以添加到下一个区块链上。“矿工”们每“挖”到一个成功的区块就会得到以太币奖励。这就为人们带来了经济激励,促使他们为以太坊网络贡献硬件和电力。
和比特币网络一样,以太坊中的“矿工”们有解决复杂数学问题的任务,以便成功地“挖”到区块。为防止比特币网络中已经发生的、专门硬件(例如特定用途集成电路)造成的中心化现象,以太坊选择了难以存储的运算问题。这就使得普通电脑,而非框架在“挖矿”的过程中更为有力。这种硬件的设置,在一定程度上保证了以太坊的去中心化。
以太坊可以用来创建去中心化的程序、自治组织和智能合约。目前,在以太坊上已经有不少比较有名的应用,例如,去中心化的创业投资The DAO、The Rudimental,社会经济平台Backfeed,去中心化预测市场Augur,音乐版权平台Ujo Music,移动支付Everex等都是基于以太坊建立的。
,