论文地址:下载地址
 年份:2019

 这篇论文主要的工作时,开展了一个探索性的研究,调查统计了区块链中的智能合约(只要针对以太坊:最受欢迎的针对智能合约的区块链平台)存在的挑战与问题,和开发者们对智能合约存在问题改进的建议。并分析了未来需要继续深入的研究方向。
 近年来,出现了很多区块链智能合约相关的论文。尽管如此,很多研究者在开发智能合约技术和使用工具花费了大量精力,且智能合约没能得到很好的实际应用。

论文的主要贡献如下:

1.本论文是第一个对智能合约目前的状况和挑战做出的深入研究。
2.对调查数据进行了定量与定性的研究分析,为智能合约研究者提出了可行的开发经验以及方向。

背景知识:

比特币:

 一种不需要中央管理机构来管理的数字加密货币,而是通过网络节点之间自动协商进行管理。

区块链:

 区块链中的每个块具有一些交易信息,时间戳,以及该块的先前块的哈希值。区块链存储在每个网络节点上,这意味着这些记录和交易信息对所有网络节点公开。区块链使交易双方不需要经过第三方的参与而进行。区块链的一个新兴领域是智能合约。

智能合约:

 智能合约是指运行在一个区块链平台上的底层代码脚本,同时运行运行在分类账簿的多个网络节点上。为数据驱动的很多领域提供了一个很好的机会。
 智能合约是一段程序,其包含了数据(账户余额)和可执行的代码。它存在在区块链中,当满足一定条件时将自动执行。

智能合约在Corda上运行:

 Corda是一个开源的区块链平台,专为需要高度监管的金融服务行业设计。在Corda上运行的智能合约包含代码和法律条文两部分。

On-Chain和Off-Chain智能合约:

 On-Chain智能合约,交易信息对区块链网络上的每个网络节点可见Off-Chain智能合约只对部分感兴趣的参与者可见。

针对智能合约的区块链平台:

 分为public blockchain和non-public blockchain。
 public blockchain允许所有用户节点的加入。
 non-public blockchain只允许有许可的用户节点加入。

Ethereum(以太坊):

 在以太坊上,用户可以使用编程语言,如Solidity去开发复杂的智能合约应用。所有用高级语言编写的智能合约都会被编译成相同的形式。

Gas机制:

 Gas是以太坊上采用的一种内部定价机制。Gas是一种用来测量一个交易会耗费多少计算资源的方法。对于每一笔交易,人们需要支付gas费用。

Trusted Execution Environment(TEE):

 为保证智能合约的机密性和隐私性,目前一些工作正在将区块线月TEE结合。TEE是一个确保敏感数据的存储和处理,保护的安全区域,称其为:enclave。在enclave内,代码和数据受硬件强制访问策略的控制。

本论文开展了一项调查研究,并将问题类别分为如下6大类:

一、Security

1.High requirement for code security
 Three major themes on why there was an increased focus on security in smart contract deployment:

1.Sensitive Nature of Information Handled
2.Irreversible Transactions
3.Code unmodifiable after deployment

2.Hard to guarantee security
 Four major aspects of these difficulties:

1.Public code access
2.Flaws in compiler
3.Lack of best practices for writing safe code
4.Lack of tools/techniques to verify code correctness

3.Current best practices for security

Testing and code review are their major ways to ensure the correctness of smart contracts.

二、Debugging

1.Debugging is painful
 Two main categories of dubugging challenges came up:

1.Lack of powerful interactive debuggers
2.Non-informative error messages

2.Current debugging practices

1.【65.1% respondents said that they use existing debugging tools.】
2.【56.5% respondents mentioned that they would often write additional methods/events to check variables and transaction states.】
3.【17.2% respondents of our survey mentioned that they would often request the help of GitHub community or other developers through some forums, e.g., Stack Overflow, when they encounter bugs.】

三、Programming language

1.Limitations of Solidity The major limitations of Solidity include:

1.Lack of general purpose libraries.
2.Lack of support for error logging/reporting.
3.Lack of standards/rules.
4.Lack of safety checks for data types.
5.Inconvenient way to call external functions.
6. Lack of support for memory management.
7.Constrained number of local variables.

2.Most desired Solidity improvements

四、Ethereum virtual machine

1.Limitations of EVM
 Four main limitations of EVM:

1.Limited support for debugging.
2.Lack of support of traditional languages.
3.Inefficiency of bytecode execution.
4.Limited stack size.

