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