對於任何軟件公司來說,安全性從根本上來說都是一個困難的問題。沒有什麼靈丹妙藥——僅上個月就有幾家科技公司做出了妥協(如Okta、HubSpot)。然而,加密技術的自我保管和不可逆轉性意味著,安全方面的妥協可能導致數十億美元的永久性損失。這種持續的風險對於具有長期野心的NFT項目來說是一個巨大的挑戰。

數億美元的用戶資金損失嚴重損害了其聲譽,並嚴重損害了所涉及到的公司和項目。對於許多正在進入該領域的企業來說,這種風險是不可接受的,特別是那些擁有現有客戶群、聲譽和法律義務的企業。因此,作為NFT項目選擇平台的標準,安全性變得越來越重要。

每個平台都有強大的動機將自己定位為足夠安全的平台。事實是,所有的解決方案都有權衡——重要的是,項目對自己和自己的平台所做的具體權衡有非常清晰的理解。

這篇文章是為了對一些最流行的NFT平台(包括Ronin、Polygon、Immutable、Solana和Optimism)所做的選擇提供一個詳細且公正的評估。我將特別關注每個平台底層安全的兩個核心元素:

共識安全:通過攻擊平台的節點/驗證者來竊取資產的難度(例如通過51%攻擊)橋安全:在以太坊之間移動資產的安全機制。這通常是更大的問題,因為妥協通常會直接將用戶資金置於風險之中

本文將深入探討項目負責人做出明智選擇所需的技術細節:

Ronin

Ronin是Sky Mavis Labs創造的區塊鏈,目前只支持Axie Infinity及其生態系統。

共識安全

Ronin是一個“側鏈”——一個擁有自己節點和共識機制的區塊鏈,但它維持著一個到以太坊的官方“橋”。 Ronin是一個權威證明(POA)鏈,有10個節點,他們將自己的聲譽押在不會濫用權力這個事實上。這可以與以太坊測試網(如Goerli(20節點POA))相媲美。如果其中5個節點(50%以上)被惡意攻擊或被破壞,它們將能夠對網絡進行51%的攻擊,並通過雙花或其他攻擊竊取用戶資金。一般來說,這被認為是一個極低的節點數量(比特幣有15000個節點,以太坊接近6000個節點),並產生一個更中心化的網絡,以換取更快、更便宜的交易。此外,用戶不能運行自己的節點,並且Ronin節點的源代碼不是公開的,因此不能被Ronin用戶審計。

橋的安全

Ronin的官方以太坊橋由“5/9 多重簽名”控制。一個多重簽名需要n個密鑰持有者中的m個簽名者來批准每一筆交易。在Ronin中,每一個橋接動作都需要這個多重簽名的批准。然而,沒有機制來檢查存款或取款是否真的有效——任何能夠訪問9個密鑰中的5個的人都可以將Ronin橋上持有的任何代幣提取到任何以太坊地址。這意味著橋的用戶用他們所有的資金直接信任這個多重簽名。

2022年3月,一名黑客獲取了由Axie團隊持有的4個密鑰,以及Axie DAO驗證者藉給Axie 團隊的1個密鑰(給他們5/9)之後,該信任損失了6.25億美元。目前我們所知道的情況表明,這是一個典型的網絡安全漏洞,由於這些驗證者密鑰的中心化,導致了這樣嚴重的後果。 Sky Mavis已經承諾賠償那些損失資金的人,並在未來三個月內聯繫21家獨立驗證者,以確保Ronin在未來的攻擊中更有彈性,儘管這可能要在更強大的共識/橋機制與網絡的可擴展性之間需要一個折衷。

Polygon

Polygon目前提供了一個權益證明的以太坊側鏈(Polygon PoS),以及一個專門的NFT服務公司Polygon Studios,該公司支持Skyweaver和ZED RUN等主要項目。 Polygon正在提供一系列不同的擴展解決方案,其中大部分基於zk-rollup技術,但目前只有Polygon PoS是作為NFT平台而存在的。

共識安全

Polygon PoS是一個側鏈,其基本模型與Ronin類似,除了Polygon是一個“提交側鏈”,它定期將鏈狀態的檢查點提交到以太坊。 Polygon PoS共識有兩個主要組成部分。首先,Bor鏈,這是Polygon的交易實際發生的地方:從一個更大的驗證者池中選擇輪流的區塊生產者子集來運行一個修改的權威網絡證明,其決定交易的包含和排序。然而,這個子集只有一個區塊生產者,然後被選擇提議64個連續區塊(一個sprint)。

接下來是Heimdall檢查點系統,在該系統中,大量的驗證者(目前上限為100)會對Bor區塊的最後30分鐘的摘要快照達成⅔“權益證明”共識,並將該快照作為以太坊上的檢查點發布。然而,儘管有100個驗證者,但4個驗證者控制了53%,7個驗證者控制了67%,而⅔要求的是權益的百分比,而不是驗證者的數量。這意味著,只要有7個密鑰,鏈條上的所有資金,注意不僅僅是橋上的資金,就會被惡意的檢查點偷走——而質押者必須始終保持他們的密鑰處於熱狀態。此外,由於⅔的質押需要達到法定人數,而43%的股份由3個驗證者控制,因此只要破壞3個熱錢包,就足以凍結提款和檢查點。

