木星链 木星链
Ctrl+D收藏木星链
首页 > SAND > 正文

NFT:a16z:给 Web3 项目的智能合约安全指南

作者:

时间:1900/1/1 0:00:00

通常,黑客会发现并利用软件开发整个流程链条(从设计到部署再到维护)中的缺陷,从而打破区块链项目的安全屏障。如果能够提前了解到相关经验,我相信安全事故会少很多。

本文概述了 Web3 开发人员和安全团队在设计、开发并维护智能合约时必须考虑的安全要素,覆盖了从威胁建模到应急响应准备的整个周期。

开发一款安全的软件包括以下五个阶段:

设计:开发人员描述系统所需的功能和操作,包括重要的基准和固定属性;

开发:开发人员编写系统代码;

测试和评审:开发人员将所有模块聚集在一个测试环境中,并评估它们的正确性、规模和其他因素;

部署:开发人员将系统投入生产;

维护:开发人员评估和修改系统,确保其执行预期功能。

 下图将需要考虑的安全因素与上述阶段对应起来。

Web3公司ContentFi推出首个基于a16z Can't be Evil的NFT许可解决方案:12月27日消息,Web3 公司 ContentFi 推出首个基于 a16z Can't be Evil」Licenses 的 NFT 许可解决方案Can't Be Vil 许可工具包(CBE License Toolkit),旨在简化 IP 许可流程,降低进入 NFT 生态系统的准入门槛,以开放方式获得许可权限检查、发布和展示 NFT,并且使用户可以轻松指定对 NFT 项目的所有权。

此前报道,8月31日,a16z推出开源Can't be Evil NFT 许可,旨在推动 NFT 行业发展。[2022/12/28 22:11:23]

需要注意的是,软件开发的生命周期并不一定总是遵循线性的路径:各类别可能重迭或扩展到其他阶段。对于每个版本,步骤可能会重复。有些安全任务(如测试和安全审查)可能需要贯彻执行。

上面描述的软件生命周期步骤和相应的安全考虑为促进智能合约安全性提供了基础。下面将从三个问题出发,进行更详细的研究。

A16z合伙人:纽约可能已是顶级Web 3城市:金色财经报道,针对纽约新任市长 Eric Adams宣布将通过比特币领取前三笔薪水这件事,a16z合伙人Chris Dixon评价称其“很聪明”,而且纽约可能已是顶级Web城市。据悉,Eric Adams承诺将把纽约市打造成加密货币行业和其他快速增长的创新行业的中心。[2021/11/5 6:32:47]

1. 设计阶段的智能合约安全考虑——考虑威胁建模和安全设计

内容:从项目开发生命周期初期就明确识别系统的潜在威胁,并确定其优先级是关键。智能合约开发人员应该识别在开发中要实现的所有安全控制,以及在测试、审计和监控中应该检查的威胁。所有安全假设,包括攻击者预期的复杂程度和经济手段,都应该在设计阶段明确定义和阐明。

原因:虽然对开发人员来说,只关注智能合约或协议的预期用途非常吸引人,但这唯一的焦点可能会给他们留下“盲点”,会被攻击者利用。

方法:遵循已知的威胁建模实践。如果一个开发团队没有内部的安全专家,那么它应该在设计阶段的早期就与安全顾问接触。在设计系统时要有“攻击者”的心态,并预先假定任何个人、机器或服务都有可能受到攻击的情况。

a16z合伙人Chris Dixon:NFT正经历比特币早期阶段发生的事:金色财经报道,a16z合伙人Chris Dixon在推特上发文称,NFT现在正经历比特币早期阶段发生的事,在早期比特币时代 ,怀疑论者提出了大量质疑和复杂理论,但结果,比特币早期采用者看到了产品价值,并相信价值会随着时间的推移而不断增加。今天,NFT也在发生同样的事情。如果你不喜欢NFT,那也没关系,简单来说,你其实和其他99%的大多数人一样,而他们并不是NFT和比特币的早期采用者。Chris Dixon说:“就个人而言,我对数字收藏品的兴趣是对线下收藏品兴趣的100倍,我收集过域名,而且早在四年前就购买了加密猫涉足NFT市场。”[2021/12/3 12:47:55]

2. 发展阶段的保安考虑——管理考虑和访问控制

内容:实施访问控制,限制对特权帐户和智能合约调用执行管理任务(如升级合约和设置特殊参数)的特殊功能的能力。遵循“最小特权原则”——每个参与者应该只拥有所需的最小访问量。

原因:通过升级和治理流程维护协议,开发人员可以通过添加新功能、修补安全问题和解决不断变化的条件来改进协议。如果升级能力没有得到适当的控制,这可能会构成严重的安全漏洞。

