NFT 項目如何選擇適合自己的平台?本文分析了一些主流平台的共識安全和橋接安全,供 NFT 項目開發者以及用戶參考如何取捨。

原文:A Guide to NFT Platform Security(Immutable X)

編譯: EthereumCN

原用標題: NFT 平台安全指南

封面: Photo by Shubham Dhage on Unsplash

對於任何一家軟件公司來說,安全問題從根本上來說都是一個困難和不對稱的問題。在這一方面沒什麼靈丹妙藥—— 僅在上個月,就有幾家技術公司出現了明顯的漏洞 (eg  Okta ,  HubSpot )。然而,加密貨幣本身俱有非託管和不可篡改的性質意味著安全漏洞可能會導致數十億美元永久損失。這種持續存在的風險對於那些野心勃勃的 NFT 項目來說是一項巨大的挑戰。

數億美元的用戶資產損失很大程度地破壞了該行業的聲譽,並嚴重損害涉及的公司和項目。這種風險對於正在進入該行業的許多企業來說是不可接受的,尤其是那些已擁有一定的用戶基礎、聲譽和法律責任的企業。因此,安全性作為 NFT 項目選擇平台的一個判斷準則,變得越來越重要。

每個平台都具有強大的激勵來使自己足夠安全。但事實是,所有解決方案都會有自己的取捨—— 重要的是,NFT 項目應該清楚地了解他們以及他們所在的平台做了什麼取捨。

我是 Alex ConnollyImmutable  的 CTO 和聯合創始人—— 我們為高可擴展性、高質量的 NFT 項目 (尤其是遊戲類) 構建了一個領先的平台。我希望在這篇文章中能對一些最受歡迎的 NFT 平台所做的選擇進行詳細和公平的評估,包括 Ronin、Polygon、Immutable、Solana 和 Optimism。尤其是,我將專注於研究影響每個平台的底層安全的兩個核心要素。

  • 共識安全:通過攻擊平台的節點/驗證者 (如,通過 51% 攻擊) 以盜竊資產的難度
  • 橋接安全:將資產轉出和轉入以太坊的機制的安全性。這通常是更讓人擔心的一點,因為一旦橋接出現漏洞,通常使得用戶的資產直接面臨風險。

本文將深入探討這些安全性問題,提供必要的技術細節,讓項目負責人獲得全面的信息後做出選擇。如果你只是想簡要了解他們的異同,可以看這個表格:

至於細節,我們在下文中詳細探討吧。

Ronin

Ronin 是一條由 Sky Mavis Labs  創建的區塊鏈,目前專門為 Axie Infinity 以及其生態提供支持。

共識安全

Ronin 是一條 “側鏈” —— 一條具有自己的節點和共識機制的區塊鏈,但是在其和以太坊之間維護著一條官方 “橋接”。Ronin 採用授權證明 (proof-of-authority, POA) 機制,具有 10 個節點,這些節點質押他們的聲譽,以保證他們不會濫用自己的權利。這與以太坊的測試網如 Goerli (具有 20 個節點的 POA 鏈)  相當。如果這些節點中的任意 5 個節點 (50%) 作惡或者被攻擊,他們就能夠發起 51% 攻擊並通過雙花或其他攻擊手段盜竊用戶的資產。一般來說,這種規模可以說是尤其少的節點數量了 (比特幣擁有 15000 個節點以太坊擁有將近 6000 個節點)。他們構建了一個比較中心化的網絡,以換取更快、更便宜的交易。此外,用戶不能運行自己的節點,並且 Ronin 節點的源代碼未公開,因此用戶無法對其進行審計。

橋接安全

Ronin 的官方以太坊橋接由 5/9 的 “多簽”(multisig) 控制。“多簽” 要求總共 n 個私鑰持有者中的 m 個簽名者進行簽名以授權每一筆交易。在 Ronin 網絡中,每一筆橋接交易都需要獲得 “多簽” 的授權。然而,沒有設置任何機制來檢查存款或者提款是否真的有效—— 任何能夠訪問 5/9 個私鑰的人都可以將 Ronin 橋接中任意數量的任意代幣提出至任意以太坊地址中。也就是說,該橋接上的任意用戶直接將他們的所有資產託付給這個 “多簽” 系統。

