imToken 杯「我的 Eth2」--大道至簡,說點負面的觀點

買賣虛擬貨幣

2021年6月24日 eth價格$1892

【說點負面的觀點】

      看到太多的eth2.0的好評和點贊,我說點負面的想法。

首先表明立場,我不是一個比特幣主義者,也無意詆譭以太坊,我只是一個技術男在討論一個我理解的技術觀點。

1、eth並不是什麼區塊鏈2.0,很多人提eth是行業發展2.0,無非是為了後面繼續說自己的專案是3.0或者250.0,vb自己也不敢吹這個牛,雖然現在eth很牛。

2、eth2.0可能是從複雜走向更復雜,也許是一個無限的死迴圈,不見得是好事。

3、pos不是問題,問題是中心化是eth在pow就避不開的坑。

區塊鏈2.0和eth2.0大家不要混淆啊,區塊鏈2.0是指比特幣之後第二代區塊鏈系統,eth2.0就是現在的以太坊擴容升級計劃。

eth無疑是很成功的,上一波ipo發幣浪潮之後,這一波defi和nft,主流選擇的智慧合約平臺依然是eth,說明很多吹牛取代eth的平臺都是扯淡,真正到用的時候,大家依然只相信eth,這是eth的成功,但是由此帶來的高費用和資料激增,已經讓臃腫的eth不堪重負,到了必須跨出一步的時候。

【圖靈完備並不是優勢,只是功能】

我無意評論很多所謂區塊鏈3.0(其實是250.0)的產品和技術,更無意貶低eth,只是看到太多的人錯誤定位eth和btc,而且這個問題也會引出去中心化系統是否需要和應該複雜性問題。

很多人奶eth,說中本聰在btc中沒有實現的圖靈完備,被小神童(後面我都會稱vb,無意貶低也不想神化誰,就好像我曾經寫過一篇文章論中本聰是狗還是神)實現了,這個是絕對的誤導,扯淡,不是白痴就是太壞了。這種說法就是在暗示,你看,中本聰做不到的,v神做到了,牛逼吧,2.0吧。

中本聰之所以不在btc中實現圖靈完備,不是技術實現上有困難,而是故意而為。是因為中本聰意識到,一個去中心化的系統,特別是一個願景是取代傳統銀行的系統,穩定性是第一位的,如果圖靈完備(可以簡單理解為存在迭代和迴圈),可能存在很多不可預知的bug,一個去中心化的系統,很難快速修復更新迭代。這個預言在後來的eth中屢次被驗證,最早的the dao導致以太坊區塊回退,分裂成eth和etc,後面也不斷髮生嚴重bug,當前的defi雖然繁榮,但是各種利用程式碼複雜性製造漏洞跑路的團隊和利用邏輯漏洞黑幣的比比皆是。

所以中本聰在設計btc的時候,故意讓它沒有圖靈完備,也就是隻支援5個簡單指令碼邏輯,並不支援複雜的迴圈與迭代邏輯,大大減少了btc的複雜性,當然也不能直接執行復雜的智慧合約。後面btc擴容爭吵了2年,最後還是以bch分叉btc告終,可見一個去中心化系統升級是多麼複雜和痛苦。別跟我說什麼以太坊就好多了,那只是因為以太坊太過於中心化,反而是大大的問題,這個後面再說。

當我看到《mastering bitcoin》裡面這樣描述這部分的時候,不僅拍案叫絕,大神就是大神,早早就料到了10年以後的事情。當時當我看到eth不但實現了圖靈完備,如此複雜卻如此成功,不禁又叫了一次絕,誰說大神講不能做就不能做,行業初期,別被某些束縛了手腳。

vb建立以太坊的時候,並不是把它定為為一個代幣,而是要執行復雜的智慧合約,這就必須要圖靈完備,要複雜化,以太幣不是eth的靈魂,智慧合約才是,只是後來eth成功了,以太幣也就成功成為了硬通貨。

【分片不是什麼新思路,老掉牙的技術】

