• 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 价值号
  • 视频
  • 专题
  • 深度
  • 入驻价值号
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 价值号
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

a16z:如何建立提高智能合约安全性的开发流程

Foresight NewsForesight News  •  2022-06-08
Web3 项目在开发生命周期的各个阶段都应考虑添加保障安全性的流程。

Web3 项目在开发生命周期的各个阶段都应考虑添加保障安全性的流程。

许多发生在 Web3 项目上的黑客攻击都可以通过加强智能合约的安全性进行避免。

通常,攻击者会发现并利用整个软件开发环节中的一些缺陷 —— 从设计到部署和维护以及发布新代码等一系列步骤。如果拥有一套标准的智能合约开发和危险应对流程,我们相信安全事件会相应减少。

本篇文章的目的是概述 Web3 建设者、开发人员和安全团队在设计、开发和维护智能合约系统时必须考虑的核心安全因素。以下框架讨论了应在整个软件开发生命周期中实施的八种核心安全因素 —— 从威胁建模到应急响应准备。

在了解智能合约安全防护之前,要先了解软件的开发阶段。软件开发可以分为以下五个阶段:

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

开发:开发人员编写系统的代码。

测试和审查:开发人员将所有模块放在一个测试环境中运行,以此评估代码的准确性和稳定性。

部署:开发人员将系统投入实际环境。

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

有了这个基本开发周期的基础,现在我们可以深入了解每个步骤中影响智能合约安全的注意事项。下图将需要考虑的因素对应到相关的开发阶段。需要注意的是,环节中的某些步骤有多方面安全考虑:

如上所示,软件开发生命周期不一定总是遵循线性路径。在实践中,可能出现重叠或延伸到其他阶段的情况。某些步骤可能在每个版本中都需要重复。一些任务 —— 例如测试和安全审查 —— 可能需要自始至终执行。

上述的软件生命周期和相应的安全注意事项为促进智能合约的安全性提供了有用的基础信息,但我们将在下文中对其进行更详细地研究,使得理解、应用和分享这些实践变得尽可能简单,并具体分析关键问题:What、Why 以及 How。

设计阶段的智能合约安全注意事项

考虑威胁建模和安全设计

What:从开发生命周期的一开始就实施识别系统的潜在威胁并确定其优先级的具体方案是很重要的 —— 智能合约开发人员应确定要在开发中实施的所有安全控制以及应在开发中检查的所有威胁测试、审计和监控。所有的安全假设,包括攻击的预期复杂程度和手段,都应在设计阶段明确定义和阐明。

Why:虽然开发人员倾向于只关注智能合约或协议的预期用途,但这种关注的单一性可能会给他们留下被攻击者利用的盲点。

How:遵循已知的威胁建模实践。如果开发团队没有内部安全专业知识,那么它应该在设计阶段的早期与安全顾问合作。在设计系统时采用「攻击者」的心态,并假设任何个人、硬件或服务都可能受到攻击。

开发阶段的安全考虑

考虑管理和访问控制

What:实施访问控制,限制特权账户的权限和智能合约调用执行管理任务的特殊功能(例如升级合约和设置特殊参数)。遵循「最低权限原则」:每个参与者应该只拥有所需的最低访问权限。

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

How:建立一个多重签名钱包或 DAO 合约,将对协议的更改透明化,并且应通过彻底的审查流程以及时间锁(故意延迟制定并具有取消能力),以确保可以验证它们的正确性并在发生治理攻击时回滚。确保特权密钥在自托管钱包或安全托管服务中,且可以被安全地存储和访问。

考虑集成可重复使用、久经考验的模板

What:尽可能利用现有的智能合约标准(例如 OpenZeppelin Contracts)并评估您可能需要与现有协议进行集成中可能出现的安全问题。

Why:使用现有的经过实战检验、社区审核的标准在降低安全风险方面大有帮助。评估协议集成的风险有助于您进行安全检查,以防止针对外部组件的攻击,例如预言机操纵。

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

测试和审查阶段的安全注意事项

考虑测试和项目文档

What:创建清晰、全面的代码文档,并设置快速、全面、易于运行的测试套件。在可能的情况下,在测试网上或通过主网模拟设置测试环境中进行更深入的实验。

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

How:通过已知的测试框架和安全检查应用进行测试 —— 例如 Hardhat、 Mythril、 Slither、 Truffle等;提供不同的测试技术,例如模糊测试(fuzzing)、属性检查(property-checking),甚至形式验证(formal verification);全面记录您的代码,使用 NatSpec注释来指定预期的副作用、参数和返回值。使用文档生成工具和高级设计说明生成实时文档。

考虑内部审查和安全审计

What:花时间通过内部和外部代码审计来发现错误。

Why:从功能开发转移到安全问题上,让开发人员有时间发现潜在的安全问题。外部审计在这方面可能特别有用,因为它们可以带来开发团队没有的外部观点和专业知识。

