昨天講述了以太坊的Layer 2的概念,還沒看的可以點這邊觀看,而知道了以太坊的Layer 2後,今天我們來看看近年以太坊Layer 2的主流Rollup是要怎麼做呢?
之前講過說Rollup是把一大包的交易打包成一包,將他當作是一次交易上鏈,因此這裡交易就有分成鏈上與鏈下兩種,鏈下的交易就是我們一般在做的交易,像是我匯給你幾塊、你給我幾元這樣的,而鏈上的交易主要是用來存證,意思是他只會把交易最後的結果放上去,並且把他當成是一個證明,這個證明可以證明這些鏈下交易是真的有發生過的,有了這個證明,假如有一天你要將錢拿回去鏈上時,就可以透過這個證明搭配著鏈上的智能合約將屬於你的錢在鏈上領走,這樣的好處在於所有的計算都發生在鏈下,這些是不用花手續費的,而在鏈上只要改變各個帳戶的狀態就好,這樣不僅能降低手續費,還能把手續費平均分攤給各個有做交易的使用者上,那要由誰來打包呢?基本上只要有一個有公信力或者擁有足夠資金的人出來做管理就好,由他負責打包所有的交易,這就是一剛開始Rollup的雛型,也就是所謂的 「Optimistic Rollup」 ,Optimistic去查字典可以發現他的意思是「樂觀的」,這種Rollup有多樂觀呢?這種Rollup樂觀的認為負責打包的那個人絕對不會包入假的交易,但這可能有點太樂觀了一點,所以他會加上一些限制,去限制負責打包的那個人,首先所有交易內容都需要公開,不一定都需要公開在鏈上,但如果是公開在鏈上的話,通常會搭配資料壓縮以及當作呼叫智能合約的參數方式公開,因為這樣可以不用佔鏈上空間,便可以減少鏈上的手續費,公開這些交易內容後,每次要打包交易上鏈時,都要質押一定數量的金錢,這些錢不能馬上拿回去,要等到在一段時間過後,負責打包的人才能把這些錢拿回去,而在這段期間要做什麼呢?這段期間被稱作是 「挑戰期」(Challenge Period) ,所有在鏈下做交易的人都可以對打包的人打包的交易提出挑戰,因為在鏈下做交易的人肯定知道自己做哪些交易,也會知道自己的真實餘額是多少,假如鏈上證明有錯,自己便可以提出自己在鏈下的證明去挑戰他,一旦挑戰成功,打包的人就拿不回該次質押的錢,而且該次打包便會作廢,Optimistic Rollup便是透過這種方式,來防止打包的人造假,而且也成功的實踐了Rollup。
Optimistic Rollup方式非常直觀,也非常容易實作,基本上大部分有涉及到Rollup的Layer 2項目都是基於這種方式進行開發,當然還有這種Rollup的延伸,但是Optimistic Rollup有個還蠻嚴重的缺點,就是他需要有一個漫長的挑戰期,一旦交易資料上鏈,使用者還得等到挑戰期結束,這筆交易才會確實的存在,如果有人一直挑戰成功,就代表著鏈下交易真正存在的日子會愈來愈遙遠,所以必須得要解決挑戰期這件事情,有沒有什麼方式可以讓打包交易的人每當他一打包上鏈,就馬上可以證明出這些交易內容都是正確的呢?於是為了解決這個問題,新的Rollup概念就產生了,他並不需要漫長的挑戰期,他只要一上鏈,便可以證明所有鏈下交易合法,他是誰?他又是怎麼辦到的呢?這些問題就等到明天再來解答了!
肯定是zk xxxxUp
但我覺得這是一種取捨以及責任轉移
明天的zk xxxxUp, 要耗費的內部成本遠遠超過Optimistic Rollup所需耗費的內部成本就是了
有一好沒兩好, Optimistic Rollup就是有漫長的挑戰期
雷N大哥,別爆我雷啊~
不過的確,Optimistic Rollup跟ZK Rollup真的是各有優缺,原本打算細講的,不過想說我的主題是ZK Rollup,我就只講講這整個脈絡的經過,跟ZK Rollup不太相關的就不再多提了,不然原本是想提提混個幾天,但最近有點其他想法,想說在最後幾天搞一波大的。