📜 [專欄新文章] 從 Rollups 來聊聊以太坊 Layer2 的演進
✍️ Kimi Wu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Photo by Clark Van Der Beken on Unsplash
去年 Defi summer 的熱潮後,以太上 Defi 應用呈現爆炸性成長,造就高昂的交易手續費,為了有更快的交易速度及可負擔的交易費用,人們對側鏈、Layer2 的需求更加強烈。Rollups 是 Layer2 的一種技術,在今年相當熱門,幾個耕耘已久的專案 zkSync、Optimism、Arbitrum 等也開始廣為人知。今天想來聊聊以太坊上 Layer2 技術的演進。
State Channel
state channel 最一開始是建立在 Bitcoin 上,最廣為人知的就是 lightning network。簡單來說,就是兩方在私下建立一條可以互相轉帳的通道,轉帳完畢後把通道關閉,接著將交易後的狀態更新到鏈上。若交易一筆後即關閉通道,那交易成本就跟在鏈上一樣,所以在實務上,通道一直開著(或是一段時間),交易數筆、數百筆後再上鏈更新狀態,藉此平均每筆的交易手續費就大幅降低。也因為只需通道雙方驗證交易內容,交易速度能大幅提升,讓小額支付能夠實現,就不需等10分鐘(Bitcoin)後交易才會被打包,甚至要等6個區塊的時間。而最早在以太上的 state channel 是 Raiden。
對於 Raiden 技術有興趣的可以參考這篇文章。
Plasma
Plasma 於2017年8月由 V 跟 Joseph Poon (Lightning Network的創始人之一)所提出,概念上是可以有鏈中鏈中鏈(就是Layer2 → Layer3 → … LayerN),藉此可達到百萬級甚至更高的交易量,不過概念太美好,沒人知道怎麼實作。
隔年1月 V 提出了 Plasma 的第一個版本 Plasma MVP,是以 UTXOs 模型的設計,接著3月提出了第二個版本 Plasma Cash,同年(2018)Plasma 的提案數呈現著爆炸性的成長(絕大部分都是基於 Plasma MVP 跟 Plasma Cash 做改進)(如下圖),強大的社群力量,讓大部分關鍵的問題在同年年底都找到了解答。也為之後的 Optimistic Rollup 打下了基礎。
而較著名的開發團隊,除了 EF 出來的 Plasma Group 外,還有 OmiseGo 跟 Matic(現在的 Polygon)。
對 Plasma 技術有興趣的,可以參考這篇、這篇跟這篇
https://ethresear.ch/t/plasma-world-map-the-hitchhiker-s-guide-to-the-plasma/4333
Plasma 看似一切美好,但因為資料的可取得性(data availability)的問題,使得在使用者體驗上有點糟糕。
Plasma 的所有交易資料都在 Plasma 鏈上,而 Plasma 鏈的礦工(即operator)只需繳交 Merkle root 到 L1 的合約作公證就好。因此若 operator 作惡,在 Plasma 鏈上交易者,就需有能力證明 operator 作惡。
在 Plasma 設計中有”所有者”的概念(UTXOs 的設計中,收款者需要到拿送款者的轉出證明,才能動用這筆款項,轉出證明只有收款人會擁有),如果該所有者不關心自己的資產,就可能造成資產無效的結果(account-based 的設計,若你不理你的帳號,別人一樣可以轉帳到你的戶頭中)。因此每個交易者須有能力自行提出證明,無法委託第三方。
而要證明這件事,用戶需要把 Plasma 鏈上的交易都下載下來,才能證明 operator 做了一件不合法的行為,也才能產生詐欺證明(fraud proof)到 L1 上的合約來證明 operator 作惡。而這個送出的詐欺證明,必需要被確保可以安全地送到 L1 上的合約被執行,因此需要有一段挑戰期,讓使用者可以下載及驗證資料(或是網路塞車造成詐欺證明無法被合約執行)。
題外話,Eth 2.0 light client利用了 ECC (Error Correction Code)的原理,所以只需要部分資料就可以驗證正確性。
Rollups
同年(2018) 9月,在支線專注隱私性的開發的 Barry Whitehat 提出了 zk Rollup,隨後 V 也在以太坊研究員論壇發了一篇文章,解釋 zk Rollup 是如何運作的,並以On-chain scaling to potentially ~500 tx/sec through mass tx validation 為標題,也因此開啟了 Layer2 新的一頁。隔年(2019)三月,Matter Labs 獲得了 EF 的 grant 將 zk Rollup 產品化,也就是大家所知的 zkSync。
所謂的 rollups,一樣是在 Layer2 上做交易,不同的是 L1 上會記錄每一筆的交易紀錄。什麼!如果每一筆交易紀錄都上鏈,跟一般 L1 交易有什麼不同?想了解細節可以看這篇。簡單來說,在合約裡用了一顆樹來記錄每個帳號的狀態,樹的第幾片葉子(index)代表一個帳號地址,因此帳號就從20 bytes 的地址變成了幾個 bytes 的 index。以 ZK Rollups 來說,交易都是在 Layer2 被驗證過的,所以簽章資訊(65 bytes)也不用上鏈,Optimistic Rollups 會利用簽章聚合的技術,數百個簽章最終會被聚合成一個。因此,交易資料從原本100多 bytes 變成了10幾個 bytes。因為交易紀錄都 ”放上鏈“,資料可取得性也就不是問題了。
”放上鏈”指的是利用 calldata 的方式放在鏈上,並非一般認知的寫進合約裡。非0值的 calldata 每 byte 需要耗費 16 gas,而合約寫進一個 32bytes 的資料需要花 20,000(新增) or 5,000(修改) gas,相當於每個 byte 的成本為625 or 156 gas,約為 calldata 的 40 or 10倍。
同年(2019)六月 John Adler 在以太坊研究者論壇提出了Minimal Viable Merged Consensus,也就是大家熟知的 Optimistic Rollups 的原型,接著 Plasma Group 基於John Adler 的提案,提出了 OVM,從此 Layer2 上除了單純的轉帳外,還可以執行合約,也奠定了 Rollups 在 Layer2 的地位,開啟 rollups 的新世代。
StarkWare 團隊建立了可評估的數學模型,驗證了 calldata 的成本從64 gas 降到 16 gas並不會對鏈的安全造成危害,提出了 EIP-2028(在 Istanbul 上線),也是推動 rollups 可行性的重要一環。
Validity Proof v.s. Fraud Proof
Optimistic Rollups 跟 ZK Rollups 最近有很多文章在介紹跟比較,這邊就不贅述。這邊想聊的是資料的有效性,這篇文章解釋地很好,這裏擷取部分敘述。ZK Rollups 保證了上鏈的資料都是正確的,資料必須被驗證過是合法的(例如沒有被雙花)才會改變使用者的狀態(例如 balance),跟現在各個主鏈的設計是一樣的,稱作有效性證明(Validity Proof),這種設計假設大家都是壞人,要通過驗證才會相信你,確認資料是百分之百的正確聽起來很理所當然,但是背後要維護資料的正確性,需要相當高的成本。
Optimistic Rollups 則是相反,假設大家都是好人,送上鏈的交易都接受,當發現有人作弊,再靠檢舉機制來更正狀態,這稱作詐欺證明(Fraud Proof)。這樣的機制系統維護成本較低(L1 上不需要驗證每一筆資料的正確性),但需要多一個爪耙子的角色來維護系統的安全,也就多一個系統潛在的風險。而要確保爪耙子有足過的時間反應,就不能讓使用者即時地離開系統,這是 Optimistic Rollups 最被詬病的一點,提款要等七天(現在有第三方流動性提供者,使用者可以請第三方流動性提供者預付使用者的提款。使用者支付手續費來換取快速提款的服務,而流動性提供者則承擔資產鎖住七天的風險來賺取手續費。不過在 protocol 層以安全性為主要考量,還是需要較長的挑戰期)。
ZK Rollups 的實作上,也有數個小時的提款期,不過那是基於成本考量,而非安全性。
此外對照於 Plasma, rollups 的設計是 account-based,交易也都公開在鏈上,每個人都可以參與監督及提出詐欺證明。
ZK Rollups v.s. Optimistic Rollups
ZK Rollups 從資料的有效性來看勝過 Optimistic Rollups,離開系統時不需要額外的挑戰期,能即時提款離開系統,不過付出的代價就是交易延遲上鏈。因為產生 zkp 證明需要龐大的運算量,產生一次證明,大約需要10 ~ 20分鐘,所以說在 Layer2 上做一筆交易,10分鐘後你的交易才是有 L1 的安全性。
為了能盡早得知發出的交易是否完成,實作上會把完成的交易先丟上鏈,等zkp 證明產生後再上鏈驗證其正確性,若驗證成功,則交易視同有 L1 的安全性。
但是在通用性上,Optimistic Rollups 沒有複雜的 zkp 電路的限制,對於合約的支援度上更好,而且 zkp(SNAKRKs)在使用前需要一個盛大的啟用典禮(trusted setup ceremony)。
zkSync
zkSync 1.0 在去年(2020) 六月上線,因為不能執行合約,使用的專案並不多。同年的年初,Matter Labs 已經默默在開發一種新語言 Zinc,是可以在 zkSync 上開發合約的語言。年底,與 Defi 專案 Curve 合作,發表了在 zkSync上可以跑基本版的 Curve(兩幣交換)。今年(2021)三月,Matter Labs 發表了令人振奮的消息,zkSync 支援 EVM!只需要部分修改現有的合約就可以部署到 zkSync 上,測試網今年五月已經上線,主網預計8月上線。不過目前測試網上的交易量非常地少,相信在初期還是有相當多問題或是困難,以短期來看,Optimistic Rollups 陣營的速度跟支援度略勝一籌,不過個人相信長期會是 ZK Rollups 的世代(私心認為 lol),但最終還是由生態系的大小來決定贏家。
在 ZK 這個陣線上有延伸出不同的設計,為了加快速度及減少上鏈成本,StarkWare 提出了 Validium 的概念,資料不上鏈但使用 zkp 確保資料的正確性,像是 StarkWare 的 Volition 跟 Matter Labs 的 zkPorter 都是同樣概念的實作,不過不是本篇的重點,就不多解釋。
ETH 2
V在2020年10月提出了 A Rollup Centric Ethereum,rollup 也因此進到 Eth2 的規劃中。Eth2 的設計中 shard chain 是資料層,而在 phase 2 後才有執行層(也就是才能執行合約),V 的提案 除了讓 shard chain 當資料層外,也會內建 rollups 的邏輯。至於會採用哪種 rollups 目前沒看到結論,不過 V 本人是傾向 ZK Rollups。如果成真,那未來數百個 rollups 之間的溝通,將會是另一個挑戰 。
專案比較
ZK Rollups 有目前這幾個較知名的專案: zkSync(Matter Labs)、 Hermez(Iden3)、 Loopring(Loopring)、 StarkNet(StarkWare)跟 Aztec(Aztec)。
Optimistic Rollups 目前幾個專案 Optimism(Optimisim,前Plasma Group 成員)、 Arbitrum(Offchain Labs)、 Fuel(Fuel)。
這是目前幾大 rollups 的生態系(今年3月時的統計),比較值得一提的是,Uniswap 團隊因為社群的投票,也將會在 Arbitrum 上面部署,對於整個 Arbitrum 的生態,相信有很大的影響。
https://www.chainnews.com/articles/872971457746.htm
感謝 NIC Lin 及 Chih-Cheng Liang 的審查跟建議。若有錯誤或不同觀點,歡迎指教。
從 Rollups 來聊聊以太坊 Layer2 的演進 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有6部Youtube影片,追蹤數超過4萬的網紅ママライフチャンネル,也在其Youtube影片中提到,親子で作るのもとっても楽しい!「ロールサンド」の作り方を2種類紹介します! 野菜やフルーツなど、好きな具材でアレンジも無限大!カラフルで、見た目もかわいいです♥ 100均グッズでラッピングすれば、お弁当やパーティーメニューとしても大活躍☆ 朝ごはんやランチ、春のお花見やピクニックにもおすすめなので、...
「rollups」的推薦目錄:
- 關於rollups 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於rollups 在 動區動趨 BlockTempo - 由社群而生的區塊鏈媒體 - Media for Blockchain Facebook 的精選貼文
- 關於rollups 在 動區動趨 BlockTempo - 由社群而生的區塊鏈媒體 - Media for Blockchain Facebook 的最佳貼文
- 關於rollups 在 ママライフチャンネル Youtube 的精選貼文
- 關於rollups 在 MosoGourmet 妄想グルメ Youtube 的精選貼文
- 關於rollups 在 美味生活HowLiving Youtube 的最佳貼文
- 關於rollups 在 ROLLUPS - The Ultimate Ethereum Scaling Strategy ... 的評價
- 關於rollups 在 Rollup time-series data in Rails - GitHub 的評價
- 關於rollups 在 Index Rollups - Open Distro Documentation 的評價
rollups 在 動區動趨 BlockTempo - 由社群而生的區塊鏈媒體 - Media for Blockchain Facebook 的精選貼文
#以太坊 #Gas費用 #手續費大降
【以太坊手續費創 1 月以來新低!平均交易費僅 4.9 美元,兩週前才創 70 鎂紀錄】
⚡以太坊的平均交易費用昨日降至 4.915 美元,是今年 1 月 1 日以來最低紀錄,也已低於比特幣區塊鏈的 7.231 美元。
就在兩週前,以太坊平均交易費用才剛創下近 70 美元的歷史新高......
-
#同場加映
① 「EIP1559沒那麼神!」以太坊錢包 MyCrypto 執行長批:ETH飆漲時,交易費用照樣暴增
https://pse.is/3fwtnc
② V神:以太坊 Rollups「快來了」!無須分片就可擴容百倍,最高達4,000TPS
https://pse.is/3g3k8p
①+② Polygon 開發套件 SDK 初登場!支持兼容以太坊的 Layer 2、側鏈
https://pse.is/3bpkxg
-
✅ 即時新聞鎖定 #動區Telegram
https://t.me/blocktemponews
✅ 每日新聞精選訂閱 #LINE:
https://line.me/R/ti/p/%40kgx9780p
✅ 右轉動區 #千人投資討論群:
https://line.me/ti/g2/htySqS7SoKOuGGFx4Gn9dg
rollups 在 動區動趨 BlockTempo - 由社群而生的區塊鏈媒體 - Media for Blockchain Facebook 的最佳貼文
#Layer2 #dYdX #去中心化交易所
【dYdX 推出 Layer 2 協議主網:透過整合 StarkWare,實現 L2 永續合約交易】
🆕/ StarkWare zkSTARKS 技術是一種 ZK-Rollup 技術,能夠極大提高 dYdX 的交易結算能力,同時依靠底層以太坊區塊鏈提供安全性。
整合 StarkWare 之後,dYdX 可以將 STARK 證明與鏈上數據可得性相結合,從而徹底實現免託管。Layer 2 系統會對交易進行結算,並定期發送零知識證明至以太坊上的智能合約,來證明 StarkWare Layer 2 系統中的狀態轉換是有效的。/
-
#同場加映
①L2大戰|以太坊現階段價值大幅外溢,這六個「Layer2 項目」或是最大受益者
https://pse.is/3e8arn
②V神:以太坊 Rollups「快來了」!無須分片就可擴容百倍,最高達4,000TPS
https://pse.is/3dhxsk
-
✅ 即時新聞鎖定 #動區Telegram
https://t.me/blocktemponews
✅ 每日新聞精選訂閱 #LINE:
https://line.me/R/ti/p/%40kgx9780p
✅ 右轉動區 #千人投資討論群:
https://line.me/ti/g2/htySqS7SoKOuGGFx4Gn9dg
rollups 在 ママライフチャンネル Youtube 的精選貼文
親子で作るのもとっても楽しい!「ロールサンド」の作り方を2種類紹介します!
野菜やフルーツなど、好きな具材でアレンジも無限大!カラフルで、見た目もかわいいです♥
100均グッズでラッピングすれば、お弁当やパーティーメニューとしても大活躍☆
朝ごはんやランチ、春のお花見やピクニックにもおすすめなので、是非作ってみてくださいね!
好きなお菓子を詰めて、100均グッズでかわいくアレンジ!
お菓子ボトルの作り方はこちらから!
https://youtu.be/A0TnUlyOIWY
#簡単レシピ #100均 #家で一緒にやってみよう
▼mamalife Instagramはこちら
@mamalife_official
ーーーーーーーーーーーーーーーーーーーーー
*出演者*
○オフィシャルモデル
あこちゃん・ママ
Instagram→@akoako0403
○MC/池田真子 Twitter→@im757
YouTube→ https://goo.gl/7l45Ja
Instagram→ @Mako_Ikeda
ーーーーーーーーーーーーーーーーーーーー
☆ママライフおすすめ動画もチェックしてね!☆
■マクドナルドのハッピーセットを爆食い!ピカちんキット&しまじろうのおもちゃを開封!何が出るかな?
https://youtu.be/BApPP--c0eU
■子供の食事どうしてる?ママ座談会でトーク!好き嫌い克服法や子供が喜ぶレシピも紹介!
https://youtu.be/yraWjX4SKQU
Support by TC4MATRIX
![post-title](https://i.ytimg.com/vi/MlcWiSgRQaY/hqdefault.jpg)
rollups 在 MosoGourmet 妄想グルメ Youtube 的精選貼文
#FruitSandwich #Rollups #くるくる #フルーツサンド #Strawberry
We made rolled up fruit sandwiches using eight whole slices of bread! After we took off the wrap, the sandwiches were kind of floppy, like the popular character, Gudetama. This looks healthy, but it actually isn't
Recipe
1. Line up an eight slices from a loaf of bread (each slice with a thickness of about 1.5 cm). We used a soft type of bread for this recipe, but it would be alright to use ordinary bread. If the crust is hard, make sure to slice it off beforehand.
2. Stack the slices of bread about one cm and use a rolling pin to press them down and connect them together.Use the rolling pin to press down on both ends so that they are easy to wind.
3. Coat (2) with canned yellow peach syrup.
4. Mix 300 ml of fresh cream and 15 gm of sugar to make a foamy mixture.
5. Coat (3) with (4)
6. Slice fruits of your choice and put them on (6)
7. Roll them from the corners
8. Cover it with a wrap and let it cool for about two hours in the fridge.
9. Slice it up with the wrap on.
10. Enjoy! We think it would have been better if used ordinary bread, wrapped it up more tightly and let it cool like a roll cake (we just cooled it for an hour). The fluffy bread we used had a soft crust -- probably too soft for this recipe.
8枚切りの食パンを一斤まるまる、くるくるくると巻いたフルーツサンドイッチ作りました。ラップをとったら「ぐでたま」みたいにぐでっとしちゃいました。一見ヘルシーっぽいですが、そんなことはないのでご注意を。
*レシピ*
1.8枚切り(厚さ 1.5センチ)食パンを並べる。今回、柔らかい食パンを使いましたが、普通の食パンでも作れます。パンの耳が固い場合は切り落としてから作ってください。
2.パンとパンを1センチほど重ね、麺棒で押さえ、つなげる。両端も巻きやすいように麺棒で押さえる。
3.黃桃の缶詰のシロップを2にぬる。
4.生クリーム 300mlに砂糖 15gを加え泡立てる。
5.4を3にぬる。
6.好みの フルーツを切り、5にのせる。
7.端から巻いていく。
8.ラップに包み、冷蔵庫で2時間程冷やし落ち着かせる。
9.ラップごと切り分ける。
10.いただきます。もっとギュッと包んで、ロールケーキの様にしっかり冷やし(1時間しか冷やさなかった(汗))、普通の食パンで作れば、もっと上手くできると思います。耳まで柔らかの“ふんわり食パン”は今回のレシピには、ちと柔らかすぎました。
![post-title](https://i.ytimg.com/vi/HJqRTrd4ZZg/hqdefault.jpg)
rollups 在 美味生活HowLiving Youtube 的最佳貼文
吐司與食材的簡單結合,清爽又無負擔,不但可以當作正餐,也很適合當作午茶輕食或小點心唷!
材料
去邊吐司………4片
藍莓果醬………2大匙
牛肉火腿………4片
起司片………4片
小黃瓜………1條
★完整食譜請至:http://bit.ly/2rpmr5i
【相關影片】
培根菇菇舒芙蕾 https://youtu.be/nzF4SAXrRPU
鬆餅三明治 https://youtu.be/MtUN9zIMGHY
那霸蝦天婦羅蛋飯糰 https://youtu.be/iARQcWuFS44
★現在就訂閱美味生活頻道,收到第一手的美味資訊:http://bit.ly/1PochtG
【美味生活】
矽谷美味人妻FB:https://www.facebook.com/kthu1031?fre...
美味生活HowLiving FB:https://www.facebook.com/HowLiving1/
美味生活Howliving官網:http://www.how-living.com
美味生活SHOP:http://bit.ly/1kozBuy
![post-title](https://i.ytimg.com/vi/nbFHC9GIf7Q/hqdefault.jpg)
rollups 在 Rollup time-series data in Rails - GitHub 的推薦與評價
gem "rollups". For Rails < 6, also add: gem "activerecord-import". And run: bundle install rails generate rollups rails db:migrate ... ... <看更多>
rollups 在 Index Rollups - Open Distro Documentation 的推薦與評價
Index rollup lets you periodically reduce data granularity by rolling up old data into summarized indices. You pick the fields that interest you and use index ... ... <看更多>
rollups 在 ROLLUPS - The Ultimate Ethereum Scaling Strategy ... 的推薦與評價
This is the holy grail of scaling as it allows for deploying all of the existing smart contracts present on Ethereum to a rollup with little or ... ... <看更多>