a16z聘请瑞生国际律师事务所合伙人担任加密投资总法律顾问:9月3日消息,风险投资巨头a16z已聘请瑞生国际律师事务所(Latham & Watkins)合伙人Miles Jennings担任加密投资总法律顾问,他将帮助a16z投资的公司应对法律和监管挑战,并努力推进和改进适用于加密公司的监管。Jennings将与前联邦检察官Kathryn Haun合作,后者是a16z价值22亿美元的加密投资基金的负责人之一。Jennings在瑞生期间曾与ConsenSys合作推出一种自动可转换票据,为加密初创公司提供融资等帮助。他还曾担任Uniswap和Avalanche等去中心化金融协议的外部顾问。针对行业面临的监管压力,Jennings表示,确保企业家有足够的自由去投资和开发有望改变世界的技术,同时保护投资者,并非易事。他赞扬美国监管机构试图找到适当的平衡点,但也指出持续的模糊性给去中心化平台造成了挑战。他说:“仍然存在大量抑制创新的不确定性。但该行业无疑将从监管机构和业内专家携手制定的明确框架中受益。”(彭博社)[2021/9/3 22:56:50]

方法:建立多重签名钱包或 DAO 合约,以透明的方式代表社区管理变更。变更应该经过彻底的审查过程,并设置一个时间锁定(故意推迟规定的制定并具有取消的能力),以确保在治理攻击的情况下可以验证其正确性并回滚(rolled-back)。确保在自行保管钱包或安全保管服务中可安全存储和访问特权密钥。

a16z宣布成立22亿美元的第三只加密货币基金:AndreessenHorowitz(a16z)宣布成立一只22亿美元的加密货币基金。目前该风险投资巨头已通过两只早期基金管理8.65亿美元的资金,其加密资产资管规模(AUM)已超过30亿美元。(福布斯)[2021/6/24 0:03:41]

3. 考虑可重复使用的、经过实战测试的模板和集成

内容:尽可能利用现有的智能合约标准(如 OpenZeppelin 合约),并评估可能需要与现有协议进行的协议集成的安全性假设。

原因:使用现有的经过实战检验、社区审计的标准和实施降低安全风险方面的措施会有很大的帮助。评估协议集成的风险有助于开发安全检查,以防止对外部组件(如预言机操纵)的攻击。

方法:导入经过安全审计的受信任合约库和接口。Web3 的重点是开源使用、重用性和可组合性。确保在代码库中记录合约依赖项及其版本,尽可能减少代码占用。例如,导入大型项目的特定子模块,而不是导入所有内容。了解你的风险敞口,监控供应链攻击。使用官方接口调用外部协议,并确保考虑到潜在的集成风险。监控重复使用的合约的更新和安全披露。

4. 测试和评审阶段的安全性考虑——考虑测试和文档

内容:创建清晰、全面的代码文档,并建立一个快速、彻底、易于运行的测试套件。在允许的情况下,在测试网或通过主网模拟建立测试环境,进行更深入的实验。

原因:写出对代码库预期行为的假设有助于确保威胁模型中的风险得到解决,并且用户和外部审计员可理解开发团队的意图。为代码创建测试套件有助于证明(或反驳)开发假设,并鼓励对威胁模型进行更深入的思考。这个测试套件应该包括在极端市场场景下检查项目代币经济的机制设计测试,以及单元测试和集成测试。

方法:实施已知的测试框架和安全检查器,如 Hardhat、Mythril、Slither、Truffle 等,它们提供不同的测试技术,如模糊化、属性检查,甚至正式验证。使用 NatSpeccomments 大范围记录代码,从而指定预期的副作用、参数和返回值。使用文档生成工具以及高级设计说明生成实时文档。

5. 考虑内部审查和安全审计

内容:花时间通过内部和外部代码检查来发现漏洞。

原因:从特性开发转向关注安全问题给了开发人员时间来发现潜在的模糊问题。外部审计在这方面尤其发挥作用,因为它们可以带来开发团队不具备的外部视角和专业知识。

方法:在项目开发的适当节点,冻结某功能,从而有时间进行内部审查,然后进行外部审计。这应该在任何实际部署和升级之前进行。

请查看 ConsenSys、Nassent、OpenZeppelin 和 Trail of Bits 的指南,这些指南为开发人员提供了考虑事项清单,包括时间安排,供任何准备审计的人参考。还要确保检查部署交易,确保它们使用经审核的代码版本并具有适当的参数,特别是在升级软件时。

6. 部署和维护阶段的安全考虑——激励白帽社区参与

内容:创建鼓励社区参与开源代码库安全改进的程序。一种方法便是创造漏洞奖励。另一种方法是鼓励社区开发协议监控检测机器人。

