一种生成区块发布机制的智能合约的制作方法

文档序号:16039945发布日期:2018-11-24 10:23阅读:183来源:国知局

本发明涉及数据认证领域,具体是一种生成区块发布机制的智能合约。

背景技术

随着移动通信技术的发展,特别移动互联网和物联网正向人们的生活领域渗透,出现了各种基于互联网的认证服务的需求。如商品真伪认证、交易信息、收藏品信息、虚拟账号信息、虚拟财产、个人/企业身份信息、征信信息、司法公正信息等。

随着比特币及区块链技术的持续研究和应用推广,去中心化的分布式认证、共识机制和智能合约越来越被广泛关注,但区块链技术中赖以驱动和推广的挖矿机制和工作量证明机制在更广阔的非比特币类应用的联盟链和私有链应用中却难以引入,更难以直接引入的是大量的非比特币类应用的联盟链和私有链应用场景中均难以采用区块链的区块发布机制。

现有技术中,需要搭建一个接入互联网的服务器,然后通过外部节点访问服务器,以查询上述信息。

然而,通过黑客手段攻破系统服务器是难以避免的事情。黑客往往通过改写存储于服务器内的信息,达到非法目的。因此,现有的基于互联网的认证系统需要得到改进。



技术实现要素:

本发明的目的是解决现有技术中存在的问题。

为实现本发明目的而采用的技术方案是这样的,一种生成区块发布机制的智能合约,智能合约的制定方为区块链的m个认证中心。智能合约的参与方为根据智能合约条款选择出的n个认证中心。1≤n≤m。所述认证中心为服务器。m个认证中心权限相同。所述认证中心具有一个公钥和一个私钥。公钥为所述认证中心在区块链中的账户地址,私钥为操作所述认证中心的唯一钥匙。

任意所述认证中心从基础数据库中读取数据。所述基础数据库主要存储基础认证数据和著录事件认证信息。

所述基础认证数据由所述认证中心的认证需求提供。

所述著录事件认证信息为所述著录事件认证信息系统根据所述认证需求对基础数据库的操作记录信息。

所述基础数据库为与区块链进行数据交互的具有数据存储功能的服务器。

m个认证中心制定智能合约,并将制定好的智能合约存储在基础数据库中。

区块链中的智能合约自动执行。

其中,智能合约主要包括以下条款:

条款1:智能合约验证待加入区块链的服务器是否具有智能协议信息。若是,则所述服务器加入区块链,成为认证中心,若否,则拒绝所述服务器加入。

智能合约条款1的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款1,即在外网服务器加入区块链时,验证所述外网服务器是否包含验证协议信息。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款1的有效性。m个认证中心分别将签名后的智能合约条款1传到区块链中保存。

条款2:智能合约以随机方式向任意认证中心发送n个区块发布指令,接收到所述区块发布指令的n个认证中心为区块发布节点,其余m-n个认证中心为非区块发布节点。m为有限正整数。n为单数。n≦m。

智能合约条款2的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款2,即智能合约以随机方式向任意认证中心发送n个区块发布指令,接收到所述区块发布指令的认证中心为n个区块发布节点,其余m-n个认证中心为非区块发布节点。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款2的有效性。m个认证中心分别将签名后的智能合约条款2传到区块链中保存。

条款3:所述区块发布节点在区块链中广播区块数据,m个认证中心接收被广播的区块数据。m个认证中心根据多数原则对所述区块数据进行校验,校验成功后将区块数据添加到区块链中。

智能合约条款3的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款3,即所述区块发布节点在区块链中广播区块数据,m个认证中心接收被广播的区块数据。m个认证中心根据多数原则对所述区块数据进行校验,校验成功后将区块数据添加到区块链中。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款3的有效性。m个认证中心分别将签名后的智能合约条款3传到区块链中保存。

所述智能合约主要包括状态机、条款处理机制和数据保存机制。

所述状态机判断智能合约条款的触发条件是否满足。

当所述触发条款满足时,所述条款处理机制执行所述智能合约条款。

所述数据保存机制保存所述条款处理机制执行所述智能合约条款时产生的数据。

所述区块发布节点的数量选择主要如下所示:

1)区块发布节点的数量n由区块链系统指定。

2)区块发布节点的数量n根据区块链中认证中心数量m的变化可以进行动态调整。

3)m为有限正整数。n为单数。

所述区块发布节点的选择方式如下:

1)第一次生成智能合约由区块链系统根据规则指定第一个区块发布节点,然后按照一定步长选择下一个区块发布节点,直到选出n个区块发布节点。如在选出n个区块发布节点前选择到重复节点,步长自动加一或是减一。