2022 年 3 月,這種信任設置被黑客利用,6.25 億美元被盜。黑客得以訪問由 Axie 團隊持有的 4 個私鑰以及 Axie DAO 驗證者租借給 Axie 團隊的 1 個私鑰 (共 5/9 個私鑰)。就我們目前所知的情況,可以表明這是一個典型的網絡安全漏洞:由於這些驗證者私鑰的中心化,造成了嚴重的後果。Sky Mavis 已經承諾會對損失資金的用戶進行補償,並在未來三個月內增加到 21 個驗證者,以確保 Ronin 對未來的攻擊具有更強的彈性。儘管他們這樣做需要在更具有魯棒性的共識/橋接機制和可擴展性之間做一定的取捨。

Polygon

Polygon 目前提供了一種以太坊的 PoS 側鏈 (Polygon PoS),以及一個專門的 NFT 服務業務 ( Polygon Studios ),為 Skyweaver 和 ZED RUN 等主要項目提供支持。Polygon 正朝著提供不同的擴容解決方案的方向發展,其中大部分基於 zk-rollup 技術 (稍後討論),但目前只有 Polygon PoS 作為 NFT 平台上線主網。

共識安全

Polygon PoS 是一條側鏈,其基本模式與 Ronin 相似,只不過 Polygon 是一種 “ commit sidechain ” (提交鏈):它定期將鏈上狀態的檢查點提交給以太坊。Polygon PoS 共識由兩個主要部分組成。第一個是 Bor 鏈 (Block Producer chain, 區塊生產鏈),這是 Polygon 交易實際發生的地方:從更大的驗證者池中挑選出生產區塊的輪流子集,讓這個子集運行一個調整過的 PoA 網絡,這個網絡決定交易的打包和排序。然而,這個子集中只有一個區塊生產者 (見 PolygonScan 瀏覽器的區塊驗證者) 被選中來提議 64 個連續的區塊 (一個 sprint)。

接下來是 Heimdall 檢查點系統,更多數量的驗證者 (目前上限為 100 ) 會就 Bor 區塊最後 30 分鐘的摘要快照達成⅔ “PoS” 共識,並將該快照作為檢查點發佈在以太坊上。然而,儘管這個系統現在有 100 名驗證者,但前 4 名驗證者的質押佔比為 53%,前 7 名驗證者的質押佔比為 67% (見此處,點擊 “顯示全部” 並按質押權重排序)。並且,⅔ 多數達成共識這一要求指的是質押的權重,而不是驗證者的數量。這意味著,只需攻擊並控制 7 個私鑰,鏈上的所有資產 (而不僅僅是橋接上的資產) 都能通過惡意檢查點被盜走—— 且質押者必須一直保持他們的私鑰為聯網的狀態。此外,由於⅔ 的質押佔比為達成共識的要求,而 43% 的質押權重由 3 名驗證者控制,只需攻擊 3 個熱錢包就足以完全凍結提款和檢查點。

質押總量為 2,307,879,127 MATIC,前七名驗證者質押了 1,540,761,159 MATIC (~67%)

合約升級可以用來抵禦作惡檢查點 (假設能夠快速檢測到作惡行為的話) —— 但這有其自身的安全風險,我們接下來會討論這個問題。

橋接安全

Polygon 橋接與 Ronin 橋接的不同之處在於,檢查點系統免除了獨立驗證者集對每筆存款和提款簽名的需要。然而,這意味著該橋接的安全性完全依賴於 Heimdall 系統和 Bor 共識,這很容易受到上述攻擊。

此外,Polygon 使用一個 5/8  的多簽系統來治理他們的橋接智能合約,並且合約升級可以在沒有時間鎖的情況下立即進行。這可以抵禦智能合約出現漏洞或者上述討論的對質押權重高驗證者攻擊的情況。4 個私鑰由 Polygon 創始人持有,這種架構已經被社區的安全研究人員強烈批評,因為只需再多另一個私鑰就有可能通過惡意升級將 Polygon 合約的所有資產 (50 億美元以上) 盜走。然而,由於 Polygon 的簽名者不需要對每一筆存款和提款交易簽名,這些管理員私鑰可以保持離線,使得他們被攻擊的機會更小。

