Polygon 究竟算不算 Layer 2?

原文標題:《社區爭議:側鏈算不算 L2?》 | 撰文:ETH 中文站和 Dankrad Feist

StarkWare 聯合創始人 Uri Kolodny 認爲 Polygon 是側鏈,而非 Layer 2;Polygon 聯合創始人 Mihailo Bjelic 迴應 Polygon 是擴容方案,L2 並不比 PoS 鏈安全。

本文總結了社區中對於 Polygon 側鏈與 L2 的相關爭議討論,並且翻譯了 Dankrad Feist 的文章《關於 51% 攻擊,大家都搞錯了什麼》以便讀者從中參考對這些爭議的解答。

5 月 16 日,以太坊擴容解決方案 Polygon 的市值躋身加密貨幣市值前 20,隨後 StarkWare 的聯合創始人 Uri Kolodny 轉推祝賀,但同時他強調:「Polygon 是側鏈,而不是 Layer-2。L2 的安全性依賴於以太坊;而側鏈的安全性與以太坊的不相關 (甚至更低)。」 因此,社區圍繞 Polygon 到底是不是 L2 開始了激烈的討論。

針對 Uri Kolodny 的評論,Mihailo Bjelic 做了以下 回覆

首先,Polygon 並不是一條側鏈,它是一套擴容解決方案。其次 (也是最重要的),默認 L2 比 PoS 側鏈 (我們的是提交鏈 commit chain) 更安全是絕對錯誤的。爲了解釋其中原因,我將簡單地比較一下 Polygon 的 PoS 鏈和 StarkWare 的 zkRollup 或者 Validium。

我們的 PoS 鏈的確有自己的驗證者集,但這是完全無需許可的,且質押金額已達到 28 億美元。此外,該實現已經經過了實戰測試 (1400 萬個區塊且零事故)。

然而 StarkWare Rollup 只有一個 PoA 運營者。這個運營者可能會宕機,搶跑、審查用戶的交易等。並且,它由 STARKs 提供安全性,這是一個全新的、未經過驗證的密碼學。至於 Validium,情況甚至更令人擔憂。DeversiFi 所使用的 Validium 方案還依賴於一小組 PoA 數據可用性節點。這些節點可以合謀,通過拒絕訪問數據來阻止任何或所有用戶提取資金。

考慮到上述情況,我認爲那種默認 L2s 比側鏈 / 提交鏈更加安全的想法是錯誤的。

針對 Mihailo Bjelic 的回覆,社區分別從三個角度進行了討論:
1) Layer-2 與側鏈在安全性上的區別;
2) Layer-2 能否達到與 Layer-1 一樣的安全性;
3) Eth2 與側鏈在安全性上的區別。
而對於社區上的困惑,以太坊基金會開發者 Dankrad Feist 發佈了文章 《關於 51% 攻擊,大家都搞錯了什麼》,該文章基本上囊括了以上討論中的問題與解答。

首先,關於第一個問題,Dankrad Feist 表示不贊同,他說 L2 確實更安全,因爲作爲 L2 必須提供與基礎層相同的安全性。而 PoS 側鏈具有較弱鏈 (通常是側鏈) 的 安全性

James Prestwich 也參與了 討論:「與側鏈相比,L2 需要更少新的安全假設,但其安全性並非與主網完全一樣。」他指出 L2 與側鏈相比,具有以下不同的特點:

  • 依賴於非審查 (欺詐證明)
  • 依賴於新的密碼學和可信的設置 (有效性證明) 補充一點,Starks 不需要依賴可信的設置
  • 更高的硬件和帶寬需求

在下文中,Dankrad Feist 指出「側鏈不驗證有效性,僅驗證共識條件的絕大部分,並且其不具有數據可用性檢查。」關於側鏈的安全性問題,詳見文章中「側鏈如何運作?」那一部分。

