基于区块链的智能合约验证方法、参与节点及介质技术

技术编号:23345285 阅读:24 留言:0更新日期:2020-02-15 04:31
本发明专利技术实施例提供一种基于区块链的智能合约验证方法、参与节点及介质,该方法包括:第一参与节点通过接收第二参与节点广播的合约内容,并对合约内容中采用同态加密算法加密后的数据进行解密,并基于预先得到的待验证合约对解密得到的关键数据以及合约的其他内容进行验证,若验证通过,则对合约内容进行签名,并将签名后的合约广播到区块链中,以使区块链中的其他节点对该合约进行监督。由于本发明专利技术实施例中采用了同态加密公钥对合约中的关键数据进行了加密,只有拥有相应同态解密私钥的节点才能解密,因此保证了合约中关键数据的保密性。

Verification method, participating nodes and media of smart contract based on blockchain

【技术实现步骤摘要】
基于区块链的智能合约验证方法、参与节点及介质
本专利技术实施例涉及区块链
,尤其涉及一种基于区块链的智能合约验证方法、参与节点及介质。
技术介绍
智能合约是区块链技术的重要组成部分,目前智能合约的验证和执行都依赖区块链中其他方节点的监督和自动执行,但是对于合约方来说,智能合约中的一些敏感信息又是不希望第三方知道的,这样就形成了一个矛盾,因此如何解决这个矛盾是当前急需解决的问题。
技术实现思路
本专利技术实施例提供一种基于区块链的智能合约验证方法、参与节点及介质,用以实现对智能合约的验证的同时,提高智能合约内容的保密性。本专利技术实施例第一方面提供一种基于区块链的智能合约验证方法,该方法包括:第一参与节点接收第二参与节点广播的第一签名消息,所述第一签名消息中包括所述智能合约的合约内容,所述合约内容中包括第一加密数据,所述第一加密数据通过采用所述第一参与节点的同态加密公钥对所述合约内容中的关键数据进行同态加密得到;所述第一参与节点基于自身的同态解密私钥对所述第一加密数据进行解密,并基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证;若验证通过,所述第一参与节点采用自身的私钥对所述第一签名消息进行签名处理,并将签名得到的第二签名消息广播到所述区块链中,以使所述区块链中的其他节点基于所述第二签名消息对所述智能合约进行监督。可选的,所述第一参与节点接收第二参与节点广播的第一签名消息之前,所述方法还包括:所述第一参与节点将自身的同态加密公钥通过区块链广播的方式发送给所述第二参与节点,以及接收所述第二参与节点通过区块链广播的方式发送的所述第二参与节点的同态加密公钥。可选的,所述第一签名消息中还包括第二加密数据,所述第二加密数据通过采用所述第二参与节点的同态加密公钥对所述关键数据进行同态加密得到。可选的,所述基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证之后,所述方法还包括:采用所述第二参与节点的同态加密公钥,对从所述第一加密数据中解密得到的关键数据进行同态加密,并将加密得到的第三加密数据与所述第二加密数据进行比较,并在所述第三加密数据与所述第二加密数据一致,且解密得到的所述关键数据以及所述智能合约的其他内容与所述待验证合约中的相应内容一致时,判断验证通过。可选的,所述第一参与节点接收第二参与节点广播的第一签名消息之前,所述方法还包括:所述第一参与节点接收所述第二参与节点通过区块链链下的方式发送的第三签名消息,所述第三签名消息为采用所述第二参与节点的私钥对所述待验证合约进行签名得到的;所述第一参与节点对所述待验证合约的条款进行验证,若验证通过,则采用自身的私钥对所述第三签名消息进行签名,并将签名得到的第四签名消息广播到所述区块链中,以使所述第二参与节点在接收到所述第四签名消息后,在所述区块链中广播所述第一签名消息。本专利技术实施例第二方面提供一种参与节点,所述参与节点与第二参与节点为智能合约的签署双方,所述参与节点包括:处理器和存储器,所述存储器中存储有指令,当所述处理器执行所述指令时执行如下操作:接收第二参与节点广播的第一签名消息,所述第一签名消息中包括所述智能合约的合约内容,所述合约内容中包括第一加密数据,所述第一加密数据通过采用所述参与节点的同态加密公钥对所述合约内容中的关键数据进行同态加密得到;基于所述参与节点的同态解密私钥对所述第一加密数据进行解密,并基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证;若验证通过,采用所述参与节点的私钥对所述第一签名消息进行签名处理,并将签名得到的第二签名消息广播到所述区块链中,以使所述区块链中的其他节点基于所述第二签名消息对所述智能合约进行监督。可选的,所述处理器在接收第二参与节点广播的第一签名消息之前,还用于:将所述参与节点的同态加密公钥通过区块链广播的方式发送给所述第二参与节点,以及接收所述第二参与节点通过区块链广播的方式发送的所述第二参与节点的同态加密公钥。可选的,所述第一签名消息中还包括第二加密数据,所述第二加密数据通过采用所述第二参与节点的同态加密公钥对所述关键数据进行同态加密得到。可选的,所述处理器还用于:采用所述第二参与节点的同态加密公钥,对从所述第一加密数据中解密得到的关键数据进行同态加密,并将加密得到的第三加密数据与所述第二加密数据进行比较,并在所述第三加密数据与所述第二加密数据一致,且解密得到的所述关键数据以及所述智能合约的其他内容与所述待验证合约中的相应内容一致时,判断验证通过。本专利技术实施例第三方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。在本专利技术实施例中,第一参与节点通过接收第二参与节点广播的合约内容,并对合约内容中采用同态加密算法加密后的数据进行解密,并基于预先得到的待验证合约对解密得到的关键数据以及合约的其他内容进行验证,若验证通过,则对合约内容进行签名,并将签名后的合约广播到区块链中,以使区块链中的其他节点对该合约进行监督。由于本专利技术实施例中采用了同态加密公钥对合约中的关键数据(比如涉及货币金额的数据等)进行了加密,只有拥有相应同态解密私钥的节点才能解密,因此,保证了合约中关键数据的保密性。同时,区块链仍旧能够根据合约中未加密的内容,以及在同态加密的关键数据的基础上实现对合约的监督和执行。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种应用场景的示意图;图2是本专利技术实施例提供的一种基于区块链的智能合约验证方法的流程图;图3是本专利技术实施例提供的另一种基于区块链的智能合约验证方法的流程图;图4是本专利技术实施例提供的一种参与节点的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。本专利技术实施例提供的基于区块链的智能合约验证方法,旨在解决现有技术中存在的上述问题,该方法可以适用于图1所示的通信系统。如图1所示,该本文档来自技高网...

