本发明涉及区块链技术领域,尤其涉及一种基于区块链动态智能合约的数据处理方法及终端。
背景技术:
原链(yc)社区不再遵照“codeislaw”的规则,可以在不同的节点使用同样的规则但代码不同的智能合约(如不同的开发语言和不同的开发人员写的智能合约)。只要规则一致,正确的智能合约就会运算出一样的结果。例如,要算出“1+1=”的结果,原链社区可以使用c++语言编写,也可以使用go语言编写,只要使用相同的规则,即可以得到一致的结果。
原链中采用的异构智能合约机制是一种静态的异构智能合约机制,一定程度上解决了区块链中智能合约的安全问题,但是黑客仍就可能攻击系统中存在的多种智能合约,威胁区块链的安全。
技术实现要素:
本发明所要解决的技术问题是:本发明提供了一种基于区块链动态智能合约的数据处理方法及终端,提高了区块链的安全性。
为了解决上述技术问题,本发明提供了一种基于区块链动态智能合约的数据处理方法,包括以下步骤:
s1:从预设多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息发送至一个随机的第二节点中;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
本发明还提供了一种基于区块链动态智能合约的数据处理终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
s1:从预设多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息发送至一个随机的第二节点中;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
本发明的有益效果为:
本发明提供了一种基于区块链动态智能合约的数据处理方法,通过在多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中选择出的第一智能合约,使得区块链中随机的一个第一节点通过第一智能合约对用户输入的信息进行处理,将处理后的输出信息通过私钥进行签名,得到签名信息,随机发送所述输出信息和签名信息至区块链中的另一个节点,当该节点对所述签名信息和输出信息验证通过后,进行记录并保存;分别统计每一种相同输出信息的个数,直至存在ni(i=1,2,…,m),使得
附图说明
图1为根据本发明实施例的一种基于区块链动态智能合约的数据处理方法的主要步骤示意图;
图2为根据本发明实施例的一种基于区块链动态智能合约的数据处理终端的结构示意图;
标号说明:
1、存储器;2、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参照图1,本发明提供了一种基于区块链动态智能合约的数据处理方法,包括以下步骤:
s1:从预设多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;所述第一节点与所述信息相对应,即第一节点为处理该用户输入信息的节点;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息发送至一个随机的第二节点中;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
其中,上述的预设多个智能合约的功能是相同的,即在没有攻击的情况下,输入相同,则不同的智能合约输出相同。
从上述描述可知,本发明提供了一种基于区块链动态智能合约的数据处理方法,通过在多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中选择出的第一智能合约,使得区块链中随机的一个第一节点通过第一智能合约对用户输入的信息进行处理,将处理后的输出信息通过私钥进行签名,得到签名信息,随机发送所述输出信息和签名信息至区块链中的另一个节点,当该节点对所述签名信息和输出信息验证通过后,进行记录并保存;分别统计每一种相同输出信息的个数,直至存在ni(i=1,2,…,m),使得
进一步的,所述s1具体为:
从预设的b个智能合约中选出第一数量c的智能合约,得到
生成一随机数,所述随机数不小于1,且不大于
获取与编号为所述随机数的选择方案,得到目标选择方案;
从所述目标选择方案中随机选出一个智能合约,得到所述第一智能合约;
控制区块链中随机选择的一个第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息。
从上述描述可知,通过上述方法,可随机抽取出一智能合约,并通过随机的一个第一节点对用户的输入信息进行处理,使得区块链对用户输入信息处理方式的规律无迹可寻,能够极大增强区块链系统的安全性。
进一步的,所述s1之前还包括:
在区块链中部署b个互不相同的智能合约。
从上述描述可知,通过上述方法,能使得到节点在对输入数据进行处理时,采用不同的智能合约。
进一步的,所述s3具体为:
通过所述第二节点上存储的公钥对所述签名信息解密后,得到第一解密信息;所述公钥与所述私钥相对应;
判断所述第一解密信息与所述输出信息是否一致,若一致,则所述签名信息和输出信息验证通过;
记录并保存节点上接收的输出信息和签名信息。
从上述描述可知,通过第二节点对第一节点发送的签名信息及输出信息进行有效验证,可进一步提高系统的安全性。
进一步的,所述s2之前还包括:
在区块链中的每一个节点上存储一私钥和一公钥,每一节点上存储的公钥均相同。
从上述描述可知,通过上述方法,能够使得通过第二节点上的公钥对签名进行校验。
请参照图2,本发明提供的一种基于区块链动态智能合约的数据处理终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
s1:从预设多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息发送至一个随机的第二节点中;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
进一步的,所述的一种基于区块链动态智能合约的数据处理终端,所述s1具体为:
从预设的b个智能合约中选出第一数量c的智能合约,得到
生成一随机数,所述随机数不小于1,且不大于
获取与编号为所述随机数的选择方案,得到目标选择方案;
从所述目标选择方案中随机选出一个智能合约,得到所述第一智能合约;
控制区块链中随机选择的一个第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息。
进一步的,所述的一种基于区块链动态智能合约的数据处理终端,所述s1之前还包括:
在区块链中部署b个互不相同的智能合约。
进一步的,所述的一种基于区块链动态智能合约的数据处理终端,所述s3具体为:
通过所述第二节点上存储的公钥对所述签名信息解密后,得到第一解密信息;所述公钥与所述私钥相对应;
判断所述第一解密信息与所述输出信息是否一致,若一致,则所述签名信息和输出信息验证通过;
记录并保存节点上接收的输出信息和签名信息。
进一步的,所述的一种基于区块链动态智能合约的数据处理终端,所述s2之前还包括:
在区块链中的每一个节点上存储一私钥和一公钥,每一节点上存储的公钥均相同。
请参照图1,本发明的实施例一为:
本发明提供了一种基于区块链动态智能合约的数据处理方法,包括以下步骤:
s0:在区块链中部署b个互不相同的智能合约;
s1:从b个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;
其中,所述s1具体为:
从预设的b个智能合约中选出第一数量c的智能合约,得到
生成一随机数,所述随机数不小于1,且不大于
获取与编号为所述随机数的选择方案,得到目标选择方案;
从所述目标选择方案中随机选出一个智能合约,得到所述第一智能合约;
控制区块链中随机选择的一个第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息。
s105:在区块链中的每一个节点上存储一私钥和一公钥,每一节点上存储的公钥均相同;即通过任意一个节点上的公钥均可对其他节点通过私钥进行签名后的信息进行解密;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息通过p2p(点对点)通信方式发送至一个随机的第二节点中;
其中,所述第二节点与第一节点为不相同的两个节点;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
其中,所述s3具体为:
通过所述第二节点上存储的公钥对所述签名信息解密后,得到第一解密信息;所述公钥与所述私钥相对应;
判断所述第一解密信息与所述输出信息是否一致,若一致,则所述签名信息和输出信息验证通过;
记录并保存节点上接收的输出信息和签名信息。
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
其中,步骤s5的目的即是随机筛选出符合上述条件的唯一一个ni(若有多个,则随机选取一个),及ni对应的唯一一个输出信息(若对应的输出信息有多个,则随机选取其中一个)。
请参照图2,本发明的实施例二为:
本发明提供了一种基于区块链动态智能合约的数据处理终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现以下步骤:
s0:在区块链中部署b个互不相同的智能合约;
s1:从b个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中随机选出一个智能合约,得到第一智能合约;控制区块链中第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息;
其中,所述s1具体为:
从预设的b个智能合约中选出第一数量c的智能合约,得到
生成一随机数,所述随机数不小于1,且不大于
获取与编号为所述随机数的选择方案,得到目标选择方案;
从所述目标选择方案中随机选出一个智能合约,得到所述第一智能合约;
控制区块链中随机选择的一个第一节点通过所述第一智能合约对用户输入的信息进行处理,得到输出信息。
s105:在区块链中的每一个节点上存储一私钥和一公钥,每一节点上存储的公钥均相同;即通过任意一个节点上的公钥均可对其他节点通过私钥进行签名后的信息进行解密;
s2:通过所述第一节点的私钥对所述输出信息进行签名,得到签名信息,并将所述输出信息与签名信息发送至一个随机的第二节点中;
其中,所述第二节点与第一节点为不相同的两个节点;
s3:当所述第二节点对签名信息和输出信息验证通过后,记录并保存节点上接收的输出信息和签名信息;
其中,所述s3具体为:
通过所述第二节点上存储的公钥对所述签名信息解密后,得到第一解密信息;所述公钥与所述私钥相对应;
判断所述第一解密信息与所述输出信息是否一致,若一致,则所述签名信息和输出信息验证通过;
记录并保存节点上接收的输出信息和签名信息。
s4:分别统计每一种相同输出信息的个数,第j种输出信息的个数为nj(j=1,2,…,m),所述m表示已记录的输出信息的种类数目;
s5:判断是否存在ni(i=1,2,…,m),使得
本发明的实施例三为:
1、从预设的多个互不相同的智能合约中选取3个智能合约(a,b,c)。
2、执行智能合约sc的节点ui将从3智能合约中随机选择一个智能合约对用户的输入信息进行处理后,得到输出信息
3、收到上述信息的另一个节点对输出信息和签名信息进行验证后,记录并保存
4、反复执行步骤1-step3,形成计数器矩阵:
其中,(scu(input))j(j=1,2,…,m)表示第j种输出信息,nj表示第j种输出信息的个数,
5、共识节点将此共识轮内最后的一个计数矩阵进行统计,若存在ni(i=1,2,…,m),使得
综上所述,本发明提供了一种基于区块链动态智能合约的数据处理方法及终端,通过在多个智能合约中随机选择出预设第一数量的智能合约,并从第一数量的智能合约中选择出的第一智能合约,使得区块链中随机的一个第一节点通过第一智能合约对用户输入的信息进行处理,将处理后的输出信息通过私钥进行签名,得到签名信息,随机发送所述输出信息和签名信息至区块链中的另一个节点,当该节点对所述签名信息和输出信息验证通过后,进行记录并保存;分别统计每一种相同输出信息的个数,直至存在ni(i=1,2,…,m),使得
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。