APP下载

智能合约研究综述

2021-06-08周近叶历平倪艺洋焦娇

中国新通信 2021年3期
关键词:智能合约区块链综述

周近 叶历平 倪艺洋 焦娇

【摘要】    在2008年,由中本聪提出设计的比特币,为人类打开了区塊链的大门。2016年,区块链已经成为世界热门技术,生活中越来越多的应用都离不开区块链。智能合约被认为是区块链2.0的代名词之一,在1995年被尼克·萨博首次提出[1],受限于当时的技术发展,智能合约并没有得到广泛的应用。随着区块链的发展,智能合约结合区块链技术已经成为许多应用场景的核心技术。本文结合国内外区块链发展的最新趋势,对智能合约的基本特点、关键技术进行了介绍与展望,论述了现有智能合约的应用场景以及存在的问题,为后续对区块链的研究提供参考。

【关键词】    智能合约    区块链    综述    应用

Abstract: In 2008, Satoshi Nakamoto put forward the concept of Bitcoin which offers a gateway to blockchain. In 2016, blockchain has been widely used in life which attracts more and more attention. Intelligent contract is considered as one of the key technologies for blockchain 2.0 era. With the development of blockchain, the combination of intelligent contract and blockchain technology has become the core technology of many application scenarios. This paper focus on the intelligent contract of blockchain. We introduce the characteristics, key technologies and future directions of intelligent contract. From the aspects of the application, we investigate the application scenarios and important challenging which provides the reference for the follow-up study.

Key words: intelligent contract; block chain; review; application

一、区块链概述

2008年,由中本聪发表的《比特币:一种点对点的电子现金系统中》提出比特币的技术概念,由此区块链作为比特币的核心技术开始发展起来。2016年1月,英国政府发布了区块链的专题研究报告[2],预示着区块链成为人类信用进化史上的第四个里程碑[3]。经历了区块链1.0-数字货币时代、区块链2.0-数字资产和智能合约时代,未来将迎来区块链3.0-区块链自治组织(DAO)、区块链自治公司(DAC)以及区块链大社会时代[4]。广义上,区块链就是一个分布式存储的数据库,这种分布式节点通过共识算法来生成和更新链上的交易信息,以及使用自动化脚本代码(即智能合约)来编程并且操作数据完成无第三方的信任交易。狭义上,区块链是按照时间顺序将数据信息存储在区块中并以链条的方式通过特定的数据结构链接在一起,使用密码学方式保证其不可篡改、不可伪造、可验证、匿名的去中心化共享账本。

区块链有着广阔的应用场景,不仅仅局限于金融、数字货币等领域,还可以应用到能源、医疗、管理等生活应用中[5]。未来,区块链将成为人类生活生产中必不可少的部分,实现理想中完全去中心化的区块链社会[6]。

二、智能合约概述

其实,早在1995年多产的跨领域法律学者尼克·萨博就已经提出了智能合约的理念[7],他的定义是“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”,但此时,不懂得编程的他并没有能力去实现这一超前的理念。直到2009年首个比特币软件系统的推出,让智能合约有了新的发展平台—区块链。2016年,国务院发表了《“十三五”国家信息化规划》[8],首次确定了以区块链为首,大数据、人工智能以及机器深度学习等新技术为国家布局重点。同年,以以太坊为代表的智能合约技术成为了业界的新热点,引起了各个领域广泛的关注。

2019年10月24日,中共中央总书记习近平在中央政治局第十八次集体学习时明确强调要将区块链作为核心技术自主创新的重要突破口加大投入力度,加快推动区块链技术和产业的创新发展。

智能合约是区块链中每一笔交易之间重要的“合同”,这份合同包含了众多对交易双方的约束规则,交易前只需预置好合同内容,就可保证交易的安全性和不可逆性。

