以太币的系统是使用最广泛的支持完备应用开发的公有区块链系统。与比特币相比,以太币的系统以太坊属于区块链2.0的范畴,是为了解决比特币网络的一些问题而重新设计的一个区块链系统。比特币的设计只适合加密数字货币场景,不具备图灵完备性,也缺乏保存实时状态的账户概念,而且存在 PoW 机制带来的效率和资源浪费的问题。比特币的区块链网络存在着扩展性不足的缺陷。随着比特币吸引越来越多开发者和技术人员的注意,一些用户尝试使用比特币网络用于其他数字货币或其他应用。但互联网发展,独立开发出区块链应用的难度比较大,用户需要掌握非常多的软硬件开发能力和加密算法,这使得区块链的应用对于一些用户来说并没有那么容易。
以太币系统以太坊的出现就是帮助用户更为容易地利用区块链技术进行应用设计。按照巴特林的说法,以太坊的目的是创造一个更为一般化的区块链平台,这一平台可以允许用户很容易创造基于区块链的应用,避免用户为创建一个新的应用而不得不建立一个区块链。通俗地讲,此前的区块链(如比特币)只是一个单一的工具或最多是一个多功能的工具组合,而以太坊则是区块链的智能手机,用户可以利用智能手机建立他所需要的任何“应用” 。因此巴特林表示,区块链的应用并不仅限于加密货币,它有着巨大的潜力,适用于各行各业,能为各企业和各种规模的组织带来显著好处。通过提供这样一个高度泛化的平台,以太坊允许用户在不需要创建自有区块链的同时,建立使用广泛的应用程序。以太坊的愿景成为“世界计算机”:用户就像使用计算机一样简单快捷建立基于区块链的应用,享受区块链所带来的分散化和安全好处。这使得以太坊的应用前景广阔。理论上,以太坊是一个通用的平台,可以用于各种各样的应用,但到为止大部分的应用都与金融有关。不过,除金融应用程序之外,任何需要信任、安全和永久存储的环境都可能受到以太坊平台的巨大影响,例如资产注册、选举、政府管理以及物联网等。
相较于较大多数其他加密货币或区块链技术,以太币的特点包括下列:
Gavin Wood写的《以太坊黄皮书》中定义了以太虚拟机的运作流程。智能合约可以专门为此开发的Solidity编程语言写成,或是Python的一个变体Serpent,或是LLL。以太虚拟机也可以在Mutan上运行。智能合约之后会编译成字节码,然后发布在以太坊区块键上。
将所有合约存在区块链上每个结点的作法有好有坏。主要的缺点是所有的结点都同时要运算所有的合约,因此速度较慢。开发人员正研究将数据切分(Sharding)的技术套用至以太坊。2016年9月 Buterin 发表了改善可扩展性的企画。截至2016年1月,以太坊每秒可以处理25个交易。
存在一种区块—叔块(uncle block),用于归纳那些因为速度较慢而未及时被收入母链的较短区块链。这个区块的产生是因为以太币的区块时间是20秒左右,相对于比特币,更容易出现临时分叉。而且较短的区块时间,也使得区块在整个网络中更难以充分传播,尤其是对那些网速慢的矿工,这是一种极大的不公平。为了平衡各方利益,设计了这样一个叔块机制。叔块在全部挖掘出来的区块中占的比例叫叔块率。
智能合约赋予账本可编程的特性,区块链 2.0 通过虚拟机的方式运行代码实现智能合约的功能,比如以太币的以太坊虚拟机(EVM)。同时,这一层通过在智能合约上添加能够与用户交互的前台界面,形成去中心化的应用(DAPP)。当然,在某些技术文档中认为DAPP 应该在智能合约层之上单独为应用层,也是有一定道理,只要不影响理解即可。
激励层主要实现以太币的发行和分配机制,以太币不是数字货币,而是定位于平台运行的燃料,运行智能合约和发送交易都需要向矿工支付一定的以太币。以太币可以通过挖矿获得,矿工每挖到一个区块固定奖励 5 个以太币。
共识层主要实现全网所有节点对交易和数据达成一致,以太坊采用两种共识机制,初期采用工作量证明机制(POW),待网络中的以太币充分流通和分散后,改为采用交易速度更快、无资源消耗的权益证明机制(POS),从而有效地避免了纯 POS 机制导致的初期权益分配不公平的情况。
网络层主要实现网络节点的连接和通信,又称“点对点技术”,是没有中心服务器、依靠用户群交换信息的互联网体系。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,其具有去中心化与健壮性等特点。
数据层最底层的技术,是一切的基础,主要实现了两个功能,一个是相关数据的存储,另一个是账户和交易的实现与安全。数据存储主要基于 Merkle 树,通过区块的方式和链式结构实现,大多以 KV 数据库的方式实现持久化,比如以太坊采用 LevelDB。账号和交易的实现基于数字签名、哈希函数和非对称加密技术等多种密码学算法和技术,保证了交易在去中心化的情况下能够安全地进行。