零知識證明與區塊鏈擴容 Zero Knowledge && Blockchain Scalability

零知識證明與區塊鏈擴容 Zero Knowledge && Blockchain Scalability

年前我報名了 03 月 25 日 在台北舉辦的 SITCON,正好看到 Changwu 分享 Vitalik 03 月 15 日會來 Taipei Ethereum Meetup 的活動,於是就決定提前動身。Vitalik 當天在台北的行程也安排的很滿,一共會出席三個活動 1。但根據我以往的經驗,最重要的活動當然是晚上的 Taipei Ethereum Meetup,每次 Vitalik 來 Taipei 都會帶來一些新的 idea2,這次果然也是如此。

zKSnarks 和 Layer2 我們都不陌生,但是 zKSnarks 可以用來做擴容3,很多人包括我就是第一次聽說了。再把這個結合進 Layer2,知道的人恐怕就更少了。

在這次的演講中,Vitalik 首次提出了自己對這一問題的一系列想法,以及其 Layer2 中數據可用性問題(Data Availability Problem)的聯繫。下面是這次演講相關的資料,其中 Trenton Van Epps 在 Medium 上忠實的記錄了這次 Tech Talk 的 Transcript,並且包含了許多相關的資料和歷史記錄,強烈推薦大家閱讀。

區塊鏈擴容三元悖論 Blockchain Scalability Trilemma

從比特幣到以太坊,圍繞擴容產生的爭議從來就沒有斷絕過,這點只要看比特幣的各種分叉就可見一斑了。

我們知道目前以太坊最大的挑戰也是在維持 decentralized & secure 的前提下,解決 scalable 的問題。類比分散式資料庫中的三元悖論,在公有鏈之中,這被稱之為擴容悖論 (Scalability Trilemma)。在 以太坊官方關於 Sharding 的文檔 里,擴容悖論 (Scalability Trilemma) 的定義如下:

The trilemma claims that blockchain systems can only at most have two of the following three properties:

  • Decentralization (defined as the system being able to run in a scenario where each participant only has access to O(c) resources, i.e. a regular laptop or small VPS)
  • Scalability (defined as being able to process O(n) > O(c) transactions)
  • Security (defined as being secure against attackers with up to O(n) resources)

不過 Vitalik 也曾在 Twitter 中提到過,自己一直認為擴容悖論從來都不是一個不可能的結果,而是一個困難的追求目標4。圍繞擴容的爭議與各種創新,通證通研究院 x FENBUSHI DIGITAL 寫過 一組不錯的文章 可供參考:

用零知識證明進行擴容 Scaling With Zero Knowledge

零知識證明 Zero Knowledge Proof

共有鏈領域的另一大難題就是用戶隱私的問題,Vitalik 也多次在 Tech Talk 以及 Blog 中闡述這一議題5,而 zKSnarks 就是這個領域最為強大的密碼學武器之一。

關於 zKSnarks,以太坊上的身份識別系統 uPort 的創始人 Christian LundkvistConsenSys Media 上也寫過 一篇引人入勝的文章 可供參考。

用零知識證明進行擴容 Scaling With Zero Knowledge

Vitalik 在這次的演講中,用了兩頁 PPT 來介紹這一方法的歷史,並且提到在 Alex Gluchowski 和 Kent Barton 在 ETHDenver 2019 上的 報告 中,就已經詳細介紹了這一機制。簡答來說,我們可以類比 Plasma,不過最大的不同時在 ZK Rollup 中我們不需要 設計各種 tricky 的方法來解決數據可用性問題 (Data Availability Problem),因為所有交易都被發布到鏈,並且沒有簽名。

這種方法可以安全地將轉賬操作的 tps 從 15 增加 500。

作為數據層的可擴展區塊鏈 Scalable Blockchains as Data Layers

ZK ZK Rollup 的基本思想就是在 ZK Rollup 的基礎上在裡面嵌入一個 Mini 版本的 Zcash 機制。這樣 Relayer 就無需發布 Txs,而只要發布每次的交易回執(Receipts)即可。除了和 ZK Rollup 一樣可以提高 tps 之外,Vatalik 也提到了這種方法的一些潛在應用,其中最為激動人心的的應用就是可以加速跨片之間的交易。

總結 To Sum Up

這樣一圈看下來,ZK Rollup 本質上也是一種空間換時間的策略,將每次交易的回執放在鏈上做驗證,而把計算任務放在側鏈中完成。

在加密貨幣播客節目 Magical Crypto Friends 的主題曲 Magical Cryptoland 的歌詞 中,就寫到

Scaling the right way is a long and challenging road.
SegWit is now here – for the UASF we cheer.
Layer 2 solutions are a must,
Always verify, don’t trust.

通過 ZK ZK Rollup,我們可以更清楚的認識到為什麼說 Layer 2 解決方案是不可或缺的了。

read it on hackmd