一种基于区块链的智能合约的实现方法

文档序号:10534513阅读:320来源:国知局
一种基于区块链的智能合约的实现方法
【专利摘要】本发明提供了一种智能合约的实现方法,包括步骤:建立智能合约,其中,合约C为三元组:C=(I,M*,{M1,M2,…,Mm}),包括:合约方信息I,Ii表示第i个合约方Pi的信息,i=1…m,共有m个合约方参与合约;合约状态机M*与合约执行状态机集合{M1,M2,…,Mm};输入各个合约方的状态及事件,并存储在安全度高的数据库中;执行智能合约,获取合约的执行结果。并且还提供了一种基于区块链的智能合约系统,包括:用户界面、智能合约装置及区块链管理模块。
【专利说明】
一种基于区块链的智能合约的实现方法
技术领域
[0001] 本发明涉及智能合约技术领域,特别是涉及到智能合约执行模型的设计。本发明 不仅解决了智能合约执行模型的设计问题,还提供了一种基于区块链的智能合约系统,使 得智能合约的存储与执行具有公信力,安全性更高。
【背景技术】
[0002] 合约指两方面或几方面在办理某事时,为了确定各自的权利和义务而订立的共同 遵守的条文。传统的合约都是先经过"桌面会议"讨论得到一致后,记录在纸张上。经过了这 么多年的发展,"合约"已经形成了自身的概念与原则。
[0003] 在传统合约中,人们先通过面谈的形式制定合约并达成一致,把合约记录在纸张 上,合约双方在纸上签字;合约的执行过程由很多的控制协议构成,控制协议包括两个部 分:表格、账单等记录的保存,还有记录的审核与协商,记录的审核与协商往往需要第三方 参与,容易造成合约方之间的地位不平等;合约的执行效能只能通过法律、武力来保证。这 些控制协议都是经过多年的沉淀积累下来的。虽然控制协议的成本很高,但它是我们在不 信任的环境中保持协作的根本保证。合约的执行过程中,记录的审核不仅花费很高,而且依 靠低效率的人工完成,所以人们往往通过抽样审核来缩减成本的。
[0004] 我们已经进入了数字社会的时代,应该通过计算机、互联网、密码理论等技术的引 入,来减少了交易在合约制定、控制协议和执行效能保障的人工花费与计算成本。1997年, Ni ck Szabo引入"智能合约"的概念:智能合约把合约条款嵌入到软、硬件中,通过协议与用 户接口来促进合约的执行,它是我们在互联网中形成安全、数字化关系的关键。他在 "Formalizing and Securing Relationships on Public Networks" 中提出 了智會泛合约的 三大重要的性质:可观察性、可验证性与接入控制。可观察性指合约本身与合约执行过程能 够被观察;可验证性指合约执行的过程与判决都能够被验证;接入控制是指合约本身及与 合约相关的信息只有相关的合约方才能够接触,当发生冲突的时候才会把相关信息暴露给 第三方审查。
[0005] 通过把智能合约与传统合约比较,可以看到智能合约的优势:首先,传统合约需要 通过"桌面协议"的形式协商与撰写,智能合约可以通过互联网与数字签名技术就可以形成 有合约方认证签名的智能合约;与此同时,传统合约的执行过程由很多的控制协议构成,控 制协议包括两个部分:表格、账单等记录的保存,还有记录的审核与协商,记录的审核与协 商往往需要第三方参与,这样不仅容易造成合约方之间的地位不平等,而且需要花费第三 方的费用,智能合约通过密码协议与用户界面的结合保证合约的本身及其执行过程的可观 察性、可验证性,减少了控制协议的人工花费与计算成本。
[0006] 因此,智能合约不仅比传统"纸质"合约具有更大功能、生命力更强,它还减少了交 易在合约制定、控制协议和执行效能保障的人工花费与计算成本。同时,它还是形成"数字 社会"主力军,起着不可缺少的重要作用。由此看来,智能合约的发展潜力是巨大的。
[0007]由于技术的不成熟,所以智能合约的发展一直十分缓慢,直到2013年,Ethereum提 出了带有内置图灵完备编程语言的区块链,智能合约能够在区块链上实现,使得智能合约 的研究又进入了一个新的阶段。
[0008] 区块链是一个可验证的、不可更改的复制型分布式数据库。区块链有两个重要的 组成部分:交易和区块。其中,交易不仅记录了改变数据库状态的操作,还是对数据库使用 权限的载体;区块,它是对交易验证时间与顺序的记录。区块链记录了所有的交易,保证区 块链的可验证性。交易、区块的正确性主要在于系统对标准的制定,交易的有效性判断标准 在于实际的需要;由于区块链是复制型数据库,所以区块的有效性判断决定了区块链的不 可更改性与一致性、系统的安全性。同时,带有内置图灵完备编程语言的区块链可以自动执 行保存在区块链中的规则,所以智能合约能够用区块链实现。
[0009] Ethereum提供了一个带有内置图灵完备编程语言的区块链平台,任何人都可以在 它上面制定自己的规则、交易格式和状态转换函数,来创建自己的智能合约、分布式应用。 但Ethereum只提供了实现智能合约的底层设施,并不是完整的智能合约系统,从合约的建 立到合约的执行,到合约的审计都没有相关实现。

