以太坊是一个开源的公共区块链平台,具有智能合约功能。它通过其特殊的加密货币以太坊提供了一个去中心化的以太坊虚拟机来处理点对点合约。以太坊是一个平台,提供各种模块供用户构建特定的应用。如果把构建一个应用比作建造一座房子,那么以太坊提供的就是墙壁、屋顶、地板等模块。用户只需要像搭积木一样搭建房子,所以在以太坊上搭建一个应用的成本和速度大大提高。
图片来自互联网
以太坊的概念最早是由被称为“V神”的俄罗斯程序员Vitalik bartling提出,并于2014年通过ICO众筹成立。截至2019年,以太坊是市值第二大的区块链项目,仅次于比特币。以太坊本身也被认为是区块链2.0的代表。
本质上,以太坊是一个基于事务的状态机。“状态机”是一个计算机术语,它可以根据预先设定的状态转移输入状态信号的状态。在“起源状态”中,网络中没有事务。当事务被执行时,这个“创建状态”将被转换成最终状态。在任何时刻,这个最终状态都代表以太坊的当前状态。
以太坊国家有数百万笔交易。这些事务被“分组”到一个块中。一个块包含一系列事务,每个块都与其前一个块相连接。
为了从一个状态转换到下一个状态,事务必须有效。为了使交易被认为是有效的,它必须通过“挖掘”来验证。任何网络中的节点都可以成为“矿工”,试图创建和验证块。每个“矿工”在向区块链提交区块时,都会提供一份数学机制的“证明”。这个证明就像一个保证:如果这个证明存在,那么这个块一定是有效的。
因为以太坊最早是受到比特币网络的启发,所以继承了很多类似的技术。同时,以太坊也做了很多修改和创新。比特币区块链纯粹是交易清单,以太坊的基本单位是账户。以太坊区块链跟踪每个帐户的状态,以太坊区块链上的所有状态转换都是帐户之间的价值和信息转移。账户分为两类:
(1)外部账户(EOA),由私人密码控制;
(2)合同账户受其合同代码控制,只能由外部账户“激活”。
对于大多数用户来说,两者的基本区别在于外部账户由用户控制,用户可以控制私钥进而控制外部账户,而合约账户由内部代码控制,用户可以通过在区块链中部署代码来创建新的合约。
只有当外部账户发出指令时,合约账户才会执行相应的操作。因此,合约帐户不可能自发地执行任意数字生成或应用程序接口调用等操作。它只会在外部帐户提示时执行这些操作。这是因为以太坊要求节点与运算结果一致,这就需要严格的执行。
和比特币一样,以太坊的用户必须向网络支付小额交易费。这可以保护以太坊区块链免受无关紧要或恶意的计算任务,如分布式拒绝服务(DDoS)攻击或无限循环。交易的发送方必须为激活“程序”的每一步付费,包括计算和内存存储。费用以以太坊自有证书——以太坊的形式支付。
节点收集交易费用,使网络有效。这些“矿工”是以太坊网络中收集、传播、确认和执行交易的节点。“矿工”会对交易进行分组,分组后的组称为“区块”。元的博客将相互竞争,使他们的块可以添加到下一个。矿工每“挖”成功一块,就会获得一个以太奖励。这给人们带来了经济激励,促使他们为以太网贡献硬件和电力。
和比特币网络一样,以太坊里的“矿工”为了成功“挖”进区块,有解决复杂数学问题的任务。为了防止比特币网络中已经出现的专门硬件(如专用集成电路)导致的集中化现象,以太坊选择了难以存储的运算问题。这就让普通的电脑,而不是框架,在“挖矿”的过程中更加强大。这样的硬件设置在一定程度上保证了以太坊的去中心化。
以太坊可以用来创建去中心化的程序、自治组织和智能合约。目前,以太坊有很多著名的应用,例如,分散式风险投资The DAO、rudital、社交经济平台Backfeed、分散式市场预测Augur、音乐版权平台Ujo Music、移动支付Everex等。都是基于以太坊。