计算机科学 ›› 2019, Vol. 46 ›› Issue (11): 1-10.doi: 10.11896/jsjkx.190300013

• 综述 •    下一篇

区块链系统中智能合约技术综述

范吉立, 李晓华, 聂铁铮, 于戈   

  1. (东北大学计算机科学与工程学院 沈阳110169)
  • 收稿日期:2019-03-07 出版日期:2019-11-15 发布日期:2019-11-14
  • 通讯作者: 于戈(1962-),男,博士,教授,CCF会士,主要研究方向为分布与并行系统、大数据管理,E-mail:yuge@mail.neu.edu.cn
  • 作者简介:范吉立(1987-),男,硕士,工程师,主要研究方向为区块链技术、云计算;李晓华(1969-),女,博士,讲师,CCF会员,主要研究方向为数据库系统、移动计算;聂铁铮(1980-),男,博士,副教授,CCF高级会员,主要研究方向为分布式数据库系统、数据集成。
  • 基金资助:
    本文受国家自然科学基金项目(61672142,61433008,U1435216),中央高校基本科研业务费项目(N150408001-3,N150404013),辽宁省科学技术基金(20180550321)资助。

Survey on Smart Contract Based on Blockchain System

FAN Ji-li, LI Xiao-hua, NIE Tie-zheng, YU Ge   

  1. (School of Computer Science and Engineering,Northeastern University,Shenyang 110169,China)
  • Received:2019-03-07 Online:2019-11-15 Published:2019-11-14

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

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

Abstract: Blockchain is a decentralized global distributed database leger.Smart contract is a piece of event-driven program with states that runs over blockchain systems,which can take custody over digital assets.Smart contracts running on a common platform can also implement parts of the functions of traditional applications.Development of the blockchain provides an appropriate platform for smart contract,and smart contract plays an important role on blockchain systems.With the rapid development of blockchain platforms such as Bitcoin and Ethereum,smart contracts have a good development opportunity.However,applications of smart contract are still in the early stage of development,and there are relatively few related studies.The application scenarios of smart contracts are not enough in practical application.This paper studied programming languages and implementation technologies of smart contract,discussed and explored the development status as well as challenges and future prospects.It described the characteristics of different development languages and took a comparison among them.Then,it classified blockchain systems based on the running environment of smart contract,and studied the development,deployment and running mechanism of smart contracts in various blockchain systems.Also,this paper explored the application scope of various smart contract platforms,and took a comprehensive comparison of different blockchain systems on smart contract development,community support and corresponding ecosystems.It introduced the status and challenges of smart contract research,and conducted analysis on security,scalability,and maintainability.Finally,it analyzed the development trend of blockchain and smart contract technology,and discussed the application scenarios in the future.

Key words: Blockchain, Smart contract, Decentralization, Ethereum virtual machine

中图分类号: 

  • TP311