智能合约的单线程执行、资源消耗约束、难以获取链外资源等特点使得目前的智能合约生态多以链上资源为主要方式。由此,不难看出目前智能合约的广泛应用还缺乏相关技术支撑,但大量科研人员已开始致力于智能合约的研究。毋庸置疑的是,智能合约将会占据业界的重要地位,开启一个新的区块链时代。  相较于传统APP开发需要繁琐复杂的流程以及大量的资金储备,基于智能合约的去中心化应用(DAPP)不再局限于某个APP的开发公司,一个团队甚至一个人都可进行开发,更具灵活性与开放性。在DAPP中,APP作为前端负责用户交互工作,智能合约作为后端负责和区块链交互,如图1所示。

目前,DAPP大多数以PC端网页的形式或者智能合约接口调用的形式得以应用,由于技术局限性,移动端的普及率相对较低。未来,随着更多科研力量的投入、更安全的操作系统的出现,DAPP的发展将成为必然。

三、智能合约基本架构与运行机制

3.1合约基础架构模型

智能合约的本质其实是一段代码,通过一定的事件驱动,利用协议和用户接口完成合约的自动执行。在协议制定和部署完后,无需任何外设或人为干预,即可实现自我执行和验证[9]。尼克·萨博所定义的智能合约包含了承诺、数字形式、协议等关键词,其中承诺即为合约的本质和目的,是合约的双方都同意的权利或者义务;数字形式便是利用计算机形成的代码,只要合约双方启动这段代码,计算机通过网络就可直接执行这段代码,并在执行后会产生相应的可被验证的证据,以确保合约的有效性。

智能合约一般包括三个基本属性:协议、形式化和执行。

1)协议:主要是智能合约的技术实现,当参与双方制定协议时,需要记录下来作为合约的证据,合约双方的承诺被实现还取决于多个因素,其中最重要的是合约履行期间的交易本质。2)形式化:智能合约的形式化一般指的是数字形式,这意味着合约能够被写入计算机形成计算机可读代码,参与双方一旦达成协定,智能合约就会在此台电脑上通过网络来实现并执行。3)执行:当智能合约在一台电脑上部署下来,参与双方达成统一后,合约就会自动按照代码一步一步执行,在此过程中,任何人都不能篡改或反悔协议的内容。

智能合约的基础架构模型[10]如图2所示,包括应用层、表现层、智能层、运维层、合约层和基础设施层应用层封装了目前智能合约的应用领域,验证了区块链与智能合约可应用于各行各业。表现层封装了智能合约在实际应用中的几种具体表现形式,为区块链2.0时代的到来奠定了基础。智能层封装了多种智能算法,智能合约的智能在以后可能会替代人类生活中的一些高级行为。运维层封装了一系列对合约层中静态合约数据的操作,运维层是智能合约 按照设计者意愿正确、安全、高效运行的保障。合约层封装了一些必不可少的合约数据,相当于是智能合约的静态数据库。基础设施层封装了支持智能合约及其衍生应用实现的所有基础设施,这些设施的选择在一定程度上影响了智能合约的设计模式和合约属性。

3.2智能合约工作原理

智能合约的工作过程包括构建、部署、输入、执行等四个步骤。由开发语言编写完成后,交由以太坊特有的二进制格式的虚拟机来进行编译,形成字节码后完成部署,再通过P2P网络上传到本次合约相关的区块链上,广播到各个网络节点,在这之后的每次合约调用都会在虚拟机上被执行,具体过程如下:1)构建:智能合约的构建主要是将合同或者业务规划以代码的形式呈现出来,包括条件、输入参数、执行逻辑、输出结果等内容。2)部署:在进行智能合约部署时,首先需要编写合约代码文件,并交由智能合约编译器进行编译,转换为在虚拟机(EVM)上执行的字节码;接着,向区块链节点接口发送创建请求交易,验证通过后检查输入数据,再进入交易池;随后,由“矿工”打包该交易,并生成新的区块广播到P2P网络,节点在接收到区块信息后对交易进行处理,为合约创建EVM环境,生成智能合约特有的账户地址,并将该区块添加到区块链上;最后,应用程序编程接口获取到该交易的收据,得到账户地址,完成智能合约的部署。3)输入:智能合约的输入是整个工作过程的重点,为智能合约代码提供了可信的数据输入,作为该合约的基本信息源,是智能合约成功与否的关键。4)执行:合约的执行基于输入并保证确定的逻辑关系,执行成功后会反馈正确可信的执行结果。