Immutable

Immutable  是為高質量、高可擴展性的 NFT 項目 (如游戲) 而搭建的一個平台。Immutable 上一些著名的項目包括 Illuvium、Gods Unchained、Ember Sword 和 Guild of Guardians。

共識安全

Immutable 是一個 zk-rollup,使用 StarkWare  的 StarkEx 證明/驗證系統構建。這意味著 Immutable 對 L2 交易批次排序,並生成一個 STARK 證明以證明這些交易有效,然後提交證明至一個 L1 智能合約的 “驗證器” 中,該驗證器更新一些 L1 狀態 (在我們的情況下,指的是包含數百萬用戶 NFT/餘額的默克爾樹的根)。重要的是,這比單純地將交易打包成批次交易這種方法擴展性要高得多,因為 STARK 證明的驗證成本與交易數量呈次線性比增長。

由於所有狀態轉換都必須獲得 L1 智能合約的驗證,所以 Immutable 永遠無法將無效的交易放入 rollup 中,抑或是盜竊用戶資產,即便在 Immutable 的系統被完全破壞的情況下也無法做到。這是一個極其強大的安全屬性,這也是為什麼 Vitalik 稱 rollup 為 “以太坊在可預見的未來里關鍵的擴容解決方案”。

然而,Immutable 以 “單一運營者” rollup 的形式運行中 (只有 Immutable 能夠排序或證明交易)。這意味著 Immutable 能夠通過搶跑或重新排序交易的方式來提取 MEV。目前,幾乎所有 rollup 都是 “單一運營者” 的模式,但大多數都計劃逐漸去中心化其 rollup。

橋接安全

Rollup 使用了與側鏈完全不同的橋接結構,因為它們在 L1 上維持著一個經過驗證的 “狀態”,而這個 “狀態” 只有通過一個有效的證明才能更新至 L1 上。用戶想要橋接資產的話,則需要這個已驗證的狀態已經包含了該用戶的存款/提款—— 沒有可以攻擊的多簽系統 (如 Ronin), 也不可以通過攻擊驗證者私鑰來添加” 無效的” 狀態轉換 (如 Polygon) —— 每筆交易都被驗證過,就像這筆交易發生在 L1 上一樣。這種去信任的橋接就是使得 rollup 被稱為 “L2” 的原因—— 它們的安全性直接依賴於以太坊的共識,而不是依賴於一個具有可信橋接的單獨共識機制。

在任何時候,用戶都可以提交一筆 “提款” 交易,將他們的資產從 L2 橋接至 L1。如果 Immutable 將此交易包含在已證明的狀態變化集合中,用戶就能去信任地將其資產直接提到以太坊中。如果 Immutable 沒有執行這筆提款 (不管是因係統不可用還是故意審查交易),用戶總是能夠通過直接與 L1 橋接合約交互來執行 “完全提款” 流程。

如果這個新提交的 “完全提款” 請求沒有得到響應,交易狀態將會被凍結,然後所有用戶都將能夠通過提供他們在狀態默克爾樹中的資產路徑來執行提款。即便 Immutable 作惡或是離線,都能確保用戶能夠訪問這些數據,這就是 “rollup 的數據可用性問題”。在標準的 zk-rollup 結構中,這有一個簡單的解決方案:要求在允許狀態更新之前將必要的數據發佈到以太坊 L1 上。然而,這引入了一個小型的線性 gas 成本,而許多應用都不願意支付。這種成本在合併後也不會改變,但會通過 EIP-4488proto-danksharding  和 (最終的)  sharding  等提案大幅減少,因為以太坊接受了它作為 rollup 的基礎驗證和數據可用性層的角色。