[1] NAKAMOTO S.Bitcoin:A peer-to-peer electronic cash system. https://bitcoin.org/bitcoin.pdf.
[2] ZHANG B.The application and related enlightenment of blockchain technology abroad[J].Financial Technology Time,2016(5):7.(in Chinese)张波.国外区块链技术的运用情况及相关启示[J].金融科技时代,2016(5):7.
[3] ETHEREUM.Ethereum blockchain app platform[EB/OL].https://www.ethereum.org/.
[4] HYPERLEDGER.About Hyperledger[EB/OL].https://www.hyperledger.org/about.
[5] SWAN M.Blockchain:Blueprint for a new economy[M].O’Reilly Media,Inc.,2015.
[6] NICK S.Smart Contracts:Building Blocks for Digital Markets[EB/OL].http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html.
[7] NICK S.Exploding Onto The Web[EB/OL].https://archive.is/zWbhL#selection-607.411-607.470.
[8] BROWN R G.A simple model for smart contracts[EB/OL].https://gendal.me/2015/02/10/a-simple-model-for-smart-contra-cts/.
[9] DELMOLINO K,ARNETT M,KOSBA A,et al.Step by step towards creating a safe smart contract:Lessons and insights from a cryptocurrency lab[C]∥International Conference on Financial Cryptography and Data Security.Springer Berlin Heidelberg,2016:79-94.
[10] WIKIPEDIA.Ethereum[EB/OL].https://zh.wikipedia.org/wiki/%E4%BB%A5%E5%A4%AA%E5%9D%8A.
[11] DINH T T A,WANG J,CHEN G,et al.BLOCKBENCH:AFramework for Analyzing Private Blockchains[C]∥Proceedings of the 2017 ACM International Conference on Management of Data.ACM,2017:1085-1100.
[12] ANDROULAKI E,BARGER A,BORTNIKOV V,et al.Hyperledger fabric:a distributed operating system for permissioned blockchains[C]∥Proceedings of the Thirteenth EuroSys Conference.ACM,2018:30.
[13] DINH T T A,LIU R,ZHANG M,et al.Untangling Blockchain:A Data Processing View of Blockchain Systems[J].arXiv:1708.05665,2017.
[14] BITCOINWIKI.Script[EB/OL].https://en.bitcoin.it/wiki/Script.
[15] WOOD G.Ethereum:A secure decentralised generalised transaction ledger. https://github.com/ethereum/wiki/wiki/White-Paper.
[16] POPEJOY S.The Pact smart contract language. http://kadena. io/docs/Kadena-PactWhitepaper. pdf.
[17] WIKIPEDIA.Turing_machine[EB/OL].https://en.wikipedia.org/wiki/Turing_machine.
[18] MÜLLER P,BERGSTRÄβER S,RIZK A,et al.The BitcoinUniverse:An Architectural Overview of the Bitcoin Blockchain[C]∥DFN-Forum Kommunikationstechnologien.Bonn:Gesellschaft für Informatik eV,2018:1-20.
[19] ANTONOPOULOS A M.Mastering Bitcoin:unlocking digitalcryptocurrencies[M].O’Reilly Media,Inc.,2014.
[20] JEREMYVINFOLIO.Serpent[EB/OL].https://github.com/ethereum/wiki/wiki/Serpent.
[21] ETHEREUM.Solidity[EB/OL].http://solidity.readthedocs.io/en/latest/.
[22] ETHEREUM.Mutan[EB/OL].https://github.com/ethere-um/go-ethereum/wiki/Mutan-0.2.
[23] POPEJOY S.The Pact smart contract language. http://kadena.io/docs/Kadena-PactWhitepaper.pdf.
[24] KADENA LLC.Kadena[EB/OL].http://kadena.io/.
[25] DANNEN C.The EVM[M]//Introducing Ethereum and Solidity.Apress,2017:47-67.
[26] HYPERLEDGER.ChaincodeTutorials[EB/OL].http://hyperledger-fabric.readthedocs.io/en/latest/chaincode.html.
[27] STATE OF THE DAPPS.Featured Dapp Collections[EB/OL].https://dapps.ethercasts.com.
[28] MEETUP.Ethereum Meetups[EB/OL].https://www.meetup.com/topics/ethereum/.
[29] NGUYEN B,CACHIN C,YELLICK J,et al.Multichannel consensus[EB/OL].https://lists.hyperledger.org/pipermail/hyperledger-fabric/2016-October/000389.html.
[30] LUKE-JR,SMTP,JONATHANCROSS.bitcoind[EB/OL].https://en.bitcoin.it/wiki/Bitcoind.
[31] BITCOINJ.What is bitcoinj[EB/OL].https://bitcoinj.github.io/#community.
[32] KEEPKEY LLC.Learn Bitcoin[EB/OL].https://multibit.org/learn-bitcoin/faq.html.
[33] SWARM.Swarm Introduction[EB/OL].https://swarm-guide.readthedocs.io/en/latest/introduction.html.
[34] BENET J.IPFS-content addressed,versioned,P2P file system[J].arXiv:1407.3561,2014.
[35] JAMES R.Whisper[EB/OL].https://github.com/ethereum/wiki/wiki/Whisper.
[36] TRUFFLE SUITE.Truffle Overview[EB/OL].https://truffleframework.com/docs/truffle/overview.
[37] STATUS IM.Build Powerful DApps Easily[EB/OL].https://embark.status.im/.
[38] WEIFUND.Weifund is Decentralized Secure Open-sourced Interoperable Crowd-funding[EB/OL].http://weifund.io/.
[39] LINUX FOUNDATION.Hyperledger Burrow[EB/OL].https://www.hyperledger.org/projects/hyperledger-burrow.
[40] LINUX FOUNDATION.Hyperledger Composer[EB/OL].https://www.hyperledger.org/projects/composer.
[41] LINUX FOUNDATION.Hyperledger Sawtooth[EB/OL].https://sawtooth.hyperledger.org.
[42] CHENG H,YANG Y Z.Research on the Development Trend of Blockchain and the Coping Strategies of Commercial Banks[J].Financial Regulation Research,2016(6):73-91.(in Chinese)程华,杨云志.区块链发展趋势与商业银行应对策略研究[J].金融监管研究,2016(6):73-91.
[43] COINDESK’S.State of blockchain Q1 2017[EB/OL].https://www.coindesk.com/research/state-blockchain-q1-2017/.
[44] GOOGLE.Trends[EB/OL].https://trends.google.com.hk/trends/.
[45] BROWN R G,CARLYLE J,GRIGG I,et al.Corda:An Introduction. https://docs.corda.net/_static/corda-introductory-whitepaper.pdf.
[46] XIAO F,LUO R G.WXBLOCKCHAIN[EB/OL].http://www.wxblockchain.com/.
[47] SUJHA S.Chinese-search-giant-baidu-joins-hyperledger-blockchain-consortium[EB/OL].https://www.coindesk.com/chinese-search-giant-baidu-joins-hyperledger-blockchain-consortium/.
[48] ATZEI N,BARTOLETTI M,CIMOLI T.A Survey of Attacks on Ethereum Smart Contracts (SoK)[C]∥International Confe-rence on Principles of Security and Trust.Berlin:Springer,2017:164-186.
[49] VNOVAK.EtherDice smart contract is down for maintenance[EB/OL].https://www:reddit:com/r/ethereum/comments/47f028/etherdice is down for maintenance we are having/.
[50] DAVID S.Understanding the DAO attack[EB/OL].https://www.coindesk.com/understanding-dao-hack-journalists/.
[51] MARINO B,JUELS A.Setting standards for altering and undoing smart contracts[C]∥International Symposium on Rules and Rule Markup Languages for the Semantic Web.Cham:Springer,2016:151-166.
[52] SHAO Q F,JIN C Q,ZHANG Z,et al.Blockchain:Architecture and Research Progress[J].Chinese Journal of Computers,2018,41(5):969-988.(in Chinese)邵奇峰,金澈清,张召,等.区块链技术:架构及进展[J].计算机学报,2018,41(5):969-988.
[53] BUTERIN V.Ethereum 2.0 mauve paper[EB/OL].https://cdn.hackaday.io/files/10879465447136/Mauve%20Paper%20Vitalik.pdf.
[54] GRANT P,KOSTYA K.Imandra Contracts[EB/OL].https://github.com/AestheticIntegration/contracts.
[55] BACK A,CORALLO M,DASHJRL,et al.Enabling blockchain innovations with pegged sidechains[OL].tinyurl.com/mj656p7.
[56] ZHANG L J.Blockchain Applications will be more Developed Towards Smart Contracts in the Future[J].Cards World,2016(8):20-21.(in Chinese)张立钧.未来区块链应用更多向智能合约发展[J].金卡工程,2016(8):20-21.
[1] 张艳梅, 楼胤成. 基于深度神经网络的庞氏骗局合约检测方法[J]. 计算机科学, 2021, 48(1): 273-279.
[2] 邵炜晖, 王宁, 韩传峰, 许维胜. 基于区块链的一体化应急应战机制[J]. 计算机科学, 2021, 48(1): 287-294.
[3] 李莹, 于亚新, 张宏宇, 李振国. 基于TBchain区块链的高可信云存储模型[J]. 计算机科学, 2020, 47(9): 330-338.
[4] 刘帅, 甘国华, 刘明熹, 房勇, 汪寿阳. 一种基于拓扑结构及分配机制设计的多子块激励共识机制[J]. 计算机科学, 2020, 47(7): 268-277.
[5] 陆歌皓, 谢莉红, 李析禹. 区块链共识算法对比研究[J]. 计算机科学, 2020, 47(6A): 332-339.
[6] 洪小玲, 万虎, 肖晓, 孙浩祥. 基于区块链的制造联盟系统[J]. 计算机科学, 2020, 47(6A): 369-374.
[7] 林旭丹, 鲍士兼, 赵立昕, 赵成林. 基于Hyperledger Fabric的汽车供应链系统的方案设计与性能分析[J]. 计算机科学, 2020, 47(6A): 546-551.
[8] 可雨憬, 敬茂华, 郑涵尹. 区块链技术在信托行业的应用研究[J]. 计算机科学, 2020, 47(6A): 591-595.
[9] 巫光福, 陈颖, 曾宪文, 何道敬, 李江华. 基于区块链技术的通证模型的设计与分析[J]. 计算机科学, 2020, 47(6A): 603-608.
[10] 任仪. 基于区块链与人工智能的网络多服务器SIP信息加密系统设计[J]. 计算机科学, 2020, 47(6A): 634-638.
[11] 张启明, 陆建华, 李守智, 徐建栋. 基于区块链构建新型企业客户服务技术平台[J]. 计算机科学, 2020, 47(6A): 639-642.
[12] 叶少杰, 汪小益, 徐才巢, 孙建伶. BitXHub:基于侧链中继的异构区块链互操作平台[J]. 计算机科学, 2020, 47(6): 294-302.
[13] 谢英英, 石涧, 黄硕康, 雷凯. 面向5G的命名数据网络物联网研究综述[J]. 计算机科学, 2020, 47(4): 217-225.
[14] 王辉, 刘玉祥, 曹顺湘, 周明明. 融入区块链技术的医疗数据存储机制[J]. 计算机科学, 2020, 47(4): 285-291.
[15] 冯涛, 焦滢, 方君丽, 田野. 基于联盟区块链的医疗健康数据安全模型[J]. 计算机科学, 2020, 47(4): 305-311.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
[1] 雷丽晖,王静. 可能性测度下的LTL模型检测并行化研究[J]. 计算机科学, 2018, 45(4): 71 -75 .
[2] 孙启,金燕,何琨,徐凌轩. 用于求解混合车辆路径问题的混合进化算法[J]. 计算机科学, 2018, 45(4): 76 -82 .
[3] 张佳男,肖鸣宇. 带权混合支配问题的近似算法研究[J]. 计算机科学, 2018, 45(4): 83 -88 .
[4] 伍建辉,黄中祥,李武,吴健辉,彭鑫,张生. 城市道路建设时序决策的鲁棒优化[J]. 计算机科学, 2018, 45(4): 89 -93 .
[5] 史雯隽,武继刚,罗裕春. 针对移动云计算任务迁移的快速高效调度算法[J]. 计算机科学, 2018, 45(4): 94 -99 .
[6] 周燕萍,业巧林. 基于L1-范数距离的最小二乘对支持向量机[J]. 计算机科学, 2018, 45(4): 100 -105 .
[7] 刘博艺,唐湘滟,程杰仁. 基于多生长时期模板匹配的玉米螟识别方法[J]. 计算机科学, 2018, 45(4): 106 -111 .
[8] 崔琼,李建华,王宏,南明莉. 基于节点修复的网络化指挥信息系统弹性分析模型[J]. 计算机科学, 2018, 45(4): 117 -121 .
[9] 王振朝,侯欢欢,连蕊. 抑制CMT中乱序程度的路径优化方案[J]. 计算机科学, 2018, 45(4): 122 -125 .
[10] 杨羽琦,章国安,金喜龙. 车载自组织网络中基于车辆密度的双簇头路由协议[J]. 计算机科学, 2018, 45(4): 126 -130 .