- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能合约审计智能合约关于智能合约(smart contract)最早是由跨领域法律学者尼克.萨博(Nick Szabo)于1995年提出来的。智能合约是对现实中的合约条款的执行电子化的量化交易协议。智能合约设计的总体目标是满足常见的合约条件(如支付条款,留置权,机密性,以及执行等),以及最大程度地减少恶意和偶然地异常,最大限度地减少对可信中介的依赖。智能合约已经在ICO,电子投票和供应链管理等很多领域得到应用。由于以太坊等第三方智能合约平台可以给开发人员提供低费用的线上介入服务,现在任何人都可以挖掘智能合约的潜在使用范围。所以,我们认为智能合约是区块链技术实现中最有前景的领域。然而,这项新技术并非没有挑战。其中一个问题是如何对智能合约进行合适的审计,以确保不存在安全问题,并确保所有合约得到高效的执行。如果你们之前从未接触过智能合约的审计,那么该流程肯定会成为你们开发团队的真正考验。正如我们随后要提及的一样,忽视单一错误的价格就可能会导致公司数以百万计直接经济损失,更不要说由此造成的公司品牌和声誉等间接的损失。在本文中,我们会详细说明智能合约审计时涉及的各种主题。首先我会解释一下智能合约审计的含义,然后再讨论开发人员实施审计的流程和方法。能够在内部进行审计可以为公司节省大笔资金。然而,就算是经验丰富的开发人员,实施合约审计的路都不会平坦,而是荆棘满布,危险重重。出于这个原因,我建议智能合约审计最好由外部各方来实施。最后,我们会介绍一些智能合约开发人员可能还不知道的自动化系统,这些软件可以帮助我们快速识别代码中的缺陷和Bug。智能合约审计智能合约的审计涉及开发人员review和仔细检查用于承保智能合约条款的各种程序代码。可以让开发人员在智能合约部署之前识别任何潜在的bug和漏洞。智能合约审计通常由第三方专业审计公司或多方参与进行,以确保代码尽可能彻底地被review。根据合约的复杂性,公司可以选聘专业智能合约团队进行审计。在部署之前就获得智能合约代码权限和介入非常重要。一旦代码写入区块链,就无法再更改。启动未经适当审计的智能合约可能会造成不可估量的严重后果,可能会导致合约无法按照预期的方式运行,或者容易被利用漏洞攻击和篡改、导致个人数据丢失等安全问题。智能合约审计的结构智能合约审计时需要关注的项目有:1、常见错误,包括堆栈问题,编译和代码重入错误。2、智能合约主机平台的已知错误和安全漏洞3、智能合约破坏测试(这包括模拟对合约的各种攻击和渗透)智能合约审计的实施智能合约审计有两种基本方法:手动和自动代码分析。让我们来说说相关的内容:手动与自动分析代码尽管手动分析的方法很费劲而且很难发现很多问题,但这种方法有许多优点。如果你有一个经验丰富的由大量老司机们组成的开发团队,那么对合约代码进行手动分析是识别代码问题的最佳方法。手动代码review将涉及团队审查每一行的代码,以便仔细审查它的编译、重入错误和安全等问题。当然,最重要的是安全问题,这是智能合约长期稳定运行的最大风险点。自动代码分析的好处是在检查代码时可以节约大量的人力和时间。自动分析代码还可以进行多条件复杂的渗透测试,有助于快速发现漏洞。大多数以太坊智能合约的开发人员使用Truffle进行自动代码测试。还有的人使用Populus,他是用python开发的测试框架,允许使用TestRPC进行快速测试。当依赖自动化系统做审计时,需要谨记每一种自动化框架都有一定的缺点,缺点,缺点,重要事情说三遍。自动化代码review带来的主要问题包括漏洞的漏报和错报问题。虽然错报可能是一种麻烦,但真正的危险的是漏洞的漏报。正因为如此,开发人员应该坚持对代码进行一次彻底的人工review的原则,即便是有很完善的自动代码测试系统。以太坊智能合约的攻击类型示例1、重入攻击。2、整型溢出和下溢。这点之前笔者的一篇文章《25日两区块链加密币被攻击价格暴跌停牌,只因代码的小Bug》做过实例分析和介绍,大家可以浏览。3、重排序攻击4、重放攻击5、短地址攻击智能合约性能验证确保你的智能合约在推出之前进行性能优化至关重要。任何智能合约的性能都与代码的质量直接相关。正因为如此,所有智能合约审计都应包括性能验证。稍后我会解释一下,优化不充分的合约也会耗费额外的成本。性能验证包括检查代码是否有可能由于某种方式变慢或发生其他可能影响合约性能的逻辑错误和bug。进行性能评估最简易的开展方式是先检查合约执行的方式是否满足双方在签订合约时所决定的所有协议。例如,对基于供应链的智能合约,这种协议达成与一方确认产品交付一样简单,然后以加密令牌或加密货币(比如以太网或比特币等)进行支付。检查合约是否能够在货物交付后自动触发支付是第一步。接下来将测试合约的可能类型。由于可能存在范围广泛的合约“触发器”及其导致的行为,因此重要的是对合约进行
您可能关注的文档
最近下载
- 探询神奇的化学世界.ppt VIP
- 2025年新教材道德与法治三年级上册第三单元《在集体中长大》教案设计.docx VIP
- 实验室安全化学试剂与实验室消防知识培训课件.pptx VIP
- 2025 ACCAHA急性冠脉综合征(ACS)指南解读PPT课件.pptx VIP
- 延迟退休政策深度解析.pptx VIP
- 桂13J603 住宅厨卫组合八字型变压式耐火排气道.docx VIP
- 2025年学校校长公开选拔笔试试题及参考答案校长招聘考试笔试真题.docx VIP
- 《中国旅游文化》 课件 第七单元中国古代艺术文化.ppt VIP
- 《美国文学》教学课件Emily Dickinson (1830—1886).ppt VIP
- 规范《GB11085-1989-散装液态石油产品损耗》.pdf VIP
文档评论(0)