NFT平台安全剖析

煤油灯科技2022-09-07 10:06

对于任何软件公司来说,安全性都是一个根本上难以解决且不对称的问题。没有灵丹妙药——仅在上个月,就有几家科技公司(例如Okta、HubSpot)出现了明显的妥协。然而,加密的自我保管、不可逆转的性质意味着安全妥协可能导致数十亿美元的永久性损失。这种持续存在的风险对于具有长期抱负的NFT项目来说是一个巨大的挑战。

数亿美元的用户资金流失严重损害了空间的声誉,并严重损害了所涉及的公司和项目。对于许多正在进入该领域的企业来说,这种风险是不可接受的,尤其是那些拥有现有客户群、声誉和法律义务的企业。因此,安全性作为NFT项目选择平台的标准变得越来越重要。

每个平台都有强烈的动机将自己定位为足够安全。事实是,所有解决方案都有权衡——重要的是项目对他们和他们的平台正在做出的具体权衡有一个非常清楚的了解。

我是Immutable的首席技术官兼联合创始人Alex Connolly——我们为大规模、高质量的NFT项目(尤其是游戏)构建了领先的平台之一。我想写这篇文章,对一些最流行的NFT平台做出的选择进行详细且大部分公正的评估,包括Ronin、Polygon、Immutable、Solana和Optimism。特别是,我将重点关注每个平台底层安全的两个核心要素:

  • 共识安全性:通过攻击平台的节点/验证者(例如通过51%攻击)窃取资产的难度
  • 桥接安全性:将资产移入和移出以太坊的机制的安全性。这通常是更大的问题,因为妥协通常会使用户资金直接面临风险。

本文将深入探讨,提供项目负责人做出明智选择所需的技术细节。如果只是在寻找TL;DR,请试试这张表:

Ronin 

Ronin是由Sky Mavis Labs创建的区块链,目前专门为Axie Infinity及其生态系统提供支持。

共识安全Ronin是一个“侧链”——一个拥有自己的节点和共识机制的区块链,但它维护着通往以太坊的官方“桥梁”。Ronin是一个权威证明 (POA) 链,有10个节点,他们将自己的声誉押在他们不会滥用权力这一事实上。 这可与Goerli(20节点POA)等以太坊测试网相媲美。 如果这些节点中的任何5个(50%+)变得恶意或受到威胁,他们将能够对网络进行51%攻击,并通过双花或其他攻击窃取用户资金。一般来说,这被认为是极少的节点(比特币有15000个,而以太坊有接近6000个),并产生一个更中心化的网络以换取更快、更便宜的交易。此外,用户无法运行自己的节点,并且 Ronin 节点的源代码不公开,因此无法被Ronin用户审计。

桥梁安全

Ronin的官方以太坊桥由5-of-9 “multisig”控制。multisig需要总共n个密钥持有者中的m个签名者来批准每笔交易。在Ronin中,每一个桥接动作都需要得到这个多重签名的批准。但是,没有任何机制可以检查存款或取款是否真正有效——任何有权访问9个密钥中的5个的人都可以将Ronin桥中持有的任意数量的任何代币提取到任何以太坊地址。这意味着网桥的任何用户都直接用他们的所有资金信任这个multisig。

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交易实际发生的地方:从更大的验证者池中选择一个轮换的区块生产者子集来运行修改后的权威证明网络,该网络决定交易的包含和排序。然而,只有该子集的1个区块生产者(请参阅PolygonScan区块验证器)被选中来提议64个连续区块(一个 sprint)。

接下来是Heimdall检查点系统,在该系统中,大量验证者(目前上限为100个)就 Bor区块最后约30分钟的摘要快照达成 ⅔ “权益证明”共识,并将该快照作为检查点发布 以太坊。 然而,虽然有100个验证者,但4个验证者控制了53%的权益,7个验证者控制了67%的权益(请参阅此处,单击“显示全部”并按权益排序),所需的2/3多数是指权益 ,而不是验证者的数量。这意味着,链上的所有资金(不仅仅是桥上的资金)只需泄露7个密钥,就可以通过恶意检查点被盗——并且质押者必须始终保持其密钥处于热状态。此外,由于法定人数需要2/3的股份,并且43%的股份由3个验证者控制,因此仅破坏3个热钱包就足以完全冻结提款和检查点。

合约升级可用于防御恶意检查点(假设它被足够快地检测到)——但这有其自身的安全风险,我们将在接下来讨论!

桥梁安全

Polygon的网桥与Ronin的不同之处在于,检查点系统消除了对独立验证人组对每次存款和取款进行签名的需要。然而,这意味着网桥的安全性完全依赖于Heimdall和Bor共识,这很容易受到上述攻击。

此外,Polygon 使用5-of-8的multisig来管理他们的桥梁智能合约,并且可以立即进行合约更新,没有时间锁定。如上所述,这可以防止智能合约错误或利益相关者验证者的妥协。其中4个密钥由Polygon创始人持有,这种结构受到社区安全研究人员的强烈批评,因为只有一个密钥可以通过 恶意升级。但是,由于Polygon签名者不会签署每笔存款和取款交易,因此这些管理员密钥能够保持离线状态,从而降低了它们被泄露的可能性。