言歸正傳,我們談回eth2.0方案。eth2.0一個基本思路就是“分片”,分片這個思路一點都不高階,寫程式的人沒有不熟悉資料庫的,資料庫表空間太大跑不動的時候,就產生了分片技術,可以簡單理解為表面上看還是一個表空間一樣的使用,但是後臺已經分成幾個部分單獨儲存。

我第一次看到eth要分片處理複雜性的時候,第一個想到的是bitmessage這個區塊鏈郵件軟體。這是個無幣的區塊鏈郵件系統,雖然很沒有名氣(不發幣,也就沒什麼人炒作和使用),但是很早就存在了,而且很早就提出了“branch”的思路。在這個系統裡面,沒有郵件伺服器的概念,每一個想傳送郵件的人,都會接收其他人加密的郵件(只有你自己的郵件可見,具體不描述了),那麼問題來了,如果使用人過多,每個人是不是就會儲存太多的郵件,於是它提出branch(分叉、分支)的思路,也就是在整個區塊鏈系統中,每個人只跟他周圍的幾個人組成一個branch小組,只接收和儲存小組內人的郵件,這樣儲存的資料就不會很大。當傳送的郵件超出branch小組,這是就和周邊的branch小組打交道,找到郵件所在branch小組的人和郵件。

之所以寫這麼多,其實eth2.0的分片也是這個思路。以前一個eth全節點,膨脹到幾乎不是一個普通pc可以構建的了,總資料量大於3tb,一個新建節點幾天也同步不完全部資料。相比較,btc當前300多m,雖然bitcoin core強行壓制總資料量的做法我並不認同,但是總體來說,當前依然能保持這麼一個輕量級的體量,確實很牛逼。eth的思路很簡單,我把3tb資料分成很多小片,比如分10份,每份就只有300m了,不就沒有問題了嗎,每個節點只要存一個分片,本地分片解決不了的問題去到其他分片找答案。

分片越多,單個節點需要儲存的資料就越少,但是本地資料解決問題的能力就越有限,分片與分片直接交流的需求就越多,複雜度就指數型上升,直到達到一個平衡點,所以分片不是無限的。

我不知道eth2.0分片是從bitmessage中得到的靈感,還是模仿資料庫,總之這個技術一點也不新穎,並不是什麼傳奇,也沒有多麼牛逼,而且依然有瓶頸。

【從複雜走向更復雜,不在複雜中重生,就在複雜中死亡】

不在解決了複雜性後重生,就會死在解決複雜性的路上。

本身圖靈完備的eth就已經足夠複雜了。

eth2.0要解決的問題很多,比如如何減少跨分片資料檢索,讓使用者主要交易和檢索在片內完成;如何在分片數量和複雜度之間找到平衡點;如果在新節點加入後快速重構分片檢索資料,就好像ospf/bgp4等路由協議,平時維護一張路由表,當有路由節點發生變化時,能夠快速收斂,協商生成新的路由表並在所有路由器之間傳遞新的完整路由表,等等。對於當前一個擁有5000多個全節點eth來講,不是個簡單的事情。

記得很久以前,電信網路曾經發生過一個斷網事件,原因是骨幹網上有一臺路由器(都是雙機冗餘)正常工作,但是不能登入維護管理(管理模組有問題),因為是雙機,理論上重啟一臺另外一臺依然可以完成全部工作,沒有影響。於是管理員重啟了這臺路由器,結果,重啟後發生路由重構,重新計算路由表,跟它對聯的省份的路由器檢測到路由變化,也重構路由表,重構路由表的過程由於耗費大量cpu資源計算,對端省份很快產生了一個路由器cpu過載告警,其實只要不管它,很快就過去了,一切就正常了,但是偏偏網管告警系統非常好,馬上發現了問題並告警,對端省管理員不知道發生了什麼問題,面對cpu負載大的告警,直接重啟路由器想解決這個問題,於是更多省路由器cpu過載告警,其他省管理員也採取了重啟路由器的解決方式,於是乎,省網上大量骨幹路由器重啟,這個路由表沒辦法收斂了,不斷的變化,重新計算路由拓撲,cpu一直下不來,而且路由表一直不能重構完成。最後造成大面積斷網,而且持續時長20多分鐘。

