CN111541554A - 一种区块链数据处理方法、装置和电子设备 - Google Patents
一种区块链数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111541554A CN111541554A CN202010668641.XA CN202010668641A CN111541554A CN 111541554 A CN111541554 A CN 111541554A CN 202010668641 A CN202010668641 A CN 202010668641A CN 111541554 A CN111541554 A CN 111541554A
- Authority
- CN
- China
- Prior art keywords
- public key
- node
- intelligent contract
- contract
- signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种区块链数据处理方法、装置和电子设备,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终变化结果得的预言机签名公钥,而具体的事件执行结果的判断过程交由第一节点和第二节点各自的智能合约完成,能够减少预言机与节点的交互次数,降低了预言机的工作量,提高了预言机的执行效率和安全性。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种区块链数据处理方法、装置和电子设备。
背景技术
目前,预言机是处理区块链系统中和第三方相关智能合约的较佳选择,而预言机在处理智能合约时,需要频繁的和区块链节点进行交互,使得交互的信息量很大,执行效率可能变低,同时预言机也可能被贿赂,影响智能合约执行的安全性。
发明内容
为解决上述问题,本发明实施例的目的在于提供一种区块链数据处理方法、装置和电子设备。
第一方面,本发明实施例提供了一种区块链数据处理方法,包括:
预言机将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
第二方面,本发明实施例还提供了一种区块链数据处理装置,包括:
广播模块,用于将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
接收模块,用于检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
发送模块,用于利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
处理模块,用于获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面所述的方法的步骤。
第四方面,本发明实施例还提供了一种电子设备,所述电子设备包括有存储器,处理器以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行上述第一方面所述的方法的步骤。
本发明实施例上述第一方面在至第四方面提供的方案中,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终变化结果得的预言机签名公钥,而具体的事件执行结果的判断过程交由第一节点和第二节点各自的智能合约完成,与相关技术中确定两个节点得到的结果中的正确的结果的过程全部由预言机完成的方式相比,能够减少预言机与节点的交互次数,降低了预言机的工作量,提高了预言机的执行效率和安全性,而且,分别由节点的智能合约对节点自身的结果是否正确进行判断,避免由于预言机被贿赂导致的判断结果不正确的情况出现。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例1所提供的一种区块链数据处理方法的流程图;
图2示出了本发明实施例2所提供的一种区块链数据处理装置的结构示意图;
图3示出了本发明实施例3所提供的一种电子设备的结构示意图。
具体实施方式
目前,预言机是处理区块链系统中和第三方相关智能合约的较佳选择,而预言机在处理智能合约时,需要频繁的和区块链节点进行交互,使得交互的信息量很大,执行效率可能变低,同时预言机也可能被贿赂,影响智能合约执行的安全性。
基于此,本实施例提出一种区块链数据处理方法、装置和电子设备,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终变化结果得的预言机签名公钥,而具体的结果的判断过程交由第一节点和第二节点各自的智能合约完成,能够减少预言机与节点的交互次数,提高了预言机的执行效率和安全性,而且,分别由节点的智能合约对节点自身的结果是否正确进行判断,避免由于预言机被贿赂导致的判断结果不正确的情况出现。
在通过以下各实施例对本申请提出的区块链数据处理方法、装置和电子设备之前,先对本申请各实施例提出的一种区块链数据处理方法、装置和电子设备的应用场景进行描述:
该应用场景中,包括:预言机和能够分别与预言机进行交互的区块链上的节点。
所述预言机和区块链上的节点,可以采用现有技术中任何能够执行区块链技术的计算设备,这里不再一一赘述。
所述预言机,可以对区块链上的节点的操作进行监控。
在以下各实施例中描述的加减乘运算,都是属于椭圆加密算法中规定的加减乘运算,与普通的数值上的加减乘运算并不一致。
通过以下内容,对本申请中区块链中的第一节点和第二节点处理第三方相关智能合约的内容进行说明:
所述第三方相关智能合约,可以是对区块链中的第一节点和第二节点分别在第三方机构执行同一事件时需要处理的智能合约。
在一个实施方式中,所述第三方相关智能合约,可以是第一节点和第二节点分别在第三方机构购买机票时针对是否执行购买延误险这一同一事件时需要处理的智能合约,也可以是第一节点和第二节点分别在第三方机构购买车险时针对是否执行购买不计免赔险这一同一事件时需要处理的智能合约。
其中,第一节点购买了延误险,从而得到了用于表示购买延误险的第一结果;而第二节点未购买延误险,从而得到了用于表示未购买延误险的第二结果。从而针对执行同一事件(购买延误险这件事)得到了结果相反的第一结果和第二结果。
为了确定针对同一事件(购买延误险这件事)第一节点得到的第一结果与第二节点得到的第二结果中哪个结果是正确的,需要在第一节点与第二节点中部署条件相同但结果相反的智能合约。所述智能合约能够对第一节点得到的第一结果与第二节点得到的第二结果中哪个结果是正确的结果进行判断。
所以,在本申请以下各实施例中,所述智能合约,用于对第一节点和第二节点分别执行条件相同但结果相反的同一事件后,第一节点得到的第一结果和第二节点得到的第二结果中正确的结果进行判断。
在本申请以下各实施例中,术语“条件相同”是指针对同一事件来说的。
为了使所述智能合约对第一节点得到的第一结果和第二节点得到的第二结果中正确的结果进行判断,需要在第一节点和第二节点上分别部署条件相同但结果相反的两个智能合约。
所述条件相同但结果相反的两个智能合约,可以是第一智能合约和第二智能合约。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
实施例1
本实施例提出的区块链数据处理方法的执行主体是预言机。
参见图1所示的一种区块链数据处理方法的流程图,本实施例提出的一种区块链数据处理方法,包括:
步骤100、预言机将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥。
在上述步骤100中,预言机利用所述预言机自身的预言机私钥经过椭圆加密算法处理,生成预言机公钥。
所述预言机私钥,是预言机加入到该区块链中时,区块链的主节点向所述预言机分配的。
为了生成随机数公钥,预言机需要先通过预言机上存储的随机数发生器生成随机数,然后利用椭圆加密算法对随机数进行处理,生成随机数公钥。
在生成预言机公钥和随机数公钥后,预言机将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥。
步骤102、当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥。
在上述步骤102中,所述第一合约公钥,是所述第一节点处理所述预言机公钥、所述随机数公钥、第一签名公钥以及所述第一节点得到的第一结果后得到的;所述第二合约公钥,是所述第二节点处理所述预言机公钥、所述随机数公钥、第二签名公钥以及所述第二节点得到的第二结果后得到的。
当确定区块链中的第一节点与第二节点分别在第三方机构执行同一事件,且第一节点得到的第一结果与第二节点得到的第二结果是结果相反的结果时,预言机就可以检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约。
通过该两个智能合约分别对第一节点得到的第一结果和第二节点得到的第二结果中正确的结果进行判断。
为了生成第一合约公钥,所述第一节点可以执行以下步骤(1)至步骤(3):
(1)当与所述区块链内的第二节点执行同一事件,得到第一结果时,所述第一节点通过以下公式1计算得到第一预测值:
第一预测值=R-H(m1,R)*V (1)
其中,R表示随机数公钥,m1表示第一结果,V表示预言机公钥,H()表示哈希计算;
(2)利用第一签名私钥得到所述第一签名公钥,并通过所述第一签名公钥和所述第一预测值计算得到第一合约公钥;
(3)将计算得到的所述第一合约公钥和所述第一签名公钥发送给所述预言机,并接收所述预言机发送的第一智能合约。
在上述步骤(1)中,H(m1,R)表示对m1和R进行哈希运算。
H(m1,R)*V表示m1和R进行哈希运算后的运算结果与V进行乘法运算。
在上述步骤(2)中,第一签名公钥是第一签名私钥通过椭圆加密算法处理后得到的。
所述第一节点通过以下公式2计算得到第一合约公钥:
第一合约公钥=第一签名公钥+第一预测值 (2)
所述第一签名私钥,是用户成为区块链的节点时该区块链的主节点向第一节点分配的。
在上述步骤(3)中,在将计算得到的所述第一合约公钥和所述第一签名公钥发送给所述预言机的同时,所述第一节点在区块链的账户上会存储预设数量的资源信息。
所述第一节点在区块链的账户上会存储预设数量的资源信息的具体过程是现有技术,这里不再赘述。
相应的,为了生成第二合约公钥,所述第二节点可以执行以下步骤(11)至步骤(13):
(11)当与所述区块链内的第一节点执行同一事件,得到第二结果时,所述第二节点通过以下公式3计算得到第二预测值:
第二预测值=R-H(m2,R)*V (3)
其中,R表示随机数公钥,m2表示第二结果,V表示预言机公钥,H()表示哈希计算;
(12)利用第二签名私钥得到所述第二签名公钥,并通过所述第二签名公钥和所述第二预测值计算得到第二合约公钥;
(13)将计算得到的所述第二合约公钥和所述第二签名公钥发送给所述预言机,并接收所述预言机发送的第二智能合约。
在上述步骤(11)中,公式3中运算符的具体含义与上述公式1中的含义类似,这里不再赘述。
在上述步骤(12)中,第二签名公钥是第二签名私钥通过椭圆加密算法处理后得到的。
所述第二节点通过以下公式4计算得到第二合约公钥:
第二合约公钥=第二签名公钥+第二预测值 (4)
所述第二签名私钥,是用户成为区块链的节点时该区块链的主节点向第二节点分配的。
在上述步骤(13)中,在将计算得到的所述第二合约公钥和所述第二签名公钥发送给所述预言机的同时,所述第二节点自身在区块链的账户上会存储预设数量的资源信息。
所述第二节点生成第二合约公钥的过程与所述第一节点生成第一合约公钥的过程类似,这里不再赘述。
步骤104、利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作。
步骤106、获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
在上述步骤106中,通过以下示例,对从互联网中获取到作为外部数据的第一节点与第二节点分别执行的所述同一事件的最终结果的过程进行说明:
这里,继续以第一节点和第二节点分别在第三方机构购买机票时针对是否执行购买延误险这一同一事件为例进行说明,第一节点购买了延误险,得到了用于表示购买延误险的第一结果;而第二节点未购买延误险,得到了用于表示未购买延误险的第二结果。从而针对执行同一事件(购买延误险这件事)得到了结果相反的第一结果和第二结果。为了确定针对同一事件(购买延误险这件事)第一节点得到的第一结果与第二节点得到的第二结果中哪个结果是正确的,预言机会从互联网中获取作为外部数据的航班的航班信息,当航班的航班信息指示航班出现延误时,由于购买延误险可以得到赔偿;预言机会确定购买延误险的结果是正确的结果;也就是说将购买延误险,作为第一节点与第二节点分别执行的购买延误险这件事来说的最终结果,来对第一节点得到的第一结果与第二节点得到的第二结果中哪个结果是正确结果进行判断。
当从互联网中获取到外部数据,并根据该外部数据确定出第一节点与第二节点分别执行的所述同一事件的最终结果时,预言机会继续利用所述预言机私钥、所述随机数、以及所述最终结果生成预言机签名公钥,并将生成的预言机签名公钥分别发送给所述第一节点和所述第二节点,分别执行所述第一智能合约和所述第二智能合约。
分别执行所述第一智能合约和所述第二智能合约,包括:所述第一节点的所述第一智能合约,对所述第一结果是否正确进行判断;所述第二节点的所述第二智能合约,对所述第二结果是否正确进行判断。
在上述步骤106中,利用所述预言机私钥、所述随机数、以及所述事件的最终变化结果生成预言机签名公钥时,可以先通过以下公式5先计算得到预言机签名:
s=k−H(m,R)*v (5)
其中,s表示预言机签名,k表示随机数,m表示所述事件的最终结果,R表示随机数公钥,v表示预言机私钥。
在通过以上公式3得到预言机签名后,通过椭圆加密算法对所述预言机签名进行处理,生成预言机签名公钥。
在一个实施方式中,预言机签名公钥可以通过以下公式6表示:
R-H(m,R)*V (6)
通过以上的内容可以看出,第一节点向预言机发送的是加密后得到的第一合约公钥和第一签名公钥,并未向预言机发送未加密的第一结果;第二节点向预言机发送的是加密后得到的第二合约公钥和第二签名公钥,并未向预言机发送第二结果;预言机向第一节点发送的是第一智能合约,向第二节点发送的是第二智能合约,并在得到所述事件的最终结果时,对所述事件的最终结果进行加密生成预言机签名公钥,然后将加密生成的预言机签名公钥发送给第一节点以及第二节点,并未向第一节点以及第二节点发送未加密的所述事件的最终结果;所以,在预言机与第一节点以及第二节点进行数据交互的过程中,交互的都是加密后的数据,增加了本实施例提出的区块链数据处理方法实施过程的安全性。
具体地,所述第一节点的所述第一智能合约,对所述第一结果是否正确进行判断,包括以下具体步骤(1)至步骤(8):
(1)当接收到所述预言机发送的预言机签名公钥时,所述第一节点执行所述第一智能合约,所述第一智能合约利用第一合约公钥减去所述第一签名公钥,得到所述第一预测值;
(2)当确定所述第一预测值与所述预言机签名公钥相同时,确定所述第一结果正确,并获取第一节点自身在上述区块链的账户上存储的预设数量的资源信息;
(3)向所述预言机发送结果判断正确信息,并根据所述预设数量生成资源信息转移指令和第一智能合约中携带的第二签名公钥生成资源信息转移指令,并将生成的资源信息转移指令发送给所述第二节点;
(4)接收所述第二节点发送的所述预设数量的资源信息,并跳转到步骤(8);
(5)当确定所述第一预测值与所述预言机签名公钥不同时,所述第一节点确定所述第一结果错误;
(6)当接收到第二节点发送的资源信息转移指令时,对所述第二节点发送的资源信息转移指令中的第一签名公钥进行验证;
(7)当所述第二节点发送的资源信息转移指令中的第一签名公钥通过验证时,向所述第二节点发送所述预设数量的资源信息;
(8)结束流程。
在上述步骤(2)中,当确定所述第一预测值与所述预言机签名公钥相同时,说明第一结果与事件的最终变化结果相同,那么第一节点就可以确定第一结果正确。
获取第一节点自身在上述区块链的账户上存储的预设数量的资源信息的具体过程是现有技术,这里不再赘述。
在上述步骤(5)中,当确定所述第一预测值与所述预言机签名公钥不同时,说明第一结果与事件的最终变化结果不相同,那么第一节点就可以确定第一结果错误。
在上述步骤(6)中,为了对所述第二节点发送的资源信息转移指令中的第一签名公钥进行验证,第一节点可以执行以下步骤(61)至步骤(64):
(61)获取第一节点自身存储的第一签名公钥;
(62)对比第一节点自身存储的第一签名公钥和所述第二节点发送的资源信息转移指令中的第一签名公钥,得到对比结果;
(63)当所述对比结果指示第一节点自身存储的第一签名公钥和所述第二节点发送的资源信息转移指令中的第一签名公钥相同时,确定所述第二节点发送的资源信息转移指令中的第一签名公钥通过验证,并跳转至上述步骤(7);
(64)当所述对比结果指示第一节点自身存储的第一签名公钥和所述第二节点发送的资源信息转移指令中的第一签名公钥不同时,确定所述第二节点发送的资源信息转移指令中的第一签名公钥未通过验证,并向第二节点发送资源信息转移失败信息。
所述第二节点的所述第二智能合约,对所述第二结果是否正确进行判断的过程与上述所述第一节点的所述第一智能合约,对所述第一结果是否正确进行判断的过程类似,这里不再赘述。
在分别执行第一智能合约和第二智能合约后,本实施例提出的区块链数据处理方法,还可以继续执行以下步骤(1)至步骤(2),对预测正确的节点进行奖励:
(1)当获取到所述第一节点发送的结果判断正确信息时,向所述第一节点发送奖励数量的资源信息;
(2)当获取到所述第二节点发送的结果判断正确信息时,向所述第二节点发送奖励数量的资源信息。
在上述步骤(1)中,所述奖励数量,由交易双方(第一节点和第二节点)根据交易条件事先约定,预先设置在所述预言机中。
综上所述,本实施例提出的区块链数据处理方法,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终结果得的预言机签名公钥,而具体的事件执行结果的判断过程交由第一节点和第二节点各自的智能合约完成,与相关技术中确定两个节点得到的结果中的正确的结果的过程全部由预言机完成的方式相比,能够减少预言机与节点的交互次数,降低了预言机的工作量,提高了预言机的执行效率和安全性,而且,分别由节点的智能合约对节点自身的结果是否正确进行判断,避免由于预言机被贿赂导致的判断结果不正确的情况出现。
实施例2
本实施例提出一种区块链数据处理装置,用于执行上述实施例1提出的区块链数据处理方法。
参见图2所示的一种区块链数据处理装置的结构示意图,本实施例提出一种区块链数据处理装置,包括:
广播模块200,用于将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
接收模块202,用于当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
发送模块204,用于利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
处理模块206,用于获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
本实施例提出的区块链数据处理装置,还包括:
第一奖励模块,用于当获取到所述第一节点发送的结果判断正确信息时,向所述第一节点发送奖励数量的资源信息;
第二奖励模块,用于当获取到所述第二节点发送的结果判断正确信息时,向所述第二节点发送奖励数量的资源信息。
进一步地,本实施例提出的区块链数据处理装置,还包括:
处理单元,用于当与所述区块链内的第二节点执行同一事件,得到第一结果时,通过以下公式计算得到第一预测值:
第一预测值=R-H(m1,R)*V
其中,R表示随机数公钥,m1表示第一结果,V表示预言机公钥,H()表示哈希计算;
第二处理单元,用于利用第一签名私钥得到所述第一签名公钥,并通过所述第一签名公钥和所述第一预测值计算得到第一合约公钥;
发送单元,用于将计算得到的所述第一合约公钥和所述第一签名公钥发送给所述预言机,并接收所述预言机发送的第一智能合约。
综上所述,本实施例提出的区块链数据处理装置,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终变化结果得的预言机签名公钥,而具体的事件执行结果的判断过程交由第一节点和第二节点各自的智能合约完成,与相关技术中确定两个节点得到的结果中的正确的结果的过程全部由预言机完成的方式相比,能够减少预言机与节点的交互次数,降低了预言机的工作量,提高了预言机的执行效率和安全性,而且,分别由节点的智能合约对节点自身的结果是否正确进行判断,避免由于预言机被贿赂导致的判断结果不正确的情况出现。
实施例3
本实施例提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例1描述的区块链数据处理方法的步骤。具体实现可参见方法实施例1,在此不再赘述。
此外,参见图3所示的一种电子设备的结构示意图,本实施例还提出一种电子设备,上述电子设备包括总线51、处理器52、收发机53、总线接口54、存储器55和用户接口56。上述电子设备包括有存储器55。
本实施例中,上述电子设备还包括:存储在存储器55上并可在处理器52上运行的一个或者一个以上的程序,经配置以由上述处理器执行上述一个或者一个以上程序用于进行以下步骤(1)至步骤(4):
(1)预言机将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
(2)当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
(3)利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
(4)获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
收发机53,用于在处理器52的控制下接收和发送数据。
在图3中,总线架构(用总线51来代表),总线51可以包括任意数量的互联的总线和桥,总线51将包括由通用处理器52代表的一个或多个处理器和存储器55代表的存储器的各种电路链接在一起。总线51还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本实施例不再对其进行进一步描述。总线接口54在总线51和收发机53之间提供接口。收发机53可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发机53从其他设备接收外部数据。收发机53用于将处理器52处理后的数据发送给其他设备。取决于计算系统的性质,还可以提供用户接口56,例如小键盘、显示器、扬声器、麦克风、操纵杆。
处理器52负责管理总线51和通常的处理,如前述上述运行通用操作系统。而存储器55可以被用于存储处理器52在执行操作时所使用的数据。
可选的,处理器52可以是但不限于:中央处理器、单片机、微处理器或者可编程逻辑器件。
可以理解,本发明实施例中的存储器55可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器 (Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器 (Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本实施例描述的系统和方法的存储器55旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器55存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统551和应用程序552。
其中,操作系统551,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序552,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序552中。
综上所述,本实施例提出的计算机可读存储介质和电子设备,在执行与第三方相关的智能合约的过程中,预言机仅对预言机公钥和随机数公钥进行广播,根据第一节点和第二节点分别发送的合约公钥和签名公钥生成该两个节点各自的智能合约,以及向第一节点和第二节点发送由所述最终变化结果得的预言机签名公钥,而具体的事件执行结果的判断过程交由第一节点和第二节点各自的智能合约完成,与相关技术中确定两个节点得到的结果中的正确的结果的过程全部由预言机完成的方式相比,能够减少预言机与节点的交互次数,降低了预言机的工作量,提高了预言机的执行效率和安全性,而且,分别由节点的智能合约对节点自身的结果是否正确进行判断,避免由于预言机被贿赂导致的判断结果不正确的情况出现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种区块链数据处理方法,其特征在于,包括:
预言机将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
2.根据权利要求1所述的方法,其特征在于,还包括:
当获取到所述第一节点发送的结果判断正确信息时,向所述第一节点发送奖励数量的资源信息;
当获取到所述第二节点发送的结果判断正确信息时,向所述第二节点发送奖励数量的资源信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
当与所述区块链内的第二节点执行同一事件,得到第一结果时,所述第一节点通过以下公式计算得到第一预测值:
第一预测值=R-H(m1,R)*V
其中,R表示随机数公钥,m1表示第一结果,V表示预言机公钥,H()表示哈希计算;
利用第一签名私钥得到所述第一签名公钥,并通过所述第一签名公钥和所述第一预测值计算得到第一合约公钥;
将计算得到的所述第一合约公钥和所述第一签名公钥发送给所述预言机,并接收所述预言机发送的第一智能合约。
4.根据权利要求3所述的方法,其特征在于,所述分别执行所述第一智能合约和所述第二智能合约,包括:第一节点的所述第一智能合约,对所述第一结果是否正确进行判断,所述第二节点的所述第二智能合约,对第二结果是否正确进行判断;
所述第一节点的所述第一智能合约,对所述第一结果是否正确进行判断,包括:
当接收到所述预言机发送的预言机签名公钥时,所述第一节点执行所述第一智能合约,所述第一智能合约利用第一合约公钥减去所述第一签名公钥,得到所述第一预测值;
当确定所述第一预测值与所述预言机签名公钥相同时,确定所述第一结果正确,并获取第一节点自身在上述区块链的账户上存储的预设数量的资源信息;
向所述预言机发送结果判断正确信息,并根据所述预设数量生成资源信息转移指令和第一智能合约中携带的第二签名公钥生成资源信息转移指令,并将生成的资源信息转移指令发送给所述第二节点;
接收所述第二节点发送的所述预设数量的资源信息。
5.根据权利要求4所述的方法,其特征在于,所述第一节点的所述第一智能合约,对所述第一结果是否正确进行判断,还包括:
当确定所述第一预测值与所述预言机签名公钥不同时,所述第一节点确定所述第一结果错误;
当接收到第二节点发送的资源信息转移指令时,对所述第二节点发送的资源信息转移指令中的第一签名公钥进行验证;
当所述第二节点发送的资源信息转移指令中的第一签名公钥通过验证时,向所述第二节点发送所述预设数量的资源信息。
6.一种区块链数据处理装置,其特征在于,包括:
广播模块,用于将生成的预言机公钥和随机数公钥在区块链上广播,使得区块链上的节点接收并存储所述预言机公钥和所述随机数公钥;
接收模块,用于当检测到区块链中的第一节点和第二节点需要部署条件相同但结果相反的两个智能合约时,接收所述第一节点发送的第一合约公钥和第一签名公钥,以及所述第二节点发送的第二合约公钥和第二签名公钥;
发送模块,用于利用所述第一合约公钥和所述第二签名公钥组成第一智能合约,利用所述第二合约公钥和所述第一签名公钥组成第二智能合约,将所述第一智能合约发送给所述第一节点,将所述第二智能合约发送给所述第二节点,从而部署所述第一智能合约和所述第二智能合约,执行所述第一智能合约和所述第二智能合约的上链操作;
处理模块,用于获取外部数据,分别执行所述第一智能合约和所述第二智能合约。
7.根据权利要求6所述的装置,其特征在于,还包括:
第一奖励模块,用于当获取到所述第一节点发送的结果判断正确信息时,向所述第一节点发送奖励数量的资源信息;
第二奖励模块,用于当获取到所述第二节点发送的结果判断正确信息时,向所述第二节点发送奖励数量的资源信息。
8.根据权利要求6所述的装置,其特征在于,还包括:
处理单元,用于当与所述区块链内的第二节点执行同一事件,得到第一结果时,通过以下公式计算得到第一预测值:
第一预测值=R-H(m1,R)*V
其中,R表示随机数公钥,m1表示第一结果,V表示预言机公钥,H()表示哈希计算;
第二处理单元,用于利用第一签名私钥得到所述第一签名公钥,并通过所述第一签名公钥和所述第一预测值计算得到第一合约公钥;
发送单元,用于将计算得到的所述第一合约公钥和所述第一签名公钥发送给所述预言机,并接收所述预言机发送的第一智能合约。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1-5任一项所述的方法的步骤。
10.一种电子设备,其特征在于,所述电子设备包括有存储器,处理器以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行权利要求1-5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668641.XA CN111541554B (zh) | 2020-07-13 | 2020-07-13 | 一种区块链数据处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010668641.XA CN111541554B (zh) | 2020-07-13 | 2020-07-13 | 一种区块链数据处理方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541554A true CN111541554A (zh) | 2020-08-14 |
CN111541554B CN111541554B (zh) | 2020-11-03 |
Family
ID=71976523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010668641.XA Active CN111541554B (zh) | 2020-07-13 | 2020-07-13 | 一种区块链数据处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541554B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、系统、节点设备与存储介质 |
CN112100281A (zh) * | 2020-11-17 | 2020-12-18 | 北京拓课网络科技有限公司 | 一种房间场景再现方法、装置和电子设备 |
CN112507360A (zh) * | 2020-12-10 | 2021-03-16 | 浙商银行股份有限公司 | 基于门限签名和预言机的区块链数据上链方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190114706A1 (en) * | 2017-10-17 | 2019-04-18 | SALT Lending Holdings, Inc. | Blockchain oracle for managing loans collateralized by digital assets |
CN111130800A (zh) * | 2019-12-25 | 2020-05-08 | 上海沄界信息科技有限公司 | 一种基于tee的可信预言机实现方法及装置 |
CN111209113A (zh) * | 2019-12-31 | 2020-05-29 | 卓尔智联(武汉)研究院有限公司 | 基于智能合约的资源分配方法、装置、设备和存储介质 |
CN111401903A (zh) * | 2020-06-03 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 区块链消息处理方法、装置、计算机以及可读存储介质 |
-
2020
- 2020-07-13 CN CN202010668641.XA patent/CN111541554B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190114706A1 (en) * | 2017-10-17 | 2019-04-18 | SALT Lending Holdings, Inc. | Blockchain oracle for managing loans collateralized by digital assets |
CN111130800A (zh) * | 2019-12-25 | 2020-05-08 | 上海沄界信息科技有限公司 | 一种基于tee的可信预言机实现方法及装置 |
CN111209113A (zh) * | 2019-12-31 | 2020-05-29 | 卓尔智联(武汉)研究院有限公司 | 基于智能合约的资源分配方法、装置、设备和存储介质 |
CN111401903A (zh) * | 2020-06-03 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 区块链消息处理方法、装置、计算机以及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、系统、节点设备与存储介质 |
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
CN112100281A (zh) * | 2020-11-17 | 2020-12-18 | 北京拓课网络科技有限公司 | 一种房间场景再现方法、装置和电子设备 |
CN112507360A (zh) * | 2020-12-10 | 2021-03-16 | 浙商银行股份有限公司 | 基于门限签名和预言机的区块链数据上链方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111541554B (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111541554B (zh) | 一种区块链数据处理方法、装置和电子设备 | |
CN110222533B (zh) | 分布式数据安全应用方法、系统及电子设备 | |
CN111666576A (zh) | 数据处理模型生成方法和装置、数据处理方法和装置 | |
CN110837653B (zh) | 标签预测方法、装置以及计算机可读存储介质 | |
US20120036550A1 (en) | System and Method to Measure and Track Trust | |
Chakraborty et al. | Hybrid framework for the estimation of rare failure event probability | |
CN111880826A (zh) | 云业务应用升级方法、装置、电子设备和存储介质 | |
JP6556659B2 (ja) | ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム | |
CN111612167A (zh) | 机器学习模型的联合训练方法、装置、设备及存储介质 | |
CN113438134A (zh) | 请求报文处理方法、装置、服务器及介质 | |
US8881112B2 (en) | Quality measure tool for a composite application | |
CN111934937B (zh) | 基于重要性迭代的相依网络节点重要度评估方法和装置 | |
CN113052687A (zh) | 一种交易路由分发方法和相关装置 | |
CN110516075B (zh) | 基于机器学习的预警报告生成方法、装置和计算机设备 | |
Calinescu et al. | Efficient parametric model checking using domain-specific modelling patterns | |
US7856412B2 (en) | Reliability evaluation program and reliability evaluation device | |
CN115378620A (zh) | 智能合约管理方法、装置、计算机设备和存储介质 | |
US20220277300A1 (en) | Method and apparatus for executing smart contract | |
CN116615764A (zh) | 用于验证所实现的神经网络的方法 | |
CN113313530A (zh) | 业务信息的推送方法、设备、存储介质及产品 | |
CN110351090B (zh) | 群签名数字证书吊销方法及装置、存储介质、电子设备 | |
CN113628052A (zh) | 基于预言机的区块链资产与合约处理方法、系统及装置 | |
CN112114972B (zh) | 数据倾斜的预测方法及装置 | |
US20240311143A1 (en) | Method for checking a processing of payload data | |
US20160088119A1 (en) | Relay device and relay method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |