header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

給初學者的Layer 2指南

閱讀本文需 19 分鐘
本文旨在向初學者說明什麼樣的區塊鏈纔是 Layer2。因此,爲便於讀者理解,完整性和嚴謹度不免有所犧牲。

原文標題:《給初學者的 Layer 2 指南》
原文來源:以太坊愛好者



在密碼學貨幣行業,每當牛市開啓,就會有鋪天蓋地的虛假消息。許多側鏈項目會誤導用戶相信它們是名正言順的 Layer 2 可擴展性解決方案。本文旨在向初學者說明什麼樣的區塊鏈纔是 Layer2。因此,爲便於讀者理解,完整性和嚴謹度不免有所犧牲。


通常來說,Layer 1 區塊鏈具有更高的安全性和流動性,Layer 2 區塊鏈則依賴 Layer 1 區塊鏈爲其提供安全性和流動性。


如果你是初學者,尤其是剛入行的小白,請先跟我看一個簡單的例子。


假設你在以太坊區塊鏈上有 100 Dai,你的 Metamask 上也顯示如此。但是,Metamask 是怎麼知道的?因爲它通過 Infura(以太坊節點即服務提供商)與以太坊點對點網絡進行通信。但是,擁有 100 Dai 究竟意味着什麼?它意味着,Dai 合約(運行在以太坊區塊鏈上的、由代碼和數據組成的軟件)有你的地址(如你在 Metamask 中所見的那樣),地址旁邊顯示的數值是 100。


再回到如何辨別新的區塊鏈是否是 Layer 2 這個問題上。假設有條新的區塊鏈叫作 Macau。出於某種原因(想要買某個東西,以更低的 gas 價格交易或獲得某種體驗),你想將你自己的 100 Dai 從以太坊轉移到 Macau 鏈上。


你會如何將這 100 Dai 轉移到 Macau 上?發送一封郵件給 Vitalik 的 Masternode,讓他幫你轉移嗎?當然不是,你其實是將你的 100 Dai 發送到以太坊區塊鏈上的另一個合約 ,也就是通常所說的 “存款” 合約(好比賭場的存款窗口)(譯者注:實際上是在 Dai 合約內將 100 Dai 從你的賬戶中轉出、然後轉入另一個賬戶;但正如作者所說,這是爲了便於理解)。


  • 第一步:將 100 Dai 發送到Macau 在以太坊區塊鏈上的存款合約。

Macau 鏈的驗證者/礦工可以看到你的存款,因爲他們一直在監控以太坊區塊鏈,尤其是 Macau 的存款合約。這時,其中一位驗證者/礦工告訴其他人:“嘿!大家快來看啊!有客戶上門了!快乾活!” 接着又對你說:“歡迎你,很高興你能加入我們。這是你的 100 個合成 Dai,是我剛剛挖出/驗證的 Macau 區塊裏的,希望你玩得開心。”


  • 第二步:你已經從 Macau 獲得了 100 張借據(好比是賭場籌碼)。憑這些借據,你可以取回你在以太坊上的存款合約中鎖定的 Dai。我們稱這些借據爲合成 Dai(簡稱 sDai)。

所謂的 “進入 Macau”,實際上是你所在的某個網站上的一些 Javascript 腳本在與 Macau 的點對點網絡通信。這就好比,當你在 Aave 網站上借貸或 Uniswap 網站上交易時,你 “進入了以太坊”:這些前端上的 Javascript 腳本爲你創建了借貸/兌換交易,然後通知你的 Metamask。看到 gas 費之後,你嚶嚶嚶了 5 分鐘,才點擊 “確認” 來簽署並廣播你的交易。你很熟悉這個流程。


Macau 也是一樣。如果 Macau 是以太坊的分叉(就像幣安的BSC 或 Avalanche 的 C-Chain ),那麼整個流程實際上也差不多,因爲你只需要使用 Metamask,不需要使用專屬錢包來簽署創建好的交易(因爲以太坊/BSC 等區塊鏈均採用相同的地址格式和密碼學簽名機制)。


  • 第三步:將 Macau 上的 100 sDai 用於交易、流動性挖礦、投資等。

假設你玩德州,將 100 sDai 的本金翻倍變成了 200 sDai(這多出的 100 sDai 是你從對手那裏贏來的,他們也在以太坊上的 Macau 存款合約中鎖倉了一筆 Dai)。


注意了,現在是最關鍵的部分 :


這時,考慮到安全性和流動性(或者不在乎那千把塊美元的 gas 費),你想取回本息並放到以太坊上。如果你隨時隨地都能從 Macau 存款合約(再強調一次,這個合約在以太坊區塊鏈上)中取回 200 Dai,且沒人能阻止你(只有當滿足這兩個條件時),Macau 就是 Layer 2 區塊鏈。


