以(yi)(yi)太(tai)(tai)幣(bi)的(de)(de)(de)系(xi)統(tong)是(shi)(shi)使用最廣泛的(de)(de)(de)支持(chi)完備應用開發(fa)的(de)(de)(de)公(gong)有區塊(kuai)(kuai)鏈(lian)系(xi)統(tong)。與比(bi)(bi)特(te)(te)幣(bi)相比(bi)(bi),以(yi)(yi)太(tai)(tai)幣(bi)的(de)(de)(de)系(xi)統(tong)以(yi)(yi)太(tai)(tai)坊(fang)屬于區塊(kuai)(kuai)鏈(lian)2.0的(de)(de)(de)范疇(chou),是(shi)(shi)為了解決(jue)比(bi)(bi)特(te)(te)幣(bi)網絡的(de)(de)(de)一(yi)(yi)些問(wen)題(ti)而重新(xin)設計的(de)(de)(de)一(yi)(yi)個區塊(kuai)(kuai)鏈(lian)系(xi)統(tong)。比(bi)(bi)特(te)(te)幣(bi)的(de)(de)(de)設計只適合加密數字(zi)貨幣(bi)場景,不具(ju)備圖靈完備性,也(ye)缺乏保存實(shi)時(shi)狀態的(de)(de)(de)賬戶概(gai)念,而且存在 PoW 機(ji)制(zhi)帶來(lai)(lai)的(de)(de)(de)效率和(he)資源浪費的(de)(de)(de)問(wen)題(ti)。比(bi)(bi)特(te)(te)幣(bi)的(de)(de)(de)區塊(kuai)(kuai)鏈(lian)網絡存在著擴展(zhan)性不足(zu)的(de)(de)(de)缺陷。隨著比(bi)(bi)特(te)(te)幣(bi)吸(xi)引(yin)越(yue)來(lai)(lai)越(yue)多(duo)開發(fa)者和(he)技術(shu)人員的(de)(de)(de)注意,一(yi)(yi)些用戶嘗試使用比(bi)(bi)特(te)(te)幣(bi)網絡用于其他數字(zi)貨幣(bi)或其他應用。但互聯網發(fa)展(zhan),獨(du)立開發(fa)出區塊(kuai)(kuai)鏈(lian)應用的(de)(de)(de)難度比(bi)(bi)較(jiao)大,用戶需要掌握非常(chang)多(duo)的(de)(de)(de)軟(ruan)硬件開發(fa)能力和(he)加密算法,這使得區塊(kuai)(kuai)鏈(lian)的(de)(de)(de)應用對(dui)于一(yi)(yi)些用戶來(lai)(lai)說并沒有那么容易(yi)。
以(yi)(yi)(yi)太(tai)(tai)幣系統以(yi)(yi)(yi)太(tai)(tai)坊(fang)的(de)(de)(de)(de)(de)(de)出現(xian)就是(shi)(shi)幫助用(yong)(yong)(yong)(yong)(yong)戶(hu)更為(wei)容(rong)易(yi)(yi)地利(li)用(yong)(yong)(yong)(yong)(yong)區(qu)(qu)(qu)塊(kuai)鏈(lian)技術進行應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)設計。按照巴(ba)(ba)特林的(de)(de)(de)(de)(de)(de)說法,以(yi)(yi)(yi)太(tai)(tai)坊(fang)的(de)(de)(de)(de)(de)(de)目的(de)(de)(de)(de)(de)(de)是(shi)(shi)創造(zao)一(yi)(yi)個(ge)(ge)更為(wei)一(yi)(yi)般化的(de)(de)(de)(de)(de)(de)區(qu)(qu)(qu)塊(kuai)鏈(lian)平(ping)(ping)臺,這一(yi)(yi)平(ping)(ping)臺可(ke)以(yi)(yi)(yi)允(yun)許(xu)用(yong)(yong)(yong)(yong)(yong)戶(hu)很容(rong)易(yi)(yi)創造(zao)基(ji)于(yu)(yu)區(qu)(qu)(qu)塊(kuai)鏈(lian)的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong),避免用(yong)(yong)(yong)(yong)(yong)戶(hu)為(wei)創建(jian)(jian)(jian)一(yi)(yi)個(ge)(ge)新(xin)的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)而不(bu)(bu)得不(bu)(bu)建(jian)(jian)(jian)立一(yi)(yi)個(ge)(ge)區(qu)(qu)(qu)塊(kuai)鏈(lian)。通(tong)(tong)俗地講,此前的(de)(de)(de)(de)(de)(de)區(qu)(qu)(qu)塊(kuai)鏈(lian)(如比特幣)只是(shi)(shi)一(yi)(yi)個(ge)(ge)單一(yi)(yi)的(de)(de)(de)(de)(de)(de)工(gong)具或最多是(shi)(shi)一(yi)(yi)個(ge)(ge)多功(gong)能(neng)(neng)(neng)的(de)(de)(de)(de)(de)(de)工(gong)具組(zu)(zu)合(he),而以(yi)(yi)(yi)太(tai)(tai)坊(fang)則(ze)是(shi)(shi)區(qu)(qu)(qu)塊(kuai)鏈(lian)的(de)(de)(de)(de)(de)(de)智(zhi)能(neng)(neng)(neng)手機,用(yong)(yong)(yong)(yong)(yong)戶(hu)可(ke)以(yi)(yi)(yi)利(li)用(yong)(yong)(yong)(yong)(yong)智(zhi)能(neng)(neng)(neng)手機建(jian)(jian)(jian)立他所需要的(de)(de)(de)(de)(de)(de)任(ren)何“應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)” 。因此巴(ba)(ba)特林表示,區(qu)(qu)(qu)塊(kuai)鏈(lian)的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)并(bing)不(bu)(bu)僅限于(yu)(yu)加(jia)密貨幣,它有著(zhu)巨大的(de)(de)(de)(de)(de)(de)潛力,適用(yong)(yong)(yong)(yong)(yong)于(yu)(yu)各(ge)行各(ge)業(ye),能(neng)(neng)(neng)為(wei)各(ge)企業(ye)和各(ge)種(zhong)規模的(de)(de)(de)(de)(de)(de)組(zu)(zu)織(zhi)帶來(lai)顯著(zhu)好處(chu)。通(tong)(tong)過(guo)提供這樣一(yi)(yi)個(ge)(ge)高度泛化的(de)(de)(de)(de)(de)(de)平(ping)(ping)臺,以(yi)(yi)(yi)太(tai)(tai)坊(fang)允(yun)許(xu)用(yong)(yong)(yong)(yong)(yong)戶(hu)在不(bu)(bu)需要創建(jian)(jian)(jian)自有區(qu)(qu)(qu)塊(kuai)鏈(lian)的(de)(de)(de)(de)(de)(de)同時,建(jian)(jian)(jian)立使用(yong)(yong)(yong)(yong)(yong)廣泛的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)程序。以(yi)(yi)(yi)太(tai)(tai)坊(fang)的(de)(de)(de)(de)(de)(de)愿景成為(wei)“世(shi)界計算機”:用(yong)(yong)(yong)(yong)(yong)戶(hu)就像(xiang)使用(yong)(yong)(yong)(yong)(yong)計算機一(yi)(yi)樣簡單快捷建(jian)(jian)(jian)立基(ji)于(yu)(yu)區(qu)(qu)(qu)塊(kuai)鏈(lian)的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong),享(xiang)受區(qu)(qu)(qu)塊(kuai)鏈(lian)所帶來(lai)的(de)(de)(de)(de)(de)(de)分散化和安全好處(chu)。這使得以(yi)(yi)(yi)太(tai)(tai)坊(fang)的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)前景廣闊。理論上(shang),以(yi)(yi)(yi)太(tai)(tai)坊(fang)是(shi)(shi)一(yi)(yi)個(ge)(ge)通(tong)(tong)用(yong)(yong)(yong)(yong)(yong)的(de)(de)(de)(de)(de)(de)平(ping)(ping)臺,可(ke)以(yi)(yi)(yi)用(yong)(yong)(yong)(yong)(yong)于(yu)(yu)各(ge)種(zhong)各(ge)樣的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong),但到為(wei)止大部分的(de)(de)(de)(de)(de)(de)應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)都(dou)與金(jin)融有關。不(bu)(bu)過(guo),除(chu)金(jin)融應(ying)(ying)(ying)用(yong)(yong)(yong)(yong)(yong)程序之外,任(ren)何需要信任(ren)、安全和永久存儲的(de)(de)(de)(de)(de)(de)環境(jing)都(dou)可(ke)能(neng)(neng)(neng)受到以(yi)(yi)(yi)太(tai)(tai)坊(fang)平(ping)(ping)臺的(de)(de)(de)(de)(de)(de)巨大影響,例如資產注冊(ce)、選舉、政府管理以(yi)(yi)(yi)及物聯網等。
相較于(yu)較大(da)多數其(qi)他加密(mi)貨幣(bi)或區塊鏈技術,以太(tai)幣(bi)的特點(dian)包括下(xia)列(lie):
Gavin Wood寫(xie)的(de)《以(yi)(yi)(yi)太坊黃皮(pi)書》中(zhong)定義(yi)了以(yi)(yi)(yi)太虛擬機(ji)的(de)運作(zuo)流(liu)程。智能(neng)合(he)(he)約可(ke)以(yi)(yi)(yi)專門為(wei)此開發的(de)Solidity編程語(yu)言寫(xie)成,或是Python的(de)一個(ge)變體Serpent,或是LLL。以(yi)(yi)(yi)太虛擬機(ji)也可(ke)以(yi)(yi)(yi)在(zai)Mutan上(shang)運行。智能(neng)合(he)(he)約之后會編譯成字節碼,然后發布在(zai)以(yi)(yi)(yi)太坊區(qu)塊鍵(jian)上(shang)。
將所(suo)有(you)合約存在區(qu)塊(kuai)鏈上每(mei)個(ge)結(jie)點(dian)的(de)(de)(de)作法(fa)有(you)好有(you)壞。主要的(de)(de)(de)缺點(dian)是所(suo)有(you)的(de)(de)(de)結(jie)點(dian)都同時要運(yun)算所(suo)有(you)的(de)(de)(de)合約,因此速(su)度較慢。開發(fa)人員正研究將數(shu)據切分(Sharding)的(de)(de)(de)技(ji)術(shu)套(tao)用(yong)至(zhi)以(yi)太坊。2016年9月 Buterin 發(fa)表了改善可擴展性的(de)(de)(de)企(qi)畫。截(jie)至(zhi)2016年1月,以(yi)太坊每(mei)秒可以(yi)處理25個(ge)交易。
存在(zai)(zai)(zai)一種區(qu)塊(kuai)(kuai)(kuai)—叔(shu)塊(kuai)(kuai)(kuai)(uncle block),用(yong)于歸(gui)納那些(xie)因為(wei)速度(du)較(jiao)(jiao)(jiao)慢而未及時(shi)(shi)被收入母鏈的(de)較(jiao)(jiao)(jiao)短(duan)區(qu)塊(kuai)(kuai)(kuai)鏈。這個(ge)(ge)區(qu)塊(kuai)(kuai)(kuai)的(de)產生(sheng)是因為(wei)以太幣的(de)區(qu)塊(kuai)(kuai)(kuai)時(shi)(shi)間(jian)是20秒(miao)左右(you),相對于比(bi)特幣,更容易出現(xian)臨時(shi)(shi)分叉。而且較(jiao)(jiao)(jiao)短(duan)的(de)區(qu)塊(kuai)(kuai)(kuai)時(shi)(shi)間(jian),也使(shi)得區(qu)塊(kuai)(kuai)(kuai)在(zai)(zai)(zai)整個(ge)(ge)網絡中更難(nan)以充分傳播(bo),尤其是對那些(xie)網速慢的(de)礦工,這是一種極(ji)大的(de)不(bu)公(gong)平。為(wei)了平衡各(ge)方利(li)益,設計了這樣一個(ge)(ge)叔(shu)塊(kuai)(kuai)(kuai)機制。叔(shu)塊(kuai)(kuai)(kuai)在(zai)(zai)(zai)全部挖(wa)掘出來的(de)區(qu)塊(kuai)(kuai)(kuai)中占的(de)比(bi)例叫叔(shu)塊(kuai)(kuai)(kuai)率。
智(zhi)能(neng)合約(yue)賦(fu)予賬(zhang)本可編程的(de)(de)特性,區塊鏈 2.0 通過虛(xu)擬機的(de)(de)方式運行代碼實現智(zhi)能(neng)合約(yue)的(de)(de)功能(neng),比如(ru)以太幣的(de)(de)以太坊(fang)虛(xu)擬機(EVM)。同時,這(zhe)一層通過在(zai)智(zhi)能(neng)合約(yue)上(shang)添加(jia)能(neng)夠(gou)與用戶交互的(de)(de)前臺(tai)界面,形成去中(zhong)心化(hua)的(de)(de)應用(DAPP)。當然(ran),在(zai)某(mou)些技術文檔中(zhong)認為DAPP 應該在(zai)智(zhi)能(neng)合約(yue)層之(zhi)上(shang)單獨為應用層,也(ye)是(shi)有(you)一定(ding)道理,只要不影響理解(jie)即(ji)可。
激勵(li)層主要實現(xian)以太(tai)(tai)幣(bi)(bi)(bi)的發行(xing)和(he)分配機制,以太(tai)(tai)幣(bi)(bi)(bi)不(bu)是(shi)數字貨幣(bi)(bi)(bi),而是(shi)定位于平臺運行(xing)的燃料,運行(xing)智能合約和(he)發送(song)交易(yi)都(dou)需要向礦(kuang)工支付一定的以太(tai)(tai)幣(bi)(bi)(bi)。以太(tai)(tai)幣(bi)(bi)(bi)可以通過挖礦(kuang)獲得,礦(kuang)工每挖到一個區塊固定獎(jiang)勵(li) 5 個以太(tai)(tai)幣(bi)(bi)(bi)。
共識(shi)層主(zhu)要實現全(quan)網所有節(jie)點對交易和數據達成一致,以(yi)(yi)太(tai)坊采用(yong)兩(liang)種共識(shi)機制(zhi),初(chu)期(qi)采用(yong)工(gong)作量證(zheng)明機制(zhi)(POW),待網絡中的(de)(de)以(yi)(yi)太(tai)幣充分流通和分散后(hou),改為(wei)采用(yong)交易速度更快、無資源(yuan)消耗的(de)(de)權(quan)益證(zheng)明機制(zhi)(POS),從(cong)而(er)有效地避免(mian)了純 POS 機制(zhi)導(dao)致的(de)(de)初(chu)期(qi)權(quan)益分配(pei)不公平(ping)的(de)(de)情況。
網(wang)絡(luo)層主要實現(xian)網(wang)絡(luo)節點的(de)(de)連接和通(tong)信,又稱(cheng)“點對點技(ji)術(shu)”,是沒有中心服務(wu)(wu)器、依靠用戶群(qun)交(jiao)換信息(xi)的(de)(de)互聯網(wang)體(ti)系。與有中心服務(wu)(wu)器的(de)(de)中央網(wang)絡(luo)系統不同(tong),對等(deng)網(wang)絡(luo)的(de)(de)每個用戶端既是一(yi)個節點,也有服務(wu)(wu)器的(de)(de)功(gong)能,其(qi)具有去中心化與健壯性等(deng)特點。
數據(ju)(ju)(ju)層最底層的(de)(de)技(ji)(ji)術(shu),是(shi)(shi)(shi)一(yi)切的(de)(de)基礎,主要(yao)實(shi)現(xian)了兩個(ge)功(gong)能(neng),一(yi)個(ge)是(shi)(shi)(shi)相(xiang)關(guan)數據(ju)(ju)(ju)的(de)(de)存(cun)儲,另(ling)一(yi)個(ge)是(shi)(shi)(shi)賬(zhang)戶(hu)和(he)(he)(he)交(jiao)易(yi)的(de)(de)實(shi)現(xian)與安全。數據(ju)(ju)(ju)存(cun)儲主要(yao)基于 Merkle 樹,通過區塊的(de)(de)方(fang)式和(he)(he)(he)鏈(lian)式結構(gou)實(shi)現(xian),大多(duo)以(yi)(yi) KV 數據(ju)(ju)(ju)庫的(de)(de)方(fang)式實(shi)現(xian)持久(jiu)化(hua),比如以(yi)(yi)太坊采用 LevelDB。賬(zhang)號和(he)(he)(he)交(jiao)易(yi)的(de)(de)實(shi)現(xian)基于數字簽名、哈希函數和(he)(he)(he)非對(dui)稱加密(mi)技(ji)(ji)術(shu)等多(duo)種密(mi)碼(ma)學算法和(he)(he)(he)技(ji)(ji)術(shu),保證(zheng)了交(jiao)易(yi)在去中心化(hua)的(de)(de)情況下能(neng)夠安全地(di)進(jin)行。