当前位置:网站首页>NFT 平台安全指南(1)
NFT 平台安全指南(1)
2022-06-26 15:29:00 【NFT践行者】
对于任何一家软件公司来说,安全问题从根本上来说都是一个困难和不对称的问题。在这一方面没什么灵丹妙药 —— 仅在上个月,就有几家技术公司出现了明显的漏洞 (e.g. Okta, HubSpot)。然而,加密货币本身具有非托管和不可篡改的性质意味着安全漏洞可能会导致数十亿美元永久损失。这种持续存在的风险对于那些野心勃勃的 NFT 项目来说是一项巨大的挑战。
数亿美元的用户资产损失很大程度地破坏了该行业的声誉,并严重损害涉及的公司和项目。这种风险对于正在进入该行业的许多企业来说是不可接受的,尤其是那些已拥有一定的用户基础、声誉和法律责任的企业。因此,安全性作为 NFT 项目选择平台的一个判断准则,变得越来越重要。
每个平台都具有强大的激励来使自己足够安全。但事实是,所有解决方案都会有自己的取舍 —— 重要的是,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 的签名者不需要对每一笔存款和提款交易签名,这些管理员私钥可以保持离线,使得他们被攻击的机会更小。
边栏推荐
- 【TcaplusDB知识库】TcaplusDB单据受理-建表审批介绍
- 学习内存屏障
- PCIe Capabilities List
- 【文件】VFS四大struct:file、dentry、inode、super_block 是什么?区别?关系?--编辑中
- selenium chrome 禁用js 禁用图片
- 【ceph】CephFS 内部实现(三):快照
- PCIe Capabilities List
- 在重新格式化时不要删除自定义换行符(Don‘t remove custom line breaks on reformat)
- [graduation season · advanced technology Er] what is a wechat applet, which will help you open the door of the applet
- JS simple deepcopy (Introduction recursion)
猜你喜欢

如何配置使用新的单线激光雷达

Use of abortcontroller

【C语言练习——打印空心上三角及其变形】

Application of ansible automation

svg环绕地球动画js特效
![[applet practice series] Introduction to the registration life cycle of the applet framework page](/img/82/5a9219a7c2ee211180cc4b2d138204.png)
[applet practice series] Introduction to the registration life cycle of the applet framework page

【TcaplusDB知识库】TcaplusDB单据受理-创建业务介绍

评价——模糊综合评价

TweenMax+SVG切换颜色动画场景
![[CEPH] cephfs internal implementation (I): Concept -- undigested](/img/5c/ca666118848b4f3042b834fb79d27f.png)
[CEPH] cephfs internal implementation (I): Concept -- undigested
随机推荐
Beijing Fangshan District specialized special new small giant enterprise recognition conditions, with a subsidy of 500000 yuan
Have you ever had a Kindle with a keyboard?
【ceph】CephFS 内部实现(二):示例--未消化
AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE sharding policy
5000字解析:实战化场景下的容器安全攻防之道
[tcapulusdb knowledge base] Introduction to tcapulusdb data structure
[tcapulusdb knowledge base] tcapulusdb doc acceptance - table creation approval introduction
Applet: uniapp solves vendor JS is too large
Comparative analysis of restcloud ETL and kettle
[tcapulusdb knowledge base] tcapulusdb system user group introduction
sqlite加载csv文件,并做数据分析
[CEPH] cephfs internal implementation (II): example -- undigested
HW safety response
[tcapulusdb knowledge base] tcapulusdb doc acceptance - transaction execution introduction
【leetcode】701. Insert operation in binary search tree
Inaccurate data accuracy in ETL process
查词翻译类应用使用数据接口api总结
Database - sequence
Reflection modification final
Golang temporary object pool optimization