然而,由於這些解決方案都沒有上線,而且在鏈上發布 calldata 的成本對於像需要高可擴展性的 NFT 鑄造這樣的用例來說仍然令人望而卻步。幸運的是,Immutable 目前作為一個 validium rollup  運行。Validium rollups 這種 zk-rollups 不發布重建狀態所需的所有數據,以換取更便宜的交易費。為了確保這些數據即使在 Immutable 離線或作惡的情況下仍然可用,Immutable 依賴於一個 “數據可用性委員會” (Data Availability Committee, DAC)。這個委員會 (由生態系統的著名公司組成) 的絕大多數成員和幾個 “強制性” 成員必須對每個交易批次簽名,以證明他們擁有必要的數據。這與驗證者多簽模式不同:只要任意一個 DAC 成員是誠實的,用戶就能夠成功提款。即便在所有 DAC 和定序者都被破壞的數據扣留攻擊中,Immutable 仍然可以利用合約升級來防止勒索攻擊。

Immutable 的 rollup 驗證器合約可升級,但會有一個為期 14 天的時間鎖,用戶要是對新合約不滿意的話可以有機會退出系統 (即便在 Immutable 惡意審查交易的情況下)。

Immutable 正向 Volition 模式轉變,在這個模式中,個別 “金庫” (用戶、代幣、數量元組) 可以被標記為需要鏈上數據。由於存儲在 rollup 中的大部分價值要么是餘額有很多代幣/ETH 的賬戶,要么收藏了高價值的 NFT,這些價值可以存儲在一個相對較少的鏈上數據存儲庫中。這種結構可能會讓 rollup 金庫中的大部分價值由鏈上數據提供支持,減少數據可用性風險,同時保留實現便宜、高可擴展性的 NFT 鑄造的能力,這對遊戲等項目至關重要。

Solana

Solana  作為一個完全獨立 L1 區塊鏈運作,通過一個自定義的共識機制專注於實現低成本、高可擴展性的交易。

共識安全

Solana 目前有超過 1500 個活躍節點,但它確實對這些節點施加了很高的硬件要求以實現其更高的 TPS (然而這降低了個人參與驗證交易的能力,這對區塊鏈去中心化來說是一個很重要的原則)。重要的是,僅 20 個節點這麼少的數量就持有網絡質押 SOL 代幣的 33% 以上。如果這些節點合謀了,又或者被攻擊了,他們就能夠使網絡停止運作或任意審查交易。

橋接安全

作為一個完全獨立的 L1,Solana 和以太坊之間沒有官方橋接。不過,對 Solana 用戶來說最常使用 (半官方) 的橋接就是 Wormhole  (蟲洞),它允許在多條鏈之間轉移資產。Wormhole 的安全性依賴於一組被稱為 guardian (守護者) 的驗證者,所有橋接交易都需要達成⅔+1 的 PoA 共識。目前有 19 個活躍的守護者。  由於 Solana 和以太坊無法驗證者對方的交易,當用戶需要橋接資產時,橋接合約完全依賴於守護者達成的共識。這意味著,如果⅔ 的守護者被攻擊了,Wormhole 裡的所有用戶資產都可能被盜走。這種機制實際上與 Ronin 使用的機制非常相似,並且很不幸的是,守護者的私鑰也必須保持在線狀態來對新交易進行簽名。

在 2022 年初,Wormhole 橋接中的一個 bug 使得 3.25 億美元的用戶資金被盜。此次事件實際上不是驗證者係統受到了攻擊,而是攻擊者發現了一個智能合約的漏洞,並通過這個漏洞欺騙橋接在 Solana 上發行沒有在以太坊上進行存款的 ETH。Jump Crypto   介入使用戶得到補償 —— 這令人驚訝地表明了加密貨幣的口袋裡到底裝了多少資產,但隨著該領域的發展,這是一個完全不可持續的模式。這並不是對 Solana 或 Wormhole 的控訴—— 所有的鏈上系統都容易出現智能合約漏洞。雖然不可能有絕對的保證,但最好是使用經過審計或正式驗證過的合約,這些合約經受住了時間和公眾審查的考驗—— 例如,Wormhole 在出現漏洞後受到了嚴格審查,後來沒有發現更多漏洞了。

Optimism

Optimism 是一個由 Optimism PBC 開發的以太坊 optimistic rollup。它於 2021 年 8 月上線主網 (上線初期採用白名單制),到目前為止,NFT 項目的應用有限,不過在 Quixotic  等市場上有一個早期社區。

