以太坊創辦人Vitalik Buterin 於3月15日晚間8點在臺北演講,活動舉辦在臺北市信義路上P2聯合創業辦公社新開幕的共同工作空間,主辦單位 ETHFans 以太坊愛好者和 GPUMINE 在這場活動中,特別安排 Vitalik Buterin 發表40分鐘的主題演講。
該演講分享了「以太坊2.0」中,四個階段中的第一階段(Phase1)可能的幾種擴容解決方案,其中包括在以太坊1.0上可以做的 ZK Rollup,以及在以太坊2.0上可以做的 ZK ZK Rollup 等,為台灣的以太坊開發者和區塊鏈研究學者帶來更多新的刺激和啓發,期望帶動台灣以太坊技術社群成長。
Vitalik Buterin 昨晚的演講講題為「Scalable blockchains as data layers」(暫譯:以可擴展的區塊鏈作為資料層),總共使用13張投影片簡報,淺談以太坊在擴展性遇到的挑戰及可能的解決方案。
Vitalik 在演講一開始,先從後設協定(meta-protocols)歷史發展脈絡開始談起,也就是在比特幣已經出來但以太坊還沒推出的時期,而這樣的情形就像分片技術(Sharding)推出時的第一階段,在分片鏈(Shard Chain)上只能儲存資料但不能做運算的情況相似。
他提及,區塊鏈協議 Mastercoin 是一種在比特幣區塊鏈上的後設協議(“meta-protocol” on top of the Bitcoin blockchain),借比特幣區塊鏈當作資料層,而非一種狀態執行引擎。他說,會遇到的問題主要有二個,包括對於輕量級客戶端不夠友善,以及 Mastercoin 影響不了任何不是 Mastercoin後設協定的狀態,例如,沒法影響比特幣的狀態。
有資料可得性 – 擴容方案 ZK ZK Rollup
其接著介紹了ZK Rollup的原理,以及本次演講的核心「ZK ZK Rollup」。
Vitalik 說,大約在四個月前想出了這個機制構想,現在的名字叫做 ZK Rollup。新創團隊Matter Inc將構想實作出來並且將它命名為 Ignis,也有人叫它 Ignis Plasma,但 Plasma 的人也不太高興因為它在技術上並非是全然的 Plasma,因此如果有更好的名字歡迎提出。
這個 ZK Rollup 又稱 Ignis 的機制構想,估計能增加以太坊 TPS 每秒交易量30倍。
Vitalik 說:
ZK Rollup 乍看起來有點類似 Plasma 對吧?
因為 Plasma 的合約裡記載 Merkle root,而這裡(指 ZK Rollup)也有合約記載 Merkle root,所以你可能會問,那麼( ZK Rollup 和Plasma)有什麼不同?
他解釋,ZK Rollup 與 Plasma 的不同之處在於,Plasma 有來自退出賽局(exit games)和提款期間(withdraw periods)的複雜性,這是因為有資料可得性問題(data availability problem)。Plasma 節點(Plasma operator)可能會惡意發布帶有 Merkle root 的區塊,但不發布 Merkle root 代表的背後實際資料。這讓 Plasma 需要有前述複雜的機制來應對。
Vitalik 說:「但在這裡(指ZK Rollup)我們並不會有資料可得性問題(data availability problem),因為所有的交易(編按:即需要可得的資料)必須發布在鏈上。留意我們這裡發布的是沒有簽章的交易。」
Vitalik 進一步說明:
這代表每個在 ZK Rollup 的交易只需要發布 13 個bytes。有人知道現在在鏈上存 13 個 bytes 的 Gas 成本是多少?有人知道在以太坊交易中納入 1 個 byte 需要多少 Gas? 68。
有人知道68乘以13是多少?884。
有人知道現在發送交易需要多少 Gas?21,000。
所以這代表我們從21,000變為884。我們可以獲得這些效率的原因,其中最大的部分是因為,我們使用 ZK SNARK 而不是使用以太坊區塊鏈驗證每筆交易的簽名。我們把運算移到鏈下,ZK Rollup 傳遞者(relayer)實際進行這些運算。
他提及,今年一月底在美國史丹佛大學舉辦的 eth1.x workshop 工作坊有談到,以太坊區塊鏈上對存取資料 Gas 其實是過度收費,目前存取資料運算的 Gas 成本相較於其他類型運算的 Gas 成本其實是偏高,每個 byte 要 68 Gas 成本,而這個 Gas 費用是有可能再降低的。
他表示,在未來的以太坊網路升級中,把68這個數字再調低。
他說:
今天演講主要想要介紹的是 ZK ZK Rollup。我們想要採用原來 Rollup 的基本原理,在其中做出一個迷你版的ZK。
他指出,做出一個迷你版ZK的方法就是,通常使用者會發布一個有SNARK證明的交易,這些交易說:「我有一個狀態中某個幣的雜湊值的有效支出證明(spend certificate)。這是我產生出的新的幣雜湊值。」Vitalik的簡報上敘述,交易沒有透露它正在花費哪個幣。但是,每個支出證明只能使用一次。
他說明,這就像 Zcash 的簡單版一樣。
他說,ZK ZK Rollup 的特色是,交易總共有105 bytes,乘以 68,每個交易的 Gas 成本為 7140 Gas。每筆交易比簡單的以太坊交易更便宜,但完全保護隱私。
總的來看,原來以太坊交易花費21,000 Gas,ZK Rollup 交易花費884 Gas,ZK ZK Rollup 交易花費 7140 Gas,比 ZK Rollup 貴但有類似 Zcash 的隱私。
Vitalik 說,之所以能夠擁有這些效率的原因是,這些系統都涉及相當大量的運算。如果你試圖在鏈上使用 Zcash,那麼其中一個交易將需要驗證SNARK,而驗證SNARK就表示大約需要500,000 Gas的消耗。
他進一步說明:
我們不要求鏈為每筆交易驗證 SNARK。
我們甚至沒有將交易的 SNARK 放上鏈。
上鏈的反而只有一個單獨的 SNARK,負責驗證每個都各自附帶 SNARK 的交易。驗證這些東西的成本,從原來所需的大約 500,000 Gas,下降到大約 7,000 Gas。
layer 2 與信標鏈
前述的應用都不需要鏈上的運算,但需要儲存資料在鏈上。接著他分享,信標鏈(beacon chain )在第一階段,分片鏈作為僅有資料不含運算的鏈(Shard chains as data-only chains),剛好可以提供每秒 2.8 MB 的資料可得(~2.8 MB/sec of data availability)。
Vitalik 演講最後提及「第二層運算」典範的優點(Benefits of the “layer 2 computation”paradigm)。他說,以太坊區塊鏈 Layer 1第一層不需要過度複雜化來優化各種屬性。例如,它不需要增加複雜性來優化區塊長度,或優化跨分片溝通時間(cross-shard communication time),優化跨分片同步訊息傳遞的支持(cross-shard synchronized messaging support),以及優化隱私。
以太坊區塊鏈第一層並不需要那麼多改變。由於第二層的方案可以隨時間升級,代表可以減少積極治理第一層的需求。不需要做以太坊 3.0 超二次分片(super-quadratic sharding),可以繼續使用信標鏈(beacon chain ),並隨著時間因技術進步而增加分片數量(shard count)。
Vitalik 最後分享:
隨著時間發展第一層可能會變得越來越難改變。
但是,如果發生這種情況那麼也沒關係,因為我們可以用這些第二層運算層做很多很酷的事情,而第二層運算層實際上已變得非常友善並且很容易使用。
Vitalik 說:「因此,如果你有資料可得性(data availability),在今天談的例子中,我們有每秒 2.8MB,已經可以從這裡構建出來非常多很酷的東西。」
Vitalik 這次3月15日晚上在臺北的主題演講,完整的錄影可觀看YouTube影片。Vitalik 17日將結束台灣的行程飛往美國紐約,下一場重量級的以太坊技術研討會活動「EDCON 2019」,今年4月8日到4月14日將在澳洲雪梨舉行。
────── 你是否想更深入地了解區塊鏈應用? ──────
3月19日(二) 動區塊聚【區塊鏈新創應用實例】,邀請到了兩位成功的連續創業家──無名小站、flyingV、Poseidon Network創辦人林弘全,以及分散式帳本技術新創BiiLabs執行長朱宜振,與你探討區塊鏈在物聯網IoT、分散式儲存、共享CDN的應用實例。
?相關報導?
Vitalik Buterin 在「史上第一屆」香港以太坊超級大會,為社群更新生態系發展進度
【追蹤】以太坊硬分叉後,區塊鏈出塊速度開始提升
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!