以太坊(Ethereum)是近几年才发展起来的一种新的底层区块链技术。以太币(Ether)是以太坊公有链上产生的加密货币(Crypto Currency),除了可以拿来像比特币(Bitcoin)一样做交易外,还具有实际的用途。
以太坊和比特币一样是基于P2P网络与密码学建立起的区块链机制,不同之处是,以太坊在每个运作的节点上都运行着一个以太坊虚拟机(Ethereum Virtual Machine EVM),可以用来执行完整的程式。这些程式在以太坊中被称为智能合约(Smart Contract)。智能合约除了可以处理资料,还内建转账功能,可以很容易地透过智能合约来交易加密货币。由于智能合约可在每个以太坊的节点上执行并进行验证,所以计算结果被认为是可信任的。以太坊还开发出了web3.js让开发者可以使用网页技术撰写智能合约的操作界面。这样的网页操作界面又称为分散式应用程序(DAPP)。要使用DAPP,必须在支援DAPP的浏览器中才能使用(如Mist或Parity)。
使用智能合约技术制作的服务,也构成了以太坊生态圈的一环。例如Ethereum Name Service(ENS)就提供了让使用者更容易寻找到转账对象、智能合约,和DAPP的方式。
以太坊提供了便于交易的加密货币以太币(Ether),可透过智能合约解决交易上的信任问题,同时也可撰写DAPP来提供友善的资讯汇总与操作界面,让以太坊成为一个目前最理想的区块链底层技术。
在电脑上执行的一般的程式码,写出来可能会有循环不断执行(死循环)的情况,搬到区块链上亦然。那么以太坊怎么解决这个问题呢?以太坊开发者想到的办法是让执行的程式码变得有价。EVM里支援的所有的指令(OPCODE)都有明码标价,执行智能合约需要消耗与执行的指令数量相当的以太币。在智能合约的术语中,这些拿来消耗的以太币被称为"gas"(燃料)。部署合约到区块链上时,需要附加一定数量的燃料。当燃料消耗完而程式还没执行完,就会出现"Out of Gas"(燃料耗尽)错误。智能合约透过这样的方式来避免死循环等情况。
智能合约最基本的应用,就是做出新的加密代币!只要遵循一定的规范(ERC20),部署一份智能合约到以太坊区块链上,任何人都可以可以很容易地创造出自己的加密代币。
不用像比特币的山寨币一样需要自行征募矿工。你的加密代币会以"以太坊的一个智能合约"的形式存在于以太坊的区块链中。现有支援以太币的钱包与交易所,也可以快速地接入你的加密代币。只要你发行的加密代币与代币背后所代表的服务具有交易的价值,代币也可能变货币。
此外,在募资上,智能合约也有无与伦比的优势。新创公司ICO可透过以太坊的智能合约,在收到资助者的以太币时,自动发出等值的加密代币。
由于这些加密代币可交易,如果公司的服务有价值,早期投资人在投资的前期,就可以透过交易加密代币来调整持有量。
普通的投资人也第一次有机会直接支持自己感兴趣的创业者,并可能从而获得丰厚(或归零)的回报。
目前以太坊区块链的速度和电脑执行速度无法相比,不适合快速交易,或是需要储存较大资料的情境。近期的plasma提案有望解决快速交易的问题。
因为缺乏即时调控区块大小的手段,在一些很热门的交易时段(如某些热门的ICO开放认购时),整个网络的交易延迟会变地很长。
智能合约一经部署就永远存在,除非拥有者启动智能合约中的自毁(selfdestruct)功能。如何升级合约并保存其中的参数与代币,是一个值得探讨的课题。
以太坊网络节点上并不适合储存较大的档案。目前有Swarm与IPFS等分散式档案储存方式可供选择。