四、智能合约应用

4.1众筹项目管理

众筹指的是大众筹资,当一个项目开发人员有了创造能力,却因为资金链不足,无法启动项目时,可以将该项目的具体信息发布到平台上进行筹资,即寻找对该项目感兴趣并且有足够的资金支持的人[11]。众筹的每个项目必须要设定明确的筹资目标和筹资天数,项目在时间内筹集目标资金后进行开发,投资者会获得一定的报酬。若超过设定的天数,还未筹集目标金额,则该项目视为筹资失败,已经获得的资金将会全部返还给投资者,该项目视为作废。

由于众筹的门槛较低,出现的问题也较多。第一,众筹作为金融业务中的一部分,必须满足金融机构业务的所有信用条件,需要给定完整可靠的方案账本。对于线上众筹项目,需要提供大量的可信资料以赢得公众的信任,确保发起方和支持者双方的利益保障。第二,传统的众筹平台并没有严格管控的监督机构,导致引起问题纠纷,因此根据网络模型提供监督是建立众筹制度的关键问题。第三,众筹平台必定会与银行等金融实体机构实现对接,当平台项目的规模扩张,实体性问题(生产压力、缺乏创业指导、投资人不够专业等)接踵而至,大大影响了项目的成功率。

基于区块链的智能合约技术可以解决上述问题,区块链通过使用密码学方法来生成相关联的区块,每个区块都包含了交易的时间、具体信息、验证信息等,且不可篡改,提高了众筹业务的效率和可信度。并且区块链将具有不同权限的节点放置在了不同的用户地址,用户实行参与或部分参与管理以及发布权威认证消息,实现了所有信息的可追溯性。由于区块链是一个分布式数据库,链上每一个小小的变化都将引起整个状态的改变,但是区块链技术能恶狗快速找到并纠正它,保证了数据的真实性和可靠性,所以对于众筹问题需要用到的高可信度平台,使用区块链技术是非常有必要的。

4.2医疗管理

传播病人的医疗记录的泄露会给患者的隐私带来多中风险,并可能引起患者的严重损失或声誉、财产等,基于这个问题,XIA等人提出了MeDShare系统[12],该系统采用了智能合约和访问控制机制來进行有效地跟踪数据行为,为大数据实体之间的云存储库中的共享数据提供来源、审计和控制,在此系统中,数据转换从一个实体共享到另一个实体,以及所有操作都以防篡改的方式进行记录,并在违反数据权限的情况下撤销对微观实体的访问,解决了医疗大数据保管人在无心信任环境中共享医疗数据的问题。

4.3 版权管理

互联网的发展使得网络上的各种作品都能够最大限度地展现在每一个人的眼前,给具有创新创作的人才带来了更多的机会,抄袭行为屡禁不止,给原创作者们带来了无尽的烦恼,版权保护问题成为了热点。在版权登记时,可以利用区块链技术的不可篡改性,对不同的作品生成唯一的识别码,将这个识别码视为作品的代表方式进行关联,则会在一定程度上解决这个问题。并且还可以设置监督机制,在合约中增加时间戳,及时掌握用户访问文件的相关信息作者的身份会得到证明,为版权保护提供了极大的便利。

五、智能合约应用中面临的挑战

5.1编码问题

以太坊智能合约都是依靠于程序语言来实现,然而在代码的编辑过程中,难免错误的出现。例如以太坊的众筹项目The DAO是因为智能合约代码的递归调用产生漏洞而遭到攻击,造成了巨大的损失,虽然最后通过硬分叉追回了损失,但该项目还是宣布开发失败了。

5.2安全问题

鉴于应用于智能合约的开发程序语言并不成熟,合约存在较大的安全漏洞,使得恶意的人有空子可钻。并且,在区块链这个公共的大环境下,链上的所有用户都可以看到基于区块链的智能合约,已部署上链的合约不可逆转,一旦合约遭到攻击,若开发人员不能迅速修复,必将造成难以挽回的经济损失与严重的安全问题。

5.3 法律问题

