对于任何软件公司来说,安全性从根本上来说都是一个困难的问题。没有什么灵丹妙药——仅上个月就有几家科技公司做出了妥协(如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