至於 L2 能否達到與 L1 一樣的安全性。Patrick McCorry認爲,L2 的目標是儘可能地接近 L1 的安全性,但想要完全一樣,是不可能的:

  • 欺詐證明不是尚方寶劍,尤其是當發佈欺詐證明的費用太高時,其安全性就更小了
  • 同樣的,零知識證明也不是萬能的,會出現排序者掉線以及 L1 無法應對大規模退出的情況

他還提到,L2 解決方案可以歸結爲以下四點:

  • 數據可用性 (委員會 /rollup/ 等)
  • 狀態轉換完整性 (零知識證明 / 欺詐證明)
  • 提款完整性 (退出保證)
  • 協議活性 (排序者的選擇)

這個混合的方案難以完全達到 L1 的安全性。

回到下面的文章,Dankrad Feist 解釋了「區塊鏈的安全模型」,以強調爲何 L1 的安全性如此難達到。

那麼 Polygon 的 PoS chain 與 Eth2 的 PoS 機制對比呢?在討論中, Dankrad Feist 指出 ,在長期發展來看,PoS 側鏈會是一個很大的隱患。在 Eth2 中我們儘量移除大多數誠實假設,然而 PoS 橋接並不能做到。

以下是《關於 51% 攻擊,大家都搞錯了什麼》文章內容:

請大家原諒標題中的挑釁意味。顯然,並不是每個人都會誤解 51% 攻擊,但還是有相當一部分人沒有搞清楚,因此寫一篇相關的文章並無壞事。

區塊鏈圈內大概有一個神話:只要有人控制了比特幣、以太坊或者其他區塊鏈的超過 50% 的算力,那麼 ta 就可以對網絡做任何事。在 PoS (權益證明) 機制中,只要有人聚集了質押總額的 2/3,ta 同樣可以對網絡做任何事情。ta 可以轉走別人的資產,隨意發行代幣等等。

這種想法是錯誤的。以下是 51% 攻擊可以做的事情:

  • 攻擊者可以阻止用戶使用區塊鏈,即,攔截任何他們不喜歡的交易。這叫做審查。
  • 他們可以回滾區塊鏈的交易,即撤銷一定數量的區塊並更改其中的交易順序。

他們不能做到的是:更改系統的規則。這意味著:

  • 他們不能簡單地在區塊鏈系統規定之外發行新代幣;例如,比特幣目前爲每個新的區塊生產者 6.25 BTC;他們不能將這個數字變成 100 萬比特幣
  • 如果他們沒有某個地址的私鑰,他們就不能使用該地址的代幣
  • 他們生產的區塊不能比共識規則規定的大

這並非說明 51% 攻擊的後果不嚴重,這仍然是十分惡劣的攻擊。重新排序交易可以造成雙花,這是非常嚴重的問題。但他們能做的事情仍然有侷限性。

那麼包括比特幣和以太坊的大多數區塊鏈,他們現在如何確保這一點?如果有一名礦工挖出了違法共識規則的區塊會如何?或者,如果絕大部分質押者對一個違反共識規則的區塊簽名會發生什麼?

區塊鏈安全模型

有時人們聲稱最長鏈爲有效的比特幣或者以太坊鏈。這個說法不太完整。對當前鏈頭的正確定義是

  • 總難度最高的有效鏈。

因此,在客戶端接受區塊鏈應該用來記錄當前歷史數據這個條件之前,他們需要驗證兩個屬性:

  • 該區塊鏈必須有效。這意味着,所有狀態轉換都是有效的。比如,在比特幣上,所有交易只花費此前沒有花費的交易輸出,coinbase 僅接收交易費和區塊獎勵,等等。
  • 它必須是難度最高的鏈。通俗地說,這是一條最長鏈,然而「最長」不是以區塊的數量來衡量的,衡量的是總共花了多少挖礦算力在這條鏈上。

這聽起來可能有點抽象。我們有理由提出一個疑問,上述中的第一個條件由誰來驗證,即誰來驗證者區塊鏈上的所有區塊均應有效?因爲如果還是礦工驗證該鏈有效,那麼這只是重複工作了,我們並沒有真正從中獲得什麼。