How:在项目开发的适当时刻,安排功能冻结,以便有时间进行内部审查,然后进行外部审计。这些动作应该在实时部署和升级之前进行,可以查看来自 ConsenSys、Nascent、OpenZeppelin和 Trail of Bits的指南,这些指南为开发人员提供了考虑事项清单 —— 包括时间安排 —— 供任何准备审计的人使用。还要确保查看部署事务以确保它们使用经过审核的代码版本并具有适当的参数,尤其是在升级软件时。

部署和维护阶段的安全注意事项

考虑激励白帽社区参与

What:创建鼓励社区参与开源代码库安全改进的计划。一种方法是建立漏洞赏金。另一种方法是鼓励社区开发协议监控检测机器人。

Why:开发团队可以从更广泛的知识和经验中受益(同样,开源也有助于 Crypto 发展)。值得注意的是,此类程序可以帮助激发开发者对项目的热情,实质上将社区和白帽黑客变成了传道者。它们还可以通过为黑客提供成为防御者的途径来帮助将潜在的攻击者转变为守护者。

How:使用漏洞赏金平台(例如 Code4rena、HackenProof、 Immunefi或 Secureum)为赏金系统提供基于严重程度的奖励,以激励熟练的黑客披露漏洞。(披露:本文的一些共同作者为 Forta工作,该网络有一个为创建去中心化高质量安全监控机器人提供代币激励结构的网络。)开发团队可以鼓励他们的协议社区利用传统和 Web3 原生的方法来激励对漏洞的寻找,并让参与者通过增强安全性来获得潜在奖励,从而为所有人带来双赢。

考虑实时监控

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

Why:早期发现问题使团队能够快速对漏洞和错误进行响应,从而可能阻止或减轻损害。这似乎很容易想到,但在规划中可能会被忽略。

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

考虑事件应急响应流程

What:利用能够在出现任何安全问题时立即做出响应的工具和流程。

Why:即使有最好的部署前保护措施,智能合约和关键组件(例如预言机和跨链桥)仍然可能存在临时问题。拥有专门的人员、清晰的流程和适当的自动化确保可以快速调查并尽快解决事件。

How:通过计划如何响应事件或紧急情况以及最大程度地使得响应能力自动化,为最坏的情况做准备。包括为有能力的人员分配调查和响应责任,这些人员可以通过分布式安全邮件列表、代码存储库中的说明或智能合约注册表公开联系与安全问题相关的人员。根据协议的威胁模型,开发一套流程,其中可能包括场景演习和采取紧急行动的预期响应时间。考虑将自动化集成到事件响应中:例如,工具可以接收来自 Forta 机器人的事件并对其采取行动。

对于安全的考虑应该是成功开发的一个组成部分,而不仅仅是事后的想法。

尽管上述框架为构建 Web3 协议和应用的团队在整个开发过程中提高安全性方面提供了一些快速指南,但简短概述不足以提供对智能合约安全性各个方面的详尽讨论。缺乏内部安全专业知识的团队应该联系合格的 Web3 安全专家,他们可以帮助团队将上述的通用指导应用于他们的具体情况。但最重要的是,请记住,安全绝不仅仅是在简单的清单中打勾以管理复杂的问题,它始终是一套永无止境、持续不断的实践过程。我们仍处于建立这些实践的开始阶段,因此现在是为所有开发人员协作创建和共享安全实践的时候了。

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0
a16z

扫一扫,分享到微信

相关推荐

a16z:NFT 开发者为何选择 cc0? 深度

a16z:NFT 开发者为何选择 cc0?

Foresight News 2022-08-04 深度
a16zNFT
​cc0 为 NFT 创作者提供了一种启动项目的方式,即由项目自己探求存在的无限可能。
a16z对话以太坊基金会研究员:以太坊合并后将走向何方? 深度

a16z对话以太坊基金会研究员:以太坊合并后将走向何方?

星球日报 2022-08-04 深度
以太坊a16z
合并对于以太坊而言是个里程碑,在这之后,以太坊将有何发展?GAS问题能得以解决吗?
a16z被怼名场面:问题句句直戳Web3命门 深度

a16z被怼名场面:问题句句直戳Web3命门

老雅痞 2022-06-29 深度
a16zWeb3
a16z 的 Marc Andreessen 和Packy McCormick 未能连贯地解释 web3 用例表明该市场的空洞性,经常被布道者所掩盖。

碳链快讯更多 ›

2022-08-08

软银第一财季创纪录亏损234亿美元,因投资组合价值缩水

2022-08-08

慢雾:EGD_Finance被黑简析

2022-08-08

解放日报:上海率先起跑元宇宙产业新赛道

2022-08-08

倪行军卸任蚂蚁区块链公司职务

2022-08-08

网传腾讯幻核停止更新但未裁员,部分数字藏品滞销已锁仓处理

2022-08-08

Mark Cuban:美SEC对加密货币立场令人难以置信的虚伪

2022-08-08

Celsius撤回以9.2万美元的月薪聘请前首席财务官担任破产程序顾问的动议

2022-08-08

Coinbase NFT市场用户量突破1万,LooksRare NFT市场总用户量已突破10万

2022-08-08

彭博高级分析师:比特币可能成为全球抵押品

2022-08-08