Immutable 

Immutable是一个用于构建游戏等高质量、高规模NFT项目的平台。基于Immutable的著名项目包括Illuvium、Gods Unchained、Ember Sword和Guild of Guardians。

Consensus Security 

Immutable是一个zk-rollup,使用StarkWare的 StarkEx证明者/验证者系统构建。这意味着Immutable订购一批L2交易,生成这些交易有效的STARK证明,并将该证明提交给L1智能合约“验证者”,该“验证者”更新一些L1状态(在我们的例子中,包含数百万的默克尔树的根、用户、NFT/余额)。重要的是,这比天真的批量交易要好得多,因为STARK证明验证成本随交易数量呈次线性增长。

由于所有状态转换都必须通过L1智能合约进行验证,因此Immutable永远不能将无效交易插入到汇总中,或窃取资产,即使Immutable的系统已完全受损。这是一个非常强大的安全属性,也是Vitalik将汇总描述为“在可预见的未来以太坊的关键可扩展性解决方案”的部分原因。

但是,Immutable作为“单一操作员”汇总运行(只有Immutable可以订购或证明交易)。这意味着Immutable可以通过预先运行或重新排序事务来提取MEV。目前几乎所有的汇总都是“单一运营商”,尽管大多数都计划随着时间的推移去中心化。

桥接安全

汇总使用与侧链完全不同的桥接结构,因为它们在L1上维护一个经过验证的“状态”,该状态只能通过有效证明进行更新。 桥接资金要求这个经过验证的状态已经包括存款/取款 - 没有multisig可以攻击(例如Ronin),并且无法通过破坏验证器(例如 Polygon)来添加“假”状态转换 - 每笔交易都经过验证,就好像它 发生在L1上。这种无需信任的桥接就是为什么汇总被称为“L2s”——它们直接依赖于以太坊的共识来保证其安全性,而不是具有可信桥的单独共识机制。

用户可以随时提交“提款”交易,将资金从L2桥接到L1。如果Immutable将此交易包含在一组经过验证的状态更改中,则用户可以无需信任地将资金直接提取到以太坊。如果Immutable不处理此提款(不可用或故意审查),用户始终可以通过直接与L1桥接合约交互来使用“完全提款”流程。

如果这个新的“完全提现”请求没有得到服务,交易所状态将被冻结,所有用户都可以通过在状态merkle树中提供他们资产的路径来提现。 确保用户可以访问这些数据,即使Immutable是恶意的或离线的,也是“汇总数据可用性问题”。 在标准的 zk-rollup结构中,这有一个简单的解决方案:要求在允许状态更新之前将必要的数据发布到以太坊 L1 上。 然而,这引入了一个小的线性气体成本,许多应用程序不愿意支付。 合并后此成本不会改变,但会通过 EIP-4488、proto-danksharding 和(最终)分片等提案大幅降低,因为以太坊将其作为基础验证和汇总数据可用性层的角色。

然而,由于这些解决方案都不是实时的,而且在链上发布calldata的成本对于大规模NFT铸币等用例来说仍然令人望而却步,Immutable目前作为有效汇总运行。Validium rollups是zk-rollups,它不会发布重建状态所需的所有数据,以换取更便宜的交易。即使在Immutable离线或恶意的情况下,为确保这些数据仍然可用,Immutable依赖于“数据可用性委员会”。该委员会的大多数成员(由著名的生态系统公司组成)和几个“强制性”成员必须在每批中签名,以证明他们拥有必要的数据。这与验证者multisig不同:只要任何一个DAC是诚实的,用户就可以成功提款。即使在整个DAC和定序器遭到破坏的数据扣留攻击中,Immutable仍然可以使用合约升级来防止勒索攻击。

Immutable的汇总验证者合约可以升级,但有14天的时间锁定,如果用户对新合约不满意,这将让用户有机会退出系统(即使Immutable恶意审查交易)。

Immutable正在转向Volition模型,其中可以将单个“保险库”(用户、代币、数量元组)标记为需要链上数据。由于存储在汇总中的大部分价值以大型代币/ETH 余额或高价值 NFT 的形式存在,因此该价值可以存储在数量相对较少的链上数据保险库中。这种结构可能会让rollup vault中的大部分价值得到链上数据的支持,从而降低数据可用性风险,同时保留对游戏等项目至关重要的廉价、大规模NFT铸币厂的能力。

Solana 

Solana作为一个完全独立的L1区块链运行,通过自定义共识机制专注于实现低成本、大规模的交易。

共识安全

Solana目前拥有超过1500个活动节点,尽管它确实对这些节点提出了大量硬件要求以实现其更高的TPS(降低个人验证交易的能力,这是区块链去中心化的重要原则)。重要的是,目前有超过20个节点控制着超过33%的质押SOL。如果这些节点串通或被入侵,他们将能够停止网络或任意审查交易。

桥接安全性 