但區塊鏈不一樣。讓我們分析一下爲什麼,先從一個普通的客戶端 / 服務器數據庫架構開始:

Polygon 究竟算不算 Layer 2?

請注意,對於典型的數據庫,用戶信任數據庫服務器。他們不會檢查迴應是否正確;客戶端確保已按照協議對其有效格式化,僅此而已。客戶端 (此處用一個空白的方塊表示) 是「非智能的」:它無法驗證任何內容。

但是在區塊鏈的架構中,是這樣的:

Polygon 究竟算不算 Layer 2?

我先來總結一下上圖包括的組件。首先礦工 (或質押者) 生產區塊鏈。P2P (點對點) 網絡確保每個人都能夠使用有效的鏈,儘管存在一些不誠實節點 (你需要連接到至少一個誠實且連接良好的 P2P 節點,以確保自己始終與有效鏈保持同步)。最後,客戶端將交易發送至 P2P 網絡並從網絡中的其他節點接收最新的鏈更新 (或者是完整的鏈,如果它們正在同步的話)。客戶端實際上是網絡的一部分,它們也將通過轉發區塊和交易來做貢獻,但在這裏不是那麼重要。

重要的部分是,用戶正在運行一個全節點,上圖中由客戶端中的柱體表示。只要客戶端獲得一個新的區塊,就像任何其他節點一樣,無論是一個礦工還是 P2P 網絡中的一個節點,這些客戶端都將驗證該區塊是否爲有效的狀態轉換。

如果這不是一個有效的狀態轉換,該區塊則會被忽略。這就是爲什麼網絡中的礦工試圖挖掘無效的狀態轉換是沒有意義的。所有人都只會忽略它。

許多用戶運行自己的節點,與以太坊或比特幣等區塊鏈交互。許多社區已將此模式作爲其文化的一部分,並且非常強調每個人都運行自己的節點,由此他們就成爲驗證過程的一部分。確實,讓大多數用戶 (尤其是那些質押了大筆資產的用戶) 運行全節點是非常重要的;如果大多數用戶變得懶惰,那麼礦工可能會突然被誘使生產無效區塊,如此一來該模型將不再適用。

打個比方:三權分立

這有點像民主制中的三權分立 —— 政府有不同的分支,而僅僅因爲你在其中一個分支擁有多數席位 (比如立法機構),並不意味著你可以做任何你喜歡的事以及藐視所有的法律。同樣,礦工或質押者有權排序區塊鏈中的交易;而他們無權輕易對社區制定新規則。

But do all blockchains work like this? 但是所有區塊鏈都是這樣運作的嗎?

這是個好問題。需要注意的一個重點是,以上所說的模型只有在全節點易於運行的情況下才會奏效。作爲普通用戶,如果運行全節點必須要花 $5000 購買另一臺計算機,並且一直需要 1 GBit/s 的網絡連接,那麼 ta 根本不會選擇運行全節點。儘管 ta 可以在某些地方達到該網絡要求,但是永久地保持以運行自己的區塊鏈節點很可能不那麼方便。在這種情況下,普通用戶很有可能不會選擇自己運行節點 (除非 ta 的交易非常有價值),這意味著 ta 將信任其他人來爲其執行該操作。

假設有一條鏈,其運行成本太高,以至於只有質押者和交易所會運行全節點。你剛剛改變了信任模型,然後大多數質押者和交易所能夠聚集在一起並改變共識規則。對於這一點,用戶是沒有任何爭議的 —— 如果用戶對該鏈完全沒有控制權,那麼他們無法發起分叉。他們可以堅持使用舊的規則,然而,除非他們開始運行全節點,否則,他們根本不知道自己的請求是否在自己想要的鏈 (滿足其共識要求的鏈) 上得到了迴應。

這就是爲什麼每當出現提高以太坊或比特幣的區塊大小的討論時,總會引起大量的爭論 —— 區塊大小每提高一次,都會增加大家自己運行節點的負擔。這對礦工來說不是什麼大問題 —— 與實際的挖礦操作相比,運行一個節點的成本要小得多 —— 因此,這將權力的天平從用戶轉移到了礦工 (或質押者) 身上。

