JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

二層網路與 Rollup

一條要求成千上萬台電腦把每一筆交易都重做一遍的區塊鏈,註定又慢又貴。Rollup 捅破了這層天花板:在便宜的地方把活兒幹完,再向主鏈遞上一份小巧的證明,擔保這些活兒是誠實的。

主鏈為什麼會撞牆

想像有這樣一間法庭:國內簽下的每一份合約,都必須由每一位公民親眼見證,否則就不作數。任何偽造都絕無可能矇混過關——可門外的隊伍會排出好幾英里,光是一個簽名就得耗上一整天。這正是 以太坊 這類鏈所達成的交易:成千上萬個彼此獨立的節點,各自把每一筆交易都重跑一遍,於是它的結果是全世界可以去驗證、而非只能去信任的東西。安全是徹底的,速度卻不是。

這正是可擴展性三難困境的核心:一條鏈似乎被迫在三樣東西裡只能選其二——安全、去中心化與規模。你可以靠要求更大、更昂貴的機器來運行節點來提速,可這麼一來,能負擔得起持續監督的人就更少了,去中心化便悄悄地被侵蝕。多年來,那些看上去顯而易見的修法,無一不在悄悄地把這條鏈之所以值得用的東西給換走。

鏈下幹活,鏈上結算

二層網路是一條單獨的鏈,它跑在某條基礎鏈——也就是一層——之上,並向它借來安全,而不是另起爐灶自建一套。今天最重要的二層家族是 Rollup,這名字本身就透露了它的運作方式。在 Rollup 那一頭,一台名叫定序器的快速機器把成百上千筆交易收攏起來,一批一次性地執行,再把它們捲成一個小巧的包。隨後,它把這個包發回一層。

下面這一步,才是讓一切運轉起來的關鍵。一層並不把那成千上萬筆交易重跑一遍。相反,Rollup 只遞給它兩樣東西:新的狀態(更新後的餘額、新的帳戶數值),以及足夠讓任何人去核對這個新狀態確實是由舊狀態推導而來的資訊。最昂貴的那部分——真正的運算——只在鏈下、在一台快速機器上發生了一次。基礎鏈要做的,只是被說服這個答案是對的。說服,遠比運算便宜。

LAYER 2 (rollup)              LAYER 1 (base chain)
-------------------           --------------------

  tx tx tx tx tx              [ batch summary ]
  tx tx tx tx tx  --roll-->   [ new state     ]
  tx tx tx tx tx              [ validity info ]
  (1000s of txs)                     |
   executed once                     v
   by sequencer            verified, not re-run
                            -> inherits L1 security
Rollup 在鏈下執行大量交易,再發布一份小巧的彙總,供基礎鏈核對。

由於 Rollup 完完全全靠一層來結算、也靠它來儲存自己的資料,Rollup 上的一筆交易,最終享有的是與主鏈上同等的安全。你信任的並不是定序器會誠實行事;你信任的是基礎鏈能在它不誠實時把它逮個正著。這便是它全部的承諾:以一層成本的零頭,換來一層級別的安全。

證明這批交易誠實,有兩條路

一切都繫於一個問題:一層是怎麼被說服定序器沒作弊的——沒在過程中給自己偷偷塞上十億枚幣?兩個不同的答案,把 Rollup 劈成了兩個陣營,而這分歧,是貨真價實的世界觀之別。

樂觀 Rollup 先信任,只在有人發起挑戰時才去驗證。它發布自己的新狀態,然後乾脆*斷言*它是對的——樂觀地假定它沒問題。隨後開啟一扇監督窗口,通常約一週,在此期間,任何發現謊言的人都能提交一份詐欺證明:一份在鏈上對某個爭議步驟被算錯之處的精確演示。一旦詐欺證明成立,那批壞帳就被作廢,作弊者賠上事先押下的保證金。若窗口在一片沉默中關閉,狀態便告終局。它押的注是:誠實是常態、挑戰是稀客,於是幾乎什麼都不必費力去證。