【发明内容】

[0010] 有鉴于此,本发明设计了一种基于区块链的智能合约实现方法系统。
[0011] -种智能合约的实现方法,其特征在于,包括步骤:
[0012] 建立智能合约,其中,合约C为三元组:0=(1^'{111,2,'","}),包括:合约方信 息I,Ii表示第i个合约方Pi的信息,i = 1 ???!!!,共有m个合约方参与合约;合约状态机]\f与合约 执行状态机集合…,Mm};把合约C存放入安全度高的数据库中;
[0013] 输入各个合约方的状态及事件,并把所述状态及事件作为证据记录在安全度高的 数据库中;
[0014] 根据建立好的合约C与各个合约方输入的事件来执行智能合约,获取合约的执行 结果。
[0015]优选的,合约状态机M*为五元组((^^^'^,^,(^{((^,(^,…,(^,⑶^是合 约状态机所有状态的集合;L是合约订立参数,被包含于第i个合约方的状态集qil,q^e qii,i = 1 ?,,X是输入事件的集合;S*是转换函数的集合S*:Q X 5: -Q; s*是初始状态值s*£ Q,F*是终止状态的集合扩£ Q:;
[0016]合约执行状态机1表示第i个合约方?:的执行状态机,为五元组(qn,2,&,&, Fihqn是合约的执行状态集合,i = 是输入事件的集合;心是转换函数的集合 5i:qnX 2 -qii;si是初始状态值SiGqii,Fi终止状态的集合Fi£取。
[0017]优选的,将合约C及合约状态机、合约执行状态机、合约执行过程保存在安全度高 的数据库中。
[0018] 优选的,当智能合约的执行出现纠纷,将该数据库中保存的与合约相关的数据发 送给第三方检验。
[0019] 优选的,各个合约方Pi对其输入进行数字签名。
[0020] -种基于区块链的智能合约系统,其特征在于,包括:用户界面、智能合约装置,其 中,
[0021] 用户通过用户界面在智能合约装置上建立智能合约,合约C为三元组:C=(I,M' {Mi,M2,'",Mm}),包括:合约方信息I,Ii表示第i个合约方Pi的信息,i = l'"m,共有m个合约方 参与合约;合约状态机]^与合约执行状态机集合{Mi,M2,…,Mm};把合约C存放入区块链数据 库中;
[0022] 用户通过用户界面在智能合约装置输入各个合约方的状态及事件,所述状态及事 件作为证据记录在区块链数据库中;
[0023] 智能合约装置根据建立好的合约C与各个合约方输入的事件来执行合约,获取合 约的执行结果。
[0024]优选的,合约状态机M*为五元组(〇,2,5'8'内,9={(如'屯'"_,9/丄)},9是合 约状态机所有状态的集合;L是合约订立参数,被包含于第i个合约方的状态集qil,q^e qii,i = 1 ?,,X是输入事件的集合;S*是转换函数的集合S*:Q X 5: -Q; s*是初始状态值s*£ Q,F*是终止状态的集合£ Q;
[0025]合约执行状态机1表示第i个合约方?:的执行状态机,为五元组(qn,2,&,&, hhqn是合约的执行状态集合,i = l"_m;5:是输入事件的集合;心是转换函数的集合 心:qii X 5: -qii; Si是初始状态值Si G qii,Fi终止状态的集合Fi £取。
[0026]优选的,还包括区块链管理模块,用于保存智能合约C及合约状态机、合约执行状 态机、合约执行过程。
[0027]优选的,当智能合约的执行出现纠纷,将区块链数据库中保存的与合约相关的数 据发送给第三方检验。
[0028]优选的,各个合约方Pi对其输入进行数字签名。
【附图说明】
[0029] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要的附 图做简单的介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普 通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1为本发明的合约执行步骤示意图。
[0031] 图2为本发明的基于区块链的智能合约系统架构。
[0032] 图3为本发明实施例的合约状态机、合约方执行状态机。
【具体实施方式】
[0033] 智能合约的建立、协商与提交
[0034] 智能合约建立、协商与提交的过程:各方律师先建立智能合约,通过自然语言处理 生成形式化的、可执行的合约;各方律师对生成的智能合约一一核实,包括用形式化工具验 证合约,并用一致性工具检验合约;通过密码协议,合约各方给合约数字签名;最后把签名 后的合约上传到区块链上,合约本身与合约执行的所有状态(包括合约状态机、合约方执行 状态机)都保存在区块链上。
[0035] 合约C是一个三元组:合约方信息I(Ii表示第i个合约方Pi的信息,i = l'"m,共有m 个人参与合约)、合约状态机与合约方的执行状态机集合{Mi,M2,…,Mm}。
[0036] C=(I,M*,{Mi,M2,...,]\U)
[0037]合约状态机
[0038]合约状态机M*是一个五元组(〇,2,5'8'内,9={(9 1^/,"_,9/丄)},〇是合约 状态机所有状态的集合,L是合约执行背景,合约执行背景即合约订立时的环境参数(如合 约订立时间,合约订立所需的参数等),其中q,被包含于第i个合约方的状态集 qil,qi*Gqil, 1 =卜_!11。5:是输入(事件)的集合。#是转换函数的集合(#:〇\5:4〇)。,是初始状态值(, GQ),F*是终止状态的集合CFQQ) 6
[0039]区块链数据库保存着合约本身与合约的所有状态(包括合约状态机、合约方执行 状态机),以及合约执行过程证据的记录。同时,每个参与计算的节点都保存着相同的区块 链数据库,每个节点能够接收到合约方发送的消息,并根据消息执行合约,得到新的合约状 态集合{S'}。通过投票,选出大多数节点同意的新状态S'并将它保存在区块链的最新区块 上。
[0040] 转换函数相当于给合约方的执行进行判决,判决包括两个部分,一个是对合约方 所执行内容的真实性、是否达标进行检验;第二个是执行判决,包括合约状态的转移、强制 性的实施。强制性的实施在于资产是否数字可控的。
[0041] 合约执行状态机
[0042] 合约执行状态机1表示第i个合约方?:的执行状态机,是一个五元组(qn,2,心, Si,Fi),qn是合约方Pi的执行状态集合,i = 1…!!!。2是输入(事件)的集合。心是转换函数的 集合(Si:qiiX 2-qnhsi是初始状态值SiGqn,Fi终止状态的集合(Figqn) 〇
[0043] 合约的审计
[0044] 当合约的执行出现纠纷,只需要把记录在区块链上的与合约相关的证据交给第三 方检验就可以了。
[0045] 合约的接入控制
[0046] 消息作为权利的载体,所以合约方匕必须对所发送的消息签名,以防止伪造。
[0047]合约执行步骤
[0048] 图1为合约执行步骤示意图,合约的执行步骤包括以下内容:
[0049] 1、建立智能合约,设计智能合约条款(背景、合约方的义务和判决)。合约建立后需 要经过形式化验证,然后合约方数字签名;
[0050] 2、发布被签名的合约,使其存储在区块链上;
[0051] 3、执行合约,合约方按照智能合约条款规定把执行记录放入在区块链上,当该条 款的合约义务已完成,则把结果记录在区块链上的合约账户(区块链上的账户是指存储与 智能合约相关信息的地方);合约账户接收到消息后,对合约方义务完成情况进行判决。同 时,智能合约的执行会改变合约的状态,每个状态的改变都必须通过参与计算的节点投票 决定(区块链中参与计算的节点是指制作区块的节点),以此保证计算的同步与防伪。
[0052] 如果合约方起争执,则还包括:4、合约方起争执,则公开其合约及其相应存储给第 三方公审。
[0053]除此之外,基于上述的执行模型,本发明的第二个方面是基于智能合约的系统架 构。
[0054]参见图2,系统一共分为三大部分,分别是用户界面、智能合约装置,区块链管理模 块。通信是整个系统的基础设施;区块链管理模块用作安全的分布式存储系统,存储与智能 合约相关的信息,作为分布式虚拟机的运行环境;智能合约分为三个部分,合约的形式化生 成与验证、合约执行管理与合约审计。
[0055]用户通过用户界面在智能合约装置上建立智能合约,并且通过用户界面在智能合 约装置输入各个合约方的状态及事件;
[0056]智能合约装置执行合约,获取合约的执行结果,具体包括合约的形式化生成与验 证、合约执行管理与合约审计;
[0057]区块链管理模块,用于保存合约C及合约状态机、合约执行状态机、合约执行过程, 当合约的执行出现纠纷,将区块链管理模块中保存的与合约相关的数据发送给第三方检 验。
[0058]该系统以带有区块链为基础设施,在其上面添加智能合约装置,包括智能合约的 集成开发环境、合约执行管理、合约的形式化生成与验证、合约的一致性检测、合约的组合 定制功能、自然语言处理。除此之外,还有智能资产管理模块与合约审计功能模块。
[0059] 合约集成开发环境:用于编写合约代码并调试;
[0060] 合约执行管理模块:检测合约状态,管理合约方的合约执行记录;
[0061] 合约数据库:保存不同功能的合约,增强重用性;
[0062] 合约组合器:根据用户需求从合约数据库中寻找所需功能的合约,进行组装;
[0063]形式化验证工具:验证用户生成的或者合约组合器生成的合约,还可以直接根据 用户定制的需求来生成所需的合约,并检验性质;
[0064] -致性检验工具:检验合约的逻辑一致性;
[0065]智能资产管理模块:与物联网相连,注册与管理数字资产;
[0066]合约审计:当合约方对合约执行的结果产生歧义的时候,第三方可以通过这个模 块进行审核;
[0067]自然语言处理:合约代码与人类语言之间的一个桥梁,自然语言处理与一致性工 具的结合使得合约代码能够被一般人读懂和验证,令智能合约可以具有法律效力;
[0068]加密模块:智能合约很多功能都需要不同的加密协议支持,如数字签名、数字水 印、安全多方签名等。
[0069]为了让本发明的目的、特征和优点能更加明显易懂,下文列举了本发明的实施例 子,做详细说明如下,籍以使本领域普通技术人员能够更清楚的了解本发明所欲阐述的精 神。
[0070]售后服务的事例
[0071 ]建立合约、协商与提交,其中合约内容如下表1,合约方Custmoer执行状态机与 Merchant执行状态机如下表2、3,合约状态机、事件及转换函数分别如下表4、5、6所示。



[0084] 建立合约,包括合约方信息、合约状态机与合约方执行状态机。然后通过自然语言 处理,得到形式化的、可执行的智能合约。为了方便程序表示,我们约定如表7:
[0085] 表 7

[0088] 得到合约的状态机与合约方执行状态机,如图3。
[0089] 合约方用形式化工具、一致性检测工具检验合约,若通过,则合约方在合约上添加 数字签名。
[0090] 根据合约内容执行合约,合约本身、与合约相关的所有状态都需要记录,还有合约 方执行合约的证据需按照合约规定存储在区块链中。合约状态机每个状态的转换都必须一 致性算法保证各个节点的执行一致。
[0091] 当出现对合约执行结果出现争执的时候,则进入审计阶段。
[0092] 以上所述,仅是本发明的实例,并非对本发明做任何形式上的限制。任何精于本专 业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出其他 种种的改良或修饰为等同变化的等效实例,但凡是未脱离本发明技术方案内容,依据本发 明的技术实质对以上实施所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方 案的范围内。
【主权项】
1. 一种智能合约的实现方法,其特征在于,包括步骤: 建立智能合约,其中,合约C为三元组:C= (I,M' (M1 ,M2,…,Mm}),包括:合约方信息I,Ii 表示第i个合约方Pi的信息,i = 1 ···!!!,共有m个合约方参与合约;合约状态机if与合约执行状 态机集合(M^M2,…,Mm};把合约C存放入安全度高的数据库中; 输入各个合约方的状态及事件,并把所述状态及事件作为证据记录在安全度高的数据 库中; 根据建立好的合约C与各个合约方输入的事件来执行智能合约,获取合约的执行结果。2. 根据权利要求1所述的一种智能合约的实现方法,其特征在于,合约状态机if为五元 组ω,Σ,δ?内,0={((^,(12'"_,(1/丄)},0是合约状态机所有状态的集合汰是合约订 立参数,qi*被包含于第i个合约方的状态集qii,qi* e qii,i = · ·Ι?,Σ是输入事件的集合;δ* 是转换函数的集合P:QX 是初始状态值 s*eQ,F*是终止状态的集合Ft £ Q; 合约执行状态机1表示第i个合约SP1的执行状态机,为五元组(qil,X JllSllF1Kqil 是合约方Pi的执行状态集合,? = 1···πι; Σ是输入事件的集合;Si是转换函数的集合δ i:qii X Σ-qn; Si是初始状态值SiGqliJi终止状态的集合Fi £ qn。3. 根据权利要求2所述的一种智能合约的实现方法,其特征在于,将合约C及合约状态 机、合约执行状态机、合约执行过程保存在安全度高的数据库中。4. 根据权利要求3所述的一种智能合约的实现方法,其特征在于,当合约的执行出现纠 纷,将该数据库中保存的与合约相关的数据发送给第三方检验。5. 根据权利要求2所述的一种智能合约的实现方法,其特征在于,各个合约方P1对其输 入进行数字签名。6. -种基于区块链的智能合约系统,其特征在于,包括:用户界面、智能合约装置,其 中, 用户通过用户界面在智能合约装置上建立智能合约,合约C为三元组: M2,…,Mm}),包括:合约方信息I,Ii表示第i个合约方Pi的信息,? = 1···ηι,共有m个合约方参 与合约;合约状态机]^与合约执行状态机集合(M1 ,M2,…,Mm};把合约C存放入区块链数据库 中; 用户通过用户界面在智能合约装置输入各个合约方的状态及事件,所述状态及事件作 为证据记录在区块链数据库中; 智能合约装置根据建立好的合约C与各个合约方输入的事件来执行合约,获取合约的 执行结果。7. 根据权利要求6所述的一种智能合约系统,其特征在于,合约状态机if为五元组(Q, X,,s'F*),Q={(qi'q2V",q/,L)},Q是合约状态机所有状态的集合;L是合约订立参 数,q,被包含于第i个合约方的状态集9 11冲¥911,1 =卜_!11,2是输入事件的集合^是转 换函数的集合δ*: Q X Σ -Q; s*是初始状态值s*e Q,F*是终止状态的集合Q: 合约执行状态机1表示第i个合约SP1的执行状态机,为五元组(qil,X JllSllF1Kqil 是合约方Pi的执行状态集合,? = 1···πι; Σ是输入事件的集合;Si是转换函数的集合δ i:qii X Σ -qii; Si是初始状态值Si e qii,Fi终止状态的集合?1 £ Q11。8. 根据权利要求7所述的一种基于区块链的智能合约系统,其特征在于,还包括区块链 管理模块,用于保存合约C及合约状态机、合约执行状态机、合约执行过程。9. 根据权利要求8所述的一种基于区块链的智能合约系统,其特征在于,当合约的执行 出现纠纷,将区块链数据库中保存的与合约相关的数据发送给第三方检验。10. 根据权利要求7所述的一种基于区块链的智能合约系统,其特征在于,各个合约方P1 对其输入进行数字签名。
【文档编号】G06F9/44GK105893042SQ201610195644
【公开日】2016年8月24日
【申请日】2016年3月31日
【发明人】胡凯, 黄洁华, 蔡维德, 白晓敏, 陈志东
【申请人】北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1