2)从第二次起生成智能合约时,从上一个智能合约签名结果中随机选择一位数据作为第一个区块发布节点的起始位置,再随机选择另一位数据经过运算后作为后续区块发布节点的选择步长,按该步长选择下一个区块发布节点,直到选出n个区块发布节点。如在选出n个区块发布节点前选择到重复节点,步长自动加一或是减一。

每隔周期t,所述状态机判断一次智能合约条款的触发条件是否满足。若所述触发条件不满足,则将触发条件不满足的智能合约条款继续保存在区块链中。当所述触发条件满足,所述条款处理机制依次执行触发条件满足的智能合约条款。

所述条款处理机制在执行触发条件满足的智能合约条款时,所述状态机判定智能合约条款是否执行完毕。

若执行完毕,所述状态机将对应的智能合约状态标记为完成,并从最新的区块中移除该合约。

若未执行完毕,所述状态机将对应的智能合约状态标记为进行中,并将对应的智能合约继续保存在最新的区块中,等待下一轮处理,直到处理完毕。

智能合约的验证步骤主要如下:

1)制定好的智能合约以p2p的方式在区块链中广播。每个认证中心将接收到的智能合约存储在基础数据库中。

2)每隔周期t,认证中心将保存的合约打包成一个合约集合,并计算所述合约集合的哈希值。认证中心将所述哈希值广播在区块链中。

任意认证中心接收所述哈希值,并将所述哈希值和基础数据库中的合约集合进行验证。认证中心在区块链中广播验证通过后的合约集合。

3)在m个认证中心均在区块链中广播验证通过后的合约集合后,将验证通过的合约集合写入区块链中。所述验证方式主要是合约参与者的私钥签名是否与公钥匹配。

本发明的技术效果是毋庸置疑的。本发明生成的智能合约使区块链具有区块发布功能,保证了消息的有效性和不可篡改性。

附图说明

图1为m个认证中心和外部网络示意图。

具体实施方式

下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。

实施例1:

一种生成区块发布机制的智能合约,智能合约的制定方为区块链的m个认证中心。智能合约的参与方为智能合约根据智能合约条款选择出的n个认证中心。1≤n≤m。所述认证中心为服务器。m个认证中心权限相同。所述认证中心具有一个公钥和一个私钥。公钥为所述认证中心在区块链中的账户地址,私钥为操作所述认证中心的唯一钥匙。

参见图1,一种生成区块发布机制的智能合约适用于区块链系统,该区块链系统中具有m个认证中心,每个认证中心都可以作为发布节点,向整个区块链系统发布信息。公共用户区为连接入区块链的外部网络,外部网络可以为电脑或移动终端。

任意所述认证中心从基础数据库中读取数据。所述基础数据库存储外部网络上传的数据。所述基础数据库为与区块链进行数据交互的具有数据存储功能的服务器。

m个认证中心制定智能合约,并将制定好的智能合约存储在基础数据库中。

区块链中的智能合约自动执行。

其中,智能合约主要包括以下条款:

条款1:智能合约验证待加入区块链的服务器是否具有智能协议信息。若是,则所述服务器加入区块链,成为认证中心,若否,则拒绝所述服务器加入。

智能合约条款1的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款1,即在外网服务器加入区块链时,验证所述外网服务器是否包含验证协议信息。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款1的有效性。m个认证中心分别将签名后的智能合约条款1传到区块链中保存。

条款2:智能合约以随机方式向任意认证中心发送n个区块发布指令,接收到所述区块发布指令的n个认证中心为区块发布节点,其余m-n个认证中心为非区块发布节点。

智能合约条款2的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款2,即智能合约以随机方式向任意认证中心发送n个区块发布指令,接收到所述区块发布指令的n个认证中心为区块发布节点,其余m-n个认证中心为非区块发布节点。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款2的有效性。m个认证中心分别将签名后的智能合约条款2传到区块链中保存。

条款3:所述区块发布节点在区块链中广播区块数据,m个认证中心接收被广播的区块数据。m个认证中心根据多数原则对所述区块数据进行校验,校验成功后将区块数据添加到区块链中。

智能合约条款3的制定步骤主要如下所示:

1)m个认证中心共同商定了智能合约条款3,即所述区块发布节点在区块链中广播区块数据,m个认证中心接收被广播的区块数据。m个认证中心根据多数原则对所述区块数据进行校验,校验成功后将区块数据添加到区块链中。

2)m个认证中心分别用各自私钥进行签名。以确保智能合约条款3的有效性。m个认证中心分别将签名后的智能合约条款3传到区块链中保存。

所述智能合约主要包括状态机、条款处理机制和数据保存机制。

所述状态机判断智能合约条款的触发条件是否满足。

当所述触发条款满足时,所述条款处理机制执行所述智能合约条款。