這很像一個去中心化系統,因為沒有人看到全域性,統一協調所有省份,很多人不知道發生了什麼,只是根據自己的情況做出應對方案,最後的結果是災難性的。這個事件中,總共三十幾個省,路由器60多臺而已,而且使用的是非常成熟的ospf路由協議,不難想象,5000多個節點的去中心化eth網路分片後的複雜性有多高,或者說根本無法想象這個複雜性有多高。任何一個節點的任何動作,都不可能告訴vb,然後vb發通告告知全網管理員,哈哈哈,腦補一下這個妖操作,更不要說還可能存在惡意的破壞節點,如果有人放入幾十臺破壞節點就能讓eth2.0網路癱瘓而打擊幣價,所有人都會這麼做,至少我會做,簡直太爽了。

是不是很複雜,是不是很可怕。稍有不慎就萬劫不復。

對於中心化系統,複雜不是問題,有集中化管理,有高素質管理員維護,沒有作惡節點,所有系統都足夠冗餘。但是去中心化系統不行,各種原因,比如資金有限,租用的雲主機流量超標突然斷網,磁碟空間滿不能載入新資料,cpu/mem資源不足驗證效率慢,甚至大量全節點主機被駭客攻擊等等。任何一種情況發生,可能長時間沒人解決。

為了解決這臺快拖不動的車,讓系統更加複雜。如果維持現狀,系統還能跑兩年,但是提出了2.0,開弓沒有回頭箭,說2.0複雜不現實不做了不可能,所以,eth2.0要麼能在未來幾年中(不指望明年底都能解決和順利上線)發現並解決主要問題,要麼可能就徹底失敗。回退到pow和1.0時代,整個人設就崩塌了。當然,eth都聽小神童的,什麼問題都能快速解決甚至回退區塊也無所謂,這裡並不是危言聳聽和調侃曾經vb的區塊回退,大量pos質押代幣節點,一旦發生涉及利益的大bug,很可能只能回退區塊解決。

【大道至簡】

真正好的事物,不是要讓客戶感覺多麼複雜高深,而是多麼簡單親切。以太坊不應該讓自己越來越複雜,越來越晦澀難懂,至少呈現給開發者、使用者、全節點建設和維護者(pos後建設全節點就不是為了開發,而是獲得代幣利益了,這個也變得很關鍵)等生態中每一個人的感受要足夠的簡單。

就好像我理解,ipad和iphone為什麼成功?就是簡單啊,點點點就ok了,荷蘭豬用鼻子也能玩一玩。我曾經越獄過ipad和android手機,獲得root許可權後可以ssh進去,發現就是一個完整的linux系統。這是什麼概念,linux曾經被認為是專業人士和開發人員使用的系統,普通使用者只能用用windows,而ipad就是把複雜的後臺linux封裝起來,呈現給使用者的就是點點點這麼簡單的介面和操作,比windows還簡單,就成功了。如果是裝逼顯示專業,怕沒人搭理它。

谷歌引導的大資料(big data)系統,後來被yahoo開源的hadoop,其思路依然是大道至簡。最早資料記錄在類似txt的文字檔案中,隨著資料量增加,檢索等需求越來越複雜,慢慢產生了類似excel這種小型資料庫,然後是oracle這種關係型資料庫,隨著資料進一步增加,這些資料庫也裝不下跑不動了,於是谷歌想,我把資料分片裝入txt文字,排序索引後,不但能處理幾十上百tb的資料毫無壓力,而且自由擴充套件,查詢檢索效率也不比傳統資料庫差。從txt文字又回到txt文字,大資料說起來神乎其神,其核心思路和道理不過如此。

從這個角度看eth2.0,並不樂觀。誠然,很多事情沒有那麼理想,大家都在尋找改進的方式,有些東西甚至是矛盾的,只有中心化之後tps才會大幅提高。如果eth2.0只是來秀肌肉的,就算最終實現了分片儲存、高tps等效果,依然不會成功。

