计算机科学 ›› 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, Decentralization, Ethereum virtual machine, Smart contract

中图分类号: 

  • 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] 王子凯, 朱健, 张伯钧, 胡凯.
区块链与智能合约并行方法研究与实现
Research and Implementation of Parallel Method in Blockchain and Smart Contract
计算机科学, 2022, 49(9): 312-317. https://doi.org/10.11896/jsjkx.210800102
[2] 黄松, 杜金虎, 王兴亚, 孙金磊.
以太坊智能合约模糊测试技术研究综述
Survey of Ethereum Smart Contract Fuzzing Technology Research
计算机科学, 2022, 49(8): 294-305. https://doi.org/10.11896/jsjkx.220500069
[3] 周航, 姜河, 赵琰, 解相朋.
适用于各单元共识交易的电力区块链系统优化调度研究
Study on Optimal Scheduling of Power Blockchain System for Consensus Transaction ofEach Unit
计算机科学, 2022, 49(6A): 771-776. https://doi.org/10.11896/jsjkx.210600241
[4] 李博, 向海昀, 张宇翔, 廖浩德.
面向食品溯源场景的PBFT优化算法应用研究
Application Research of PBFT Optimization Algorithm for Food Traceability Scenarios
计算机科学, 2022, 49(6A): 723-728. https://doi.org/10.11896/jsjkx.210800018
[5] 傅丽玉, 陆歌皓, 吴义明, 罗娅玲.
区块链技术的研究及其发展综述
Overview of Research and Development of Blockchain Technology
计算机科学, 2022, 49(6A): 447-461. https://doi.org/10.11896/jsjkx.210600214
[6] 高健博, 张家硕, 李青山, 陈钟.
RegLang:一种面向监管的智能合约编程语言
RegLang:A Smart Contract Programming Language for Regulation
计算机科学, 2022, 49(6A): 462-468. https://doi.org/10.11896/jsjkx.210700016
[7] 卫宏儒, 李思月, 郭涌浩.
基于智能合约的秘密重建协议
Secret Reconstruction Protocol Based on Smart Contract
计算机科学, 2022, 49(6A): 469-473. https://doi.org/10.11896/jsjkx.210700033
[8] 毛典辉, 黄晖煜, 赵爽.
符合监管合规性的自动合成新闻检测方法研究
Study on Automatic Synthetic News Detection Method Complying with Regulatory Compliance
计算机科学, 2022, 49(6A): 523-530. https://doi.org/10.11896/jsjkx.210300083
[9] 王思明, 谭北海, 余荣.
面向6G可信可靠智能的区块链分片与激励机制
Blockchain Sharding and Incentive Mechanism for 6G Dependable Intelligence
计算机科学, 2022, 49(6): 32-38. https://doi.org/10.11896/jsjkx.220400004
[10] 孙浩, 毛瀚宇, 张岩峰, 于戈, 徐石成, 何光宇.
区块链跨链技术发展及应用
Development and Application of Blockchain Cross-chain Technology
计算机科学, 2022, 49(5): 287-295. https://doi.org/10.11896/jsjkx.210800132
[11] 阳真, 黄松, 郑长友.
基于区块链与改进CP-ABE的众测知识产权保护技术研究
Study on Crowdsourced Testing Intellectual Property Protection Technology Based on Blockchain and Improved CP-ABE
计算机科学, 2022, 49(5): 325-332. https://doi.org/10.11896/jsjkx.210900075
[12] 任畅, 赵洪, 蒋华.
一种量子安全拜占庭容错共识机制
Quantum Secured-Byzantine Fault Tolerance Blockchain Consensus Mechanism
计算机科学, 2022, 49(5): 333-340. https://doi.org/10.11896/jsjkx.210400154
[13] 冯了了, 丁滟, 刘坤林, 马科林, 常俊胜.
区块链BFT共识算法研究进展
Research Advance on BFT Consensus Algorithms
计算机科学, 2022, 49(4): 329-339. https://doi.org/10.11896/jsjkx.210700011
[14] 王鑫, 周泽宝, 余芸, 陈禹旭, 任昊文, 蒋一波, 孙凌云.
一种面向电能量数据的联邦学习可靠性激励机制
Reliable Incentive Mechanism for Federated Learning of Electric Metering Data
计算机科学, 2022, 49(3): 31-38. https://doi.org/10.11896/jsjkx.210700195
[15] 张潆藜, 马佳利, 刘子昂, 刘新, 周睿.
以太坊Solidity智能合约漏洞检测方法综述
Overview of Vulnerability Detection Methods for Ethereum Solidity Smart Contracts
计算机科学, 2022, 49(3): 52-61. https://doi.org/10.11896/jsjkx.210700004
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!