资料来源:欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《智能合约:架构及进展》,《自动化学报》2019年第3期,第447页。
智能合约的运行机制如图10所示。它一般具有“值”和“状态”两个属性,代码中用If-Then和What-If语句预置了合约条款的相应触发场景和响应规则。智能合约经多方共同协定、各自签署后随用户发起的交易(transaction,Txn)提交,经P2P网络传播、矿工验证后存储在区块链特定区块中。用户得到返回的合约地址及合约接口等信息后即可通过发起交易来调用合约。“矿工”受系统预设的激励机制激励,将贡献自身算力来验证交易。
“矿工”收到合约创建或调用交易后在本地沙箱执行环境(如以太坊虚拟机)中创建合约或执行合约代码,合约代码根据可信外部数据源[也称为预言机(Oracle Machines)]和世界状态的检查信息自动判断当前所处场景是否满足合约触发条件以严格执行响应规则并更新世界状态。交易验证有效后被打包进新的数据区块。新区块经共识算法认证后链接到区块链主链,所有更新生效。
随着区块链技术的逐渐兴起,智能合约的应用日益广泛。目前,它在金融、管理、医疗、物联网和供应链等领域都有了应用。
1.金融领域的应用
智能合约在金融领域的应用十分广泛。首先,它可以被用于资产清算。例如,由高盛、摩根大通等财团组成的R3区块链联盟率先尝试将智能合约应用于资产清算领域,利用智能合约在区块链平台Corda上进行点对点清算。目前,已有超过200家银行、金融机构、监管机构和行业协会参与了Corda上的清算结算测试。其次,它可以被用于保险理赔。Gatteschi等设计了一种旅行保险智能合约,一旦合约检测到如航班延误等满足要求的赔偿条件即可自动补偿旅客。最后,它可以用于资产交易环节。
例如,ECoinmerce是一种去中心化的数字资产交易市场,借助智能合约,任何用户都可在ECoinmerce上创建、购买、出售和转租其数字资产。类似的应用还有Slock.it,它允许用户基于区块链出租房地产、汽车、智能设备、路由器等有形资产,这些资产经智能合约编码获得身份认证后即可作为智能资产直接完成复杂协议。
2.管理领域的应用
传统的组织管理是自上而下的“金字塔型”架构,容易产生机构臃肿、管理层次多、管理成本高、责任界定不明、信息传递不畅、权力集中在上层而下层自主性小、创新潜能难以有效释放等问题。智能合约和DAO将对管理领域带来革命性影响。智能合约可以将管理规则代码化,代码设定完成后,组织即可按照既定的规则自主运行。组织中的每个个体,包括决策的制定者、执行者、监督者等都可以通过持有组织的股份权益或提供服务的形式来成为组织的股东和参与者(即前文所述的DAO)。DAO使得每个个体均参与到组织的治理中,从而充分激发个体的创造性,提高组织决策的民主化。此外,编码在智能合约上的各项管理规则均公开透明,也有助于杜绝各类不当行为。
3.医疗领域的应用
医疗技术的发展高度依赖历史病例、临床试验等医疗数据的共享,由于医疗数据不可避免地包含大量个人隐私数据,其访问和共享一直受到严格的限制。患者个人难以控制自己的医疗数据访问权限,隐私性难以保证,医疗工作者需花费大量时间和精力向相关部门提交申请进行权限审查并在数据使用前完成数据校验以保证可靠性,这样不仅工作效率很低,而且存在医疗数据被篡改、泄露以及数据传输不安全等风险。对于以上问题,医疗智能合约可以比较有效地加以解决。医疗数据可被加密存储在区块链上,患者对其个人数据享有完整的控制权,通过智能合约设置访问权限,用户可实现高效安全的点对点数据共享,无需担心数据泄露与篡改,数据可靠性得到充分保障。
目前该应用领域有三种比较典型的智能合约。一是医疗信息存储和共享合约。例如,MedShare为共享医疗数据提供溯源及审计服务,其设计采用了智能合约和访问控制机制,可有效追踪数据行为,并在违规实体违反数据权限时撤销访问。二是医学研究型智能合约。例如Kuo等提出了名为ModelChain的框架。该框架基于区块链进行医疗预测建模,每个参与者都可对模型参数估计作出贡献,而不需要透露任何私人健康信息。三是药品溯源及打假合约。例如,医疗药品联盟链MediLedger、电子处方平台BlockMedx等可用于加强对处方类药物的溯源能力。
4.物联网与供应链领域的应用
物联网与去中心化、去信任的区块链架构的结合将成为必然的发展趋势。智能合约将在此过程中实现物联网复杂流程的自动化、促进资源共享、保证安全与效率、节约成本。例如,Dorri等提出了一种基于区块链及智能合约的智能家居模型,探讨了模型中的各种交互流程,并通过仿真实验证明了此模型将显著降低物联网设备的日常管理费用。Zhang等提出了一种物联网电子商务模型,利用基于智能合约的点对点交易实现物联网上智能资产和付费数据的交易。Zhang等提出了基于智能合约的物联网设备访问控制模型,该模型由多个访问控制合约、一个决策合约和一个注册合约组成,可实现对物联网系统的分布式可信任访问控制。IoTeX则是一个以隐私为中心区块链驱动的去中心化物联网网络,支持包括共享经济、智能家居、身份管理与供应链在内的多种物联网生态系统。
与物联网类似,供应链通常包含许多利益相关者,如生产者、加工者、批发商、零售商和消费者等,其相关合约将涉及复杂的多方动态协调,可见性有限,各方数据难以兼容,商品跟踪成本高昂且存在盲点。通过将产品从生产到出售的全过程写入智能合约,供应链将具有实时可见性,产品可追溯、可验证,欺诈和盗窃风险降低,且运营成本低廉。其代表性的应用有棉花供应链、医疗药品供应链等。
尽管已经有了广泛的应用,但总体来说智能合约目前还处于发展的初期,仍有很多问题亟待解决:
(1)安全问题。
虽然智能合约拥有很高的效率,但其安全性依然是有待检验的。例如,2016年5月,以太坊最大的众筹项目The DAO被攻击者利用程序中的递归调用漏洞获取了大量以太币(Ether,ETH),这个问题引发了大众对于智能合约安全性和法律问题的思考。Luu等提出了检查智能合约漏洞的工具,文中利用工具检查了以太坊中包含3068654以太币、价值3万美金的19366个合约,其中有8833个合约至少包含一种安全漏洞。
(2)法律问题。
The DAO事件也对法律提出了巨大挑战:首先,界定“漏洞”困难,智能合约与实际合约无法显示转换;其次,由于区块链不可更改,智能合约难以撤销。目前也有一些研究从法律角度讨论智能合约的模板与标准化格式,法律与参数、代码联系以及数据标准与合约特点。
(3)效率问题。
区块链系统本身存在的吞吐量低、交易延迟、能耗过高、容量和带宽限制等性能问题极大地限制了智能合约的执行效率。同时由于智能合约按顺序执行,随着交易增多,交易确认将变很慢,且交易费会变高。
总之,要想扬长避短,发挥好智能合约的优势、减少使用中出现的各种问题,我们还有很多工作需要做。