CN114374554B - 区块链隐私保护方法、电子设备及计算机可读存储介质 - Google Patents

区块链隐私保护方法、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN114374554B
CN114374554B CN202111661728.5A CN202111661728A CN114374554B CN 114374554 B CN114374554 B CN 114374554B CN 202111661728 A CN202111661728 A CN 202111661728A CN 114374554 B CN114374554 B CN 114374554B
Authority
CN
China
Prior art keywords
consensus
node
contract
proof
blockchain
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.)
Active
Application number
CN202111661728.5A
Other languages
English (en)
Other versions
CN114374554A (zh
Inventor
匡立中
谢迪凡
谢逸俊
李伟
张帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202111661728.5A priority Critical patent/CN114374554B/zh
Publication of CN114374554A publication Critical patent/CN114374554A/zh
Application granted granted Critical
Publication of CN114374554B publication Critical patent/CN114374554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请适用于计算机应用技术领域,提供了一种区块链隐私保护方法、电子设备及计算机可读存储介质,该方法包括:根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。通过本申请,可以保护区块链中参与计算的节点之间的数据与计算过程的隐私安全。

Description

区块链隐私保护方法、电子设备及计算机可读存储介质
技术领域
本申请属于计算机应用技术领域,尤其涉及一种区块链隐私保护方法、电子设备及计算机可读存储介质。
背景技术
联盟区块链基于拜占庭共识算法理论设计,参与共识的节点在执行智能合约时,会将数据输入、计算过程与输出全量同步到各个共识节点;在现有的共识算法和智能合约虚拟机架构下,将导致参与业务计算的节点之间的数据可能存在隐私泄露的缺陷。
发明内容
本申请实施例提供了一种区块链隐私保护方法、电子设备及计算机可读存储介质,可以保护区块链中参与计算的节点之间上链的数据与计算过程的隐私安全。
第一方面,本申请提供了一种区块链隐私保护方法,该方法可以包括:
根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;
获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;
其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。
在第一方面的一种可能的实现方式中,所述非共识合约包括零知识证明协议,所述零知识证明协议用于在执行所述非共识合约时,生成所述证明。
在第一方面的一种可能的实现方式中,所述在本地执行所述非共识合约,生成结果和证明,包括:
通过非共识合约虚拟机编译所述非共识合约,得到算数电路和约束;
执行所述算数电路和所述约束,得到所述证明和所述结果。
在第一方面的一种可能的实现方式中,在所述获取基于所述结果和所述证明生成共识交易提案之后,所述方法还包括:
向所述区块链中的主节点发送所述共识交易提案,所述共识交易提案用于指示所述主节点广播所述共识交易提案。
在第一方面的一种可能的实现方式中,在对所述共识交易提案进行广播之前,所述方法还包括:
向所述客户端发送所述结果和所述证明;所述结果和所述证明用于指示所述客户端将所述结果和所述证明结合输入参数生成所述共识交易提案;
接收所述客户端发送的所述共识交易提案。
在第一方面的一种可能的实现方式中,所述方法还包括:
若所述区块链中的节点对所述证明验证通过,且执行所述共识算法通过,则基于所述结果完成所述智能合约的执行后,修改状态数据库。
在第一方面的一种可能的实现方式中,所述方法还包括:
若所述区块链中的节点对所述证明验证失败,且执行所述共识算法通过,则停止执行所述智能合约。
在第一方面的一种可能的实现方式中,所述方法还包括:
若所述区块链中的节点对所述证明验证的验证结果不一致,则在执行所述共识算法过程中将不一致的所述验证结果中的异常验证结果对应的节点剔除。
第二方面,本申请实施例提供了一种区块链隐私保护装置,该装置可以包括:
本地执行单元,用于根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;
执行共识单元,用于获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。
第三方面,本申请提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见第一方面中的相关描述,在此不再赘述。
本申请与现有技术相比存在的有益效果是:通过本申请,区块链中参与计算的节点根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法;本申请节点在本地执行非共识合约,以及将生成的结果和证明在区块链的节点执行智能合约的共识阶段进行验证,可以保证参与计算的节点之间参与计算的数据与计算过程的隐私安全性,同时通过对结果和证明的验证还可以保证节点在本地执行非共识合约的可靠性;具有较强的易用性与实用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的系统架构应用场景的示意图;
图2是本申请实施例提供的区块链隐私保护方法的流程示意图;
图3是本申请实施例提供的区块链隐私保护的架构示意图;
图4是本申请另一实施例提供的区块链隐私保护的架构示意图;
图5是本申请实施例提供的区块链隐私保护装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
区块链作为一种公开账本,通过建立的共识机制解决了各方的信任问题,但同时用户所有上链交易信息都会同步共识到区块链中的各个共识节点,如果交易信息等被恶意挖掘或利用,将给用户隐私带来严重威胁。
示例性的,针对区块链隐私保护方式可以包括针对交易进行签名共识和哈希共识,或者链上同态加密计算等方式。
例如,针对区块链平台内置的转账或存证交易进行隐私转账设计,通过客户端的调用发起隐私交易时指定隐私交易的参与节点,隐私交易的参与节点本地执行隐私交易,并在这些参与节点内部完成签名共识后,将隐私交易的哈希在链内广播,隐私交易在所有共识节点间完成哈希共识;该方式仅限于非复杂的智能合约交易,不具备业务需求的普遍性。
再例如,区块链平台提供链上同态加密的功能,在内置同态加密算法的同时对智能合约开放同态加密计算方法,隐私数据在参与节点上链前经过加密,在链上经过同态处理后进行同步。该方式主要在于目前工业界的同态加密算法工程实现上性能不高,且全同态加密方案速度几乎不可用,导致该方案在实际业务场景限制较多。
本申请实施例提供了一种区块链隐私保护方法,在区块链共识节点的智能合约的基础上增加一种非共识合约,该非共识合约只在业务参与方节点的本地执行。同时,该非共识合约部署有零知识证明zk-SNARK(zero-knowledge Succinct Non-InteractiveArguments of Knowledge,零知识、简洁、非交互式的知识论证,简称为零知识证明)协议,可以保证业务参与方节点本地执行非共识合约的结果可靠性。在区块链中的共识节点执行智能合约时,对执行非共识合约生成的结果和证明进行验证处理,保证了本地计算的隐私性与安全性。
下面通过实施例介绍本申请中区块链隐私保护的计算过程。本申请中实施例中的方法步骤的执行主体可以为电子设备,该电子设备可以为桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备;应理解,该电子设备可以是区块链中参与业务计算的节点,该节点部署有非共识合约。
请参见图1,图1是本申请实施例提供的系统架构应用场景的示意图。如图1所示,该区块链系统架构可以包括多个共识节点;例如节点A、节点B、节点C及节点D。
示例性的,若节点A和节点B之间存在待处理的业务逻辑,节点C和节点D不参与;节点A主要执行业务逻辑的计算,则在节点A基于该业务逻辑部署有相应的非共识合约。节点B可以通过广播发出处理业务逻辑需要的参数;基于区块链的软件开发工具包(SoftwareDevelopment Kit,SDK)的调用,节点A在接收到该参数后,在本地执行非共识合约,得到结果和证明;节点A作为执行主体,可以将结果和证明通过区块链的SDK打包成新的共识交易提案,并将该共识交易提案发送至区块链中的一个或多个节点,由该一个或多个节点中的主节点对该共识交易提案进行广播,进而通过区块链中的共识节点执行智能合约,每个共识节点对该共识交易提案中的证明进行验证,区块链的各个节点执行链上共识的过程。由于区块链中的其他节点(如节点B、节点C以及节点D)均无法知道节点A的计算过程以及节点A本地参与计算的数据等,节点B也仅知道节点A可以执行业务逻辑的计算(提前基于业务类型已协商确定),从而可以保证节点A本地计算的隐私性和安全性。
示例性的,节点B在广播处理业务逻辑需要的参数后,节点C和节点D虽然接收到该参数,由于并没有参与该业务逻辑,将不会对该参数进行处理。区块链的SDK中增加了可以支持非共识合约对应的交易提案(例如节点A与节点B之间的交易提案),区块链中参与业务逻辑计算的节点内置了非共识合约和零知识证明的源码库,以及非共识合约的虚拟机。
需要说明的是,图1仅示例性说明,并不对参与业务逻辑处理的节点的数量进行限定;参与业务逻辑处理的节点不仅限于一个节点,根据业务类型的需要,还可以包括多个在本地执行非共识合约的节点,不同的节点之间的非共识合约也不同;可以适用于联盟区块链中对规模较大或较复杂的业务的处理;在保证区块链隐私数据的安全性的同时,还保证了区块链的处理性能不会因为业务的复杂而下降,从而可以支撑较大业务数据量的处理,支持业务需求的普遍性。
基于上述整体实现过程,本申请实施例提供了一种区块链隐私保护方法。下面通过本申请实施例介绍该方法实现的具体过程。
请参见图2,图2是本申请一实施例提供的区块链隐私保护方法的流程示意图。本方法可以为参与业务逻辑计算的一方或多方节点,该节点可以是电子设备,如图2所示,该方法包括以下步骤:
S201,根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明。
在一些实施例中,参与业务逻辑计算的节点部署有非共识合约,非共识合约为节点只在本地执行且不参与区块链共识的合约。非共识合约的业务逻辑部分可以由区块链应用开发者根据需要进行开发得到。
示例性的,在实际应用过程中,区块链中的节点为区块链应用开发者提供开发接口,节点基于该接口接收区块链应用开发者根据业务需求所开发的业务逻辑。然后该节点通过虚拟机的编译器将该业务逻辑的代码按照零知识证明逻辑编译,得到能够被区块链的共识算法所验证的算数电路,同时将非共识合约中的业务逻辑编译成机器可执行代码,节点在本地执行编译后的可执行代码和算数电路,通过计算得到结果和证明。
示例性的,区块链的SDK支持非共识合约对应的交易提案,当客户端发起调用请求,通过调用区块链的SDK,调用到节点的非共识合约;节点根据调用请求中的参数以及调用请求中对应的调用方法,在本地执行非共识合约,进行本地计算,生成结果R和证明,该证明可以是零知识证明P,节点将该结果R和零知识证明P返回给区块链的SDK。
需要说明的是,该区块链的SDK可以是整个区块链系统的SDK,若参与业务逻辑处理的多个节点均部署有非共识合约,客户端发起的调用请求,可以通过区块链的SDK调用到与调用请求对应的节点的非共识合约,并由该被调用到的节点在本地执行非共识合约。区块链的SDK可以内置在整个区块链系统上,也可以是部署在区块链的主节点上或者部署有非共识合约的节点上。
其中,本申请实施例中,以区块链的SDK内置在参与业务逻辑本地计算的节点上为例,以该节点为执行主体进行描述;客户端也可以是在该节点运行的应用程序,或者在某个节点或实体终端运行的应用程序(可以连接到参与业务逻辑本地计算的节点)。在本申请中不对SDK所对应的载体进行限定,可以是某个节点上的,也可以是整个区块链系统上的,该SDK可以实现支持非共识合约的交易提案的功能,该非共识合约的交易提案可以是上述客户端发起的调用请求。
示例性的,该调用请求还可以是区块链中某一个参与业务逻辑计算的节点对应的客户端发起的,例如节点B通过广播发出用于业务逻辑计算的参数,节点A在接收到该参数,通过调用SDK,调用到非共识合约,节点A在本地执行该非共识合约。
示例性的,所生成的证明用于验证该结果对应的计算过程的可信性,由于是双方或多方参与的计算,通过在后续共识过程中的验证可以保证节点在本地执行非共识合约以及不参与共识的情况下,也能达到共识的可信度。
示例性的,该调用请求为请求节点执行非共识合约的请求,该调用请求中可以包括非共识合约中需要被调用的方法以及方法调用的参数信息等。
在一些实施例中,所述非共识合约包括零知识证明协议,所述零知识证明协议用于在执行所述非共识合约时,生成所述证明。
示例性的,由于参与业务逻辑计算的节点在内部内置零知识证明协议的源码库,节点在本地执行非共识合约时,通过执行零知识证明的算数电路,生成所述证明,该证明用于保证对非共识合约中的业务逻辑代码执行的可信性。
在一些实施例中,所述在本地执行所述非共识合约,生成结果和证明,包括:
通过非共识合约虚拟机编译所述非共识合约,得到算数电路和约束;执行所述算数电路和所述约束,得到所述证明和所述结果。
示例性的,通过非共识合约虚拟机中改进后的编译器,参与业务逻辑本地计算的节点可以将非共识合约转化为算数电路和约束,将非共识合约中的业务逻辑的代码按照零知识证明的逻辑编译成能够被区块链的共识算法所验证的电路;从而可以实现节点在本地执行非共识合约且不参与共识的情况下,通过验证达到共识的可信度。
S202,获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播。
其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。
在一些实施例中,节点在本地执行完非共识合约生成的结果和证明,可以反馈给区块链的SDK或者参与业务逻辑计算的节点的SDK,通过该SDK将该结果和证明进行打包,并结合其他输入信息,生成一笔共识交易提案。
示例性的,节点在本地执行完以后,由于还没有经过区块链的共识,所以基于调用方的SDK将该结果和证明作为区块链的共识交易提案的一部分,结合其他输入信息,打包生成共识交易提案,并将该共识交易提案发送给区块链的共识节点。
示例性的,该共识节点可以是执行本地计算的节点,或者区块链中任一个或多个节点,若接收到该共识交易提案的共识节点为非主节点,则该共识节点将该共识交易提案向主节点发送,由主节点对该共识交易提案进行广播。
示例性的,若执行本地计算的节点为主节点,则该节点接收到共识交易提案后,对该共识交易提案进行广播,并基于该共识交易提案执行共识算法。
其中,在区块链的共识节点在执行共识算法过程中,通过调用智能合约中的验证方法,对共识交易提案中的证明进行验证。
示例性的,在执行共识算法过程中,区块链中的每个共识节点均参与执行,包括之前执行本地计算的节点。在区块链中,每个共识节点在接收到共识交易提案后,对该共识交易提案进行解析,得出本地计算的结果和证明输入至共识节点的智能合约的解析结果,共识节点在执行智能合约过程中,内部针对结果和证明进行验证,并基于验证结果执行后续的共识算法。
示例性的,在区块链共识过程中,通过调用智能合约中的验证方法,验证结果和证明的关系;验证通过之后,继续执行智能合约中的下一步逻辑操作。若验证通过后,如果已经完成业务逻辑的执行,智能合于中无继续执行的逻辑,则返回验证通过,并结束执行;若智能合约中还存在其他业务逻辑需要执行,则在验证通过后,继续执行智能合约中的逻辑。具体的执行方式,可以根据业务类型确定,此处对区块链共识过程不做具体限定。
需要说明的是,在执行智能合约及共识算法的过程中,每个共识节点均为执行主体,包括进行本地计算的节点。
示例性的,如图3所示,若节点A和节点B之间存在待处理的业务逻辑,节点C和节点D不参与;节点A主要执行业务逻辑的计算,则在节点A基于该业务逻辑部署有相应的非共识合约。节点B可以通过广播发出处理业务逻辑需要的参数(如步骤①);基于区块链的软件开发工具包(Software Development Kit,SDK)的调用,节点A在接收到该参数后,在本地执行非共识合约,得到结果和证明(如步骤②);节点A作为执行主体,可以将结果和证明通过区块链的SDK打包成新的共识交易提案,并将该共识交易提案发送至区块链中的一个或多个节点(如步骤③),由该一个或多个节点中的主节点对该共识交易提案进行广播,进而通过区块链中的共识节点执行智能合约,每个共识节点对该共识交易提案中的证明进行验证,区块链的各个节点执行链上共识的过程。
示例性的,如图4所示,当待处理的业务逻辑需要多个节点参与执行时,若节点A和节点B之间存在待处理的业务逻辑,需要节点A和节点B参与执行,则在节点A和节点B均部署有非共识合约,由于节点A和节点B的计算过程不同,节点A部署的非共识合约与节点B部署的非共识合约也不同。步骤①和②与图3中实施例相同,节点A基于区块链的SDK的调用在本地执行非共识合约后,将生成的结果和证明反馈到区块链的SDK,通过该SDK将结果和证明打包生成一笔交易提案;该交易提案可以直接发送给节点B(如实线步骤③)(也可以通过广播发出(如虚线步骤③和实线步骤③),但是区块链中的除了节点B以外的其他节点接收到后不会进行处理),由节点B基于该交易提案在本地执行非共识合约(如步骤④,执行过程中还可以包括对节点A生成的结果和证明的验证过程),生成结果和证明,并将该结果和证明反馈到区块链的SDK,通过该SDK将节点B生成的结果和证明打包生成共识交易提案,并将该共识交易提案提交到区块链的主节点(该主节点可以是节点B),由主节点广播该共识交易提案(如步骤⑤),区块链中的各个共识节点基于该共识交易提案执行智能合约及共识算法,验证节点B生成的结果和证明关系。
示例性的,参与业务逻辑本地计算的节点还可以是多个,基于相同的实现原理,参与本地计算的节点在本地执行非共识合约,并生成结果和证明,在完成本地计算后,执行智能合约过程中,区块链中的共识节点通过调用验证方法,验证结果过和证明的关系,以使得不参与共识的本地执行过程达到共识的可信度;同时还可以支持业务量较大和复杂的逻辑计算,保证了区块链的性能。
在一些实施例中,在所述获取基于所述结果和所述证明生成共识交易提案之后,所述方法还包括:
向所述区块链中的主节点发送所述共识交易提案,所述共识交易提案用于指示所述主节点广播所述共识交易提案。
示例性的,若执行本地计算的节点不是区块链中的主节点,在获取到共识交易提案后,还可以向区块链的主节点发送,并由主节点进行广播;或者,区块链的SDK生成共识交易提案后,还可以直接发送给区块链的主节点,由主节点进行广播;或者,区块链的SDK生成共识交易提案后,发送给任一个或多个指定的节点,若该任一个或多个指定的节点中存在主节点,则由主节点进行广播,若该任一个或多个指定的节点中无主节点,则由该任一个或多个指定的节点发送给主节点,由主节点广播该共识交易提案。
在一些实施例中,在对所述共识交易提案进行广播之前,所述方法还包括:
向所述客户端发送所述结果和所述证明;所述结果和所述证明用于指示所述客户端将所述结果和所述证明结合输入参数生成所述共识交易提案;接收所述客户端发送的所述共识交易提案。
示例性的,客户端可以是节点上运行的应用程序,也可以是与节点相关联的终端设备上运行的应用程序。若客户端为节点上运行的应用程序,则基于区块链的SDK可以接收该结果和证明,并对该结果和证明作为输入,结合其他输入参数生成新的共识交易提案,节点获取到基于区块链的SDK生成的共识交易提案。
在一些实施例中,所述方法还包括:
若所述区块链中的节点对所述证明验证通过,且执行所述共识算法通过,则基于所述结果完成所述智能合约的执行后,修改状态数据库。
示例性的,若智能合约还存在其他业务逻辑,则在验证通过,且共识通过的情况,可以继续执行智能合约中的其他业务逻辑,并在执行完成后,根据执行结果,每个共识节点修改状态数据库,并将共识交易提案等待打包落块。若智能合约中不存在其他业逻辑,则在共识通过后,根据结果,每个共识节点修改状态数据库。
在一些实施例中,所述方法还包括:
若所述区块链中的节点对所述证明验证失败,且执行所述共识算法通过,则停止执行所述智能合约。
示例性的,若节点在本地执行出错或生成证明的计算过程出错,则在执行智能合约过程中,对证明的验证将不通过,并输出验证失败的提示信息;但是该信息并不影响区块链共识的过程;在共识通过后,由于验证失败,则停止执行智能合约后续的逻辑,该共识交易提案等待打包落块。
在一些实施例中,所述方法还包括:
若所述区块链中的节点对所述证明验证的验证结果不一致,则在执行所述共识算法过程中将不一致的所述验证结果中的异常验证结果对应的节点剔除。
示例性的,在区块链的共识节点执行智能合约过程中,在对证明进行验证后,若存在验证结果不一致的情况,可能存在恶意节点(例如本地计算出错的节点),则在后续执行共识算法过程中可以将作恶节点进行剔除。
示例性的,在实际应用场景中,以A、B、C、D四个节点组成的联盟链为例,其中A、B之间存在清算业务,而C、D不参与该业务,A、B会分别根据节点VP本地的账本数据使用非共识合约NC计算轧差,得到对方对自己的净债权或净债务R和计算的证明P,然后将R,P传递给智能合约C进行共识合约内的比对,通过智能合约C验证非共识合约NC输出的P后,即可使用R进行最后一步清算。
示例性的,若节点A没有部署非共识合约,节点B部署有非共识合约,节点A通过执行智能合约,接收节点B在本地执行非共识合约的输出;节点A将该输出作为输入,继续执行智能合约进行计算。一种实施例中,节点B在本地执行非共识合约时,可能依赖于一些公开数据或者节点A发出的数据;节点A可以先向智能合约上广播发出一个节点A可以暴露的数据给节点B、节点C及节点D,节点B、C、D都能看到该数据。但是只有节点B确定数据的用途。节点B接收到数据后,将该数据作为输入,加上自己本地的隐私数据,将两种数据都作为输入,输入到自己的非共识合约里,并在本地执行非共识合约,得到计算结果和证明。然后将结果和证明作为输入提供给共识的智能合约里。然后节点A在执行智能合约的过程中对证明进行验证并继续执行智能合约。在该处理过程中,节点B的隐私数据没有暴露,节点B的计算过程也没有暴露。节点A知道节点B是基于节点A广播的数据和自己本地的隐私数据以及节点B的非共识合约执行的计算过程。由于节点B部署非共识合约之前,与节点A已达成线下的协议,因此节点A知晓节点B的执行过程,但并不知道节点B的隐私数据。节点C和节点D则仅知晓节点B执行非共识合约完之后得到的证明和结果,可以在执行智能合约的过程中验证该证明和结果的关系,其他信息节点C和节点D均不知道;从而保护了智能合约复杂运算逻辑下节点隐私信息的安全性。
通过本申请实施例,区块链中参与计算的节点根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法;本申请节点在本地执行非共识合约,以及将生成的结果和证明在区块链共识阶段进行验证,可以保证参与计算的节点之间参与计算的数据与计算过程的隐私安全性,同时通过对结果和证明的验证还可以保证节点在本地执行非共识合约的可靠性。
本申请实施例扩展了隐私转账交易的能力,保护了智能合约复杂运算规则下的隐私性;通过零知识证明协议,能够保证非共识合约在执行过程不参与共识的情况下也能达到参与共识的可信度;通过零知识证明协议保证了本地执行逻辑的可靠性;本申请实施例的改进对原有区块链架构的侵入性较小,仅是在参与业务本地计算的节点内部内置零知识证明源码库、修改区块链的SDK使其支持非共识合约的交易提案、节点中新增非共识合约虚拟机、修改原有智能合约语编译器新增验证证明的方法函数。本申请实施例通过zk-SNARK算法的特性和智能合约的执行模式结合,提出一种具有节点级别隐私保护能力的智能合约执行方案;通过对区块链节点源码层级的改造实现一种较小侵入量和工作量的改造方案。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的区块链隐私保护方法,图5示出了本申请实施例提供的区块链隐私保护装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图5,该装置包括:
本地执行单元51,用于根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;
执行共识单元52,用于获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;其中,所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
图6为本申请一实施例提供的电子设备6的结构示意图。如图6所示,该实施例的电子设备6包括:至少一个处理器60(图6中仅示出一个)、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述实施例中的步骤。
所述电子设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是电子设备6的举例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61在一些实施例中可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种区块链隐私保护方法,其特征在于,所述方法包括:
根据客户端针对非共识合约发送的调用请求,在本地执行所述非共识合约,生成结果和证明;
获取基于所述结果和所述证明生成共识交易提案,并对所述共识交易提案进行广播;
在区块链共识过程中,通过调用智能合约中的验证方法,对共识交易提案中的结果和证明的关系进行验证;
其中,区块链的SDK支持非共识合约的交易提案,所述交易提案包括客户端发送的所述调用请求,所述非共识合约在业务参与方节点的本地执行;所述共识交易提案用于指示所述区块链中的节点在执行智能合约过程中基于所述结果对所述证明进行验证,并执行共识算法。
2.如权利要求1所述的方法,其特征在于,所述非共识合约包括零知识证明协议,所述零知识证明协议用于在执行所述非共识合约时,生成所述证明。
3.如权利要求2所述的方法,其特征在于,所述在本地执行所述非共识合约,生成结果和证明,包括:
通过非共识合约虚拟机编译所述非共识合约,得到算数电路和约束;
执行所述算数电路和所述约束,得到所述证明和所述结果。
4.如权利要求1所述的方法,其特征在于,在所述获取基于所述结果和所述证明生成共识交易提案之后,所述方法还包括:
向所述区块链中的主节点发送所述共识交易提案,所述共识交易提案用于指示所述主节点广播所述共识交易提案。
5.如权利要求1所述的方法,其特征在于,在对所述共识交易提案进行广播之前,所述方法还包括:
向所述客户端发送所述结果和所述证明;所述结果和所述证明用于指示所述客户端将所述结果和所述证明结合输入参数生成所述共识交易提案;
接收所述客户端发送的所述共识交易提案。
6.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
若所述区块链中的节点对所述证明验证通过,且执行所述共识算法通过,则基于所述结果完成所述智能合约的执行后,修改状态数据库。
7.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
若所述区块链中的节点对所述证明验证失败,且执行所述共识算法通过,则停止执行所述智能合约。
8.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
若所述区块链中的节点对所述证明验证的验证结果不一致,则在执行所述共识算法过程中将不一致的所述验证结果中的异常验证结果对应的节点剔除。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行实现如权利要求1至8任一项所述的方法。
CN202111661728.5A 2021-12-30 2021-12-30 区块链隐私保护方法、电子设备及计算机可读存储介质 Active CN114374554B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111661728.5A CN114374554B (zh) 2021-12-30 2021-12-30 区块链隐私保护方法、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111661728.5A CN114374554B (zh) 2021-12-30 2021-12-30 区块链隐私保护方法、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN114374554A CN114374554A (zh) 2022-04-19
CN114374554B true CN114374554B (zh) 2024-08-27

Family

ID=81141368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111661728.5A Active CN114374554B (zh) 2021-12-30 2021-12-30 区块链隐私保护方法、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114374554B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781521A (zh) * 2018-12-06 2020-02-11 山东大学 基于零知识证明的智能合约认证数据隐私保护方法及系统
CN112765268A (zh) * 2020-12-31 2021-05-07 杭州趣链科技有限公司 基于区块链的数据隐私保护方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418783B (zh) * 2017-09-01 2021-03-19 矩阵元技术(深圳)有限公司 一种保护区块链智能合约隐私的方法、介质
US11115188B2 (en) * 2019-04-29 2021-09-07 Advanced New Technologies Co., Ltd. Blockchain-based data processing method, apparatus, and blockchain node
KR102103177B1 (ko) * 2019-11-20 2020-04-22 충남대학교 산학협력단 블록체인의 확장성을 위한 영지식 증명의 선택적 검증 시스템 및 그 방법
CN111629057B (zh) * 2020-05-27 2021-07-09 广西师范大学 基于区块链具有隐私保护的物联网访问控制方法
EP3844654B1 (en) * 2020-06-08 2023-05-17 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based document registration for custom clearance
CN113255011A (zh) * 2021-05-25 2021-08-13 平安科技(深圳)有限公司 区块链状态映射方法、系统、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781521A (zh) * 2018-12-06 2020-02-11 山东大学 基于零知识证明的智能合约认证数据隐私保护方法及系统
CN112765268A (zh) * 2020-12-31 2021-05-07 杭州趣链科技有限公司 基于区块链的数据隐私保护方法、装置及设备

Also Published As

Publication number Publication date
CN114374554A (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
US12028459B2 (en) Multi-access edge computing node with distributed ledger
CN111090876B (zh) 调用合约的方法及装置
CN111681003B (zh) 资源跨链转移方法、装置、计算机设备以及存储介质
CN111541785B (zh) 基于云计算的区块链数据处理方法及装置
CN112152800B (zh) 生成共享合约密钥的方法及装置
CN111092727B (zh) 共享集群密钥的方法及装置
US11704303B2 (en) Method and system for processing transactions in a blockchain network
WO2022095244A1 (zh) 跨链交易方法、系统、装置、设备和存储介质
EP3540628A1 (en) Mechanism for efficient validation of finality proof in lightweight distributed ledger clients
CN112035889A (zh) 计算外包的区块链隐私验证方法、装置及计算机设备
CN108512939B (zh) 一种区块链共识方法、装置及相关设备
CN112507363A (zh) 基于区块链的数据监管方法、装置、设备及存储介质
CN111211911B (zh) 一种协同签名方法、装置、设备及系统
CN114221972A (zh) 中继区块链系统以及跨链交易方法
CN113206744B (zh) 跨链交易监管方法、装置、设备和存储介质
CN113837758A (zh) 一种区块链系统的共识方法及装置
WO2023005500A1 (zh) 跨链交易处理方法、装置、电子设备以及存储介质
CN114240657A (zh) 数据处理方法、区块链、终端设备及存储介质
CN112036878A (zh) 数据处理方法及装置
CN112488683A (zh) 一种区块链的链下交易方法及装置
CN111241586A (zh) 区块链地址匿名处理方法及系统、终端、存储介质
CN114374554B (zh) 区块链隐私保护方法、电子设备及计算机可读存储介质
CN113067822A (zh) 基于区块链的信息处理方法、装置、设备、介质和产品
CN115022012B (zh) 一种数据传输方法、装置、系统、设备及存储介质
CN115967568A (zh) 基于区块链和群签名机制的跨链访问控制方法

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