CN114240657A - 数据处理方法、区块链、终端设备及存储介质 - Google Patents
数据处理方法、区块链、终端设备及存储介质 Download PDFInfo
- Publication number
- CN114240657A CN114240657A CN202111538678.1A CN202111538678A CN114240657A CN 114240657 A CN114240657 A CN 114240657A CN 202111538678 A CN202111538678 A CN 202111538678A CN 114240657 A CN114240657 A CN 114240657A
- Authority
- CN
- China
- Prior art keywords
- node
- calculation
- data
- block chain
- event
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 165
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012795 verification Methods 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- -1 methyl-ethyl-propyl-butyl-methyl Chemical group 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于区块链技术领域,提供了一种数据处理方法、区块链、终端设备及存储介质,该方法包括:第一节点接收到第二节点发送的计算事件,第一节点向链下服务器发送与计算事件相关的计算参数,以使链下服务器根据计算参数执行链下计算,得到计算数据,第一节点和第二节点分别为区块链中的任一节点;第一节点接收链下服务器返回的计算数据;第一节点向第二节点返回计算数据。上述方法可以节省区块链的计算资源,提高区块链交易处理效率。
Description
技术领域
本申请属于区块链技术领域,尤其涉及一种数据处理方法、区块链、终端设备及存储介质。
背景技术
随着隐私计算不断进入大众的视野,区块链和隐私计算的结合也成为了一个非常热门的话题。隐私计算可以实现数据的可用不可见,在保证各方的数据私密不暴露的前提下,联合各方的数据进行统计计算和机器学习,充分释放大数据的价值。所以隐私计算在区块链领域具有很大的应用价值。
现有的隐私计算方法中,需要在区块链的节点中指定计算节点,隐私数据只能提供给计算节点,由计算节点完成隐私计算任务。由于隐私计算所需的数据处理量较大,因此,现有方法中需要占用区块链的大量计算资源,降低了区块链的交易处理效率。
发明内容
本申请实施例提供了一种数据处理方法、区块链、终端设备及存储介质,可以节省区块链的计算资源,提高区块链交易处理效率。
第一方面,本申请实施例提供了一种数据处理方法,应用于区块链,包括:
当第一节点接收到第二节点发送的计算事件,所述第一节点向链下服务器发送与所述计算事件相关的计算参数,以使所述链下服务器根据所述计算参数执行链下计算,得到计算数据,所述第一节点和所述第二节点分别为所述区块链中的任一节点;
所述第一节点接收所述链下服务器返回的所述计算数据;
所述第一节点向所述第二节点返回所述计算数据。
第二方面,本申请实施例提供了一种区块链,所述区块链用于实现上述第一方面中任一项所述的数据处理方法。
第三方面,本申请实施例提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的数据处理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的数据处理方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的数据处理方法。
本申请第一方面实施例与现有技术相比存在的有益效果是:通过当第一节点接收到第二节点发送的计算事件,第一节点向链下服务器发送与计算事件相关的计算参数,以使链下服务器根据计算参数执行链下计算,得到计算数据,第一节点和第二节点分别为区块链中的任一节点;第一节点接收链下服务器返回的计算数据;第一节点向第二节点返回计算数据,这样,将需要第一节点通过链上计算完成计算事件转由链下服务器的链下计算完成,可以节省区块链的计算资源,而且链下计算效率高,有助于提高区块链交易处理效率。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的区块链的结构示意图;
图2是本申请一实施例提供的数据处理方法的流程示意图;
图3是本申请另一实施例提供的数据处理方法的流程示意图;
图4是本申请一实施例提供的区块链中节点的结构示意图;
图5是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当……时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的数据处理方法应用于区块链,其中,作为示例,参照图1,是本申请实施例提供的区块链的示意图。如图1所示,区块链100中包括第一节点110、第二节点120、第三节点130和第四节点140。
参照图2,是本申请实施例提供的数据处理方法的流程示意图。如图3所示,数据同步方法详述如下。
步骤S201,第一节点接收到第二节点发送的计算事件,第一节点向链下服务器发送与计算事件相关的计算参数,以使链下服务器根据计算参数执行链下计算,得到计算数据,第一节点和第二节点分别为区块链中的任一节点。
这里,区块链上的一个节点a计划与另一个节点b完成一笔交易之前,想要知道节点b是否具有处理该笔交易的能力,节点a会预先给节点b发送相关的计算事件,通过该节点b完成该计算事件得到计算数据,并根据节点b返回的计算数据,来验证节点b是否具有处理该笔交易的能力。
参照图1举例说明,第二节点120计划与第一节点110完成一笔交易,需要知道第一节点110是否具有足够的资金来完成该笔交易,最直接的是,第一节点110将自己现有的资金总额告知第二节点120,但是由于第一节点110自己现有的资金总额属于隐私数据,第一节点110不希望将自己现有的资金总额直接透露给第二节点120,所以第一节点110只需要证明自己是否具有足够的资金来完成该笔交易即可,比如该笔交易需要10万的资金才能够完成,第一节点110需要证明自己现有的资金总额是否大于等于10万,此时,第二节点120会预先给第一节点110发送指示第一节点110执行自己现有的资金总额是否大于等于10万的计算事件。
需要说明的是,之所以第二节点发送给第一节点的计算事件需要链下服务器通过链下计算完成,是因为计算事件涉及隐私数据需要执行隐私计算(比如零知识证明),而隐私计算计算量比较大,如果第一节点直接在链上进行计算,会占用区块链的大量资源,交易处理效率低,所以这里通过链下服务器的链下计算完成。链下服务器为高性能服务器,可提供高效率的计算,通过安全算法的结合,可以解决数据泄露、资源浪费的情况,在节省区块链的计算资源的情况下,极大地提供了区块链交易处理效率。
需要说明的是,链下计算是一个服务模块,不限于任何可计算方式,例如可信执行环境中的加密数据和非交互式零知识算法中的证明等。
步骤S202,第一节点接收链下服务器返回的计算数据。
通过对上述步骤S201的解释说明可知,计算数据用于表征第一节点是否具有处理第一交易的证明数据。该计算数据在不泄露第一节点隐私数据的前提下,证明了自己处理交易的能力。
步骤S203,第一节点向第二节点返回计算数据。
这里,第一节点向第二节点返回计算数据可以通过第一节点发起的对计算数据的链上共识实现。其具体实现详见实施例一。
由于区块链中具有很多节点,第二节点只需要知道第一节点处理交易的能力,所以并不是除第二节点外的其他所有节点都需要通过链下服务器完成链下计算,所以为了避免浪费计算资源,需要第二节点指定哪个节点需要执行链下计算事件。
另外,区块链是一个封闭的环境,链上是无法主动获取链外(也称为链下)真实世界的数据。主要是因为区块链无法主动发起网络调用而链上智能合约是被动接收数据的。本申请中第二节点之所以能够与链下服务器进行数据交互,主要是通过预言机服务来实现。预言机服务作为区块链与链下真实世界的桥梁,它能够使得区块链通过预言机服务获取链外真实世界的数据。
为了便于理解,下面简单介绍一下预言机服务。
预言机服务是区块链中的一种服务,可直接称作预言机。区块链外信息写入区块链内的机制,被称为预言机,它是完成区块链与现实世界的数据互通的中间接口。当区块链上某个智能合约有数据交互需求时,预言机接收到需求后,帮助智能合约在链外收集外界数据,验证后再将获取的数据反馈回链上的智能合约。
综上,在图2所示的数据处理方法实施之前,第二节点需要预先指定哪个节点需要执行链下计算事件,预先设定实现链下计算的手段为预言机服务。
为了实现上述目的,在一种可能的实现方式中,参照图3,在步骤S201之前,上述方法还包括:
步骤S301,第二节点监测用户指令,用户指令包括第一参数和第二参数,其中,第一参数用于指示执行计算事件的节点,第二参数包括第一计算参数和指示信息,第一计算参数为第二节点的用户提供的与计算事件相关的计算参数,指示信息用于指示第一节点提供与计算事件相关的第二计算参数。
具体的,第一计算参数可包括:指定链下计算服务对应的接口、形成计算关系所需要的数据和通过预言机服务实现链下计算的指示。
需要说明的是,不同的链下计算服务对应不同的接口,通过不同的接口可以完成不同的计算功能。比如,若指定链下计算服务对应的接口为第一接口,该第一接口用于实现大于或者等于的计算功能,则计算事件涉及有关大于或者等于的计算。又比如,若指定链下计算服务对应的接口为第二接口,该第二接口用于实现等于的计算功能,则对应的计算事件涉及有关等于的计算。由于是第二节点的用户指定的链下计算服务对应的接口,该接口应当是其信任的服务,这样能够避免第一节点返回一个造假的计算数据。
这里,指定链下计算服务对应的接口和形成计算关系所需要的数据构成一个计算关系。
下面举例说明,若第二节点想要知道第一节点现有的资金总额是否大于等于10万,则第一计算参数中指定链下计算服务对应的接口为第一接口,用于实现大于或者等于的计算功能;形成计算关系所需要的数据为10万,这样“第一接口”和“10万”构成一个计算关系,即第二节点提供了一个“大于等于10万”的计算关系。之后,加上第一节点提供的第二计算参数,比如,第一节点提供的第二计算参数为12万,则构成了一个计算事件,即构成12万是否大于或者等于10万的计算事件。
再比如,若第二节点想要知道第一节点是否知道某个多项式的解,则第一计算参数中指定链下计算服务对应的接口为第二接口,用于实现等于的计算功能;形成计算关系所需要的数据为该多项式,这样“第二接口”和“多项式”构成一个计算关系,即第二节点提供了一个“多项式等于”的计算关系。之后,加上第一节点提供的第二计算参数,即一个多项式的解,则构成了计算事件,即构成了第一节点提供的多项式的解是否使得“多项式等于”这一计算关系成立的计算事件。
可选的,用户指令为智能合约调用指令。
也就是说,第二节点通过智能合约调用指令获取第一参数和第二参数。之所以需要调用智能合约,是因为使用预言机服务,需要配合对应的预言机智能合约进行。预言机智能合约相当于一种媒介,用于通知区块链需要执行预言机服务。
在一可选的实现方式中,预言机智能合约是第二节点的用户预先编写好,通过SDK部署在区块链上。在部署成功后用户可以接收到对应该预言机智能合约的合约地址。
这里,软件开发工具包(Software Development Kit,SDK)用于调用区块链上的服务接口API。
之后,第二节点接收用户发送的智能合约调用指令,通过该智能合约调用指令获取第一参数和第二参数。
具体的,智能合约调用指令包括合约地址、指示执行计算事件的节点(第一参数)、指示第一节点提供与计算事件相关的第二计算参数、第二节点的用户提供的指定链下计算服务对应的接口、形成计算关系所需的数据和合约方法。需要解释的是,合约方法为调用预言机服务。
相应的,参照图4,图4为区块链中节点的结构示意图。若图4中的区块链节点为第二节点,第二节点接收到用户发送的智能合约调用指令,第二节点的虚拟机通过合约地址获取到对应的预言机智能合约,通过合约方法确定区块链上的节点需要使用预言机服务;之后,相应的,执行下述步骤S302和步骤S303,即将除合约地址外的智能合约调用指令中的其他参数,也即第一参数和第二参数,打包成计算事件;最后由第二节点的执行引擎通过预言机分发给区块链上除第二节点外的节点。若智能合约调用指令还包括回调函数,则计算事件还包括回调函数。
步骤S302,第二节点根据第一参数和第二参数生成计算事件。
步骤S303,第二节点将计算事件发送给区块链中除第二节点外的节点。
需要说明的是,第二节点将计算事件发送给区块链中除第二节点外的节点,其目的是为了实现计算事件的链上共识,在链上共识成功后,区块链上的各节点记录该计算事件。之后,区块链上的各节点通过计算事件中的第一参数判断是否执行计算事件。
即:在一种可能的实现方式中,计算事件中包括第一参数,第一参数用于指示执行计算事件的节点;步骤S201的实现过程可以包括:
步骤S2011,第一节点根据计算事件中的第一参数判断是否执行计算事件。
具体的,第一节点根据第一参数的指示,判断自己是否是执行计算事件的节点。若是,则执行步骤S2012;若不是,则不做处理。
步骤S2012,若是,则第一节点通过预言机服务向链下服务器发送与计算事件相关的计算参数。
相应地,步骤S202的实现过程可以包括:
第一节点通过预言机服务接收链下服务器返回的计算数据。
可选的,在步骤S203之前,上述方法还包括:
第一节点通过预言机服务接收链下服务器返回的第一智能合约。
这里可参照图4说明,若图4中的区块链节点为第一节点,第一节点接收到计算事件后,可通过预言机调用链下服务器执行链下计算服务,链下服务器通过链下计算得到计算数据和第一智能合约,将计算数据和第一智能合约返回给预言机。
也就是说,第一节点通过预言机服务接收链下服务器返回的计算数据时,还接收链下服务器返回的第一智能合约。
其中,第一智能合约的内部逻辑为:验证计算数据的方法。
需要说明的是,该第一智能合约的内部逻辑的执行需要通过回调函数来实现。具体的,回调函数用于部署和调用第一智能合约。
需要说明的是,预言机服务通过链下计算服务对应的接口进行数据交互,请求链下服务器执行链下计算得到数据结果,请求过程是异步的,区块链无需等待预言机接收到数据结果后再去执行下一项。预言机的请求过程是在可信执行环境中进行的,因此预言机服务的整个数据获取过程是可信且安全的。
预言机服务也包括一系列的异常处理,如超时、数据过大、请求的接口失效、计算服务拒绝连接的情况,若出现异常情况则返回错误信息给第二节点,表示此次合约调用失败。
实施例一
在一种可能的实现方式中,步骤S203的实现过程可包括:
步骤S2031,第一节点向区块链中除第一节点外的节点分别发送计算数据。
参照图1,区块链中除第一节点110外的节点包括第二节点120、第三节点130和第四节点140。也就是,第一节点110向第二节点120、第三节点130和第四节点140分别发送计算数据。
步骤S2032,区块链中除第一节点外的每个节点将各自接收到的计算数据通知给其他节点。
继续参照图1,对于区块链中的第二节点120,其他节点包括第一节点110、第三节点130和第四节点140,即区块链中的第二节点120将其接收到的计算数据通知给第一节点110、第三节点130和第四节点140。
对于区块链中的第三节点130,其他节点包括第一节点110、第二节点120和第四节点140,即区块链中的第三节点130将其接收到的计算数据通知给第一节点110、第二节点120和第四节点140。
对于区块链中的第四节点140,其他节点包括第一节点110、第二节点120和第三节点130,即区块链中的第四节点140将其接收到的计算数据通知给第一节点110、第二节点120和第三节点130。
步骤S2033,区块链中除第一节点外的每个节点将从第一节点接收到的计算数据和其他节点通知的计算数据进行比较、且第一节点将其他节点通知的数据和本节点内的计算数据进行比较,得到每个节点对应的第一比较结果。
继续参照图1,对于区块链中的第二节点120,其他节点包括第三节点130和第四节点140,即区块链中的第二节点120将从第一节点110接收到的计算数据、第三节点130通知的计算数据和第四节点140通知的计算数据进行比较,判断三个计算数据是否相同,得到的比较结果作为第一比较结果。
对于区块链中的第三节点130,其他节点包括第二节点120和第四节点140,即区块链中的第三节点130将从第一节点110接收到的计算数据、第二节点120通知的计算数据和第四节点140通知的计算数据进行比较,判断三个计算数据是否相同,得到的比较结果作为第一比较结果。
对于区块链中的第四节点140,其他节点包括第二节点120和第三节点130,即区块链中的第四节点140将从第一节点110接收到的计算数据、第二节点120通知的计算数据和第三节点130通知的计算数据进行比较,判断三个计算数据是否相同,得到的比较结果作为第一比较结果。
对于区块链中的第一节点110,其他节点包括第二节点120、第三节点130和第四节点140,即区块链中的第一节点将本节点内的计算数据、第二节点120通知的计算数据、第三节点130通知的计算数据和第四节点140通知的计算数据进行比较,判断四个计算数据是否相同,得到的比较结果作为第一比较结果。
步骤S2034,若区块链中的每个节点对应的第一比较结果均满足第一预设条件,则第二节点记录计算数据,其中,节点对应的第一比较结果满足第一预设条件为节点接收到的计算数据相同。
需要说明的是,节点接收到的计算数据相同,则说明计算数据链上共识成功,第二节点记录计算数据。相应的,区块链中除第二节点外的其他节点也都记录该计算数据。
相应的,第二节点记录计算数据之后,上述方法还包括:
第二节点对计算数据进行验证,得到第一验证结果。
若第一验证结果表示验证通过,则第二节点向第一节点发起与计算事件相关的交易。
上述已经说明计算数据用于表征第一节点是否具有处理与计算事件相关的交易的证明数据,该计算数据在不泄露第一节点隐私数据的前提下,证明自己处理交易的能力。
在本实现方式中,第二节点对计算数据进行验证,其目的是为了确定第一节点是否具有处理与计算事件相关的交易的能力。若第一节点具有处理第一交易的能力,则验证通过,第二节点向第一节点发起与计算事件相关的交易,这样能够保证交易的顺利进行。
可选的,计算数据可以是基于可信执行环境中的加密数据,则第二节点可通过链下调用可信执行环境对应的服务接口去进行验证,计算数据会在可信执行环境中解密并验证,第二节点最后获得第一验证结果。比如,第一节点110调用预言机服务通过链下服务器执行自己现有的资金总额大于等于10万的计算事件得到的计算数据,对应的验证结果是一个表示是或否的结果,但并不知道加密前的原始数据是什么,即不知道第一节点110现有的资金总额是多少。
计算数据可以是非交互式零知识算法中的证明,则第二节点可通过预先存储的验证工具对该证明进行验证,第二节点最后得到第一验证结果。
需要说明的是,上链后的计算数据可以交由区块链中任何节点去验证结果,因此能够避免第二节点的恶意造假。
上述实现方式中对计算数据的验证是通过第二节点完成的,当然为了减轻第二节点的计算负担,在一种可能的实现方式中,在步骤S203之后,上述方法还包括:
若计算事件中包括回调函数,则第一节点向区块链中除第一节点外的节点分别发送回调函数和计算数据。
区块链中每个节点均通过回调函数对计算数据进行验证,得到每个节点对应的第二验证结果。
区块链中每个节点将各自执行验证后得到的第二验证结果通知给其他节点。
区块链中每个节点将本节点从其他节点通知得到的第二验证结果和本节点执行验证后得到的第二验证结果进行比较,得到每个节点对应的第二比较结果。
若区块链中每个节点对应的第二比较结果满足第二预设条件,则第二节点记录第二验证结果,且区块链中除第二节点外的节点均记录第二验证结果,其中,节点对应的第二比较结果满足第二预设条件为节点接收到的第二验证结果相同。
在该实现方式中,在第一节点成功调用预言机服务的情况下,预言机在获得链下服务器返回的计算数据后,还可通过预言机发起回调函数,从而实现对计算数据的验证。这样,链下计算和链上验证可均通过预言机服务完成,无需将区块链网络划分成多个模块分别进行,而且预言机服务充当了整个过程的核心,最后第二节点仅需查询验证结果即可,没有其他的交互过程,数据交互更加简洁。
需要说明的是,各个节点通过回调函数验证计算数据得到的第二验证结果同样需要链上共识,它与计算数据的链上共识过程相似,详细说明可参见实施例一,这里不再赘述。
相应的,在一种可能的实现方式中,所述第二节点记录所述第二验证结果之后,上述方法还包括:
第二节点查询第二验证结果。
若第二验证结果表示验证通过,则第二节点向第一节点发起与计算事件相关的交易。
具体的,第二节点可通过使用交易哈希查询链上数据获得第二验证结果。
下面就一具体场景示例说明本申请实施例的数据处理方法的实施过程。
四家企业分别代表一条链中互相组网的四个节点,将其命名为甲乙丙丁。甲希望乙能够证明乙有足够的经济实力完成一笔交易买卖。例如这笔交易需要100万资金才能够完成,也即乙需要证明自己现有的资金总额大于等于10万。下面假设采用的隐私保护算法为非交互式零知识证明。
S401,节点甲下的用户编写预言机智能合约,并通过SDK在链上部署该预言机智能合约,该预言机智能合约用于调用预言机服务。
S402,预言机智能合约部署完成后,节点甲下的用户通过SDK请求调用该预言机智能合约,该SDK请求包括部署该合约后的合约地址、指定调用预言机服务的节点为节点乙、指定链下计算服务对应的接口、合约方法、回调函数、节点乙需要在请求预言机服务时需要提供的参数。
这里,合约方法为预言机服务,指定链下计算服务对应的接口为用于实现大于或者等于的计算功能,节点乙请求预言机服务时需要提供的参数包括节点乙需要提供的乙现有的资金总额、节点甲提供的用于形成计算关系所需的数据。
S403,节点甲接收到SDK请求后,对调用的预言机智能合约进行签名验证,验证通过后通过虚拟机解释预言机合约,将SDK请求中除合约地址外的其余参数打包为事件发送给节点乙。
这里对调用的预言机智能合约进行签名验证其目的是为了验证该预言机智能合约是部署在区块链节点上的智能合约。
具体的,虚拟机解释预言机合约指的是虚拟机根据合约地址获取该预言机智能合约,根据合约方法确定区块链上的节点需要调用预言机服务。
S404,节点乙接收到事件后,提供请求预言机服务所需要的参数,并进行预言机服务。
这里,提供预言机所需的参数为链下计算服务对应的接口、节点乙需要提供的节点乙现有的资金总额、节点甲提供的用于形成计算关系所需的数据。
S405,节点乙的预言机按照链下计算服务对应的接口进行请求,链下服务器完成计算后将生成的零知识证明和第二智能合约返给该预言机;预言机自动发起回调函数,部署并调用第二智能合约,节点乙以及区块链上除该节点乙之外的其他节点均按照第二智能合约的执行逻辑对零知识证明进行验证,将验证结果在区块链中共识,共识成功后将验证结果上链。
这里,回调函数的执行逻辑具体为:当预言机接收到链下服务器返回的零知识证明和第二智能合约,部署并调用第二智能合约,其中,在调用第二智能合约时,传入零知识证明和公共输入,本实施例中公共输入为非隐私数据即10万。
第二智能合约的内部逻辑为验证零知识证明的方法。对于本实施例而言,验证零知识证明的方法为通过预设公式验证零知识证明和公共输入是否满足一定的关系。也就是,验证节点乙的资金是否大于10万。其中,节点乙的资金以零知识证明的隐私保护方式表示。
S406,节点甲通过查询获知上链后的验证结果。
本申请实施例不需要对区块链上各个节点进行角色的划分任何节点都可以是部署合约的节点,任何节点也都可以请求预言机服务来充当“计算节点”,这样就可以避免计算节点宕机引起的问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种区块链,可参见图1,该区块链用于实现上述方法实施例中所述的数据处理方法。
本申请实施例还提供了一种终端设备,参见图5,该终端设备500可以包括:至少一个处理器510、存储器520以及存储在所述存储器520中并可在所述至少一个处理器510上运行的计算机程序,所述处理器510执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤S201至步骤S203。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器520中,并由处理器510执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备500中的执行过程。
本领域技术人员可以理解,图5仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
处理器510可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器520可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器520用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器520还可以用于暂时地存储已经输出或者将要输出的数据。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例提供的数据处理方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的终端设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被一个或多个处理器执行时,可实现上述各个方法实施例的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被一个或多个处理器执行时,可实现上述各个方法实施例的步骤。
同样,作为一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据处理方法,应用于区块链,其特征在于,包括:
当第一节点接收到第二节点发送的计算事件,所述第一节点向链下服务器发送与所述计算事件相关的计算参数,以使所述链下服务器根据所述计算参数执行链下计算,得到计算数据,所述第一节点和所述第二节点分别为所述区块链中的任一节点;
所述第一节点接收所述链下服务器返回的所述计算数据;
所述第一节点向所述第二节点返回所述计算数据。
2.如权利要求1所述的数据处理方法,其特征在于,所述计算事件中包括第一参数,所述第一参数用于指示执行所述计算事件的节点;
所述当第一节点接收到第二节点发送的计算事件,所述第一节点向链下服务器发送与所述计算事件相关的计算参数,包括:
所述第一节点根据所述计算事件中的所述第一参数判断是否执行所述计算事件;
若是,则所述第一节点通过预言机服务向所述链下服务器发送与所述计算事件相关的计算参数;
所述第一节点接收所述链下服务器返回的所述计算数据,包括:
所述第一节点通过所述预言机服务接收所述链下服务器返回的所述计算数据。
3.如权利要求1所述的数据处理方法,其特征在于,所述第一节点向所述第二节点返回所述计算数据,包括:
所述第一节点向所述区块链中除所述第一节点外的节点分别发送所述计算数据;
所述区块链中除所述第一节点外的每个节点将各自接收到的所述计算数据通知给其他节点;
所述区块链中除所述第一节点外的每个节点将从所述第一节点接收到的计算数据和其他节点通知的计算数据进行比较、且所述第一节点将其他节点通知的计算数据和本节点内的计算数据进行比较,得到每个节点对应的第一比较结果;
若所述区块链中的每个节点对应的所述第一比较结果均满足第一预设条件,则所述第二节点记录所述计算数据,且所述区块链中除所述第二节点外的节点均记录所述计算数据,其中,所述节点对应的第一比较结果满足第一预设条件为所述节点接收到的计算数据相同。
4.如权利要求3所述的数据处理方法,其特征在于,所述第二节点记录所述计算数据之后,所述方法还包括:
所述第二节点对所述计算数据进行验证,得到第一验证结果;
若所述第一验证结果表示验证通过,则所述第二节点向所述第一节点发起与所述计算事件相关的交易。
5.如权利要求1所述的数据处理方法,其特征在于,所述第一节点接收所述链下服务器返回的所述计算数据之后,所述方法还包括:
若所述计算事件中包括回调函数,则所述第一节点向所述区块链中除所述第一节点外的节点分别发送所述回调函数和所述计算数据;
所述区块链中的每个节点均通过所述回调函数对所述计算数据进行验证,得到每个节点对应的第二验证结果;
所述区块链中的每个节点将各自执行验证后得到的所述第二验证结果通知给其他节点;
所述区块链中的每个节点将本节点从其他节点通知得到的第二验证结果和本节点执行验证后得到的第二验证结果进行比较,得到每个节点对应的第二比较结果;
若所述区块链中每个节点对应的所述第二比较结果满足第二预设条件,则所述第二节点记录所述第二验证结果,且所述区块链中除所述第二节点外的节点均记录所述第二验证结果,其中,所述节点对应的第二比较结果满足第二预设条件为所述节点接收到的第二验证结果相同。
6.如权利要求5所述的数据处理方法,其特征在于,所述第二节点记录所述第二验证结果之后,所述方法还包括:
所述第二节点查询所述第二验证结果;
若所述第二验证结果表示验证通过,则所述第二节点向所述第一节点发起与所述计算事件相关的交易。
7.如权利要求1所述的数据处理方法,其特征在于,所述当第一节点接收到第二节点发送的计算事件,所述第一节点向链下服务器发送与所述计算事件相关的计算参数之前,所述方法还包括:
所述第二节点监测用户指令,所述用户指令包括第一参数和第二参数,其中,所述第一参数用于指示执行所述计算事件的节点,所述第二参数包括第一计算参数和指示信息,所述第一计算参数为所述第二节点的用户提供的与计算事件相关的计算参数,所述指示信息用于指示所述第一节点提供与计算事件相关的第二计算参数;
所述第二节点根据所述第一参数和所述第二参数生成所述计算事件;
所述第二节点将所述计算事件发送给所述区块链中除所述第二节点外的节点。
8.一种区块链,其特征在于,所区块链用于实现权利要求1至7任一项所述的数据处理方法。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538678.1A CN114240657A (zh) | 2021-12-15 | 2021-12-15 | 数据处理方法、区块链、终端设备及存储介质 |
PCT/CN2022/118806 WO2023109217A1 (zh) | 2021-12-15 | 2022-09-14 | 数据处理方法、区块链系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111538678.1A CN114240657A (zh) | 2021-12-15 | 2021-12-15 | 数据处理方法、区块链、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114240657A true CN114240657A (zh) | 2022-03-25 |
Family
ID=80756551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111538678.1A Pending CN114240657A (zh) | 2021-12-15 | 2021-12-15 | 数据处理方法、区块链、终端设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114240657A (zh) |
WO (1) | WO2023109217A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
WO2024001507A1 (zh) * | 2022-06-30 | 2024-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116866045B (zh) * | 2023-07-18 | 2024-01-23 | 四川华西集采电子商务有限公司 | 一种基于访问控制规则的区块链可信预言机决策支撑系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111104A (zh) * | 2019-04-23 | 2019-08-09 | 矩阵元技术(深圳)有限公司 | 区块链智能合约实现方法、装置、计算机设备和存储介质 |
CN111047450A (zh) * | 2020-03-18 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 链上数据的链下隐私计算方法及装置 |
CN111090876A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 调用合约的方法及装置 |
CN111541785A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 基于云计算的区块链数据处理方法及装置 |
CN113221166A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种获取区块链数据的方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
US20200151266A1 (en) * | 2018-11-08 | 2020-05-14 | International Business Machines Corporation | Data processing using external information |
CN111401903B (zh) * | 2020-06-03 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 区块链消息处理方法、装置、计算机以及可读存储介质 |
CN112055023B (zh) * | 2020-09-09 | 2022-10-18 | 中国工商银行股份有限公司 | 基于预言机的访问请求处理方法、装置、设备和介质 |
CN114240657A (zh) * | 2021-12-15 | 2022-03-25 | 杭州趣链科技有限公司 | 数据处理方法、区块链、终端设备及存储介质 |
-
2021
- 2021-12-15 CN CN202111538678.1A patent/CN114240657A/zh active Pending
-
2022
- 2022-09-14 WO PCT/CN2022/118806 patent/WO2023109217A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110111104A (zh) * | 2019-04-23 | 2019-08-09 | 矩阵元技术(深圳)有限公司 | 区块链智能合约实现方法、装置、计算机设备和存储介质 |
CN111047450A (zh) * | 2020-03-18 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 链上数据的链下隐私计算方法及装置 |
CN111090876A (zh) * | 2020-03-18 | 2020-05-01 | 支付宝(杭州)信息技术有限公司 | 调用合约的方法及装置 |
CN111541785A (zh) * | 2020-07-08 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 基于云计算的区块链数据处理方法及装置 |
CN113221166A (zh) * | 2021-05-11 | 2021-08-06 | 支付宝(杭州)信息技术有限公司 | 一种获取区块链数据的方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023109217A1 (zh) * | 2021-12-15 | 2023-06-22 | 杭州趣链科技有限公司 | 数据处理方法、区块链系统、计算机设备及存储介质 |
WO2024001507A1 (zh) * | 2022-06-30 | 2024-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、系统、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023109217A1 (zh) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114240657A (zh) | 数据处理方法、区块链、终端设备及存储介质 | |
CN109146679A (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN113312653A (zh) | 开放平台认证授权方法、装置及存储介质 | |
CN111145023A (zh) | 基于可信预言机的跨链交换方法、系统及介质 | |
CN111461723A (zh) | 基于区块链的数据处理系统及方法、装置 | |
CN111770112B (zh) | 一种信息共享方法、装置及设备 | |
WO2021057005A1 (zh) | 用于发布智能合约的方法和装置 | |
CN110650216A (zh) | 云服务请求方法和装置 | |
CN110505311A (zh) | 一种同构区块链跨链交互方法和系统 | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN111861481A (zh) | 一种区块链对账方法和系统 | |
CN112416616A (zh) | 一种微服务调用方法、装置、电子设备及存储介质 | |
CN115086394A (zh) | 业务信息处理方法、装置及电子设备 | |
CN114817399B (zh) | 区块管理方法及装置 | |
CN111062057B (zh) | 一种中立的数据应用方法、装置以及系统 | |
WO2024055740A1 (zh) | 数据处理方法、计算机设备和可读存储介质 | |
CN117591286A (zh) | 电子凭证与智能合约有效结合的边缘计算方法及存储介质 | |
CN112788555B (zh) | 跨运营商话费转移结算方法、装置及计算设备 | |
CN113220640A (zh) | 一种基于区块链的仲裁方法及装置 | |
US20220272203A1 (en) | Blockchain-Based Roaming Transaction Method and Apparatus | |
CN110784551A (zh) | 基于多租户的数据处理方法、装置、设备和介质 | |
CN111866171B (zh) | 报文处理方法、装置、电子设备和介质 | |
CN112861184A (zh) | 资产证明的验证与生成方法、装置及电子设备 | |
CN113592645A (zh) | 数据验证的方法和装置 | |
CN113987035A (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 |