如果從理論上來說 Macau 的驗證者可以阻止你取回 200 Dai,或直接偷走它們(自己取走),Macau 就不是 Layer 2 區塊鏈,而是側鏈。


如果從理論上來說你可以取走更多資金(如 300 Dai),Macau 就不是 Layer 2 區塊鏈。


當我們提及可擴展性方案時,最終總會回到 “誰控制出口” 這一問題上?


如何將以太坊上的存款合約變得更加智能,來防止你、其他 Macau 用戶以及 Macau 的礦工/驗證者/運營方作弊呢?


可以想象得到,這並非一件容易的事,因爲這需要存款合約能夠實時瞭解 Macau 上的資金流向:假設 1 小時前你在 Macau 上玩德撲贏了 100 sDai,你就可以提取 100 Dai 到以太坊上,但是你可能在下一局就把這筆錢輸掉了!因此,合約要能瞭解所有這些情況,以及 Macau 的最新狀態。


狀態通道和 plasma 等早期解決方案的做法是: 將欺詐聲明和爭議解決邏輯編程到 Layer 1 上的存/取款合約中 。但是,它們都給用戶造成了沉重的負擔,例如:


  • 用戶必須時刻在線監控以太坊上的 Layer 1 合約,以便挑戰/制止/懲罰威脅其資產的惡意取款行爲。
  • 用戶必須存儲提出爭議所必需的數據。在狀態通道 1 方案中,這個數據通常是對手方的簽名,用來證明通道中的狀態變化(例如,“Alice:我保證向 Bob 支付 10 Dai” 或 “Charlie:我保證將車移動到棋盤上的 H5” )。
  • 只針對 plasma:用戶容易受到兩方面影響(a)需要存儲的數據大量增加,因爲用戶所需數據是 plasma 鏈全局狀態的一部分,而不只是狀態通道的對手方的數據 2 ,(b)數據扣留攻擊(data withholding attack),即,plasma 運營者(區塊生產者)試圖進行惡意取款,同時扣留用戶發起挑戰所需的數據。這進一步提高了 Layer 1 上取款安全性邏輯的複雜性。

直到 rollup 方案出現,才真正解決了這些棘手的問題。rollup 要求用戶退出時所需的一切數據都能在 Layer 1 上獲得。每當 Layer 2 上的狀態變化時,rollup 運營者都會在 Layer-1 上披露導致本次狀態變化的事務數據。因此,Layer 2上的執行和 Layer 1 上的數據更新是同步的。如果你想要了解更多關於 rollup 的信息,請閱讀這些文章:入門、進階、高階(zk-rollup)和高階(optimistic rollup)。


rollup 方案通過數學方法(ZKRU)或密碼學貨幣經濟(ORU)保障來確保所有相關參與方都是誠實的。如果 rollup 運營者消失或開始搗亂【濫發信息、審查或(在 optimistic rollup 方案中)實施欺詐】,用戶總是可以使用 Layer 1 上的數據來安全地取走資金。這些數據都存儲在以太坊 Layer 1 上的 rollup 合約中,因此用戶唯一需要信任的就是 Layer 1 會誠實地執行這些合約(其它 Layer 1 合約也採用同樣的信任假設,如 MakerDao MCD 和 Aave 等)。


正文結束 。


備註 1:


其它 Layer 1 鏈,如 NEAR、Polkadot 和 CosmosHub 等,也可以成爲以太坊的 rollup。它們只需要創建一個遵守 rollup 設計模式的橋樑,並將必要的數據發佈到以太坊上,就像其它 rollup 所做的那樣。


備註 2:


ZK Rollup 方案採用有效性證明來證明 rollup 狀態更新的正確性。每當 rollup 狀態更新,有效性證明都會在 Layer 1 上驗證。因此,這類方案可以杜絕欺詐行爲。 但是,數據還是要發佈到鏈上。這樣一來,如果 rollup 運營者消失,用戶依然能夠使用數據來自行提交取款請求。


備註 3 :


比特幣可以有 Layer 2 嗎?


不行。比特幣缺少編程元件和狀態管道系統,無法創建複雜的 Layer 1 合約來處理爭議和/或驗證有效性證明 3 。當然了,你也許聽到過,使用某某比特幣側鏈無需放棄代幣所有權之類的說法,千萬別信這些虛假營銷 4 。


“那閃電網絡呢?” 閃電網絡僅僅在理論上是 L2。但實際上,普通用戶幾乎都要信任一個第三方來監控整個系統(原因見上文關於狀態通道的部分),也就是說實踐中它並不是 L2。


Rollup 是唯一可以保證用戶高枕無憂的 Layer 2 可擴展性方案,因爲資金出口被以太坊 Layer 1 牢牢控制住了。


說回側鏈 :


如果 rollup 有這麼神奇,那爲什麼有人會選擇創建一個(a)需要額外的信任假設和(b)過去 7 年來始終得不到市場認可的側鏈 5 ?