輕客戶端如何運作?

但是,如果用戶只是想用加密貨幣來買咖啡,該怎麼辦?Ta 需要在手機上運行全節點嗎?

當然,沒人希望需要這樣做,用戶也不希望。那麼這時候就是輕客戶端發揮作用的時候了。輕客戶端是較簡單的客戶端,它們不需要驗證整條鏈 —— 它們僅驗證共識,即總難度或者已投票的質押金額數量。

換句話說,輕客戶端會被誘使跟隨一條包含無效區塊的鏈。對此有補救措施,例如數據可用性檢查和欺詐證明。據我所知,目前還沒有任何一條鏈實現了這些,但至少以太坊未來會這樣做。

因此,使用具有數據可用性檢查和欺詐證明的輕客戶端,用戶在不需要運行全節點的情況下,也可以使用區塊鏈的安全模型了。這是我們最終的目標,即任何智能手機都能夠輕鬆地運行以太坊輕客戶端。

側鏈如何運作?

側鏈是當前的熱門話題。它們似乎可以提供一種簡單的擴容方案,不像 rollups 那麼複雜。簡而言之:

  • 創建一條新的 PoS 鏈
  • 在自身和以太坊之間創建一個雙向橋接
  • 重點!請注意,側鏈的安全性幾乎完全依賴於橋接 —— 這是一種允許某條鏈讀取另一條鏈的狀態的構造。畢竟,如果攻擊者能夠欺騙主鏈上的橋,讓橋接鏈上的所有資產都爲其所有,那麼即便 PoS 鏈上的全節點提出異議也沒辦法了。所以一切都取決於橋。

不幸的是,橋的狀態與輕客戶端相同。它們不驗證有效性,僅驗證共識條件的絕大部分。然而,側鏈有兩個方面比輕客戶端更糟糕:

  1. 橋接用於價值非常高的交易,其中大多數用戶會選擇一個全節點,如果可以的話
  2. 不幸的是,我們沒有辦法加固橋接,而我們可以對輕客戶端這樣做 —— 原因就是它們無法驗證數據可用性檢查

第二點很微妙,可以花一到兩篇文章講解一下。但是簡單來說,橋接不能做數據可用性檢查,而沒有數據可用性檢查,欺詐證明也幾乎沒用了。而如果使用零知識證明,可以要求橋接打包所有有效區塊的證明,從而改善這個問題 —— 不幸的是,這樣還是有可能會受到數據可用性攻擊,但也是一種改進了。

總言而止,側鏈的安全模型與以太坊和比特幣等區塊鏈不同,而且要弱得多。它們無法防止無效的狀態轉換。

這些問題都需要靠分片來解決嗎?

實際上,所有這些都與分片有很大的關係。我們之所以需要分片來進行擴容,是因爲只有分片能夠實現這樣的擴容方式:既不需要提高運行全節點的門檻,同時又能夠儘可能地維護區塊鏈的完整安全性保證。

但如果有人撤銷所有歷史數據呢?那麼 ta 還是可以盜取所有比特幣 / ETH / 等

理論上說,在一條非檢查點的 PoW 鏈上,可以通過回滾所有交易來盜取比特幣。是的,你不能發行一萬億個比特幣,但你仍然可以盜取現存的所有比特幣,這也很好,對吧?

我認爲這一點非常理論化。社區會接受一個修改其好幾年數據 (甚至只是好幾個小時) 的分叉的機率幾乎爲零。在所有可能的分叉中,都會出現大規模的爭搶,很快就會得出結論並拒絕分叉,只同意有效的鏈爲現存的那條鏈。

有了 PoS 和敲定,這種機制將變得形式化 —— 客戶端永遠不能回滾已敲定的區塊。

本文不構成投資建議,虛擬貨幣波動大請謹慎小心

掌握虛擬貨幣、區塊鏈大小事

發表迴響