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

文档序号:11433110阅读:2991来源:国知局
一种基于区块链的智能合约实现方法与流程

本发明涉及区块链技术领域,具体涉及一种基于区块链的智能合约实现方法。



背景技术:

合约,指两方面或几方面在办理某事时,为了确定各自的权利和义务而订立的共同遵守的条文。

传统合约是写在纸上的,签字盖章之后才会生效,合约的执行过程由很多控制协议构成,控制协议包括表格账单等记录的保存以及记录的审核与协商,记录的审核与协商通常需要第三方的参与,而合约的执行效能只能通过法律、武力保证。

随着信息技术的发展,通过计算机、互联网和密码理论等技术减少合约指定、控制及执行的成本逐渐成为一种新的发展趋势。1997年,nickszabo引入“智能合约”的概念:智能合约把合约条款嵌入到软、硬件中,通过协议与用户接口来促进合约的执行,它是我们在互联网中形成安全、数字化关系的关键。也就是说,在计算机界里,合约是通过代码的形式实现的。数字化的合约,存在着是否有效、容易被否认、可能会被篡改及被黑客攻击的风险,因此数字化的合约始终可信度不高。



技术实现要素:

针对上述现有技术,本发明目的在于提供一种基于区块链的智能合约实现方法。

为达到上述目的,本发明采用的技术方案如下:

一种基于区块链的智能合约执行方法,包括以下步骤:

步骤1、对于两个及两个以上有数据共享需求的用户,根据每个用户自身需要制定一份合约,合约用于明确各方的权利和义务,并通过编程语言获得电子化合约,由参与合约制定的各个用户对电子化合约进行数字签名,获得有效合约,签名用以保证合约的有效性,实现智能合约制定;

步骤2、有效合约通过p2p的方式在区块链中扩散,区块链中参与该有效合约制定的各个节点都收到一份有效合约并保存在对应的区块中,对应的区块中除了包含本体信息之外,还包含有效合约记录及与有效合约记录对应的时间戳,实现智能合约在区块链网络中存入;

步骤3、设置有效合约定期检查自动机状态,逐条遍历有效合约内包含的状态机、事务和触发条件,当事务满足触发条件,利用验证节点首先对事务进行签名验证,此处签名用于确保事务的有效性,当验证节点通过签名验证之后执行事务,实现智能合约自动执行。

上述方法中,所述的步骤3,包括以下步骤:

步骤3.1、由用户发起数据共享请求后产生相应的事务,并把用户的操作记录在对应的区块中;

步骤3.2、检查有效合约状态机的执行状态,遍历有效合约找到该事务对应的触发条件;

步骤3.3、当该事务满足触发条件时,通过验证节点对该事务进行签名认证;

步骤3.3.1、当事务通过签名验证后,向数据库发起对应请求并返回用户所需要的数据,即该事务被系统成功执行并通知用户;

步骤3.3.2、若该事务不能通过验证节点的验证,则用户发起的数据共享请求失败,即该事务执行失败,系统返回相应的状态并通知用户;

步骤3.4、在执行过程中,由有效合约对事务实时监督是否出现违背合约操作,若出现违背合约操作,则中止事务的执行并将该状态返回给用户。

上述方法中,所述的步骤1,还包括在制定合约前,有数据共享需求的用户在区块链中进行账户注册,注册后由对应账户接收区块链所分配的一对公钥和私钥。

上述方法中,所述的步骤1,其中参与合约制定的各个用户都是通过各自账户的私钥对电子化合约进行签名,以确保合约的有效性。

上述方法中,所述的步骤2,其中当有效合约通过p2p方式扩散到区块链中时,由区块链中的验证节点对有效合约进行验证,当一半以上验证节点通过验证并达成共识之后有效合约被存储到对应的区块中。

一种基于区块链的智能合约系统,包括

智能合约指定模块,接收由用户合约所转化的电子化合约;

智能合约存入模块,接收智能合约指定模块所传输的有效合约;

智能合约自动执行模块,遍历检查由智能合约存入模块存储于区块中的有效合约所包含的状态机、事务和触发条件且由检查结果选择地执行事务。

上述方案中,所述的智能合约自动执行模块包括智能合约执行状态机、用于存储数据的数据库、用户发起数据共享请求和验证节点;所述的智能合约执行状态机,接收由用户发起数据共享请求生成的事务且遍历有效合约找出事务对应的触发条件;

所述的验证节点,接收智能合约执行状态机所反馈的触发条件满足情况且由满足情况选择地对事务签名验证;