2.Most desired improvements for EVM
 Better support for debugging is desired the most.

五、Gas

1.Special attention to gas consumption
 Two reasons for why gas consumption is specially important are as follows:

1.Gas is money.
2.Transaction failure due to insufficient amount of gas.

2.Difficulty in handling gas problems
Two aspects that contribute to difficulties in performing gas optimization are as follow:

1.No gas estimation tool at source code level.
2.Tradeoff between gas optimization and code readability.

六、Online learning resources &community support

1.Online learning resources
 Three kinds of online learning resources that are missing:

1.Lack of reference code.
2.Lack of standardized knowledge.
3.Lack of up-to-date documentations.

2.Community support

Since the technique is new, the community is still in development. Sometimes you cannot get timely help from the community when you get stuck.

Survey Results:

 Based on the testing results, we can say with some certainty that:

Summary of Results:

 Through the analysis of interview and survey data, we could find that:

未来的方向:

1.Security and Reliability of Smart Contracts
2.Other Factors Affecting Smart Contract Development
  Here, we highlight five different aspects of smart contract development that pose open research problems requiring advances in the field:

1.Programming Language and Virtual Machine Design
2.Better Resource Management
3.Library Construction
4.Evolution, Maintenance, and Deployment of Smart Contracts
5.Supporting End-Users

有效性的威胁:

1.Internal Validity

It is possible that we may draw wrong conclusions from interviewees comments. It is also possible that survey respondents may have provided dishonest answers.

2.External Validity

We stopped our interviews when we reached the saturation of findings after interviewing 20 persons. Considering there may exist other populations who might add new insights, we also need to acknowledge that the opinions provided by our interviewees may not be representative of and agreeable to the whole community. To reduce this threat, we ensured that our interviewees hold various roles and have different levels of expertise, e.g., developers, trainers, CEOs in companies developing smart contract applications,etc

相关工作:

1.Empirical Studies on Smart Contract
2.Tools for Smart Contract:
3.Studies on Challenges and Opportunities:

结论:

 在论文的研究中,调查了智能合约开发者们面临的挑战。分析了智能合约仍处于起步阶段的原因,并为未来智能合约研究者提出了建设性的建议与研究方向。

《Smart Contract Development: Challenges and Opportunities》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. LIVE 预告 | 哈工大微软:多任务、多语言、多模态的预训练模型 | CVPR21系列
  2. BestCoder Round #80 1002
  3. UNITY2018.3 在editor下运行时new memoryprofiler显示 shader占用内存很大的问题在安卓上并没有看到...
  4. hdu 3068 最长回文【manacher】(模板题)
  5. Sql Server 中存储过程的output return的区别
  6. 让你的ASP.NET Core应用程序更安全
  7. scanf 输入十六进制_在C语言中使用scanf()输入一个十六进制值
  8. Google AJAX 搜索 API
  9. 模板匹配中差值的平方和(SSD)与互相关准则的关系
  10. background 覆盖 内容_web开发:利用background制作拉窗帘效果
  11. 计算机网络知识之交换机、路由器、网关、MAC地址
  12. 深蓝词库转换2.5发布——支持微软五笔,支持Linux和macOS和更多命令行功能
  13. 计算机应用技术专业是属于文科生,计算机应用技术专业是文科还是理科
  14. android实时投屏软件下载,安卓投屏助手
  15. 51cto学院mysql_Mysql -1_ Python系列视频(一)——Python语言基础_Python视频-51CTO学院...
  16. python图书搜索与书籍封面下载
  17. kubernetes 入门实践-搭建集群
  18. Python 中 Logging 模块使用详情
  19. python asyncio future_Python 期物之 asyncio.Future
  20. 从失败中崛起!52岁斯皮尔曼,曾携华人科学家2次斩获哥德尔奖

热门文章

  1. 2019年国赛高教杯数学建模E题薄利多销分析解题全过程文档及程序
  2. N0.29——黑客技巧第一招:断网
  3. 频率分布直方图和累积频率分布图
  4. 基于Android的计步器(Pedometer)的讲解-序
  5. 时间同步的几种方式和组合
  6. 基于java的微信支付之JSAPI公众号充值
  7. 张帆:人类移民火星最大的问题是缺少适宜的大气
  8. 外链屏蔽解除?QQ还是打不开淘宝、抖音链接
  9. 集群qorum数量master-eligible节点掉线解决方法
  10. 使用Python处理百万数据量的Excel文件:删除列、切分换行、替换去重