ZK Rollup 把舉證的擔子倒了過來。它不去邀人挑戰,而是給每一批交易都附上一份有效性證明——一小塊用與零知識證明相同的工具搭成的密碼學。這份證明,本質上就是一張數學收據,寫著*「我把這些交易全都算對了」*,而一層只需幾毫秒就能核驗它,無須重新執行其中任何一筆交易。這裡的 *zero-knowledge*(零知識)之名多半是歷史遺留:Rollup 真正需要的是簡潔的有效性,而不是隱私——交易資料依舊會被公布,下一節會說到這一點。這裡沒有等待窗口,也無須假定善意:一批無效的交易,根本就生不出一份有效的證明。作弊不是在事後被逮住——而是在事前就被弄成了不可能。

  1. 樂觀式:假定有效,押上保證金,再讓一份詐欺證明在挑戰窗口內推翻任何謊言。運行便宜,但提款要等滿整個窗口。
  2. ZK 式:事前就用一張一層能即刻核驗的密碼學收據來證明有效性。生成證明的數學更重,但幾乎當即終局,且無須假定任何事。

真正的命門:資料可得性

下面這處微妙的地方,幾乎把所有人都絆倒過,值得放慢腳步細看。一份證明——無論詐欺還是有效性——能告訴你某個新狀態是*正確*的。可要真正用上這條 Rollup、要退出它、或要去挑戰它,世人就得知道那些交易到底是什麼。倘若定序器誠實地把一切都算對了,卻又拒絕公布底層資料,你的資金便可能在可證明的意義上是正確的,卻又徹底動彈不得——因為沒人能重建狀態來提款。只有正確、卻沒有資料,就像一個保險庫鎖著、餘額經過核驗、你卻永遠夠不著。

正因如此,一條真正的 Rollup 必須把它的交易資料發布回一層——在那裡資料是永久的,任何人都能讀取。這條獨一無二的硬性要求——資料可得性——正是把一條真正承襲了基礎鏈安全的 Rollup,與一個僅僅口頭保證會守規矩的「快表親」區分開來的分水嶺。這同時也是 Rollup 要付的、遙遙領先的最大一筆成本:一條 Rollup 的 gas 帳單裡,大頭並不是運算,而是把那一整堆資料寫到人人都看得見之處的代價。

權衡,與前方仍敞開的路

兩大陣營都沒能一舉勝出,因為各自都付出了實打實的代價。樂觀 Rollup 搭建起來更簡單、也更便宜,而且它幾乎原封不動地運行普通的 以太坊 程式碼——但它那扇挑戰窗口意味著,一筆完整退回一層的提款可能要花上約一週。ZK Rollup 幾乎當即結算、無須等待,但生成那些有效性證明在運算上很重,而要讓它們應付得了形形色色的每一種合約,一直是一場漫長而艱辛的工程攀登。如今兩者都已上線、都承載著真實的活動;哪一個更合適,取決於你更看重什麼——是即時終局,還是簡潔。

這裡有一些誰也尚未徹底解決的難題。今天的大多數 Rollup 仍只跑著一台單一定序器——一台孤零零、負責給交易排序的快速機器,方便歸方便,卻是一個中心化的控制點,社群正積極設法把它分散出去。而由於資料可得性主導著成本,眼下前沿的大量心力,都投在如何讓資料發布得更便宜、又不削弱那份保障上。這些都還是鮮活的研究課題,而非已成定論的事實——而這份坦誠,本身就是理解這一領域的一部分。

退後一步,整個形狀頗為優雅。一道曾經看似鐵律的三難困境,原來留著一道縫:讓基礎鏈保持小巧、緩慢、安全得近乎不可撼動,再把繁忙的活計往上挪到一條整批借用那份安全的二層網路去。基礎鏈於是成了一座只聽證明的最高法院;它之上的 Rollup 們,則成了生活真正上演的、熙熙攘攘的庭審現場。下一篇會把這個想法推到它的盡頭——那些從一開始就被搭成相互分離、各司其職之層的鏈,也就是關於區塊鏈能成為什麼的那幅模組化圖景。