轉(zhuǎn)自金色財(cái)經(jīng)伏穆,原文《BM談EOS》
第三段?
問16:Vitalic Buterin正牽頭對以太坊動(dòng)大手術(shù)搅方,你怎么看待這場改進(jìn)流译?目前他們計(jì)劃用Casper解決現(xiàn)存問題妓肢,你是否認(rèn)為這會有效?
BM:Casper能影響的層面在于共識碘橘,對于執(zhí)行層面并沒有幫助望众。
以太坊注定要經(jīng)歷一個(gè)艱苦漫長的升級散劫,因?yàn)槭中g(shù)涉及很多底層技術(shù)架構(gòu)界斜,包括計(jì)算資源管理和核心要素間的交互放钦。
我認(rèn)為把以太坊轉(zhuǎn)向全新架構(gòu)的難度不亞于把Bitshare變成Steemit岩榆,Bitshare社區(qū)不會支持開發(fā)者错负,以太坊礦工也不會支持整個(gè)社區(qū)。
所以這幾乎不可能做成勇边,因?yàn)?b>以太坊的任何改動(dòng)本質(zhì)上涂著利益分配的底色犹撒。
如果這一系列事情不斷發(fā)酵,人們終將認(rèn)識到:任何微小改動(dòng)(比如比特幣區(qū)塊大辛0)都極其艱苦识颊,就更別提修改共識、虛擬機(jī)或整個(gè)安全理念了奕坟。
問17:有人認(rèn)為分片(Sharding)能將一種狀態(tài)切分為多種子狀態(tài)祥款,而這些子狀態(tài)相互間無需知曉彼此情況,這樣能增強(qiáng)以太坊的性能月杉。你認(rèn)為這種方式是否太過復(fù)雜刃跛,你有什么建議?
譯者:分片是把一個(gè)數(shù)據(jù)文件切分成的多個(gè)部分放到不同的數(shù)據(jù)庫上苛萎,從而提升單一數(shù)據(jù)文件的性能桨昙,相當(dāng)于你把一周五天的課程表剪成五條,每天揣一條上學(xué)腌歉。
BM:分片在性能方面類似這樣的場景:
有人把一捆286處理器接到一個(gè)14K的調(diào)制解調(diào)器上蛙酪,然后指著這說:“你看,這堆東西可牛逼了翘盖,性能可以媲美Intel的20核處理器桂塞,因?yàn)槲覀儠龇制馍驯!?/p>
分片容易阁危,但分片后的通信卻很難炊甲。
即使理論上分片能提升交易處理性能,但卻面臨著一對內(nèi)生矛盾:量和質(zhì)欲芹。
也就是說卿啡,也許分片能增加某類交易的吞吐量,但是不可能增加交易的類別菱父,而恰恰是交易類別的多樣性(即:質(zhì))才是Dapp開發(fā)者真正關(guān)心的東西颈娜。
反之,如果分片支持了交易類型的多樣性浙宜,那交易吞吐速度一定上不去官辽,這就是一對不可調(diào)和的矛盾。
另外粟瞬,分片之后同仆,片與片之間的通信會大大降低處理速度。所以裙品,我不認(rèn)為分片(Sharding)是一個(gè)好辦法俗批。
問18:以你做Bitshare和Steemit的經(jīng)驗(yàn),你看出以太坊的上述問題市怎,這些問題是你做EOS的理由嗎岁忘,或者還有其他什么理由?
BM:我起步做EOS時(shí)的確有很多經(jīng)驗(yàn)区匠,我也知道去中心化系統(tǒng)開發(fā)者真正的需求干像。我學(xué)了很多模式和設(shè)計(jì)思路,不斷重復(fù)打磨驰弄。最終麻汰,我并不只想做Bitshare或者Steemit那樣功能單一的應(yīng)用,我要做的是一個(gè)通用系統(tǒng)戚篙,這就是我做EOS的緣由五鲫。
EOS是一個(gè)動(dòng)態(tài)通用型區(qū)塊鏈平臺,能建類似于Bitshare和Steemit的應(yīng)用已球。它匯集了我們之前所有的開發(fā)經(jīng)驗(yàn)臣镣,EOS的性能水平更高,因?yàn)?0%的功能都通過本地代碼實(shí)現(xiàn)智亮。
此外忆某,EOS還引入Web Assembly(由谷歌、微軟阔蛉、蘋果等幾家大公司合作發(fā)起的項(xiàng)目弃舒,這個(gè)項(xiàng)目是面向Web的通用二進(jìn)制文本格式,已在改變Web生態(tài)),這能讓開發(fā)者使用C++語言聋呢,而C++有著極其豐富的類庫苗踪,這樣你能實(shí)現(xiàn)你想到的任何功能,而這些都能被用到智能合約上來削锰。
可如果用自有語言Solidity寫智能合約通铲,你就得重頭開始自己寫類庫,重新發(fā)明一遍輪子器贩。坦率地說颅夺,我們把EOS的代幣發(fā)布合約建在以太坊上,后來發(fā)現(xiàn)程序竟然不能超過300次迭代蛹稍,因?yàn)镚as會被消耗完吧黄。
譯者插嘴:以太坊本為執(zhí)行智能合約而生,為了抵御黑客攻擊或被無限循環(huán)bug耗光全網(wǎng)資源唆姐,于是設(shè)計(jì)了gas的概念拗慨,即:執(zhí)行任何+、-奉芦、×赵抢、÷都要消耗幾兩gas,而gas是要論斤買的仗阅,于是表面上消滅了死循環(huán)的可能昌讲。
但沒想到按下葫蘆起了瓢,雨后春筍地冒出如山的問題减噪,這一連串問題就像一個(gè)個(gè)青銅枷鎖一樣,套在以太坊的脖子上车吹,BM所說的“無法多次迭代”問題只是其中之一筹裕。
BM總結(jié):所以這些都注定以太坊上不可能建通用的大型應(yīng)用,比如訂單系統(tǒng)窄驹,因?yàn)樗恼Z言和內(nèi)存模型都難以支持簡單操作朝卒,比如索引或排序,即使能做也無法高效地做乐埠。
問19:EOS最為人矚目之處在于共識算法DPOS抗斤,談?wù)勀惆l(fā)明DPOS的經(jīng)過吧。
BM:我第一版做的DPOS鎖定了101個(gè)生產(chǎn)者丈咐,它們都經(jīng)投票選舉產(chǎn)生瑞眼,Bitshare 2.0(以及石墨烯)把101這個(gè)數(shù)字調(diào)整為可由用戶自定義,以便當(dāng)人們投票時(shí)棵逊,在通過票數(shù)上可以自由調(diào)節(jié)伤疙。
這讓我們觀察到一個(gè)社區(qū)真正能被票選的節(jié)點(diǎn)數(shù),我們發(fā)現(xiàn),當(dāng)一個(gè)社區(qū)處于可控狀態(tài)時(shí)徒像,可票選節(jié)點(diǎn)數(shù)通常在15個(gè)左右黍特。所以在做Steemit時(shí),我決定把這個(gè)數(shù)字設(shè)定為“略高于15”的21锯蛀,這樣就能更加“去中心化”地運(yùn)行灭衷。
在Bitshare最初的版本里有個(gè)問題:101個(gè)不同的生產(chǎn)者其實(shí)可能是同一個(gè)人,但社區(qū)無法審查這點(diǎn)旁涤。
所以今布,盡管理論上有101個(gè)節(jié)點(diǎn),但實(shí)際參與產(chǎn)塊過程的最多也就其中20來個(gè)節(jié)點(diǎn)拭抬,而這20個(gè)節(jié)點(diǎn)的背后也就4-5個(gè)實(shí)際控制人部默。所以在做EOS的時(shí)候,我們敲定的節(jié)點(diǎn)數(shù)是21(投票節(jié)點(diǎn)必須是奇數(shù)造虎,否則會出現(xiàn)長期分叉)傅蹂。
這21個(gè)節(jié)點(diǎn)的處塊順序選由系統(tǒng)隨機(jī)設(shè)定,并且隨時(shí)會變算凿,這樣既能有效率地升級份蝴,同時(shí)也能避免硬分叉。
Ivan總結(jié):我想現(xiàn)在大家都有點(diǎn)明白以太坊是如何工作的了:智能合約代碼需要在每個(gè)節(jié)點(diǎn)上執(zhí)行氓轰,于是這自然就不是一個(gè)可擴(kuò)展的方案婚夫,更不用提當(dāng)網(wǎng)絡(luò)變大、節(jié)點(diǎn)變多的情況了署鸡。那時(shí)每個(gè)節(jié)點(diǎn)需要和更多節(jié)點(diǎn)通信案糙,如果有些代碼只能在這臺電腦上跑、卻無法在其他節(jié)點(diǎn)上運(yùn)行跑靴庆,那就慘了时捌。
問20:EOS上執(zhí)行代碼是不需要過所有節(jié)點(diǎn)的,因?yàn)槿缒闼f炉抒,EOS只有21個(gè)節(jié)點(diǎn)奢讨,所以請解釋一下,一個(gè)本來跑在以太坊上的Dapp應(yīng)用焰薄,如何在EOS上執(zhí)行拿诸?
BM:這里要糾正一下你的誤解:
21個(gè)指的是21個(gè)區(qū)塊生產(chǎn)者,但與此同時(shí)塞茅,全網(wǎng)有無數(shù)個(gè)驗(yàn)證者亩码,所有驗(yàn)證者都運(yùn)行全節(jié)點(diǎn)數(shù)據(jù)(run everything)。
問21:如果每個(gè)人都運(yùn)行全節(jié)點(diǎn)數(shù)據(jù)凡桥,那和以太坊相比蟀伸,EOS的延展性如何?
BM:What we're trying to do is scale the decision-making over who's running everything, 我們做的是擴(kuò)大有權(quán)決策者的規(guī)模,而不是運(yùn)行全節(jié)點(diǎn)的人才有權(quán)拍板啊掏。
以POW為例蠢络,它的利益分配只會傾向于那些有錢、有算力的人迟蜜,而錢和算力很容易獲取刹孔,比如政府補(bǔ)貼你一把就有了。但DPOS不同娜睛,每個(gè)持有權(quán)益者都有權(quán)投票髓霞,這使得全網(wǎng)很難被控制。
DPOS讓每個(gè)人對正在發(fā)生的事情都有發(fā)言權(quán)畦戒,因此控制力將更分散方库,從而使系統(tǒng)更具可擴(kuò)展性。同時(shí)障斋,票選出來的21個(gè)區(qū)塊生產(chǎn)者將更專業(yè)纵潦,他們可以位于數(shù)據(jù)中心,這些數(shù)據(jù)中心擁有更高性能的硬件垃环,甚至組成服務(wù)器集群邀层。
我相信大多數(shù)成功的Dapp應(yīng)用最終都將變成網(wǎng)站,就像Steemit遂庄。
所以說寥院,正常情況是由一組服務(wù)器去支持一群輕節(jié)點(diǎn),這樣的商業(yè)模式才能讓服務(wù)提供商有更高性能的硬件涛目。
礦工投了幾十億美元在硬件上秸谢,而硬件除了哈希運(yùn)算之外什么都不做,在這點(diǎn)上EOS的DPOS與比特幣的POW一樣——除了驗(yàn)證區(qū)塊和輸出結(jié)果泌绣。
所以钮追,EOS上的生產(chǎn)者即使掌握了算力資源也無法作惡,作惡也沒有任何收益阿迈,所以它并不會像POW的系統(tǒng)那樣最終走向中心化。