从“合约”二字中推断出智能合约一定是与法律概念中的合约有着千丝万缕的联系,但是从法律的角度来看,这是错误的推测。然而,不可否认的是智能合约必须被归类为与法律相关的行为,所有可能的经济交易都被法律管理和控制着,智能合约就相当于是组织经济交易的一种工具,类似于智能合同[13]。智能合约中责任及风险的归属等问题仍需深入研究。同时,智能合约的开展还将存在诸多不可预见的情形,真实性缺乏实际考察等。考虑到这些问题是否会记录进法律条文来实施对智能合约项目开发的保护。

5.4 性能问题

智能合约目前依赖于区块链平台的分布式账本及其关键技术,在一定程度上受到了一些限制导致合约的执行性能和数据处理性能较低,随着智能合约的发展,区块链上的合约数量在逐步的增加,区块链系统将会出现无法扩展规模的问题。同时,智能合约在区块链系统中是按顺序来执行的,每秒能够执行的合约数量受到限制,在性能上成为了大大的阻碍。Hyperledger提出了多通道的方案,但目前的区块链平台还是以单链为主;Dickerson等人提出了一种智能合约的并行执行框架,希望允许非冲突的合约同时进行,从而来提高系统吞吐量,改善智能合约的执行性能,以上解决问题的方法目前还在积极研发中,在不久的将来肯定能够很好地解决智能合约的执行性能问题。

六、总结与展望

智能合约是在上世纪被提出的创世纪技术,在区块链的浪潮下又焕发出了新的生机,又由于智能合约在生活中的广泛应用,极大地促进了区块链的发展。在目前看来,智能合约已经立足于世界的某一个技术顶点,成为全球经济的基本构件,并且任何人都有可能依靠智能合约找到自己的经济支点。总而言之,智能合约为静态的底层区块链数据赋予了灵活可编程的机制和算法,并为构建区块链2.0和3.0时代的可编程金融系统与社会系统奠定了基础。但是,就目前的生态而言,智能合约对现实世界的影响力是有限的,但是事物总是在发展中的,毋庸置疑的是智能合约将会扮演着越来越重要的角色,随着以太坊2.0的落地,也许会开创一个新的区块链时代,有更多智能合约应用等着我们去深入研究。

参  考  文  献

[1]张杰. 区块链安全综述. 西安文理学院学报 (自然科学版)2020, 3: 42–55.

[2] Hancock M, Vaizey E. Technical report by the UK government chief scientific adviser [EB/OL]. [2017-07-19].

[3] SwanM. Blockchain:Blue print for a New Economy [M]. Sebastopol, CA: OReilly Media, Inc, 2015.

[4]朱建明, 付永贵. 区块链应用研究进展[J]. 科技导报, 2017, 35(13):70-76.

[5]袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4): 481-494.

[6] Buterin V.  Anextgeneration smart contract and decentralized application platform.  White paper    (2014).

[7] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system [OL]. [2018-01-31].  (http://bition.org/bitcoin.pdf)

[8]赵国宏. 军事区块链研究[J] 指挥与控制学报. vol. 5, no. 4, pp. 259-268.

[9] Mourouzis, T. , and Tandon, J. Introduction to decentralization and smart contracts, 03  2019.

[10]歐阳丽炜, 王帅, 袁勇, 倪晓春, 王飞跃. 智能合约: 架构及进展[J]. 自动化学报. 2019, 45(3): 445?457.

[11]黄洁华, 高灵超, 徐玉壮. 众筹区块链上的智能合约设计. 信息安全研究. (2017).

[12]贺海武, 延安, 陈泽华. 基于区块链的智能合约技术与应用综述. 计算机研究与发展 55, 11(2018), 112-126.

[13]贺小苗. 区块链技术的应用: 智能合约及法律问题前瞻. 现代商业000, 16(2018), 153–154.

猜你喜欢

智能合约区块链综述
SAPHO综合征1例报道并文献综述
基于迁移学习模型的小样本学习综述
知识追踪综述
共指消解技术综述
区块链技术在互联网保险行业的应用探讨
智能合约的特点及其在债券市场的应用
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
区块链技术在会计中的应用展望