側鏈之所以苟延殘喘,是因爲這類方案很容易構建 。很多項目方只是草草構建出一個側鏈,就可以拿風投,然後發行代幣 6 。


實際上,只需要一下午時間,你就可以構建出一條以太坊側鏈:你只需要在以太坊上構建一個類似智能錢包的基礎合約讓人們能夠存入資金,然後分叉 Geth(爲你的側鏈選一個新的鏈 ID 並重新構建即可)……瞧!這不就差不多了……呃,好吧,還差一點……你還得僱一些水軍,再請平面設計師設計一個高大上的網站……不過很多風投機構想必都很樂意幫你一把,它們可以部署大量機器人。


一些騙子會忽悠你說側鏈就是 Layer 2 方案,更有甚者還會宣傳說他們的側鏈比 rollup 更安全。然而,說到底,這只是一個很簡單的問題:資金出口由誰控制?在 rollup 方案中,資金出口是受到控制的,並由以太坊 Layer 1 的 EVM 保護。


本文要點 :


  • 目前,凡是宣稱 tps 超過 2000 並以可擴展性項目爲賣點的鏈都很可能是側鏈,需要用戶作出一些未公開的信任假設。
  • 等到 Eth4 數據分片上線後,Rollup 的 tps 可能會達到 1 萬以上。這類方案對數據的需求量很大。
  • Rollup 是唯一不需要用戶做出額外的信任和/或活性假設的 Layer2 可擴展性解決方案。
  • 側鏈之所以存在至今,是因爲這類方案可以在 1 小時內構建出來,通常是爲了募集資金併發行代幣。
  • 在使用一條鏈之前,請檢查資金出口以及你必須做出的信任假設,從而(a)確保這條鏈是安全的,以及(b)你可以安全取回資金。項目方通常會使用很多營銷話術和荒謬的論調來掩蓋項目爲提高性能而在安全性方面做出的權衡。
  • 其它 Layer 1 鏈可以充當以太坊的 rollup,它們只需要遵循 rollup 的設計模型,並將必要數據發佈到以太坊上即可。
  • 沒有活性假設的 Layer 2 無法構建在比特幣上,因爲它缺少必要的編程元件和狀態管道系統來獲得 Layer 1 的安全性保障。



-“缺點”一列通過不同顏色反映了問題的存在情況(即,我們可以通過設計在多大程度上規避這些問題)。例如,rollup 的數據要求可以輕易得到滿足(正如以太坊 2.0 以及 LazyLedger 等 "數據可得性即服務提供商" 所計劃的那樣),而無需犧牲去中心化,因爲數據是 “冷的”,即,全節點不會執行 rollup 數據,而且磁盤空間的成本很低-


腳註:


1:如果是狀態通道,根本沒有什麼 “Macau” 鏈,用戶之間直接進行交互。例如,你在以太坊上質押了一筆 Dai,和一羣小夥伴開了個狀態通道打德撲,然後開始交換信息來更新遊戲狀態,如 “我棄牌,以這個密碼學簽名爲證”。等遊戲結束後,你可以向以太坊上的合約提交這局德州的最新快照,然後取出你的餘額。支付通道和象棋通道也是同理。雖然狀態通道方案可以消除來自惡意側鏈運營者的風險,但是用戶依然需要保持警惕,以防對手方試圖使用已經過時的有效狀態發起取款。因此,取款通常有一個等待期,以便其他參與者驗證其有效性併發起挑戰。例如,如果你要求取款並提交一個有效證明來證明你贏了,其他玩家可能會挑戰你,利用你最近輸給他們的遊戲結果生存僞證明,並提交給合約。


2:以 Plasma Cash 爲例,用戶會繼承且必須存儲其收到的每個代幣的完整交易記錄,這需要耗費大量時間。


3:你可以這麼想:EVM 可以爲你提供基礎材料,讓你 “3D 打印” 出任何你感興趣的對象;比特幣的腳本好比是瑞士軍刀(感謝 Vitalik Buterin),只能用於有限的目的。


4:在這期節目中發言的 Nic Carter 並非這條側鏈的投資者,但是 Nic Carter 贊助了他的播客。


5:中心化交易所確實是側鏈,而且很受歡迎。用戶的資金並非像本文提到的那樣發送到 “存款合約” 內,而是發送到中心化交易所控制下的地址。但是,中心化交易所並沒有打着 “可擴展性解決方案” 的旗號標榜自己,用戶知道將資金存入中心化交易所是需要信任的。


6:當然也有例外。xDai 側鏈在以太坊社區非常流行,特別適合小額付款和快速實驗。但是,xDai 團隊和社區永遠不會進行虛假宣傳,來向用戶掩蓋安全性權衡問題的真相。


原文鏈接



歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交