IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 12在以太坊上定义智能合约缺陷 -> 正文阅读

[区块链]12在以太坊上定义智能合约缺陷

原文标题: Defining Smart Contract Defects on Ethereum
原文作者: Jiachi Chen, Xin Xia, David Lo, John Grundy, Xiapu Luo and Ting Chen
原文机构: 澳大利亚维多利亚州墨尔本莫纳什大学信息技术学院、新加坡管理大学信息系统学院、香港理工大学计算机系、电子科技大学计算机科学与工程学院
原文地址: 10.1109/TSE.2020.2989002
发表日期/期刊: 2020 年 4 月 20 日/IEEE Transactions on Software Engineering
笔记整理:doxbwx@163.com

??本文对以太坊平台上定义智能合约缺陷进行了实证研究。之前的一些工作是侧重于从安全方面提高智能合约的质量,并且没有验证从业人员是否认为这些合同缺陷是有害的。这是第一篇旨在从安全性、可用性、性能、可维护性和可重用性五个方面系统地研究合同缺陷的论文。为了解决这些限制,我们对17128个以太坊进行了研究。本文主要贡献是:

  1. 本文从安全性、可用性、性能、可维护性和可重用性五个方面为智能合约定义了20个合约缺陷,列出了每个合约缺陷的症状并给出了一个代码示例
  2. 本文分析了定义的合同缺陷的影响,并总结了5个常见的影响,可以帮助决定去除缺陷的优先级。
  3. 本文的工作是第一个关于智能合约缺陷的实证研究。目标是确定它们的重要性,并收集从业人员的意见。本工作是一个实用的合同缺陷检测工具的需求工程步骤。

1.1智能合约缺陷

??本文从StackExchange网站上爬取了17128条帖子,作者通过阅读solidity文档找到相关的66个重要的关键词过滤了4141篇文章,再通过手动过滤与合约缺陷无关的帖子,只保留与合同缺陷相关的帖子。采用Card Sorting的方法对过滤后的合约缺陷相关帖子进行分析和分类。为每个帖子创建了一张包含缺陷标题、描述和注释的信息的卡片。大致过程如下

首先,随机选择20%的卡片。首先阅读卡片的标题和描述,以理解文章中讨论的缺陷。然后阅读注释来理解如何解决缺陷。再根据缺陷的根本原因分为下图所示的前五个类别。
接着,按照之前中描述的相同方法,两位作者独立地将剩下的80%的卡片分类。然后发现了一个“Inappropriate Standard”类别,这在其他牌中很常见。再比较结果,讨论其中的差异。最后,将缺陷分为6个主题;详细信息如下图所示。使用了Cohen’s Kappa来衡量两位作者之间的一致性。
它们的总体Kappa值为0.82,这说明有很强的一致性。

下图为智能合约缺陷的分类
智能合约缺陷的六个分类
??再对帖子寻找更多的细节行为定义合约缺陷,最后总结为16种合约缺陷。
??从Etherscan抓取了所有17,013个经过验证的智能合约,然后随机选择600份智能合约,过滤掉一部分没有任何功能的智能合约后,该数据集剩余587个智能合约。
??再通过代码差异性,对数据集中的智能合约进行缺陷分类,定义了4种缺陷。
最后一共定义了20种合同缺陷。

1.2结果

根据定义可以将缺陷分为安全缺陷、性能缺陷、可用性缺陷、可维护性缺陷和可重用性缺陷。20种智能合约缺陷

2.从业者视角

本文创建了一个在线调查,从现实世界的智能合约开发者那里收集意见。
??调查对象为在世界知名公司或学术机构工作或学习的合作伙伴和GitHub上为开源智能合约相关项目做出贡献的1489名从业者。一共收到84条评论来自32个不同国家,平均智能合约开发经验为1.95年。
非常重要为5分,非常不重要为1分。几乎所有的缺陷都超过4分,平均分为4.22。
智能合约缺陷检测调查结果

3.合同缺陷分布及影响

??本文总结了5种影响,并手工标注了587个智能合约,以显示它们在现实世界智能合约中的分布。
??两位作者有比较丰富的智能合约相关开发经验,并且他们的总体Kappa值为0.71,表明他们有很大的一致性,他们共同得出一个关于合约缺陷影响级别的结论。
??每种影响度的特性 从三个维度来考虑,即合同维度(不想要的行为)、攻击者维度(攻击向量)和用户维度(可用性),其中IP1最高,IP5最低。影响级别为1-2的合同缺陷可能导致严重的不必要行为,如崩溃或合约被攻击者控制。影响级别为3的合约缺陷会导致主要的有害行为,如丢失的gas。影响级别4-5可能会导致一些琐碎的问题,如可读性低,但不会影响合约的正常运行。
在这里插入图片描述

讨论

??本文对研究者、实践者和教育者的启示都比较大,目前已经有很多的工具可以实现对上述缺陷进行检测的功能。但是下图四个工具都没有考虑到其他两个被实践者认为同样重要的方面。因此,可以将更多的精力放在开发能够检测除了下图之外的其他13个合同缺陷的工具上。
智能合约缺陷检测工具

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:11:42  更:2022-02-14 21:13:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:53:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码