嵌入式系统的事件驱动型编程技术_[论文阅读笔记]区块链系统中智能合约技术综述...

b937a89e851f93a9da9c384eaaf9aac8.png
区块链系统中智能合约技术综述
范吉立 李晓华 聂铁铮 于戈
《计算机科学》2019年8月
14页,56个参考文献

框架

  • 1 引言
  • 2 区块链中的智能合约语言
    • 2.1 智能合约语言
    • 2.2 比特币脚本语言图
    • 2.3 以太坊灵完备型语言
      • 2.3.1 Solidity语言
      • 2.3.2 Serpent语言
    • 2.4 可验证型语言Pact
    • 2.5 超级账本智能合约语言
    • 2.6 开发语言的对比
  • 3 区块链中智能合约的实现技术
    • 3.1 嵌入式运行
    • 3.2 虚拟机运行
      • 3.2.1 Gas计费机制
      • 3.2.2 EVM虚拟机
      • 3.2.3 合约创建与运行过程
    • 3.3 容器式运行
      • 3.3.1 Chaincode
      • 3.3.2 Chaincode生命周期
      • 3.3.3 以太坊和超级账本智能合约对比
    • 3.4 智能合约生态
      • 3.4.1 社区和支持者
      • 3.4.2 技术和工具支持
      • 3.4.3 合约应用范围
      • 3.4.4 智能合约生态系统
  • 4 研究现状和存在的挑战
    • 4.1 智能合约研究现状
    • 4.2 智能合约面临的挑战
      • 4.2.1 安全性
      • 4.2.2 并发性和可扩展性
      • 4.2.3 可维护性
  • 5 智能合约未来应用展望
  • 6 总结

笔记

摘要:区块链是一个全球性的去中心化分布式数据库账本。智能合约作为一段由事件驱动的、具有状态的、运行于区块链系统之上的程序,能够保管、处理区块链账本上的数字资产,运行在通用平台上的智能合约还能够实现传统应用系统的部分功能。区块链技术的发展为智能合约提供了很好的运行基础,智能合约在区块链上能够发挥重要作用。随着比特币和以太坊等区块链平台的迅速发展,智能合约具备了良好的发展契机,然而智能合约应用还处于早期发展阶段,相关研究相对较少,实际应用中智能合约发应用场景不够丰富,本文从智能合约编程语言、实现技术、发展现状和存在的挑战、未来前景等几个方面进行研究和探讨。重点描述了不同智能合约开发语言的特性,以及相互之间的对比。以智能合约运行环境为标准进行分类,研究各种区块链系统中智能合约的开发、部署和运行机制,并探讨不同类型智能合约平台的应用范围对不同区块链系统在智能合约开发、社区支持以及相应的生态系统方面进行了全面的比较。然后,介绍智能合约研究现状和面临的挑战,在安全性、可扩展性、可维护性方面进行深入分析。最后,分析了区块链和智能合约技术的发展趋势,探讨了未来的应用场景

关键字:区块链;去中心化;智能合约;以太坊虚拟机

f3cc2d62ee7ad5781b2de35048421a73.png

智能合约部署流程如图所示:

1)编写智能合约代码,形成合约代码文件(如SampleContract.sol);

2)通过智能合约编译器对代码文件进行编译,转换成可以在EVM虚拟机执行的字节码;

3)向区块链节点RPC API发送创建交易(部署合约)请求,交易被验证合法后,识别为合约创建交易,检查输入数据,进入交易池;

4)矿工打包该交易,生成新的区块,并广播到P2P网络;

5)节点接收到区块后对交易进行验证并处理,为合约创建EVM环境,生成智能合约账户地址,将区块入链;

6)API获取智能合约创建交易的收据,得到智能合约账户地址,部署完成。

智能合约调用流程与部署流程类似,也是通过RPC API创建交易,并由验证节点对交易进行处理,调用EVM实例,进行状态变更。

d63bfa65f6e840ca948a1743fd7e5b61.png

安全性

  • 基于以太坊平台的开发者对开发语言Solidity语义的理解偏差和对图灵完备的灵活性利用不当,以及对变量和操作符的越界缺乏相应安全限制,导致合约产生一些安全漏洞。
  • 程序员必须在实现智能合约时设计修改或终止合约的方法,或者事件发生后采用硬分叉的对策。

并行性和可扩展性

  • 以太坊、Hyperledger等平台目前均采用全网节点共享单链的方案,每个节点需要处理全部交易数据,导致整个区块链平台的数据处理能力不大于单节点的处理能力。
  • 区块存储也不具备可扩展性。区块链的结构决定数据记录只能追加,不能删除和修改。当记录有错误时,区块链的解决办法是在后面追加正确的记录,这样完整的修订历史能够被保存,节点只需对全网的完整交易历史进行验证即可。这种机制有利于去中心化系统运行,但严重限制了存储的可扩展性,因为随着交易数量的增加,区块数据最终会占满整个磁盘空间。
  • 多链(分片、多通道)
    • 针对区块链平台交易处理速率TPS较低,交易串行化导致交易规模受限的问题,以太坊推出分片方案
    • Hyperledger 实现了共识服务从Peer节点分离,使得共识服务具有可插拔特性,支持多种共识服务接入,同时实现多通道结构,可以将不同业务应用分区隔离,既增强了扩展性和灵活性,也提升了系统的安全性
  • 侧链
    • 侧链作为单独的区块链系统,与主链之间进行区块头部信息的交互,获取主链状态信息来实现虚拟货币的兑换,如BlockStream 推出的侧链,不过该方案仅限于虚拟货币交易的扩展,不适用于其他应用场景

可维护性

    • 智能合约维护困难的底层根源在于区块链系统的不可篡改性
    • 为提高智能合约的可维护性,应当专注于智能合约在自身升级迭代和销毁等接口方面的研究,利用合约代码实现多样的管理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值