所述数据保存机制保存所述条款处理机制执行所述智能合约条款时产生的数据。

所述区块发布节点的数量选择主要如下所示:

1)区块发布节点的数量n由区块链系统指定。

2)区块发布节点的数量n根据区块链中认证中心数量m的变化可以进行动态调整,通常情况下

3)m为有限正整数。n为单数。

所述区块发布节点的选择方式如下:

1)第一次生成智能合约由区块链系统根据规则指定第一个区块发布节点,然后按照一定步长选择下一个区块发布节点,直到选出n个区块发布节点。如在选出n个区块发布节点前选择到重复节点,步长自动加一或是减一。

2)从第二次起生成智能合约时,从上一个智能合约签名结果中随机选择一位数据作为第一个区块发布节点的起始位置,再随机选择另一位数据经过运算后作为后续区块发布节点的选择步长,按该步长选择下一个区块发布节点,直到选出n个区块发布节点。如在选出n个区块发布节点前选择到重复节点,步长自动加一或是减一。

每隔周期t,所述状态机判断一次智能合约条款的触发条件是否满足。若所述触发条件不满足,则将触发条件不满足的智能合约条款继续保存在区块链中。当所述触发条件满足,所述条款处理机制依次执行触发条件满足的智能合约条款。

所述条款处理机制在执行触发条件满足的智能合约条款时,所述状态机判定智能合约条款是否执行完毕。

若执行完毕,所述状态机将对应的智能合约状态标记为完成,并从最新的区块中移除该合约。

若未执行完毕,所述状态机将对应的智能合约状态标记为进行中,并将对应的智能合约继续保存在最新的区块中,等待下一轮处理,直到处理完毕。

智能合约的验证步骤主要如下:

1)制定好的智能合约以p2p的方式在区块链中广播。每个认证中心将接收到的智能合约存储在基础数据库中。

2)每隔周期t,认证中心将保存的合约打包成一个合约集合,并计算所述合约集合的哈希值。认证中心将所述哈希值广播在区块链中。

任意认证中心接收所述哈希值,并将所述哈希值和基础数据库中的合约集合进行验证。认证中心在区块链中广播验证通过后的合约集合。

3)在m个认证中心均在区块链中广播验证通过后的合约集合后,将验证通过的合约集合写入区块链中。所述验证方式主要是合约参与者的私钥签名是否与公钥匹配。

实施例2:

一种生成区块发布机制的智能合约根据智能合约条款1增加认证中心数量的主要步骤如下:

1)根据智能合约条款1,智能合约选择m个认证中心为智能合约参与方。

2)所述状态机判断智能合约条款1的触发条件是否满足。智能合约条款1的触发条件为外部网络的服务器向区块链发起加入请求。

3)所述条款处理机制执行所述智能合约条款1,主要步骤如下:

3.1)智能合约条款1判断所述外部网络的服务器是否具有验证协议信息。若无,则拒绝外部网络的服务器加入区块链,若有,则转到步骤3.2。

3.2)智能合约条款1开放人工审核权限。人工审核所述外部网络的服务器的安全性和权限,并将审核通过的外部网络服务器加入到区块链中。

4)所述数据保存机制保存所述条款处理机制执行所述智能合约条款时产生的数据,并在区块链中广播。

实施例3:

一种生成区块发布机制的智能合约根据智能合约条款2选择区块发布节点的主要步骤如下:

1)根据智能合约条款2,智能合约选择m个认证中心为智能合约参与方。

2)所述状态机判断智能合约条款2的触发条件是否满足。智能合约条款2的触发条件为区块链以随机方式发送区块发布指令。

3)所述条款处理机制执行所述智能合约条款2,即智能合约条款2以随机方式将区块发布指令发送给其中n个认证中心。接收到所述区块发布指令的n个认证中心为区块发布节点,其余m-n个认证中心为非区块发布节点。

4)所述数据保存机制保存所述条款处理机制执行所述智能合约条款时产生的数据,并在区块链中广播。

实施例4:

一种生成区块发布机制的智能合约根据智能合约条款3广播区块数据的主要步骤如下:

1)根据智能合约条款3,智能合约选择m个认证中心为智能合约参与方。

2)所述状态机判断智能合约条款3的触发条件是否满足。智能合约条款3的触发条件为区块发布中心生成了区块数据。

3)所述条款处理机制执行所述智能合约条款3,即所述区块发布节点在区块链中广播区块数据,m个认证中心接收被广播的区块数据。m个认证中心根据多数原则对所述区块数据进行校验,校验成功后将区块数据添加到区块链中。

4)所述数据保存机制保存所述条款处理机制执行所述智能合约条款时产生的数据,并在区块链中广播。

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