為什么在以太坊上構(gòu)建項目注定會失敗?!區(qū)塊鏈
CameronWall認為,幾乎所有由以太坊區(qū)塊鏈支持的項目都會失敗,原因如下。
很多人問我,為什么我們在 Stellar 協(xié)議上構(gòu)建我們的 Token(代幣)項目,而我的回答很簡單。如果,我們在 ERC-20 標準(以太坊)上構(gòu)建我們的項目,那么它就會失敗。事實上,我認為,幾乎所有由以太坊區(qū)塊鏈支持的項目都會失敗,原因如下。
2017 年 6 月,我和聯(lián)合創(chuàng)始人 Will 在討論用 Blockchain 還是 DLT(Distributed Ledger Technology,簡稱 DLT,分布式賬本技術(shù)),來解決在零售品牌空間的忠誠度這個大問題。答案是顯而易見的,我們可以擴展我們現(xiàn)有的 online-to-offline(簡稱 O2O,線上對線下)平臺以獲取忠誠度,并利用分布式賬本技術(shù)完成了很多工作。
我們接下來的任務(wù)是評估現(xiàn)有的區(qū)塊鏈,看看哪個是我們可以用來構(gòu)建項目或解決方案的。顯而易見的選擇是以太坊,因為當時很多項目在廣泛地使用它,圍繞著它有很多炒作,因為他們有支持智能合約的 ERC-20 標準。最終,我們決定采用 Stellar 協(xié)議,并且我們?yōu)榇烁械礁吲d,下面是整個過程的總結(jié)以及我們?nèi)绾芜_到今天的成就。
當時,以太坊對于 Blockchain 世界來說仍然是新鮮事物,它基本上是一個分布式編程平臺(用于自治組織和無主應(yīng)用軟件的腳本軟件)。Vitalik Buterin(以太坊的聯(lián)合創(chuàng)始人)他自己也說:
“以太坊是個模塊化、具有狀態(tài)、圖靈完備的合約腳本編寫系統(tǒng)……我們的目標是為去中心化的應(yīng)用程序提供平臺。”
現(xiàn)在,如果您打算構(gòu)建一個真正的去中心化項目,其不具有中央決策制定功能,那么以太坊是個很好的選擇。但是,大多數(shù)區(qū)塊鏈公司不需要智能合約來執(zhí)行他們的核心業(yè)務(wù)邏輯或希望規(guī)避法律或管轄權(quán)問題。他們只想發(fā)行數(shù)字資產(chǎn)和處理交易。這正是以太坊讓您失望的地方。
如果您在構(gòu)建一個項目,要發(fā)行代幣同時需要快速又低成本地進行交易,那么,以太坊總是會失敗的。我們的項目涉及發(fā)行代幣,這些代幣在交易近乎于實時發(fā)生的零售環(huán)境中使用,這是個問題。
通過所有從用戶體驗開始的技術(shù)項目,并從那里開始工作,如果使用以太坊區(qū)塊鏈,那么從一開始,我們就會有大麻煩。為了確認這個問題,我們觀察了今年(2018 年)4 月到 5 月間進行的測試。所有的結(jié)果和方法都可以在 GitHub 上找到。
第一個問題:您最熱心的用戶將會有最糟糕的體驗。
以太坊按每個賬戶排隊交易,而礦工不會按等待時間對交易進行優(yōu)先排序。事實上,鑒于交易擁有相等的 gas 價格,礦工隨機分配它們。因此,一個活躍賬戶構(gòu)建了一個交易隊列,而以太坊沒有解決它的機制。對高容量的賬戶,結(jié)果就是不斷增加的交易滯后。
以太坊用兩個數(shù)字處理交易,一個是交易隨機數(shù)(我們稱之為“nonce”)和一個賬戶隨機數(shù),為了清楚起見,我們有時稱之為“計數(shù)(count)”。交易隨機數(shù)按順序排列賬戶交易;賬戶隨機數(shù)在它們中的任意一個被挖出時進行計數(shù)。當提交一個帶著其 nonce 的新交易時,以太坊把這個 nonce 與當前的計數(shù)值進行比較,以決定該做什么。如果該交易的 nonce 的值比計數(shù)值低,則該交易被忽略。如果 nonce 值更高些,那么交易延遲。只有 nonce 值匹配計數(shù)值時,該交易才被移入?yún)^(qū)塊中。下圖是其工作原理的簡化示意圖:
這實際上與您在速食店或像 DMW 這樣的政府辦公室看到的“取號”系統(tǒng)類似,同時,這也是防止重放攻擊的相當普遍的做法。
很多其他的區(qū)塊鏈也在做類似的事。但是,以太坊的交易到區(qū)塊(transaction-to-block)算法(或者,真的,沒有這個)給在您的 DMV 窗口中工作的人們出了一條妙計,也即,這些礦工沒有必要對隊列中的下一個數(shù)字負責。正如您在下圖中所見的,以太坊挖礦是由少數(shù)精選采礦池控制的,四個最大的礦工占有 70% 的以太坊哈希率。
礦工通常對將要接受的交易有自己的標準。很多礦工只接受具有高 gas 價格(high-gas-price)的交易。有些只接受自己的交易。像這樣的礦工在從您的隊列中取得某些東西之前讓區(qū)塊空間不被使用。因此,現(xiàn)在想象一下一個 DMW,其中的某些窗口在告訴人們“抱歉,我無法幫忙”,而每秒有更多的人進入等候空間,并且,甚至在您可以和某人交談之前,所有需要幫助的人們都在您的面前。瞧,您對以太坊如何處理交易就有了一些了解。
我們不曾料到它是這樣工作的,直到我們嘗試實施 Kik 的負載規(guī)范:480 個賬戶,平均每個提交 1 txn/ 分鐘,持續(xù) 3 小時。總共是 86400 個交易,平均每秒 8 個。
我們利用 ETH 的 gas 加氣站的標準對 gas 進行了測試,預(yù)計確認時間的中位數(shù)大約是 30 秒,但是,13 個小時之后,一半以上的交易沒有進入?yún)^(qū)塊。我們在 13 小時 50 分鐘時停止了測試,50.1% 的交易丟失了。(注意:如果您希望查看我們的工作,可以在我們的 GitHub 中找到原始數(shù)據(jù)。)我們認為,我們已經(jīng)搞砸了,但是,事情不是這樣的。我們剛創(chuàng)建了很多長隊列,一些傻子一樣的交易已經(jīng)在那里無所事事地等了一天。
當您讀到有關(guān)“以太坊交易時間”的內(nèi)容時,公布的數(shù)字幾乎總是單一的、一次性事務(wù)。它們不屬于應(yīng)用程序級別的環(huán)境。我們再次進行了 Kik 測試,以真正確保我們所做的一切都正確,又用了 6.9 個以太幣,但是,我們得到了幾乎一樣的結(jié)果。
這是從這次試驗中獲得的典型經(jīng)驗,這只是剛好首先是字母數(shù)字的賬戶。您可以看到等待時間隨著交易的積壓而增加。
在摘要中討論“結(jié)算時間”是一回事。但是,從實際的用戶體驗角度考慮一下上述數(shù)據(jù)。您的以太坊應(yīng)用軟件被用得越多,它就越慢。僅僅過了 3 小時,其交易就要花 8 個小時來確認。
當然,Kik 的測試規(guī)范表明,我們應(yīng)該提交 3 小時的交易,然后停下來,這就是我們所做的。在現(xiàn)實中,您無法建立停機時間以讓計數(shù)趕上來,因此,理論上,交易隊列只是變得越來越糟糕。當然,在實踐中,隨著您的以太坊應(yīng)用程序變得沒響應(yīng),用戶們就會離開,這有助于它趕上來。
這是來自第二個測試的性能分布。我去掉了最慢的 5%,這樣,長尾效應(yīng)不會影響整個畫面。
作為對比,這是 Kik(在 Stellar 上)運行同樣規(guī)范的測量值
我只是從他們的博文中抓取了這張圖,但是我沒有原始數(shù)據(jù),因此,我無法在同一張圖中顯示我的數(shù)據(jù)。但是,利用計算機的“魔力”,我至少能疊加這條曲線。
一切看起來都是可比的,直到您注意到 x 軸。我們在以太坊上測到的等待時間要長 3000 倍。簡而言之,就是個排隊問題。
這個性能問題目前是以太坊的基本組成部分。像分片或 Casper 在理論上是可行的,但是,這些將是復(fù)雜的修復(fù),分層疊加在以太坊幾乎最大的復(fù)雜性上。像閃電網(wǎng)絡(luò)(lightning)這樣的可以依靠比特幣固有的簡單性,而沒有什么基本回落。摩天大樓通常是建在巖床之上,而不是建在另一座摩天大樓之上,但是,這是很多以太坊擴展解決方案所要做的事情。
唯一可靠的性能改進是在 gas 上花費更多,希望每個賬戶隊列可以更快通過。事實上,我們在那 3 個小時試驗中這么做了,我們之所以這么做,是因為“我們應(yīng)該盡力做我們能做的來使之工作”的承諾。
之前的兩個測試使用了“標準”以太坊 Gas Station 的推薦。第三次測試我們使用了“快速”等級(當時約為 4 Gwei),在我們的 480 個賬戶上花了 11.8 個以太幣。
性能提升了(只是 Kik 在 Stellar 上的速度的 5 百分之一),但是,還是不夠快。形成積壓,并且支付進程在那里無所事事。
第 2 個問題:廣泛采用的成本極其高昂
對高級用戶也是這樣。但是,以太坊也不適合另一種形式的采用,您也許看到像 Etsy 的應(yīng)用程序,我不知道,不是一些人更深入,而是有很多人時不時地登入。這是因為以太坊應(yīng)用軟件的每個用戶成本隨著用戶數(shù)量的增加而飛速提高,并且,這是為什么當有人嘗試進行多用戶登錄使用以太坊,您就看到價格會飆升 70 倍之多。
我們在尋找排隊問題的解決方法時,不經(jīng)意間捕捉到了這個數(shù)據(jù)。為了防止交易堆積,我們重構(gòu)了 Kik 的規(guī)范如下:不是少數(shù)賬戶提交大量交易,而是讓一大堆賬戶(28800 個)的每一個只進行一個交易。為了堅持最初測試的指導(dǎo)方針(總共 8 個 txn/x),我們在一個小時內(nèi)提交了這些交易。
奇怪的是,這實際對性能沒有多大幫助。確認時間的中位數(shù)是 23 分鐘,事實上比上面的“快速”測試還要慢。更奇怪的是,我們提交的這第一批交易的其中一些是最后被確認的:
我們知道賬戶隊列不應(yīng)該是問題。事實證明,我們的交易剛一上線,礦工們的費用就飆升。因此,我們最早按測試之前的“標準”價格提交的交易很快就付不起費用了。它們在低優(yōu)先級上徘徊了好幾個小時。
我們發(fā)現(xiàn)了以太坊的另一個負強化循環(huán)。添加用戶馬上就會漲價。在現(xiàn)實中,單位數(shù)的增加會降低單位價格。基本上,整個私營部門是建立在“規(guī)模經(jīng)濟”這個理念之上。但是在這里:每個增量用戶馬上提高了每個用戶的成本。這像是怪異的經(jīng)濟學。
您可以看到,在我們進行測試的那短短一個小時中,價格爬升了約有 6 倍之多。
同樣,內(nèi)置的測試時間限制讓一切看起來比實際更可持續(xù)。將該圖外推,把指針放在中間某處。持續(xù)兩周穩(wěn)定使用后,單位用戶成本看上去會是多少?如果是兩年呢?
上述測試每小時的成本是 1445 美元。當 gas 的價格較低時,標準速度大約是 1Gwei,并且它每秒只能處理 8 個交易。要進行基本測試,那么一年的成本是 1260 萬美元。
如果在實際業(yè)務(wù)上應(yīng)用這個成本結(jié)構(gòu),那么可以看到,以太坊的費用已經(jīng)是不可持續(xù)的高。例如,Paypal 每秒大約處理 240 個交易。拋開為了能實現(xiàn)這個目標要進行的性能修復(fù),并將我剛才提到的動態(tài)提升的價格放一邊。如果 PayPal 構(gòu)建于以太坊上并支付我們觀察到的價格,那么去年他們將在網(wǎng)絡(luò)上花費 3 億 8 千萬美元。那將是他們 21% 的凈收入,而且,那是在假設(shè)可以維持價格不變的情況下。
以太坊的理想版本不適合這個世界上最有利潤的交易業(yè)務(wù)。那么實際版本又如何為我們工作呢?
現(xiàn)在怎么辦?
Vitalik Buterin 說過:
“如果你想在不能擴展的以太坊上構(gòu)建去中心化的 Uber 和 Lyft,那是會搞砸的。不可以。”
我建議您看看所引用的這句話的整體情況,它表明,以太坊團隊的 4 個最重要的成員說了我在這里已經(jīng)說過的話。當今天高利潤的 ICO 變成明天的警示故事時,對于處于該生態(tài)系統(tǒng)中的每個人都沒好處,大家都知道這一點。
毫無疑問,以太坊社區(qū)是區(qū)塊鏈中最強大的,沒有 Vitalik 的愿景,很有可能就完全沒有代幣經(jīng)濟。這不是以太坊的錯,開發(fā)人員在問技術(shù)人員從來沒有交付的東西。是人們在追逐去年的 ICO 熱錢,不管什么是正確的工具。
以太坊的問題始于誤入歧途的企業(yè)家。不要成為他們中的另一個。
如果您在構(gòu)建交易應(yīng)用程序,該協(xié)議將不支持您的用戶所期望的行為。我對以太坊的雄心壯志和復(fù)雜性懷有深深的敬意,但是,我把它看作區(qū)塊鏈的高級時裝。美麗、錯綜復(fù)雜、高大上的概念、高尚。但是,不應(yīng)該是您拿來用的。
如果您想要無信任、分布式的計算(如果這真是您要構(gòu)建的),那么絕對要用它。如果您從未打算實際發(fā)布什么東西,那么用以太坊就太對了,另外,如果您能找得到他們的話,問問那些 50% 多的 ICO 項目,他們賣掉代幣后就消失得無影無蹤 。他們已經(jīng)擊中了費米悖論中的大過濾器(Great Filter)。像是波多黎各的熒光海灘,就亮了那么一下。
但是,如果您想建立一個像我們一樣的業(yè)務(wù):如果您計劃一個典型的用戶到用戶的服務(wù),不需要把您的業(yè)務(wù)邏輯綁定在智能合約上;如果您計劃發(fā)行數(shù)字資產(chǎn),以及高容量的交易是您戰(zhàn)略的核心部分的話,那么選一個為之優(yōu)化的平臺。像我們所做的,在 Stellar 上進行構(gòu)建。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控熑危?br>
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。