合約升級可以用來防禦惡意的檢查點(假設它被足夠快地檢測到)——但是這有它自己的安全風險,我們將在下面討論!

橋的安全

Polygon的橋與Ronin的橋的不同之處在於,它的檢查點系統不需要一個獨立的驗證者集合來簽署每次的存款和取款。然而,這意味著橋的安全完全依賴於Heimdall 和Bor 共識,這很容易受到上述攻擊。

此外,Polygon使用5/8 多重簽名來管理他們的橋智能合約,合約更新可以立即進行,沒有時間鎖定。這可以防止智能合約漏洞或上面討論過的質押驗證者的妥協。其中4個密鑰由Polygon創始人持有,這一結構一直受到社區安全研究人員的強烈批評,因為只有再一個密鑰就可能會通過惡意升級完全耗盡Polygon合約中的所有資金(50億美元以上)。然而,由於Polygon簽名者並不簽署每一個存款和取款交易,因此這些管理員密鑰可以保持離線狀態,從而降低了它們被洩露的可能性。

Immutable

Immutable是一個構建高質量、高規模NFT項目(如游戲)的平台。在Immutable平台上創建的著名項目包括Illuvium、Gods Unchained、Ember Sword和Guardians Guild。

共識安全

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使用與側鏈完全不同的橋接結構,因為它們在L1上維護一個經過驗證的“狀態”,該狀態只能用有效的證明進行更新。橋接資金要求這個驗證狀態已經包括你的存款/取款——沒有多重簽名攻擊(如Ronin),也沒有辦法通過破壞驗證者(例如Polygon)來添加“假”狀態轉換——每一個交易被驗證,就像它發生在L1上。這種無需信任的橋接正是rollup被稱為“L2”的原因——它們直接依賴於以太坊的共識來保證安全性,而不是一個單獨的、帶有可信橋的共識機制。

在任何時候,用戶都可以提交一個“提款”交易,將資金從L2轉移到L1。如果Immutable將該交易包含進已驗證的狀態更改集合中,用戶可以放心地直接將資金提取到以太坊。如果Immutable不處理這個提款(不可用或故意審查),用戶能夠通過直接與L1橋合約進行交互來使用“完全提款”流程。

如果這個新的“全部提款”請求沒有得到解決,那麼交易狀態將被凍結,所有用戶都可以通過在狀態默克爾樹中提供其資產的路徑來進行提款。確保用戶能夠訪問這些數據,即使Immutable是惡意的或離線的,這就是“rollup數據可用性問題”。在標準的zk-rollup構造中,有一個簡單的解決方案:在允許狀態更新之前,要求在Ethereum L1上發布必要的數據。然而,這引入了一個小的線性gas成本,許多應用程序不願意支付。合併後,這個成本不會改變,但將通過EIP-4488、proto-danksharding和分片等提議大幅降低,因為以太坊支持其作為基本驗證和數據可用性層的角色。

然而,由於這些解決方案都不是實時的,而且在鏈上發布調用數據的成本對於像大規模NFT鑄造這樣的用例來說仍然是被禁止的,因此Immutable目前的操作就像一個有效的rollup。為了確保這些數據即使在Immutable離線或惡意的情況下仍然可用,Immutable依賴於一個“數據可用性委員會”。這個委員會的大多數成員(由著名的生態系統公司組成)和幾個“強制”成員,他們必須簽署每一批次,以證明其有必要的數據。這與驗證者多重簽名不同:只要任何DAC都是誠實的,用戶就能夠成功提款。即使發生數據隱藏攻擊,整個DAC和定序器都被破壞,Immutable仍然可以使用合約升級來防止勒索攻擊。

Immutable的rollup驗證者合約可以升級,但有14天的時間鎖定,如果用戶對新合約不滿意,這將給他們提供可以退出系統的機會(即使Immutable惡意審查交易)。

Immutable正轉向Volition模型,其中單個的“vault”(用戶、代幣、數量元組)可以被標記為需要鏈上數據。由於存儲在rollup中的大部分值要么作為大型代幣/ETH餘額存在,要么作為高值NFT存在,因此該值可以存儲在相對較少的鏈上數據庫中。這種結構可能會讓rollup數據庫裡的大部分價值得到鏈上數據的支持,減少數據可用性風險,同時保留做大規模NFT鑄造的能力,這對遊戲等項目至關重要。

Solana

Solana作為一個完全獨立的L1區塊鏈運營,刻意專注於通過定制共識機制實現低成本、高規模的交易。

共識安全

Solana目前有超過1500個活動節點,但它確實對這些節點施加了大量的硬件要求,以實現更高的TPS(降低個人驗證交易的能力,這是區塊鏈去中心化的一個重要原則)。重要的是,目前有20個超級少數節點控制著33%的質押SOL。如果這些節點串通或被洩露,他們將能夠停止網絡或任意審查交易。