【去中心化的路很漫長,以太坊還要走很久】

如果說btc的去中心化是1.0,那麼eth不但不是什麼2.0,反而是0.5甚至0.1了,其他代幣或者區塊鏈系統就更不用說了。

中心化真的不好嗎?eth透過中心化操作,不但快速解決了發現的bug,而且產品高速迭代,不斷更新,至臻至善,似乎無限美好啊;btc一個擴容吵了2年都每個結果,要是沒有中心化操作,eth不可能發展這麼快、這麼好,大有彎道超車的意思,都是拜中心化所賜。eth的世界裡,大家都信v神,v神還有錢,租個幾萬臺雲主機,所有節點v神建設管理,冗餘、效率、可靠,處理速度分分鐘超過某寶、某信,這樣不好嗎?

但是這個問題就回歸到行業的本源了,為什麼要搞btc/eth這種冗餘而低效的區塊鏈系統。btc/eth的核心不是發行了一個代幣,而是去中心化的信任系統。我一直很喜歡強調這一點。沒有去中心這個核心點,btc/eth毫無價值,以前中心化系統都做得很好了,智慧合約九十年代就有了,而且非常成熟,只是沒有執行在去中心化的系統中。

eth雖然享受了很多中心化操作帶來的好處,但是eth要是不能走出中心化的問題,必將走向滅亡。eth享受中心化帶來的好處就好像吸毒,越吸越上癮,欲罷不能,我相信eth2.0的路上,一定會透過回退區塊的方式解決問題,只是幾次而已。vb也很清楚,狼來了的事情喊多了就沒人相信了,所以後面出現比the dao更嚴重的丟幣事件的時候,大家問vb能不能回退,vb說不能(有人調侃the dao是vb的錢,所以能回退,後面不是vb的錢,所以不能)。但是我們不要忽視一點,就是隻要vb點頭,依然可以隨時回退,沒有人否認這一點吧,就算有人不服分叉,有vb支援的分叉依然是大家心目中正宗的以太坊,看看etc混的不要說兄弟、兒子,連孫子都不如的地位就能知道。

pos沒有人會懷疑效率更高(沒有蠻力計算,到時間就能出塊),安全性更好(由於質押代幣作惡的懲罰更嚴重),但是繼續走向中心化這個死結(所謂富者更富,擁有更多代幣的人擁有絕對的發言權)。

eth高舉去中心化大旗,行中心化之實,沒有困難的時候把自己打扮得像個純真的小姑娘,因為有恃無恐,在困難的時候不會去考慮如何用去中心化的一套方法思路解決,人家就沒想過為了一個小小的問題爭吵幾年,分分鐘推出vb就搞定了,甚至不用vb也很少有噪音。有些人感覺這沒什麼不好,甚至以此嘲笑btc核心團隊搞不定礦工和社羣,才讓專案很久沒有啥變化和重量級更新。

最近幾天看到有團隊在阿里螞蟻鏈上開發了一個敦煌飛天的nft,大賣,很火,如果eth不堅持走去中心化的路線,真的打得過這種企業發行的聯盟鏈嗎?像幣安這種交易所的平臺鏈bsc也虎視眈眈,看看其他幾個競爭的鏈,eos無論從挖礦(21個超級節點)到開發團隊都超級中心化,孫割的鏈風風火火蹭著熱點,居然成為usdt最大發行鏈,更不要提中國一大堆阿貓阿狗鏈,無論上沒上交易所,都是清一色的公司化運作,根本不是什麼開發社羣。

無論這些被如何炒作,幣價多高,我依然固執的相信,沒有去中心化,都將成為歷史的塵埃,一文不值。如果eth2.0讓以太坊更加中心化,怕不是進步,而是真的走向無法回頭的滅亡。


感謝鏈節點的活動,希望eth2.0能夠成功並繼續輝煌。

用於鏈節點社羣imtoken杯「我的eth2」徵文大賽 https://www.chainnode.com/post/587419


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;