摩根士丹利招聘加密产品开发经理,所属团队为超9000亿美元资产提供支持

2022-08-08

Chainlink:协议及服务不支持以太坊PoW等分叉

2022-08-08

比特币市值占比降至近半年以来最低点

2022-08-08

尼泊尔已起草必要的修正案以发行CBDC

2022-08-08

美国参议院通过规模为4300亿美元通胀削减法案

2022-08-08

报告:基于比特币闪电网络的应用程序已增涨至超20个类别100多个应用

2022-08-08

加密货币投资者重新关注股市,以此判断最糟糕的时期是否已经过去

2022-08-07

前美国财长萨默斯:美联储可能重蹈1970年代覆辙

2022-08-07

中非共和国总统:支持比特币在全国范围内使用

2022-08-07

海南:支持儋洋地区创建数字人民币应用示范城市

2022-08-07

马斯克要求与推特CEO进行公开辩论,向公众阐明推特真实账户问题

2022-08-07

谷歌前CEO曾称赞比特币是一项卓越的密码学成就

2022-08-06

人民银行:将出台数字人民币相关法规政策

2022-08-06

新加坡全球海事脱碳中心在生物燃料试点项目中采用区块链

2022-08-05

蒂芙尼通过NFTiff筹集超1250万美元资金

2022-08-05

WazirX CEO的Shardeum项目正在以2亿美元估值筹集1800万美元资金

2022-08-05

蒂芙尼:250枚NFTiff已全部售罄

2022-08-05

Meta计划发行100亿美元债券

2022-08-05

加密分析师:“不要卖”你的比特币给贝莱德

2022-08-05

NEAR Protocol:与用户钱包绑定的电子邮件和SMS数据遭到泄露

2022-08-05

欧易Web3钱包接入天眼KYT系统,可自动检测风险地址

2022-08-05

花旗:合并可能会改善以太坊作为价值存储的情况

2022-08-05

印度执法局对Wazirx主管进行搜查,冻结其价值6.467亿卢比的银行资产

2022-08-05

日本区块链公司Financier融资580万美元,B Dash Ventures领投

2022-08-05

调查:近40%受访美国投资者在市场不确定下购买更多加密货币

2022-08-05

Argo Blockchain 7月份产出219枚比特币,环比增长22%

2022-08-05

交易员Peter Brandt:比特币是自己最大的头寸之一

2022-08-05

中共一大纪念馆首发“树德里”系列数字文创产品

2022-08-05

The Sandbox正在确定因其官方Instagram账户被入侵而受影响的用户数

2022-08-05

Kevin O’Leary称已在市场低迷时期增持加密货币

2022-08-05

Aptos进行Devnet更新,更新框架中删除部分Diem遗留和核心逻辑

2022-08-05

世界经济论坛调查:相较于股票或债券,散户投资者更了解加密货币

2022-08-05

V神:USDT、USDC等或将决定 ETH 硬分叉的走向

2022-08-05

以太坊伦敦升级一周年,年通胀速度下降超53%

2022-08-05

马斯克:狗狗币的实际总交易能力远高于比特币

2022-08-05

福布斯:美国SEC在调查美国所有的加密交易所

2022-08-05

泰国证券交易委员会向四家当地数字资产运营商颁发经营许可证

2022-08-05

一开发者伪造11个假身份,Solana TVL中资金被重复计算

2022-08-05

BitMEX创始人:考虑到美联储的货币政策,以太坊合并的预期价格为2,815美元

2022-08-05

以太坊核心开发者:若测试网合并顺利,将于8月11日商定以太坊主网合并总难度

2022-08-05

越南央行正考虑将虚拟货币纳入反洗钱法

推荐文章

  • 美国最新加密货币法案重点:分类监管 鼓励比特币支付

    2022-06-08

  • 无国籍货币:自由银行时代和野猫银行家的教训

    2022-06-08

  • 下一个风口?一文盘点八个Web3社交产品

    2022-06-08

  • 科普:什么是去中心化的数字身份

    2022-06-08

  • Delphi:全面读懂以太坊分片路线图

    2022-06-08

价值号更多 ›

吉时通信
吉时通信
文章: 133
  • 以太坊合并:如何影响显卡和区块链行业?
  • 以太坊合并的底层观察:区块结构和MEV
  • 宏观视角解析LUNA和UST崩盘:稳定币的路在何方?
链集市ChainMarket
链集市ChainMarket
文章: 178
  • 区块链产业周刊丨北京发布数字经济全产业链开放发展行动方案;江苏省成立区块链发展协会;重庆启动数字人民币缴税试点
  • 区块链产业周刊丨全球区块链商业委员会与全球数字金融合并;最高人民法院发布区块链司法应用相关意见;蚂蚁链区块链应用专利获国家授权
  • 区块链将如何帮助我们解决气候问题?
Unitimes
Unitimes
文章: 383
  • Web3 与Web2:根本意识形态分歧
  • 以太坊漫游指南:读懂以太坊发展路线图
  • Web3 与 Web2:根本意识形态分歧
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款
微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

CBDC 比特币 DeFi 以太坊 区块链