【技术保护点】
1.一种基于区块链的智能合约验证方法,其特征在于,包括:/n第一参与节点接收第二参与节点广播的第一签名消息,所述第一签名消息中包括所述智能合约的合约内容,所述合约内容中包括第一加密数据,所述第一加密数据通过采用所述第一参与节点的同态加密公钥对所述合约内容中的关键数据进行同态加密得到;/n所述第一参与节点基于自身的同态解密私钥对所述第一加密数据进行解密,并基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证;/n若验证通过,所述第一参与节点采用自身的私钥对所述第一签名消息进行签名处理,并将签名得到的第二签名消息广播到所述区块链中,以使所述区块链中的其他节点基于所述第二签名消息对所述智能合约进行监督。/n

【技术特征摘要】
1.一种基于区块链的智能合约验证方法,其特征在于,包括:
第一参与节点接收第二参与节点广播的第一签名消息,所述第一签名消息中包括所述智能合约的合约内容,所述合约内容中包括第一加密数据,所述第一加密数据通过采用所述第一参与节点的同态加密公钥对所述合约内容中的关键数据进行同态加密得到;
所述第一参与节点基于自身的同态解密私钥对所述第一加密数据进行解密,并基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证;
若验证通过,所述第一参与节点采用自身的私钥对所述第一签名消息进行签名处理,并将签名得到的第二签名消息广播到所述区块链中,以使所述区块链中的其他节点基于所述第二签名消息对所述智能合约进行监督。


2.根据权利要求1所述的方法,其特征在于,所述第一参与节点接收第二参与节点广播的第一签名消息之前,所述方法还包括:
所述第一参与节点将自身的同态加密公钥通过区块链广播的方式发送给所述第二参与节点,以及
接收所述第二参与节点通过区块链广播的方式发送的所述第二参与节点的同态加密公钥。


3.根据权利要求1所述的方法,其特征在于,所述第一签名消息中还包括第二加密数据,所述第二加密数据通过采用所述第二参与节点的同态加密公钥对所述关键数据进行同态加密得到。


4.根据权利要求3所述的方法,其特征在于,所述基于预先在区块链链下得到的待验证合约对解密得到的关键数据以及所述智能合约的其他内容进行验证之后,所述方法还包括:
采用所述第二参与节点的同态加密公钥,对从所述第一加密数据中解密得到的关键数据进行同态加密,并将加密得到的第三加密数据与所述第二加密数据进行比较,并在所述第三加密数据与所述第二加密数据一致,且解密得到的所述关键数据以及所述智能合约的其他内容与所述待验证合约中的相应内容一致时,判断验证通过。


5.根据权利要求1所述的方法,其特征在于,所述第一参与节点接收第二参与节点广播的第一签名消息之前,所述方法还包括:
所述第一参与节点接收所述第二参与节点通过区块链链下的方式发送的第三签名消息,所述第三签名消息为采用所述第二参与节点的私钥对所述待验证合约进行签名得到的;
所述第一参与节点对所述待验证合约的...

【专利技术属性】
技术研发人员:路成业王凌
申请(专利权)人:全链通有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1