所述的数据库,接收验证节点所签名验证事务的验证状态且由验证状态选择地对发起数据共享请求的用户返回数据。

与现有技术相比,本发明的有益效果:

基于区块链的智能合约系统给我们带来了一个去中心化的、不可篡改的、高可靠性的系统;

不可篡改性,使得用户不用担心合约内容会被更改;

高可靠性,使得用户不用担心系统在条件被满足时合约不会被执行;

去中心化给用户带来全网备份,完备的记录完全可以支持事后审计;

公正的规则与程序,用户不需要去相信签订合约的对方,只需要相信区块链系统能完成剩下的事就可以了。

附图说明

图1为本发明的总体架构示意图;

图2为本发明实施例示意图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

下面结合附图对本发明做进一步说明:

一种基于区块链的智能合约实现方法,该方法包括智能合约制定步骤、智能合约存入区块链网络步骤和智能合约自动执行步骤。

所述智能合约制定步骤包括:

两个及两个以上有数据共享需求的用户,根据自身需要制定一份合约,明确各方的权利和义务,并通过编程语言将其电子化,合约制定各方对其进行数字签名保证其有效性。

所述智能合约存入区块链网络步骤包括:

合约通过p2p的方式在区块链网中扩散,参与合约制定的各个节点都会收到一份并保存在对应的区块中。区块除了包含它原有的信息之外,还应该包含智能合约记录及其相应的时间戳。

所述智能合约自动执行步骤包括:

智能合约定期检查自动机状态,逐条遍历合约内包含的状态机、事务和触发条件。一旦事务满足触发条件,验证节点会首先对事务进行签名验证以确保事务的有效性,当验证节点通过验证之后事务将会被自动执行。

在本发明中,有数据共享需求的用户都是区块链的注册账户,区块链会给对应账户返回一对公钥和私钥。

在本发明中,合约制定者都是通过各自的私钥对电子化后的合约进行签名,以确保合约的有效性。

在本发明中,智能合约通过p2p方式扩散到区块链网络中时,区块链中的验证节点会对它进行验证,当一半以上验证节点通过验证达成共识之后智能合约才会被存储到对应的区块中。

在本发明中,智能合约执行模块包括智能合约执行状态机、存储数据的数据库(即区块)及用户发起的事件请求(即事务)及验证节点四个模块。具体执行步骤如下:

(1)用户a向系统发起数据共享请求,则产生1个相应的事务,并把用户a的操作记录在对应的区块中;

(2)系统检查智能合约状态机的执行状态,遍历合约找到该事务对应的触发条件;

(3)该事务满足触发条件时,系统会通过验证节点对该事务进行签名认证,确保事务的有效性;

(4)当事务通过验证后,系统就会向数据库发起对应请求并返回用户a所需要的数据,即该事务会被系统成功执行并通知用户a;

(5)若该事务不能通过验证节点的验证,则用户a发起的请求失败,即该事务执行失败,系统会返回相应的状态并通知用户a;

(6)事务在执行过程中也将一直受智能合约的监督,一旦执行过程出现违背合约的操作,事务将会中止执行并将该状态返回给用户a。

实施例1

参见图2,a用户和b用户之间有数据共享需求时,a用户和b用户首先共同制定一份智能合约,并通过变成将其电子化,双方在用自己的私钥进行签名后将智能合约存到a和b对应的区块中,并在相应区块记录对应的时间戳。当a用户向b用户共享一份数据时,这是1次“数据共享行为”作为一个事务传入区块链中,当该事务满足智能合约触发条件时,验证节点通过对该事务进行验证,验证通过后,该事务将会自动执行,否则,该事务会由于不满足验证条件不会被执行。例如:a用户和b用户制定的智能合约其中一条为:a用户向b用户共享的数据,b用户只有打开、编辑及指定时间范围内操作的权限。当该合约被存储在双方对应的区块后,b用户对a用户发起数据共享请求,当满足智能合约触发条件后,验证节点对其进行验证,一旦验证通过,b用户能够顺利操作a用户共享给它的数据,但这个操作将一直被智能合约所监督。b用户只能对a用户共享给他的数据进行打开、编辑并且在指定时间内操作。一旦超出对应时间范围,b用户对该数据的所有操作权限将被收回。若b用户对该数据进行合约之外的操作,如:复制,则b用户也将因违反智能合约而失去对该数据的操作权限。b用户对该数据所有的操作行为都将被记录在对应的区块之中。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1