橋的安全

作為一個完全獨立的L1, Solana沒有通往以太坊的官方橋。然而,受Solana用戶歡迎的(和半官方的)橋是Wormhole,它允許資產跨越多個鏈移動。 Wormhole依賴於一組被稱為守護者的驗證者,它在所有橋操作上達成⅔+1的權威共識證明。目前有19個有效的守護者。由於Solana和以太坊不能驗證彼此的交易,橋合約完全取決於橋接資產時守護者的共識。這意味著,如果這些守護者的⅔被洩露,所有用戶在Wormhole內的資金都可能被竊取。這個機制實際上與Ronin使用的機制非常相似,不幸的是,守護者密鑰也必須保持熱狀態才能簽署新的交易。

2022年初,Wormhole的一個漏洞導致3.25億美元的用戶資金被盜。這實際上不是驗證者係統的漏洞,而是一個智能合約的漏洞,該漏洞允許攻擊者欺騙橋在Solana上發行沒有存儲在以太坊上的ETH。 Jump Crypto的介入是加密領域財力雄厚的驚人跡象,但隨著該領域的發展,這種模式完全不可持續。這不是對Solana或Wormhole的控訴——所有鏈上系統都容易受到智能合約漏洞的攻擊。雖然不可能有保證,但最好使用經過審計/正式驗證的合約,這些合約經受住了時間和公眾監督的考驗——例如,Wormhole在出現漏洞後受到了嚴格的審查,沒有發現進一步的漏洞。

Optimism

Optimism是以太坊Optimistic rollup,由Optimism PBC開發。它在2021年8月進入主網,到目前為止,NFT項目的採用率有限,儘管在像Quixotic這樣的市場上有一個早期社區。

共識安全

Optimistic rollup的工作方式與zk- rollup類似:收集交易並上傳所有這些狀態轉換後的最終狀態的壓縮版本。然而,在zk-rollup為每個狀態轉換提供“有效性證明”,Optimistic rollup轉換被認為是有效的,除非有人能夠生成一個“錯誤證明”,表明發生了一個無效的交易。如果有人能提供這樣的證明,他們將得到獎勵,而證明的發布者將受到懲罰。為了允許這種挑戰發生,Optimistic rollup在交易完全結束之前需要1週的爭議時間。這種異步性引入了一類有趣的潛在經濟攻擊,減輕這些攻擊是一個活躍的研究課題。

然而,Optimism的錯誤證明目前是禁用的——這意味著Optimism(或任何損害了Optimism多重簽名的人)可以通過提交無效的狀態轉換竊取所有用戶的資金。這是一種臨時狀態,一旦新的防故障系統準備好,就會升級,但在當前狀態下對用戶資金構成嚴重威脅。由於Optimism是一個單一的序列器rollup,它也開放潛在的MEV提款。

橋的安全

Optimistic rollup也為以太坊提供了一個無需信任的橋樑。然而,由於任何用戶都可能在1週爭議期間的任何時間點質疑該批次的有效性,因此被提款到L1的資產至少在這段時間內會被鎖定。對於可替代資產,可以使用“快速提款”(在假設狀態轉換不包含欺詐交易的情況下,有效地向用戶提供貸款)來規避這種鎖定。然而,由於NFT是獨特的,不能被替代,用戶必須等待整個爭議期(長達一周),才能將他們的資產移回L1以太坊。

Optimism(與所有Optimistic rollup 一樣)要求將中間交易數據發佈在鏈上,以便有效地應對挑戰——這將產生更高的費用,但繞過了Immutable分析中討論的任何復雜的數據可用性構造。

超越核心平台的安全

為了真正做出明智的決定,NFT項目需要考慮共識和橋安全之外的各種因素,包括:

錢包安全:如何存儲用戶密鑰?如果這個存儲系統被破壞了,會有什麼影響(例如,託管錢包提供商,原生錢包應用程序的錯誤版本,瀏覽器擴展中的不良依賴)?元數據安全:如何存儲資產元數據(包括圖像) ?如果元數據因妥協而被更改或替換,會對市場產生什麼影響?項目安全性:任何平台上的項目通常會為其項目保留一些管理密鑰。如果這些密鑰被洩露會發生什麼?是否對違規行為進行了主動監控?平台是否支持密鑰管理的最佳實踐?金庫安全:大多數平台將擁有大量的代幣儲備(例如用於獎勵或贈款)。這些資金是如何持有的?如何授權和執行金庫的轉移?妥協會產生什麼影響?市場安全:支持該協議的市場如何保護用戶免受惡意交易?

任何一層的妥協都可能使最安全的底層平台的用戶受到攻擊。不幸的是,在處理一個新的資產類別時,特別是一個增長如此迅速的資產類別時,會有人不斷地尋找新的漏洞。在這樣的環境中,充分理解這些權衡對於為項目選擇正確的平台至關重要。

Source:https://medium.com/@immutablex/a-guide-to-nft-platform-security-30d7129cedd3