作为一个完全独立的L1,Solana没有通往以太坊的官方桥接。然而,对于Solana用户来说,最受欢迎(和半官方)的桥梁是Wormhole,它允许资产跨多个链移动。Wormhole依赖于一组称为监护人的验证器,它们在所有桥接操作上达成⅔+1的权威共识证明。目前有19名活跃的监护人。由于Solana和Ethereum无法验证彼此的交易,桥接合约在桥接资产时完全取决于监护人的共识。这意味着,如果⅔的这些监护人遭到破坏,虫洞内的所有用户资金都可能被盗。这种机制实际上与Ronin使用的机制非常相似,不幸的是,守护者密钥也必须保持热状态才能签署新交易。

2022年初,Wormhole桥中的一个漏洞导致3.25亿美元的用户资金被盗。这实际上不是对验证器系统的妥协,而是发现了一个智能合约漏洞,该漏洞允许攻击者欺骗桥在 Solana 上发行尚未存入以太坊的ETH。Jump Crypto介入以使用户变得完整——这是加密领域财力雄厚的惊人迹象,但随着空间的增长,这是一个完全不可持续的模式。这不是对Solana或Wormhole的起诉——所有链上系统都容易受到智能合约错误的影响。虽然永远无法保证,但最好使用经过审计/正式验证的合约,这些合约经受住了时间和公众审查的考验——例如,虫洞在漏洞发生后受到严格审查,没有发现更多漏洞 .

Optimism 

Optimism是由Optimism PBC开发的以太坊乐观汇总。它于2021年8月针对白名单项目进入主网,到目前为止,NFT项目的采用率有限,尽管在Quixotic等市场上有一个早期社区。

Consensus Security 

Optimistic rollups的工作方式类似于zk-rollups:收集交易并上传所有这些状态转换的最终状态的压缩版本。然而,在zk-rollup为每个状态转换提供“有效性证明”的情况下,乐观汇总转换被认为是有效的,除非有人可以提供“故障证明”来显示发生了无效交易。如果有人能够提供这样的证明,他们将获得奖励,而证明的发布者将受到惩罚。为了让这一挑战发生,Optimistic rollups需要1周的争议时间延迟,然后交易才能完全确定。这种异步性引入了一类有趣的潜在经济攻击,减轻这些攻击是一个活跃的研究课题。

然而,Optimism的故障证明目前被禁用——这意味着Optimism(或任何破坏Optimism multisig的人)可以通过提交无效的状态转换来窃取所有用户资金。这是一个暂时的状态,一旦新的故障证明系统准备好就会升级,但在当前状态下对用户资金构成严重危险。由于Optimism是一个单一的排序器汇总,它也对潜在的MEV提取开放。

Bridge Security 

Optimistic rollups还为以太坊提供了一个无需信任的桥梁。但是,由于任何用户都可以在1周争议期内的任何时间点对批次的有效性提出质疑,因此提取到L1的资产至少会被锁定该时间段。对于可替代资产,可以使用“快速提款”(在状态转换不包含欺诈交易的假设下有效地借给用户)来规避这种锁定。 然而,由于NFT是独一无二的且不可替代,用户必须等待完整的争议期(最多一周)才能将其资产移回L1以太坊。

Optimism(与所有Optimistic rollups一样)需要将中间交易数据发布到链上,以便对其进行有效挑战——这会产生更高的费用,但会绕过不可变分析中讨论的任何复杂的数据可用性构造。

超越核心平台的安全性 

如果项目的安全性通过另一种机制受到损害,那么拥有世界上最好的核心平台安全性就无关紧要了。为了真正做出明智的决定,NFT项目需要考虑共识和桥梁安全之外的各种因素,包括: 

  • 钱包安全:用户密钥是如何存储的?如果这个存储系统被破坏(例如托管钱包提供商、原生钱包应用程序的错误版本、浏览器扩展程序中的错误依赖项),会有什么影响?
  • 元数据安全:资产元数据(包括图像)如何存储?如果由于妥协而更改或替换了此元数据,会对市场产生什么影响?
  • 项目安全性:任何平台上的项目通常都会为其项目保留一些管理员密钥。如果这些密钥被泄露会发生什么?项目是否对违规行为进行了主动监控?平台是否支持密钥管理的最佳实践?
  • 国库证券:大多数平台将拥有大量的代币储备(例如用于奖励或赠款)。这些资金是如何持有的?来自国库的转账是如何授权和执行的?妥协会有什么影响?
  • 市场安全:支持该协议的市场如何保护用户免受恶意交易(如模仿项目)的侵害?

任何这些层的妥协都可能使即使是最安全的底层平台的用户也容易受到攻击——任何描述一个无懈可击的项目的人显然是错误的。不幸的是,在处理一种新的资产类别时,尤其是增长如此迅速的资产类别时,会有人不断努力寻找新的漏洞和漏洞利用。在这样的环境中,对这些权衡的深入了解对于项目选择正确的平台至关重要。


原文链接:https://immutablex.medium.com/a-guide-to-nft-platform-security-30d7129cedd3


---煤油灯科技victorlamp.com翻译整理---

你可能也喜欢这些文章

科技互联网,科技,资讯,动态,洞察,量子,计算,AI,人工智能,机器人,区块链,Web3,分布式,操作系统,OS,芯片,视频,深度,论文