原因:开发团队可以从大范围的知识和经验中获益(这也是开源在加密领域的作用)。这样的程序可以帮助激发对一个项目的热情,从本质上把社区和白帽黑客变成布道者。通过为黑客提供成为防御者的途径,它们还可以帮助将潜在的攻击者转变为安全资产。

方法:使用漏洞赏金平台(如Code4rena、HackenProof、mmunef或Secureum)激励熟练的黑客安全地披露漏洞。

注:文中的一些作者在 Forta 公司工作,该公司拥有一个网络,为去中心化创建高质量安全监控机器人提供了一个代币化激励结构。开发团队可以鼓励他们的协议社区利用传统和 Web3 原生的两种方法来激励漏洞奖励,并通过增强安全性来让参与者潜在地获利,实现双赢。

7. 实时监控安全考虑

内容:实施监控智能合约和关键操作组件(如预言机和跨链桥)的系统,并根据已知的威胁模型向开发团队和社区报告可疑活动。

原因:问题的早期检测使团队能够快速响应漏洞,潜在地阻止或减轻任何损失。

方法:使用监控平台或分布式节点运行机器人,实时监控智能合约事件。根据需要为开发团队和更广泛的社区插入数据仪表板和警报通知。

8. 意外和紧急情况响应操作的安全考虑

内容:使用能够在发生任何安全问题时立即做出响应的工具和流程。

原因:即使有最好的部署前保障措施,智能合约和关键组件(如预言机和跨链桥)仍有可能出现实时问题。配备专门的人员、清晰的流程和适当的自动化设备,确保可以快速调查事件,并尽快解决。

方法:为最坏的情况做准备,计划如何应对事件或紧急情况,并在最大程度上自动化响应能力。包括分配调查和响应的责任,这些人员可以通过分布式安全邮件列表、代码存储库中的指示或智能合约注册表就安全问题公开联系。根据协议的威胁模型,开发一组流程,其中可以包括场景演练和采取紧急行动所需的预期响应时间,可以考虑将自动化集成到紧急事件响应中。

安全考虑应该是成功开发的一个组成部分,而不只是事后考虑或补充。虽然这个框架分享了一些构建 Web3 协议和应用程序的快速指南,从而促进整个开发过程中的安全性,但没有任何简短的概述可以全方面讨论智能合约安全。缺乏内部安全专业知识的团队应该联系合格的 Web3 安全专家,他们可以指导并帮助应用于他们的特定情况。

请记住,安全性不是一个简单的问题。安全性将永远是一套永无止境、持续不断的最佳实践。我们仍然处于建立这些实践的初期阶段,现在是时候为所有开发人员协作创建和共享它们了。

标签:NFTWEBWEB3比特币NFTinderWEB3.0价格WEB3COIN比特币钻石还会到50元一个吗

SAND热门资讯
PLA:Play and Earn 让加密游戏误入歧途

本文将讨论为什么玩并赚到钱,我们设计进入游戏的方式,然后更好地谈论以商业模式为核心的商业模式,并为以玩为游戏的未来.

1900/1/1 0:00:00
WEB:不是Web2产品的替代 也不是Social to Earn:Web3社交的机会究竟在哪?

核心观点1.1 什么是Web3社交Web3社交赛道,可以说是所有具备与社交相关的Web3产品总称,是一个很宽泛、但比较容易理解的概念.

1900/1/1 0:00:00
NFT:这一届NFT正用“躺平”和“暗黑”对抗熊市

皮之不存,毛将焉附。在加密熊市背景下,NFT 市场已经从「我们都会成功」变成了「我们都会死去」(we’re all gonna die).

1900/1/1 0:00:00
NFT:浅论海外NFT的整体投资价值和估值逻辑

编者按NFT自从2021年火爆出圈以来,受到市场的广泛关注和讨论。虽然海外市场的NFT的产品逻辑与国内市场的数字藏品并不完全一样,但通过全局性地了解海外市场的发展和运行逻辑,有助于帮大家从长期性.

1900/1/1 0:00:00
EFI:下一轮周期到来之际 DeFi和GameFi谁有更大潜力?

转自:老雅痞大多数关注加密货币的用户听说过DeFi Summer,这发生在2020年,当时,看起来DeFi将是加密货币和区块链的主流用例。然而,一年后,一些类似于口袋妖怪的游戏起飞了.

1900/1/1 0:00:00
NFT:源码解读:你买的NFT到底是什么?

如果你是WEB3加密界的新手,面对众多概念无从入手,那么欢迎你,来对地方了!!本文围绕标准?ERC721协议,描述了Mint、?safeMint、?transfer等是如何实现资产管理的.

1900/1/1 0:00:00