以太幣的系統(tǒng)是使用最廣泛的支持完備應(yīng)用開發(fā)的公有區(qū)塊鏈系統(tǒng)。與比特幣相比,以太幣的系統(tǒng)以太坊屬于區(qū)塊鏈2.0的范疇,是為了解決比特幣網(wǎng)絡(luò)的一些問題而重新設(shè)計的一個區(qū)塊鏈系統(tǒng)。比特幣的設(shè)計只適合加密數(shù)字貨幣場景,不具備圖靈完備性,也缺乏保存實時狀態(tài)的賬戶概念,而且存在 PoW 機(jī)制帶來的效率和資源浪費的問題。比特幣的區(qū)塊鏈網(wǎng)絡(luò)存在著擴(kuò)展性不足的缺陷。隨著比特幣吸引越來越多開發(fā)者和技術(shù)人員的注意,一些用戶嘗試使用比特幣網(wǎng)絡(luò)用于其他數(shù)字貨幣或其他應(yīng)用。但互聯(lián)網(wǎng)發(fā)展,獨立開發(fā)出區(qū)塊鏈應(yīng)用的難度比較大,用戶需要掌握非常多的軟硬件開發(fā)能力和加密算法,這使得區(qū)塊鏈的應(yīng)用對于一些用戶來說并沒有那么容易。
以太幣系統(tǒng)以太坊的出現(xiàn)就是幫助用戶更為容易地利用區(qū)塊鏈技術(shù)進(jìn)行應(yīng)用設(shè)計。按照巴特林的說法,以太坊的目的是創(chuàng)造一個更為一般化的區(qū)塊鏈平臺,這一平臺可以允許用戶很容易創(chuàng)造基于區(qū)塊鏈的應(yīng)用,避免用戶為創(chuàng)建一個新的應(yīng)用而不得不建立一個區(qū)塊鏈。通俗地講,此前的區(qū)塊鏈(如比特幣)只是一個單一的工具或最多是一個多功能的工具組合,而以太坊則是區(qū)塊鏈的智能手機(jī),用戶可以利用智能手機(jī)建立他所需要的任何“應(yīng)用” 。因此巴特林表示,區(qū)塊鏈的應(yīng)用并不僅限于加密貨幣,它有著巨大的潛力,適用于各行各業(yè),能為各企業(yè)和各種規(guī)模的組織帶來顯著好處。通過提供這樣一個高度泛化的平臺,以太坊允許用戶在不需要創(chuàng)建自有區(qū)塊鏈的同時,建立使用廣泛的應(yīng)用程序。以太坊的愿景成為“世界計算機(jī)”:用戶就像使用計算機(jī)一樣簡單快捷建立基于區(qū)塊鏈的應(yīng)用,享受區(qū)塊鏈所帶來的分散化和安全好處。這使得以太坊的應(yīng)用前景廣闊。理論上,以太坊是一個通用的平臺,可以用于各種各樣的應(yīng)用,但到為止大部分的應(yīng)用都與金融有關(guān)。不過,除金融應(yīng)用程序之外,任何需要信任、安全和永久存儲的環(huán)境都可能受到以太坊平臺的巨大影響,例如資產(chǎn)注冊、選舉、政府管理以及物聯(lián)網(wǎng)等。
相較于較大多數(shù)其他加密貨幣或區(qū)塊鏈技術(shù),以太幣的特點包括下列:
Gavin Wood寫的《以太坊黃皮書》中定義了以太虛擬機(jī)的運(yùn)作流程。智能合約可以專門為此開發(fā)的Solidity編程語言寫成,或是Python的一個變體Serpent,或是LLL。以太虛擬機(jī)也可以在Mutan上運(yùn)行。智能合約之后會編譯成字節(jié)碼,然后發(fā)布在以太坊區(qū)塊鍵上。
將所有合約存在區(qū)塊鏈上每個結(jié)點的作法有好有壞。主要的缺點是所有的結(jié)點都同時要運(yùn)算所有的合約,因此速度較慢。開發(fā)人員正研究將數(shù)據(jù)切分(Sharding)的技術(shù)套用至以太坊。2016年9月 Buterin 發(fā)表了改善可擴(kuò)展性的企畫。截至2016年1月,以太坊每秒可以處理25個交易。
存在一種區(qū)塊—叔塊(uncle block),用于歸納那些因為速度較慢而未及時被收入母鏈的較短區(qū)塊鏈。這個區(qū)塊的產(chǎn)生是因為以太幣的區(qū)塊時間是20秒左右,相對于比特幣,更容易出現(xiàn)臨時分叉。而且較短的區(qū)塊時間,也使得區(qū)塊在整個網(wǎng)絡(luò)中更難以充分傳播,尤其是對那些網(wǎng)速慢的礦工,這是一種極大的不公平。為了平衡各方利益,設(shè)計了這樣一個叔塊機(jī)制。叔塊在全部挖掘出來的區(qū)塊中占的比例叫叔塊率。
智能合約賦予賬本可編程的特性,區(qū)塊鏈 2.0 通過虛擬機(jī)的方式運(yùn)行代碼實現(xiàn)智能合約的功能,比如以太幣的以太坊虛擬機(jī)(EVM)。同時,這一層通過在智能合約上添加能夠與用戶交互的前臺界面,形成去中心化的應(yīng)用(DAPP)。當(dāng)然,在某些技術(shù)文檔中認(rèn)為DAPP 應(yīng)該在智能合約層之上單獨為應(yīng)用層,也是有一定道理,只要不影響理解即可。
激勵層主要實現(xiàn)以太幣的發(fā)行和分配機(jī)制,以太幣不是數(shù)字貨幣,而是定位于平臺運(yùn)行的燃料,運(yùn)行智能合約和發(fā)送交易都需要向礦工支付一定的以太幣。以太幣可以通過挖礦獲得,礦工每挖到一個區(qū)塊固定獎勵 5 個以太幣。
共識層主要實現(xiàn)全網(wǎng)所有節(jié)點對交易和數(shù)據(jù)達(dá)成一致,以太坊采用兩種共識機(jī)制,初期采用工作量證明機(jī)制(POW),待網(wǎng)絡(luò)中的以太幣充分流通和分散后,改為采用交易速度更快、無資源消耗的權(quán)益證明機(jī)制(POS),從而有效地避免了純 POS 機(jī)制導(dǎo)致的初期權(quán)益分配不公平的情況。
網(wǎng)絡(luò)層主要實現(xiàn)網(wǎng)絡(luò)節(jié)點的連接和通信,又稱“點對點技術(shù)”,是沒有中心服務(wù)器、依靠用戶群交換信息的互聯(lián)網(wǎng)體系。與有中心服務(wù)器的中央網(wǎng)絡(luò)系統(tǒng)不同,對等網(wǎng)絡(luò)的每個用戶端既是一個節(jié)點,也有服務(wù)器的功能,其具有去中心化與健壯性等特點。
數(shù)據(jù)層最底層的技術(shù),是一切的基礎(chǔ),主要實現(xiàn)了兩個功能,一個是相關(guān)數(shù)據(jù)的存儲,另一個是賬戶和交易的實現(xiàn)與安全。數(shù)據(jù)存儲主要基于 Merkle 樹,通過區(qū)塊的方式和鏈?zhǔn)浇Y(jié)構(gòu)實現(xiàn),大多以 KV 數(shù)據(jù)庫的方式實現(xiàn)持久化,比如以太坊采用 LevelDB。賬號和交易的實現(xiàn)基于數(shù)字簽名、哈希函數(shù)和非對稱加密技術(shù)等多種密碼學(xué)算法和技術(shù),保證了交易在去中心化的情況下能夠安全地進(jìn)行。