共識安全

Optimistic rollup 的運作原理類似於 zk-rollup:收集交易並上傳所有這些狀態轉換的最終狀態的壓縮版本。然而,當 zk-rollups 為每個狀態轉換提供一個 “有效性證明” 時,optimistic rollup 的狀態轉換被假設為有效,除非有人能提出一個” 欺詐證明 “,這表示該交易無效。提出欺詐證明的人會受到獎勵,而發布無效交易的人會受到懲罰。為了允許這種挑戰的發生,optimistic rollup 需要在交易完全敲定前有一周的爭議時間延遲。這種異步性引入了一類有趣的潛在經濟攻擊,而緩解這些攻擊是一個活躍的研究課題。

然而,Optimism 的欺詐證明目前是禁用的 —— 意味著 Optimism (或任何破壞 Optimism 多義詞的人) 可以通過提交無效的狀態轉換來盜取所有的用戶資金。當然,這是一個臨時情況,一旦新的欺詐證明系統準備好了,就會升級,但在目前的狀態下這對用戶資金造成了嚴重的威脅。由於 Optimism 是一個單一定序者的 rollup,它也會面臨潛在的 MEV 提取。

橋接安全

Optimistic rollup 也提供了一條通往以太坊的去信任橋接。然而,由於任何用戶都可以在一周爭議期內的任何時候挑戰該批次交易的有效性,被提款到 L1 的資產至少在這段時間內被鎖定。對於同質化代幣資產,可以使用 “快速提款” 來規避這種資產鎖定 (在假設狀態轉換不包含欺詐交易的情況下,有效地借給用戶)。然而,由於 NFT 是唯一的且不能被替代的,用戶必須等待整個爭議期 (長達一周),然後才能將他們的資產轉移回以太坊 L1 上。

Optimism (像所有 optimisitic rollup 一樣)   需要在鏈上發布中間交易數據,所以它可以被有效地挑戰—— 這產生了更高的費用,但規避了任何復雜的數據可用性架構,正如在分析 Immutable 時討論的那樣。

核心平台之外需要考慮的安全

如果你的項目的安全性由於其他機制受到了攻擊,那麼即便這個項目在擁有最好的安全性的核心平台上也沒用了。為了真正地做出明智的決定,NFT 項目還需要考慮共識/橋接安全性之外的各種因素,包括:

  • 錢包安全:用戶的私鑰是如何存儲的?如果這個存儲系統被攻擊,會有什麼影響 (例如,某個託管錢包的供應商,某個不好的本地錢包應用程序,某個質量很差的瀏覽器擴展程序依賴)?
  • 元數據安全:資產的元數據 (包括圖像) 是如何存儲的?如果這些元數據由於受到攻擊而被更改或替換,會對市場有什麼影響?
  • 項目安全:任何平台上的項目通常都為其項目保留一些管理員私鑰。如果這些私鑰被攻擊,會發生什麼?你的項目是否有主動監測漏洞的功能?你所在的平台是否支持私鑰管理的最佳實踐?
  • 財庫安全:大多數平台都會有大量的代幣儲備 (例如,用於獎勵或資助)。這些資金是如何保存的?對於財庫內的資產轉移是如何授權和執行的?如果受到了攻擊會有什麼影響?
  • 市場安全:支持該協議的市場如何保護用戶,讓其避免像山寨項目這樣的惡意交易行為?

上述提到的任何一個環節受到攻擊,都可能使擁有最安全的底層平台的用戶受到傷害—— 顯然,任何人吹噓自己的項目是無懈可擊的都不可信。不幸的是,當處理一個新的資產類別時,特別是一個增長如此迅速的資產類別,會有一些人不斷地尋找新的漏洞和可攻擊點。在這樣的環境中,在為你的項目選擇正確的平台時,充分理解你們所面對的取捨至關重要。

ECN 的翻譯工作旨在為中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須註明原文出處以及 ethereum.cn,若需長期轉載,請聯繫 eth@ecn.co 進行授權。

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。本文內容僅用於信息分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。