望梅止渴的以太坊分片(Sharding)

不久前 Vitalik 發了一篇題為《為什么分片棒棒噠:揭開技術屬性的神秘面紗(Why sharding is great: demystifying the technical properties)》的文章(https://vitalik.ca/general/2021/04/07/sharding.html,中文機翻痕跡明顯,建議閱讀英文版),從技術上深入淺出地講解了以太坊分片提供的特定屬性和付出的犧牲。文中提到:“分片是以太坊可擴展性的未來,它將是幫助生態系統每秒支持數千筆交易并允許世界上大部分地區以可承受的成本定期使用該平臺的關鍵,”

文章是好文章,特別是通過定義以太坊分片的特定屬性,與“流氓分片”(原文所說的“具有非常不同且通常弱得多的安全屬性的技術”)劃清了界限,

雖然烤仔非常佩服 V 神畫大餅的實力,也認同安全可靠的分片技術是未來區塊鏈技術必然的發展方向,但是對于文中的若干錯誤仍然覺得不吐不快,

文章的核心邏輯是 V 神認為通過“簡單”技術無法同時讓區塊鏈獲得可擴展性(Scalability)、去中心化(Decentralization)、安全性(Security)三個屬性,即所謂的“不可能三角”,而分片技術可以同時解決這些問題,所以“分片棒棒噠”。這個邏輯初看似乎有點道理,但是仔細想想卻似是而非,主要有三個漏洞:“簡單”技術、“不可能三角”、分片的必要性。

首先是關于“簡單”技術無法同時獲得三個屬性的論斷,文中沒有定義到底什么樣的技術能稱為“簡單”,實際討論時偷換概念成了三種“容易的解決方案(easy solutions)”:包括比特幣以太坊在內的傳統單鏈,由少數節點維護的高吞吐量區塊鏈(大約指 EOS 和聯盟鏈),以及多鏈生態系統(波卡和其它一些不保證安全性的“流氓分片”等),

這個論斷的邏輯問題在于,“簡單(simple)”不等于“容易(easy)”,偷換概念后的舉例論證也因為沒有窮盡所有可能性而更像是在挑軟柿子捏。

類似的邏輯烤仔之前曾經在一個笑話中見到過——“如何證明所有奇數都是素數?我們來看一下:3是素數,5是素數,7也是素數,證完了。

”其中第二種方案吞吐量高的區塊鏈(“High-TPS chains”),在 V 神的概念里似乎和節點數量少畫上了等號,犯了循環論證的錯誤。總之,這里的論述肯定是沒有考慮 Conflux 這樣可以在幾千個共識節點上實現幾千 TPS 吞吐量的方案,或許 V 神在這里對于“簡單”的定義可以直接按照效果劃一條線,凡是能解決“不可能三角”的統統歸為“不簡單”技術,這樣方可確保邏輯嚴謹立于不敗之地,

其次,所謂的“不可能三角”也是一個由來已久的錯誤概念。雖然常被拿來和分布式系統的 CAP 定理相提并論,但是實際上“區塊鏈不可能三角”從來沒有任何理論上的證明,最多只能算是一個“假說”或者“猜想”。這種把“自己做不到”等同于“不可能”的邏輯,頗有一種便秘了埋怨地球沒有吸引力的即視感,

好在 V 神似乎也意識到再提“不可能三角”以太坊分片的優點就說不通了,所以在這篇文章里偷偷加上了一個前提——“如果你堅持使用簡單技術,那么將無法同時獲得三種屬性”,

不知道啥時候能正式把“區塊鏈不可能三角”的說法正式改為“區塊鏈簡單技術暫時做不到三角”以正視聽,同時建議加一行小字“‘簡單技術’指不能同時獲得這三種屬性的區塊鏈技術”,

最后,這篇文章也不足以支持分片技術的必要性和迫切性。分片固然可以打破“不可能三角”,解決以太坊面臨的性能問題,但這只是一個充分性的條件,不能說明為什么一定要采用分片技術,甚至不能說明為什么一定要打破“不可能三角”,

在“不可能三角”的描述中,可擴展性的要求是整個區塊鏈共識系統的處理能力超過普通消費級 PC 或筆記本電腦作為單個節點的處理能力,從長遠來看這個目標終歸是要實現的,但是從目前以太坊的實際情況來看,這個目標屬于好高騖遠。以現在的電腦性能,單機足以每秒處理幾千甚至上萬筆交易,而以太坊只能處理不超過 50 筆,還遠遠沒有達到瓶頸,基于以太坊現在的性能搞分片,就像是一個國小數學還沒學明白的孩子非要學高等數學一樣,事倍功半不說,將來還免不了從頭再來一遍,

所以,即便分片可以解決以太坊面臨的問題,也不意味著必須用分片來解決。與最初提出以太坊分片的概念時相比,如今已經有了包括 Conflux 等高性能共識算法和 Rollup 等第二層擴展方案在內的很多現成的解決方案,再抱殘守缺地堅持做分片就有點一條道走到黑的意思了。

除了核心邏輯存有漏洞之外,分片本身在安全性、可靠性和性能方面的犧牲也是非常明顯的,V 神在文中已經說得比較詳細,此處不再贅述,

這里只糾正一點:分片必然降低用戶體驗,增加確認用戶等待時間的問題無可避免,并非只存在于采用欺詐證明的方案。盡管 ZK-SNARK 等證明技術可以大幅提升交易的驗證效率,確保交易上鏈后能被快速確認,但此類技術無一例外需要較長的時間用于生成證明。因此,從用戶的視角來看,采用 ZK-SNARK 技術減少交易上鏈后等待時間的代價是增加了上鏈前等待生成證明的時間,總的體驗未必有多少改善,寄希望于靠 ZK-SNARK 解決分片帶來的延遲問題的人,應該再去復習一下朝三暮四的故事。

綜上所述,烤仔認為以太坊的分片技術就如同望梅止渴故事里的梅子,可以鼓舞人心但是沒有多少實際意義。如果一直心心念念遠方的梅子,而對身邊的溪流視而不見,恐怕只會渴死在路上,

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