基于EOS基礎(chǔ)公鏈和它的應(yīng)用開(kāi)發(fā)介紹
現(xiàn)在從加密數(shù)字貨幣的市值看,除了比特幣、以太坊等之外,市值最高的項(xiàng)目是企業(yè)操作系統(tǒng)(Enterprise Operating System,EOS)。從關(guān)注度看,EOS 也是 2017~2018 年的明星項(xiàng)目,并常被認(rèn)為是區(qū)塊鏈 3.0 的主要競(jìng)爭(zhēng)者。
EOS 是由 Block.one 公司開(kāi)發(fā)的一個(gè)新的區(qū)塊鏈軟件系統(tǒng),它的目標(biāo)是將一切去中心化(decentralize everything)。從 2017 年年中開(kāi)始,經(jīng)過(guò)一年的代幣眾籌后,它于 2018 年 6 月 15 通過(guò)由數(shù)十個(gè)區(qū)塊生產(chǎn)者(block producer,BP,又稱(chēng)超級(jí)節(jié)點(diǎn))組成的社區(qū)上線(xiàn)了主網(wǎng),EOS 主網(wǎng)這條主要的區(qū)塊鏈開(kāi)始正式運(yùn)轉(zhuǎn)。
EOS VS 以太坊
了解 EOS 的方式之一是拿它與以太坊、比特幣進(jìn)行比較。
從開(kāi)發(fā)目標(biāo)上來(lái)講,比特幣、以太坊、EOS 是漸進(jìn)的,分別是區(qū)塊鏈 1.0、區(qū)塊鏈 2.0、區(qū)塊鏈 3.0,重心分別是貨幣、合約、應(yīng)用。以太坊在實(shí)際應(yīng)用中是以通證為主的。以太坊、EOS 均是借鑒與延續(xù)之前的思路重新開(kāi)發(fā),以太坊是比特幣的改進(jìn),EOS 是以太坊的改進(jìn)。
這里先用比喻的方式來(lái)對(duì)比比特幣、以太坊、EOS,見(jiàn)下圖。
比特幣的設(shè)計(jì)思路類(lèi)似于黃金。在數(shù)字世界中,按工作量證明共識(shí)機(jī)制,挖礦節(jié)點(diǎn)進(jìn)行加密計(jì)算,獲得比特幣形式的挖礦獎(jiǎng)勵(lì)。挖礦節(jié)點(diǎn)也可以獲得交易費(fèi)收益,不過(guò),雖然在比特幣網(wǎng)絡(luò)中的資產(chǎn)價(jià)值高,但交易并不頻繁,交易費(fèi)收益目前在礦工收益中的占比并不高。
以太坊的設(shè)計(jì)思路類(lèi)似于高速公路。在這條收費(fèi)高速公路上,車(chē)輛行駛需要付費(fèi)。它早期募集資金,建設(shè)“高速公路”,早期投資者享有“高速公路”的主要權(quán)益。之后,一起建設(shè)與維護(hù)“高速公路”的挖礦節(jié)點(diǎn)也可以獲得挖礦獎(jiǎng)勵(lì)與交易費(fèi)收益。在以太坊網(wǎng)絡(luò)中,由于各類(lèi)項(xiàng)目已經(jīng)基于它生成了大量的通證,以太坊網(wǎng)絡(luò)的交易量相對(duì)較多,挖礦節(jié)點(diǎn)獲得的交易費(fèi)收益占比高于比特幣。
EOS 的設(shè)計(jì)思路則類(lèi)似于房地產(chǎn)開(kāi)發(fā)。Block.one 公司在將土地售賣(mài)出去之后,邏輯上它用獲得的資金進(jìn)行基礎(chǔ)的開(kāi)發(fā),此后每年再以類(lèi)似填海造田的方式增加 5% 的土地出來(lái)。
EOS 的繁榮主要取決于,已經(jīng)競(jìng)購(gòu)得到大量土地的開(kāi)發(fā)商是不是開(kāi)發(fā)和經(jīng)營(yíng)好自己的地塊?EOS 網(wǎng)絡(luò)要依靠超級(jí)節(jié)點(diǎn)(即區(qū)塊生產(chǎn)者)來(lái)各自建設(shè)、共同運(yùn)營(yíng),按現(xiàn)在的設(shè)計(jì),這些節(jié)點(diǎn)共同獲得每年 1% 新增發(fā)的 EOS 作為回報(bào)。
與以太坊不同,EOS 網(wǎng)絡(luò)的設(shè)計(jì)是不再收取網(wǎng)絡(luò)交易費(fèi),持有 EOS 通證則擁有對(duì)應(yīng)的網(wǎng)絡(luò)使用權(quán)利。但是,如果一個(gè)應(yīng)用的開(kāi)發(fā)者不持有足夠的 EOS 通證,可能就要從市場(chǎng)中購(gòu)買(mǎi)和付費(fèi)租用,以獲得使用主網(wǎng)的權(quán)利。類(lèi)比來(lái)看,這種設(shè)計(jì)類(lèi)似于購(gòu)買(mǎi)或租用辦公樓。
當(dāng)然,以上用比喻的方式討論只是為了便于理解。EOS 實(shí)際的情況是:Block.one 公司募集資金開(kāi)發(fā)一個(gè)名為 EOSIO 的開(kāi)源軟件。EOS 社區(qū)用這個(gè)軟件來(lái)運(yùn)行 EOS 主網(wǎng),且從邏輯上來(lái)講,這個(gè)主網(wǎng)并非由 Block.one 公司運(yùn)行,而是由社區(qū)運(yùn)行的。另外,其他人也用 EOSIO 這個(gè)開(kāi)源軟件建立替代網(wǎng)(altnet)。
替代網(wǎng)(altnet)是一個(gè)模仿替代幣(altcoin)而創(chuàng)造出來(lái)的新詞。在社區(qū)運(yùn)行的 EOS 主網(wǎng)(mainnet)之外,EOS 鼓勵(lì)其他人用 EOSIO 開(kāi)源軟件架設(shè)新的區(qū)塊鏈網(wǎng)絡(luò),這些區(qū)塊鏈網(wǎng)絡(luò)是類(lèi)似于替代幣的替代網(wǎng)。比特幣的替代幣是與比特幣的價(jià)值無(wú)關(guān)的,類(lèi)似地,替代網(wǎng)也與 EOS 主網(wǎng)無(wú)關(guān)。
EOS 是對(duì)以太坊的改進(jìn),各個(gè)用 EOSIO 開(kāi)源軟件運(yùn)行起來(lái)的區(qū)塊鏈網(wǎng)絡(luò),可以做幾乎所有以太坊能做的事,如編寫(xiě)智能合約、發(fā)行通證。
為什么 EOS 有超級(jí)節(jié)點(diǎn)競(jìng)選
EOS 所采用的共識(shí)機(jī)制是 DPOS(委托權(quán)益證明),即一些節(jié)點(diǎn)在獲得足夠多的投票支持后,成為見(jiàn)證人(witness)節(jié)點(diǎn)或 EOS 中所說(shuō)的區(qū)塊生產(chǎn)者(BP,也稱(chēng)超級(jí)節(jié)點(diǎn)),負(fù)責(zé)區(qū)塊鏈的區(qū)塊生成。
對(duì)于比特幣系統(tǒng),任何人都可以接入網(wǎng)絡(luò),以算力競(jìng)爭(zhēng)記賬權(quán)利,生成區(qū)塊。而對(duì)于 EOS,只有超級(jí)節(jié)點(diǎn)才有資格生產(chǎn)區(qū)塊。這是因?yàn)閮烧咚捎玫墓沧R(shí)機(jī)制不同:比特幣和以太坊采用的是工作量證明共識(shí)機(jī)制,而 EOS 采用的是 DPOS(委托權(quán)益證明)共識(shí)機(jī)制。
圍繞 POW 與 DPOS 的比較,討論主要集中在能源消耗、效率、安全等方面。但我們也可以從去中心網(wǎng)絡(luò)形成的角度來(lái)看,為什么 DPOS 是一種可行的選擇。
基于區(qū)塊鏈的思路開(kāi)發(fā)的軟件系統(tǒng)有以下三個(gè)關(guān)鍵要求:
· 一是性能。它的去中心網(wǎng)絡(luò)的整體性能能否支撐大量應(yīng)用?
· 二是網(wǎng)絡(luò)。它的共識(shí)機(jī)制、經(jīng)濟(jì)激勵(lì)和社區(qū)運(yùn)營(yíng)能否吸引足夠多的節(jié)點(diǎn)加入,形成一個(gè)安全、可靠的去中心網(wǎng)絡(luò)?
· 三是功能。無(wú)論目標(biāo)是通用類(lèi)、功能類(lèi)還是行業(yè)類(lèi),它是否提供了應(yīng)用開(kāi)發(fā)所需要的必備功能?
一個(gè)基礎(chǔ)公鏈的成敗關(guān)鍵正是以上三點(diǎn):性能、功能與網(wǎng)絡(luò)(見(jiàn)下圖)。EOS 已經(jīng)在性能和功能上做了很多努力,而 DPOS 共識(shí)機(jī)制與超級(jí)節(jié)點(diǎn)競(jìng)選是 EOS 在“網(wǎng)絡(luò)”這個(gè)角上所做的努力。
對(duì)比特幣和以太坊網(wǎng)絡(luò)來(lái)說(shuō),在較長(zhǎng)的周期內(nèi),它們以挖礦經(jīng)濟(jì)激勵(lì)的方式,逐漸地吸引了足夠多的節(jié)點(diǎn)加入。對(duì)于一些基礎(chǔ)公鏈區(qū)塊鏈項(xiàng)目,由于各種原因,它們的主要節(jié)點(diǎn)是由基金會(huì)或關(guān)聯(lián)方運(yùn)行的。其中較為典型的是小蟻(NEO),它擁有較大的交易吞吐量(TPS),但官方節(jié)點(diǎn)只有不到 10 個(gè)。
在 2017 年 12 月的報(bào)告中,NEO 理事會(huì)提到了其網(wǎng)絡(luò)的去中心化計(jì)劃,并解釋道:“我們希望至少有 3 個(gè)節(jié)點(diǎn)由外部的實(shí)體運(yùn)行……去中心化的初期階段:2個(gè)節(jié)點(diǎn)將由 City of Zion 運(yùn)行,1 個(gè)節(jié)點(diǎn)將由社區(qū)運(yùn)行,并將由社區(qū)資助(獨(dú)立于基金會(huì)),2 個(gè)節(jié)點(diǎn)將由以盈利為目的的區(qū)塊鏈公司運(yùn)行,2 個(gè)節(jié)點(diǎn)將由NEO理事會(huì)運(yùn)行?!?/p>
NEO 的共識(shí)機(jī)制是 DBFT,全稱(chēng)為 Delegated ByzanTIne Fault Tolerant,是一種通過(guò)代理投票來(lái)實(shí)現(xiàn)大規(guī)模節(jié)點(diǎn)參與共識(shí)的拜占庭容錯(cuò)型共識(shí)機(jī)制。
EOS 則用超級(jí)節(jié)點(diǎn)競(jìng)選的方式來(lái)刺激形成一個(gè)活躍的去中心網(wǎng)絡(luò),并且,超級(jí)節(jié)點(diǎn)競(jìng)選是與其共識(shí)機(jī)制 DPOS(委托權(quán)益證明)高度匹配的。按現(xiàn)在的設(shè)計(jì),獲得投票的 21 個(gè)活躍生產(chǎn)者和 179 個(gè)候補(bǔ)生產(chǎn)者一起生產(chǎn) EOS 這條區(qū)塊鏈的區(qū)塊,即運(yùn)行這個(gè)區(qū)塊鏈網(wǎng)絡(luò)。這些區(qū)塊生產(chǎn)者是動(dòng)態(tài)的,時(shí)刻根據(jù)投票動(dòng)態(tài)調(diào)整。
EOS 的區(qū)塊鏈生產(chǎn)者的收益分配機(jī)制是,區(qū)塊生產(chǎn)者一共可獲得每年新增出來(lái)的 1% 的 EOS 通證作為回報(bào),其中 0.25% 按每個(gè)區(qū)塊來(lái)進(jìn)行獎(jiǎng)勵(lì),0.75% 按所獲投票來(lái)進(jìn)行分配??蓞⒁?jiàn) 2018 年 5 月 12 日項(xiàng)目發(fā)布的信息。
從 2018 年年初到 6 月 15 日 EOS 主網(wǎng)上線(xiàn),圍繞超級(jí)節(jié)點(diǎn)(BP)的競(jìng)爭(zhēng)已經(jīng)顯示了,這個(gè)機(jī)制相對(duì)成功地調(diào)動(dòng)了眾多參與者競(jìng)爭(zhēng),促成了 EOS 去中心網(wǎng)絡(luò)的形成。這是一條務(wù)實(shí)、有效的路徑。
從另一個(gè)相關(guān)的機(jī)制設(shè)計(jì)上,我們也可以看到 EOS 團(tuán)隊(duì)的精心設(shè)計(jì)。與其他代幣發(fā)行的項(xiàng)目不同,EOS 通證的發(fā)行持續(xù)了一年之久,這一方面吸引關(guān)注,另一方面或許更重要的是,這種做法使得 EOS 通證相對(duì)分散地存在于眾多持有者手中,在一定程度上保障了它所使用的委托權(quán)益證明共識(shí)機(jī)制的有效性。
EOS 的體系架構(gòu):與比特幣、以太坊的對(duì)比
在討論以太坊時(shí),我們對(duì)比了比特幣和以太坊的架構(gòu)差異,現(xiàn)在,EOS 被認(rèn)為是區(qū)塊鏈 3.0 的有力競(jìng)爭(zhēng)者,我們?cè)賮?lái)看下這三者體系架構(gòu)的差異。其中,EOS 的體系架構(gòu)參考了唐煜的文章“從 EOS 系統(tǒng)架構(gòu)看 BM 的野心”,如下圖所示。
在最基礎(chǔ)的層次——數(shù)據(jù)層和網(wǎng)絡(luò)層上,EOS 和比特幣、以太坊并沒(méi)有多大的區(qū)別。
EOS 的共識(shí)機(jī)制采用了與之前較為不同的 DPOS(委托權(quán)益證明)共識(shí)機(jī)制。由于采用 DPOS 共識(shí)機(jī)制,EOS 網(wǎng)絡(luò)的激勵(lì)層就可以看成不再單獨(dú)存在(圖中也未表示出來(lái))。EOS 網(wǎng)絡(luò)每年新增發(fā) 5% 的 EOS 幣,其中 1% 按一定的規(guī)則分配給區(qū)塊生產(chǎn)者,另外 4% 進(jìn)入社區(qū)的提案系統(tǒng)(worker proposal system)資金池待分配。
EOS 的智能合約和以太坊略有差異,但基本上采取了相似的設(shè)計(jì)。EOS 的應(yīng)用也與以太坊相似。因此,對(duì)于合約層和應(yīng)用層,兩者是相似的。
EOS 的體系設(shè)計(jì)的創(chuàng)新在于工具層和生態(tài)層。
為了讓 EOS 適用于應(yīng)用開(kāi)發(fā),EOS 團(tuán)隊(duì)為它設(shè)計(jì)了賬戶(hù)、持續(xù)化數(shù)據(jù)庫(kù)(MulTI-Index DB)等工具與接口。因此,這里延續(xù)唐煜的分類(lèi),認(rèn)為在合約層和應(yīng)用層之間存在一個(gè)工具層,這使得在 EOS 區(qū)塊鏈上開(kāi)發(fā)應(yīng)用更為便利。
EOS 的另一個(gè)特殊設(shè)計(jì)在于,它將自己的 EOS 主網(wǎng)和 EOSIO 軟件分開(kāi),鼓勵(lì)開(kāi)發(fā)者采用 EOSIO 軟件建立行業(yè)專(zhuān)用、領(lǐng)域?qū)S玫膮^(qū)塊鏈網(wǎng)絡(luò)(應(yīng)采用新的網(wǎng)絡(luò)名),并建立自己的一系列應(yīng)用。在體系架構(gòu)的最上層可能出現(xiàn)一個(gè)生態(tài)層,這一層是采用 EOSIO 軟件的區(qū)塊鏈,比如專(zhuān)為游戲、物流、金融、社交、能源、醫(yī)療開(kāi)發(fā)的公鏈。