关于任何一家软件公司来说,安全问题从根本上来说都是一个困难和不对称的问题。在这一方面没什么灵丹妙药 —— 仅在上个月,就有几家技术公司呈现了显着的缝隙 (e.g. Okta, HubSpot)。但是,加密钱银自身具有非保管和不行篡改的性质意味着安全缝隙或许会导致数十亿美元永久丢失。这种继续存在的危险关于那些野心勃勃的 NFT 项目来说是一项巨大的应战。
数亿美元的用户财物丢失很大程度地损坏了该职业的声誉,并严峻危害涉及的公司和项目。这种危险关于正在进入该职业的许多企业来说是不行承受的,特别是那些已具有必定的用户根底、声誉和法律责任的企业。因而,安全性作为 NFT 项目选择渠道的一个判断原则,变得越来越重要。
每个渠道都具有强壮的激励来使自己足够安全。但事实是,一切解决方案都会有自己的取舍 —— 重要的是,NFT 项目应该清楚地了解他们以及他们所在的渠道做了什么取舍。
我是 Alex Connolly,Immutable 的 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-4488、proto-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 项目还需求考虑一致/桥接安全性之外的各种因素,包含:
-
钱包安全:用户的私钥是怎么存储的?假如这个存储体系被进犯,会有什么影响 (例如,某个保管钱包的供货商,某个欠好的本地钱包运用程序,某个质量很差的浏览器扩展程序依赖)?
-
元数据安全:财物的元数据 (包含图画) 是怎么存储的?假如这些元数据因为遭到进犯而被更改或替换,会对商场有什么影响?
-
项目安全:任何渠道上的项目一般都为其项目保留一些办理员私钥。假如这些私钥被进犯,会产生什么?你的项目是否有主动监测缝隙的功用?你所在的渠道是否支撑私钥办理的最佳实践?
-
财库安全:大大都渠道都会有大量的代币储备 (例如,用于奖赏或赞助)。这些资金是怎么保存的?关于财库内的财物搬运是怎么授权和履行的?假如遭到了进犯会有什么影响?
商场安全:支撑该协议的商场怎么保护用户,让其避免像山寨项目这样的恶意买卖行为?
上述说到的任何一个环节遭到进犯,都或许使具有最安全的底层渠道的用户遭到损伤 —— 显然,任何人揄扬自己的项目是无懈可击的都不行信。不幸的是,当处理一个新的财物类别时,特别是一个增长如此迅速的财物类别,会有一些人不断地寻找新的缝隙和可进犯点。在这样的环境中,在为你的项目选择正确的渠道时,充沛理解你们所面对的取舍至关重要。
来源 | Immutable X