CN111566649B - 使用公有侧链验证存储在联盟区块链中的数据的完整性 - Google Patents

使用公有侧链验证存储在联盟区块链中的数据的完整性 Download PDF

Info

Publication number
CN111566649B
CN111566649B CN201880004802.6A CN201880004802A CN111566649B CN 111566649 B CN111566649 B CN 111566649B CN 201880004802 A CN201880004802 A CN 201880004802A CN 111566649 B CN111566649 B CN 111566649B
Authority
CN
China
Prior art keywords
data
data digest
digest
signed
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
CN201880004802.6A
Other languages
English (en)
Other versions
CN111566649A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN111566649A publication Critical patent/CN111566649A/zh
Application granted granted Critical
Publication of CN111566649B publication Critical patent/CN111566649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Power Engineering (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本文的实施方式包括将数据项存储在联盟区块链中;基于所述存储的数据项生成第一数据摘要;将第一数据摘要发送给多个验证节点,以对第一数据摘要加密地签名、并将签名的第一数据摘要存储在公有区块链中;接收检索存储的数据项请求;从联盟区块链中检索所请求的数据项;基于所检索到的数据项生成第二数据摘要;将第二数据摘要发送给多个验证节点,使得每个验证节点对第二数据摘要进行签名;从多个验证节点接收所述签名的第二数据摘要;从公有区块链中检索所述签名的第一数据摘要;确定签名的第一数据摘要与签名的第二数据摘要匹配;以及对检索存储的数据项的请求,发送表明存储的数据未被改变的响应。

Description

使用公有侧链验证存储在联盟区块链中的数据的完整性
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种使用公有侧链验证存储在联盟区块链中的数据的完整性。
背景技术
分布式账本(DLS),也可称为共识网络和/或区块链网络,使参与实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用DLS,并开放参与共识过程。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识过程,并包括访问控制层。
区块链是去中心化的且防篡改的分布式数据存储技术。用户数据和合约被有逻辑地操作并以公开方式存储在链中。在许多场景中,用户需要满足隐私保护的要求并且不希望他们的数据和逻辑泄露给未授权方。
虽然密码学可以用于增强一些特定场景设计下的隐私保护,但是期望一种更通用和有效的解决方案来解决区块链操作的现有隐私问题。
发明内容
本文的实施方式包括计算机实施的用于存储和检索与区块链网络节点相关联的待验证的数据的方法。更具体地,本文的实施方式涉及使用多个验证节点,存储与一个或多个联盟区块链网络节点相关联的、待验证的数据的数据摘要,并检索该待验证的数据和该存储的数据摘要。
在一些实施方式中,操作包括:将数据项存储在由联盟区块链网络维护的联盟区块链中;基于所述存储的数据项生成第一数据摘要;将所述第一数据摘要发送给验证节点,以使每个验证节点对该第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;接收检索所述存储的数据项的请求;响应于接收所述请求,从所述联盟区块链中检索所述请求的数据项;基于所检索到的数据项生成第二数据摘要;将所述第二数据摘要发送给所述验证节点,使得每个验证节点对所述第二数据摘要加密地签名,并返回其签名的第二数据摘要;从所述多个验证节点接收所述签名的第二数据摘要;从所述公有区块链中检索所述签名的第一数据摘要;确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。其他实施方式包括相应的系统、装置和计算机程序,其被配置为执行编码在计算机存储设备上的方法的操作。
在一些实施方式中,一种非暂态计算机可读存储介质,其耦接到一个或多个计算机上并且配置有指令,所述指令可由一个或多个计算机执行以实现以下操作:将数据项存储在由联盟区块链网络维护的联盟区块链中;基于所述存储的数据项生成第一数据摘要;将所述第一数据摘要发送给验证节点,以使每个验证节点对该第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;接收检索所述存储的数据项的请求;响应于接收所述请求,从所述联盟区块链中检索所请求的数据项;基于所检索到的数据项生成第二数据摘要;将所述第二数据摘要发送给所述验证节点,使得每个验证节点对所述第二数据摘要加密地签名、并返回其签名的第二数据摘要;从所述多个验证节点接收所述签名的第二数据摘要;从所述公有区块链中检索所述签名的第一数据摘要;确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。
在一些实施方式中,一种系统包括一个或多个计算机;以及耦接到一个或多个计算机上的、配置有指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个计算机执行以实现以下操作:将数据项存储在由联盟区块链网络维护的联盟区块链中;基于所述存储的数据项生成第一数据摘要;将所述第一数据摘要发送给验证节点,以使每个验证节点对该第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;接收检索所述存储的数据项的请求;响应于接收所述请求,从所述联盟区块链中检索所请求的数据项;基于所检索到的数据项生成第二数据摘要;将所述第二数据摘要发送给所述验证节点,使得每个验证节点对所述第二数据摘要加密地签名、并返回其签名的第二数据摘要;从所述验证节点接收所述签名的第二数据摘要;从所述公有区块链中检索所述签名的第一数据摘要;确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。这些和其他实施方式可以各自可选地包括以下特征中的一个或多个:
第一特征,可与以下任意特征组合,其中验证节点是参与该公有区块链网络的计算设备。
第二特征,可与以下任意特征组合,还包括在该公有区块链中存储智能合约,其中该智能合约被配置为响应于从验证节点接收到所请求的所述签名的第二数据摘要,向验证节点提供货币奖励。
第三特征,可与以下任意特征组合,其中生成所述第一数据摘要包括计算所述存储的数据项的哈希值。
第四特征,可与以下任意特征组合,其中每个验证节点被配置为使用与该所述验证节点相关联的私钥对所述第一数据摘要加密地签名。
第五特征,可与以下任意特征组合,其中将该第一数据摘要发送至验证节点包括所述该第一数据摘要广播到所述公有区块链网络。
第六特征,可与以下任意特征组合,其中从公有区块链检索所述签名的第一数据摘要包括:基于存储在该公有区块链中的、与存储的数据项相关联的标识符来识别该签名的第一数据摘要。
本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当该指令由一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施方式执行操作。
本文还提供了用于实施本文提供的该方法的系统。该系统包括一个或多个处理器,以及其上存储有指令的、耦接到一个或多个处理器的计算机可读存储介质,当该指令由一个或多个处理器执行时,将导致一个或多个处理器按照本文提供的方法的实施方式执行操作。
所描述的区块链网络可用于验证存储在区块链网络中的数据的完整性。它涉及大量可以参与共识过程的节点,从而确保数据的完整性。另外,所描述的技术提供基于智能合约的激励机制,以提高节点在公有侧链中的参与程度。
应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
在所述附图和所述以下描述中阐述了本文的一个或多个实施方式的细节。根据说明书、附图及权利要求,本文的其他特征和优点将显而易见。
附图说明
图1描绘了可用于执行本文实施方式的环境的示例。
图2描绘了根据本文实施方式的概念性架构的示例。
图3描绘了根据本文实施方式的可用于执行本文实施方式的系统的示例。
图4描绘了根据本文各方面的在联盟区块链网络和相关公有侧链网络中存储数据的过程的示例。
图5描绘了根据本文各方面的从联盟区块链网络检索数据、并基于公有侧链网络验证检索数据的过程的示例。
图6描绘了根据本文实施方式的可执行过程的示例。
图7描绘了根据本文实施方式的装置的模块的图的示例。
各附图中的相同附图标记表示相同元件。
具体实施方式
本文的实施方式包括计算机实施的用于存储和检索与区块链网络的节点相关联的待验证的数据的方法。更具体地,本文的实施方式涉及使用多个验证节点存储与一个或多个联盟区块链网络节点相关联的待验证数据的数据摘要,并检索待验证数据和所存储的数据摘要。
为本文的实施方式提供进一步的背景,并且如上所述,分布式账本系统(DLS),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与实体能够安全地、不可篡改地进行交易和存储数据。本文所使用的术语“区块链”通常指不参考任何特定用例的情况下的DLS。
区块链是以交易不可篡改的方式存储交易、并随后交易可被验证的数据结构。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一笔或多笔交易。已经被区块链网络节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在树的叶节点处的数据经哈希处理,并且在树的每个分支中的所有哈希值在该分支的根处连接。此过程沿着树一直连续到整个树的根,在树根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。
虽然区块链是用于存储交易的数据结构,但区块链网络是管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可以被提供为公有区块链网络,私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,数百、数千甚至数百万个实体可以协同运作公有区块链网络,每个实体操作公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。在一些示例中,大多数实体(节点)必须对每个区块进行签名以使区块有效,并且将其添加到区块链网络的区块链(分布式帐本)中。示例性公有区块链网络包括利用分布式账本(被称为区块链)的特定点对点支付网络。如上所述,区块链一词通常用于指代分布式账本,而不特指任何特定的区块链网络。
通常,公有区块链网络支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。共识协议的示例包括但不限于工作量证明(POW)、权益证明(POS)和权限证明(POA)。本文进一步引用POW作为非限制性示例。
通常,为特定实体提供私有区块链网络,其中特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体、监管机构可以控制权限)。
通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权的节点组控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块进行签名以使区块有效,并添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块进行签名以使区块有效,并将其添加到区块链中。
区块链是在公有或私有点对点网络中记录交易的防篡改的共享数字账本。该账本被分布到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久地记录在区块中。在参与交易之前,区块链上的节点可能需要使用各种技术来执行计算。在当前的解决方案中,因为每个区块链是独立的,所以一个区块链的节点不能与其他链通信。例如,节点无法从其他区块链读取数据或与其他区块链交换数据。此外,即使节点不需要来自其他区块链的数据来执行计算,如果计算需要复杂的计算逻辑和协议,则完全在区块链上执行这样的计算会消耗大量的时间和区块链的计算资源。
本文参考联盟区块链网络进一步详细描述了本文的实施方式,该联盟区块链网络在参与实体之间是公有的。然而,可以预期,可以在任何适当类型的区块链网络中实现本文的实施方式。
鉴于以上背景,本文进一步详细描述了本文的实施方式。更具体地,并且如上所述,本文的实施方式涉及提供能够在信任的执行环境中操作跨链数据的离链智能合约服务。
具体地,所描述的技术引入公有附属区块链(也称为“侧链”),其用于验证存储在联盟区块链中的数据的完整性。由于侧链是公有的,因此大量节点可以参与共识过程,从而确保侧链中数据的完整性。联盟区块链上每笔交易的代表被存储在侧链中。因此,为了更改联盟区块链中的数据,攻击者还必须对公有侧链进行相应的更改。由于针对公有侧链的共识过程所涉及节点的数量,在公有侧链中进行这样的更改将比在联盟区块链中更加困难。以这种方式,可以确保联盟区块链中的数据的完整性。此外,所描述的技术提供基于智能合约的激励机制,以提高公有侧链中的节点参与程度。智能合约可以是被设计为以信息方式传播、验证或强制执行合约的计算机协议。智能合约允许在不涉及第三方的情况下执行信任的交易。这些交易是可追溯的且不可逆转的。
所描述的技术可具有多种应用。例如,在版权侵权诉讼期间,原告需要向法院提供某种类型的数字证据,以显示她创作原始作品的确切时间。如果原告提交的数字证据最初存储在联盟区块链中,则可能无法满足举证责任的要求,因为法院无法确定该数字证据未被篡改。为了建立法院可接受的证据记录,原告可以通过验证系统使用所描述的技术存储数据证据。在提交证据时,原告可以将存储在联盟区块链中的数字证据和由验证节点提交的数字证据的副本一起提交。这样,因为大量的验证节点证实了数字证据的真实性,法院将更有可能承认该数字证据的真实性。
除了上面讨论的示例之外,所描述的技术可以使许多其他利用区块链技术的应用受益。
图1描绘了可用于执行本文实施方式的环境100的示例。在一些示例中,示例环境100使实体能够参与到区块链网络102中。示例环境100包括计算设备106,108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110能够与区块链网络102和在区块链网络102内部进行通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是云计算系统(未示出)的节点,或者每个计算设备106、108可以是单独的云计算系统,该云计算系统包括通过网络互连的、并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至区块链网络102中的任何适当的计算系统120。计算系统的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算设备106、108承载一个或多个由计算机实施的服务,用于与区块链网络102进行交互。例如,计算设备106可以承载第一实体(例如,参与者A)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。计算设备108可以承载第二实体(例如,参与者B)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。在图1的示例中,区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),且计算设备106、108分别提供参与区块链网络102的第一实体和第二实体的节点。
图2描绘了根据本文实施方式的概念架构200的示例。概念架构200的示例包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如本文进一步详述,尽管在区块链网络212中示意性地描述了一个区块链216,但是在区块链网络212上提供中并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的监视节点),而其他节点214不参与此共识过程。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216”、216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于有价物(例如,资产、产品、服务、货币)的交换。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的过程。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并竞相将区块添加到区块链中。这样的节点被称为矿工(或监视节点)。上文介绍的POW用作非限制性示例。
矿工节点执行共识过程以将交易添加到区块链中。尽管多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将他们的区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,最多达到可添加到区块的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与者的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查是否有任何交易已经包含在区块链的区块中。如果交易已包含在另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。矿工还确定区块链中最近的区块(即,添加到区块链中的最后一个区块)的哈希值。矿工节点还向区块头添加随机数(nonce)和时间戳。在挖矿过程中,矿工节点尝试查找满足所需参数的哈希值。矿工节点不断更改随机数,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,矿工节点之一找到满足所需参数的哈希值,并将其通告给区块链网络中的所有其他矿工节点。其他矿工节点验证该哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到他们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上是一致的。上述过程是POW共识协议。
参考图2提供了非限制性示例。在此示例中,参与者A想要向参与者B发送一定数量的资金。参与者A生成交易消息(例如,包括发送方、接收方和数值字段),并将交易消息发送到区块链网络,从而将交易消息添加到了交易池中。区块链网络中的每个矿工节点创建一个区块,从交易池中取出所有交易(例如,最多达到可添加到区块的交易数量的预定限制,如果有的话),并将交易添加到区块。以这种方式,参与者A发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3描绘了根据本文实施方式的可用于执行本文实施方式的系统300的示例。
如图3所示,系统300包括联盟区块链网络302,其包括维护联盟区块链306的节点304a-304e。系统300包括验证系统316、激励系统320和公有侧链网络352。公有侧链网络352包括:多个验证节点330、公有区块链356和维护公有区块链356的公有区块链节点(例如,354)。
在操作中,联盟区块链网络302(即,节点304a-e)接收存储数据的请求(360)。节点304a-e根据上述机制将数据存储在联盟区块链306中。一旦存储的数据被添加到区块链306,验证系统316(在362)接收所存储的数据。例如,验证系统可以监视联盟区块链网络302,并且一旦包括数据的链上的节点304a-e达成共识,则确定数据已被存储。
在一些实施方式中,验证系统316负责联盟区块链网络302与公有侧链网络352之间的交互。在操作中,验证系统316(在366)向验证节点330发送所存储的数据的数据摘要。在一些实施方式中,验证节点330是参与公有侧链网络352的计算设备。可能存在大量(例如,数千)验证节点330。在一些情况下,验证系统316可以向公有侧链网络352广播数据摘要。验证节点330在接收到数据摘要时,使用它们的私钥对数据摘要进行加密地签名。然后,每个验证节点尝试将其签名的数据摘要存储在公有区块链356中。在一些实施方式中,由验证节点330产生的所有签名的数据摘要被存储在公有区块链356中。在一些情况下,一定数量的签名的数据摘要被存储在公有区块链356中,其余被丢弃。该数量可以是公有侧链网络352中使用的共识机制的函数。
系统300还可以包括激励系统320。在一些实施方式中,激励系统320可以生成待存储在公有区块链网络356中的智能合约。智能合约可以被配置为当由公有侧链网络执行时向参与验证所存储数据的验证节点330提供货币奖励。例如,在公有区块链356中成功包括其签名的数据摘要的验证节点330可以通过执行智能合约自动接收货币奖励。在一些情况下,参与验证从联盟区块链请求的数据的验证节点330(参见下面的图5)可以通过执行智能合约自动接收货币奖励。
图4描绘了根据本文各方面的在联盟区块链网络和相关的公有侧链网络中存储数据的示例过程400。
在405,数据项被存储在联盟区块链网络302中。在410,验证系统316例如通过与参与网络的节点通信,从联盟区块链网络302接收新存储的数据。在415,验证系统316创建新存储的数据项的数据摘要。例如,验证系统316可以通过使用诸如安全哈希算法1(SHA-1)、SHA-256、Rivest-Shamir-Adleman(RSA)或其他已知算法等的哈希算法生成存储的数据项的哈希值来创建数据摘要。
在420,验证系统316请求由验证节点330验证数据摘要。作为响应,在425,验证节点330使用它们的私钥对数据摘要加密地签名。在430,验证节点330将它们各自签名的数据摘要存储在由公有侧链网络352管理的公有区块链356中。如上所述,在一些实施方式中,依据公有侧链网络352所采用的共识机制,仅一定数量的数据摘要将存储在公有区块链356中。
图5描绘了从联盟区块链网络302检索数据、并基于公有侧链网络352验证检索到的数据的示例性过程。在505,由联盟区块链网络302(即,由参与联盟区块链网络的节点)接收检索数据的请求。在一些实施方式中,该请求可以由验证系统316接收。
在510,验证系统316从联盟区块链网络302检索所请求的数据,例如通过从联盟区块链306的共识版本获得所请求的数据。在515,验证系统316从公有侧链网络352检索与所请求的数据相关联的签名的数据摘要。在一些情况下,可以基于与所存储的数据相关联的标识符来检索签名的摘要,例如与签名的数据摘要一起由验证节点330存储在公有区块链356中的时间戳或其他标识符。
在520,验证系统316从验证节点330请求所检索数据的签名的数据摘要。验证系统316可以使用上述哈希算法创建所检索数据的数据摘要。在525,验证系统316向验证节点330发送数据摘要,使得验证节点330可以各自对所检索数据的数据摘要加密地签名,并在530将它们签名版本的数据摘要返给验证系统316。
在535,验证系统316将从验证节点330接收的所检索数据的签名数据摘要与从公有区块链356检索到(在最初将数据存储在联盟区块链网络中时创建的,见图4)的签名数据摘要进行比较。如果从验证节点330接收的所检索数据的签名数据摘要与从公有区块链356检索到的签名数据摘要匹配,则联盟区块链网络302中存储的数据自最初存储以来未被改变(540)。
此过程验证所请求数据尚未被改变,因为如果它从未被改变,则由验证节点330产生的所检索数据的签名数据摘要的值将与先前存储的、最初存储数据时创建的数据摘要匹配。如果数据在存储在联盟区块链中之后已经改变,则所检索数据的签名数据摘要将与最初存储数据时存储在公有区块链356中的数据摘要不匹配。
在一些情况下,在520,验证系统316可以仅从成功地将其签名的数据摘要插入到公有区块链356中的验证节点请求签名的数据摘要。例如,验证节点330可以各自尝试将标识特定节点的独特标识符(例如,公钥)与数据摘要一起存储。因此,仅查询包含在公有区块链356的共识版本中的条目。
在一些情况下,在将数据存储到联盟区块链306时,验证系统316可以仅请求来自一组特定验证节点330的验证。在这种情况下,当验证从联盟区块链306检索到的数据没有改变时,验证系统316可以仅查询针对签名数据摘要的特定节点集。
图6描绘了根据本文实施方式的可执行过程600的示例。在一些实施方式中,可以使用一个或多个计算设备执行一个或多个计算机可执行程序来执行过程600的示例。为了清楚地呈现,以下描述总体地描述了在本文中的其他附图背景中的过程600。然而,应当理解,过程600可以例如通过任何合适的系统、环境、软件和硬件,或者系统、环境、软件和硬件的适当组合来执行。在一些实施方式中,过程600的各个步骤可以并行、组合、循环或以任何顺序运行。
在602,将数据项存储在由联盟区块链网络维护的联盟区块链中。
在604,基于所存储的数据项生成第一数据摘要。
在606,将第一数据摘要发送给验证节点,使得每个验证节点对第一数据摘要加密地签名,并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中。在一些实施方式中,验证节点是参与公有区块链网络的计算设备。在一些实施方式中,每个验证节点被配置为使用与该验证节点相关联的私钥对第一数据摘要加密地签名。在一些实施方式中,将第一数据摘要发送给验证节点包括将第一数据摘要广播到公有区块链网络。
在608处,接收请求以检索存储的数据项。
在610处,响应于接收该请求,从联盟区块链中检索请求的数据项。
在612处,基于所检索到的数据项生成第二数据摘要。在一些实施方式中,生成第一数据摘要包括计算所存储数据项的哈希值。
在614,将第二数据摘要发送给验证节点,使得每个验证节点可以对第二数据摘要加密地签名并返回其签名的第二数据摘要。
在616,从验证节点接收签名的第二数据摘要。
在618,从公有区块链检索签名的第一数据摘要。在一些实施方式中,从公有区块链检索签名的第一数据摘要包括:基于存储在公共区块链中的、与所存储的数据项相关联的标识符来识别签名的第一数据摘要。
在620,确定签名的第一数据摘要与签名的第二数据摘要匹配。
在622,响应于该确定,发送针对检索所存储数据项的响应,该响应表明所存储的数据项自存储以来未被改变。
在一些实施方式中,过程600还包括在公有区块链中存储智能合约,该智能合约被配置为响应于从验证节点接收所请求的签名的第二数据摘要向该验证节点提供货币奖励。
参考图7,图7描绘了根据本文实施方式的装置700的模块图的示例。装置700可以是用于存储和检索与区块链网络节点相关联的待验证数据的示例实施方式。装置700可以对应于图3-5中所示的实施方式。装置700包括以下:存储器或存储单元705,其被配置为将数据项存储在由联盟区块链网络维护的联盟区块链中;第一生成器或生成单元710,其被配置为基于所存储的数据项生成第一数据摘要;第一传输器或传输单元715,其被配置为向验证节点发送第一数据摘要,每个验证节点被配置为对其第一数据摘要加密地签名,并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;接收器或接收单元720,其被配置为接收检索所存储数据项的请求;第一检索单元725,其被配置为响应于接收到该请求从联盟区块链中检索所请求的数据项;第二生成器或生成单元730,其被配置为基于所检索到的数据项生成第二数据摘要;请求器或请求单元735,其被配置为向验证节点请求指定的第二数据摘要,并作为响应从验证节点接收所请求的签名的第二数据摘要;第二检索单元740,其被配置为从公有区块链中检索签名的第一数据摘要;确定单元745,其被配置为确定来自公有区块链的签名的第一数据摘要与从验证节点接收的签名的第二数据摘要匹配;第二传输器或传输单元750,其被配置为响应于该确定,发送对检索包括所存储数据项在内的存储数据的请求的响应,该响应表明所存储数据项自存储以来未被改变。
在一可选的实施方式中,验证节点是参与公有区块链网络的计算设备。
在一可选的实施方式中,装置700还包括以下:存储器或存储子单元,其被配置为在公有区块链中存储智能合约,该智能合约被配置为响应于从验证节点接收所请求的签名的第二数据摘要向验证节点提供货币奖励。
在一可选的实施方式中,装置700还包括以下:计算器或计算子单元,其被配置为计算所存储数据项的哈希值。
在一可选实施方式中,每个验证节点被配置为使用与该验证节点相关联的私钥对第一数据摘要加密地签名。
在一可选的实施方式中,装置700还包括以下:广播子单元,其被配置为将第一数据摘要广播到公有区块链网络。
在一可选的实施方式中,装置700还包括以下:识别器或识别子单元,其被配置为基于存储在公共区块链中的、与所存储的数据项相关联的标识符来识别签名的第一数据摘要。
在先前实施方式中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置中各个单元的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。
由于装置实施方式基本上对应于方法实施方式,相关部分可以参考方法实施方式中的相关描述。先前描述的设备实施方式仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置或者分布在多个网络单元上。可以基于实际需求选择一些或所有模块,以实现本文解决方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施方式。
图7是示出内部功能模块和联盟区块链网络装置的结构的示意图。本质上,执行主体实质上可以是电子设备,该电子设备包括以下:一个或多个处理器;存储器,其被配置为存储一个或多个处理器的可执行指令。
所述一个或多个处理器被配置为:将数据项存储在由联盟区块链网络维护的联盟区块链中;基于所存储的数据项生成第一数据摘要;将第一数据摘要发送给验证节点,每个验证节点被配置为对第一数据摘要加密地签名并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;接收检索所存储数据项的请求;响应于接收该请求,从联盟区块链中检索所请求的数据项;基于检索到的数据项生成第二数据摘要;向验证节点请求签名的第二数据摘要,并作为响应从节点接收所请求的签名的第二数据摘要;从公有区块链中检索签名的第一数据摘要;确定来自公有区块链的签名的第一数据摘要与从验证节点接收的签名的第二数据摘要匹配;并且响应于该确定,发送对检索包括所存储的数据项在内的存储数据的请求的响应,该响应表明所存储的数据项自存储以来未被改变。
可选地,验证节点是参与公有区块链网络的计算设备。
可选地,一个或多个处理器被配置为在公有区块链中存储智能合约,该智能合约被配置为响应于从验证节点接收所请求的签名的第二数据摘要向验证节点提供货币奖励。
可选地,一个或多个处理器被配置为计算所存储数据项的哈希值。
可选地,每个验证节点被配置为使用与该验证节点相关联的私钥对第一数据摘要加密地签名。
可选地,一个或多个处理器被配置为将第一数据摘要广播到公有区块链网络。
可选地,一个或多个处理器被配置为基于存储在公共区块链中的、与所存储的数据项相关联的标识符来识别签名的第一数据摘要。
本文中描述的主题和动作以及操作的实施可以在数字电子电路中、在有形体现的计算机软件或固件中和计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以由一个或多个计算机程序实施,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制其操作。载体可以是有形的非暂态计算机存储介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息用于传输到合适的接收设备以供数据处理设备执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
术语“数据处理装置”包括所有类型的用于处理数据的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈,数据库管理系统、操作系统或者它们中一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何编程语言的形式编写,包括编译或演绎性语言、说明或程序性语言;它可以被配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
本文中描述的过程和逻辑流程可由一台或多台计算机执行一个或多个计算机程序进行,以进行通过对输入数据进行运算并生成输出的操作。过程和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机将耦合到至少一个非暂态计算机可读存储介质(也称为计算机可读存储器)。耦合到计算机的存储介质可以是计算机的内部组件(例如,集成硬盘驱动器)或外部组件(例如,通用串行总线(USB)硬盘驱动器或通过网络访问的存储系统)。存储介质的示例可以包括例如,磁盘、磁光盘或光盘、固态驱动器、诸如云存储系统或其他类型存储媒介的网络存储资源。但是,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话,个人数字助理(PDA),移动音频或视频播放器,游戏控制台,全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。

Claims (20)

1.一种计算机实现的方法,包括:
将数据项存储在由联盟区块链网络维护的联盟区块链中;
基于所述存储的数据项生成第一数据摘要;
将所述第一数据摘要发送给公有区块链网络的多个验证节点的每一个,使得每个验证节点对所述第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;
接收检索所述存储的数据项的请求;
响应于接收所述请求,从所述联盟区块链中检索所请求的数据项;
基于所检索到的数据项生成第二数据摘要;
将所述第二数据摘要发送给所述多个验证节点,使得每个验证节点对所述第二数据摘要加密地签名、并返回其签名的第二数据摘要;
从所述多个验证节点接收所述签名的第二数据摘要;
从所述公有区块链中检索所述签名的第一数据摘要;
确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及
响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。
2.如权利要求1所述的计算机实现的方法,其中,所述多个验证节点为参与所述公有区块链网络的计算设备。
3.如权利要求1所述的计算机实现的方法,还包括:
在所述公有区块链中存储智能合约,
其中,所述智能合约被配置为响应于从所述验证节点接收到所请求的所述签名的第二数据摘要,向所述验证节点提供货币奖励。
4.如权利要求1所述的计算机实现的方法,其中,生成所述第一数据摘要包括:
计算所述存储的数据项的哈希值。
5.如权利要求1所述的计算机实现的方法,其中,每个验证节点被配置为:
使用与所述验证节点相关联的私钥对所述第一数据摘要加密地签名。
6.如权利要求1所述的计算机实现的方法,其中,将所述第一数据摘要发送给所述多个验证节点包括:
将所述第一数据摘要广播到所述公有区块链网络。
7.如权利要求1所述的计算机实现的方法,其中,从所述公有区块链检索所述签名的第一数据摘要包括:
基于存储在所述公有区块链中的、与所述存储的数据项相关联的标识符来识别所述签名的第一数据摘要。
8.一种非暂态计算机可读存储介质,其耦接到一个或多个计算机上并配置有能够由所述一个或多个计算机执行以实现以下操作的指令:
将数据项存储在由联盟区块链网络维护的联盟区块链中;
基于所述存储的数据项生成第一数据摘要;
将所述第一数据摘要发送给公有区块链网络的多个验证节点的每一个,使得每个验证节点对所述第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;
接收检索所述存储的数据项的请求;
响应于接收所述请求,从所述联盟区块链中检索所请求的数据项;
基于所检索到的数据项生成第二数据摘要;
将所述第二数据摘要发送给所述多个验证节点,使得每个验证节点对所述第二数据摘要加密地签名、并返回其签名的第二数据摘要;
从所述多个验证节点接收所述签名的第二数据摘要;
从所述公有区块链中检索所述签名的第一数据摘要;
确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及
响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。
9.如权利要求8所述的非暂态计算机可读存储介质,其中,所述多个验证节点为参与所述公有区块链网络的计算设备。
10.如权利要求8所述的非暂态计算机可读存储介质,还配置有能够由所述一个或多个计算机执行以实现以下操作的指令:
在所述公有区块链中存储智能合约,
其中,所述智能合约被配置为响应于从所述验证节点接收到所请求的所述签名的第二数据摘要,向所述验证节点提供货币奖励。
11.如权利要求8所述的非暂态计算机可读存储介质,其中,生成所述第一数据摘要包括:
计算所述存储的数据项的哈希值。
12.如权利要求8所述的非暂态计算机可读存储介质,其中,每个验证节点被配置为:
使用与所述验证节点相关联的私钥对所述第一数据摘要加密地签名。
13.如权利要求8所述的非暂态计算机可读存储介质,其中,将所述第一数据摘要发送给所述多个验证节点,包括:
将所述第一数据摘要广播到所述公有区块链网络。
14.如权利要求8所述的非暂态计算机可读存储介质,其中,从所述公有区块链检索所述签名的第一数据摘要,包括:
基于存储在所述公有区块链中的、与所述存储的数据项相关联的标识符来识别所述签名的第一数据摘要。
15.一种系统,包括:
一个或多个计算机;以及
一个或多个计算机可读存储器,其耦接到所述一个或多个计算机并配置有能够由所述一个或多个计算机执行以实现以下操作的指令:
将数据项存储在由联盟区块链网络维护的联盟区块链中;
基于所述存储的数据项生成第一数据摘要;
将所述第一数据摘要发送给公有区块链网络的多个验证节点的每一个,使得每个验证节点对所述第一数据摘要加密地签名、并将其签名的第一数据摘要存储在由公有区块链网络维护的公有区块链中;
接收检索所述存储的数据项的请求;
响应于接收所述请求,从所述联盟区块链中检索所请求的数据项;
基于所检索到的数据项生成第二数据摘要;
将所述第二数据摘要发送给所述多个验证节点,使得每个验证节点对所述第二数据摘要加密地签名、并返回其签名的第二数据摘要;
从所述多个验证节点接收所述签名的第二数据摘要;
从所述公有区块链中检索所述签名的第一数据摘要;
确定所述签名的第一数据摘要与所述签名的第二数据摘要匹配;以及
响应于所述确定,发送对检索所述存储的数据项的请求的响应,所述响应表明所述存储的数据项自存储以来未被改变。
16.如权利要求15所述的系统,其中,所述多个验证节点为参与所述公有区块链网络的计算设备。
17.如权利要求15所述的系统,其中,所述计算机可读存储器还配置有能够由所述一个或多个计算机执行的指令以:在所述公有区块链中存储智能合约,其中,所述智能合约被配置为响应于从所述验证节点接收到所请求的所述签名的第二数据摘要,向所述验证节点提供货币奖励。
18.如权利要求15所述的系统,其中,生成所述第一数据摘要包括计算所述存储的数据项的哈希值。
19.如权利要求15所述的系统,其中,每个验证节点被配置为使用与所述验证节点相关联的私钥对所述第一数据摘要加密地签名。
20.如权利要求15所述的系统,其中,将所述第一数据摘要发送给所述多个验证节点包括:将所述第一数据摘要广播到所述公有区块链网络。
CN201880004802.6A 2018-12-21 2018-12-21 使用公有侧链验证存储在联盟区块链中的数据的完整性 Active CN111566649B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/122559 WO2019072301A2 (en) 2018-12-21 2018-12-21 VERIFYING THE INTEGRITY OF STORED DATA IN A CONSORTIUM BLOCK CHAIN USING A PUBLIC SECONDARY CHAIN

Publications (2)

Publication Number Publication Date
CN111566649A CN111566649A (zh) 2020-08-21
CN111566649B true CN111566649B (zh) 2023-06-27

Family

ID=66100041

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880004802.6A Active CN111566649B (zh) 2018-12-21 2018-12-21 使用公有侧链验证存储在联盟区块链中的数据的完整性

Country Status (11)

Country Link
US (2) US10552641B2 (zh)
EP (2) EP3849133B1 (zh)
JP (1) JP6690066B2 (zh)
KR (1) KR102153845B1 (zh)
CN (1) CN111566649B (zh)
ES (1) ES2870657T3 (zh)
PH (1) PH12019501741A1 (zh)
PL (1) PL3571825T3 (zh)
SG (1) SG11201906830XA (zh)
TW (1) TWI714179B (zh)
WO (1) WO2019072301A2 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108694189B (zh) * 2017-04-07 2022-01-21 微软技术许可有限责任公司 共同所有权的数据库系统的管理
US10963542B2 (en) * 2019-05-13 2021-03-30 Advanced New Technologies Co., Ltd. Blockchain-based image processing method and apparatus
CN111066019B (zh) * 2019-05-15 2023-05-16 创新先进技术有限公司 处理存储在区块链网络中的数据元素
CN110300167B (zh) * 2019-06-28 2020-07-31 京东数字科技控股有限公司 基于区块链的业务信息处理方法、设备及可读存储介质
CN110474884B (zh) * 2019-07-24 2024-04-23 北京百度网讯科技有限公司 以太坊网络系统及通信方法、设备及计算机可读存储介质
CN111033491B (zh) * 2019-08-01 2023-06-30 创新先进技术有限公司 基于纠错编码存储共享的区块链数据
CN110457926A (zh) * 2019-08-13 2019-11-15 重庆邮电大学 一种工业物联网中基于数据加密存储的数据共享方法
EP3779755B1 (en) * 2019-08-14 2023-09-13 Fujitsu Limited A computer-implemented method for cross-chain-interoperability
CN110602096B (zh) 2019-09-12 2021-07-13 腾讯科技(深圳)有限公司 区块链网络中的数据处理方法、装置、存储介质和设备
JP7322621B2 (ja) * 2019-09-17 2023-08-08 富士通株式会社 取引記録装置、取引記録方法、および、取引記録プログラム
US11411721B2 (en) * 2019-09-27 2022-08-09 Cypherium Blockchain Inc. Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
US11196570B2 (en) * 2019-10-07 2021-12-07 Accenture Global Solutions Limited Cryptologic blockchain interoperability membership system
US11593316B2 (en) * 2019-10-16 2023-02-28 International Business Machines Corporation Database snapshot for managing state synchronization
JP7384044B2 (ja) * 2020-01-16 2023-11-21 富士通株式会社 検証方法、検証装置及び検証プログラム
SG11202012921XA (en) 2020-02-14 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Data authorization based on decentralized identifiers
CN111327623A (zh) * 2020-02-28 2020-06-23 上海哈世科技有限公司 联盟链信息传输方法、装置、设备及存储介质
CN111339116A (zh) * 2020-02-29 2020-06-26 中央财经大学 一种基于区块链的用于开放银行数据共享的方式
CN111404962B (zh) * 2020-03-26 2022-06-24 杭州复杂美科技有限公司 联盟链节点数据传输方法、设备和存储介质
CN111464310B (zh) * 2020-03-30 2023-06-13 烟台海颐软件股份有限公司 一种联盟链与Polkadot链混合链实现方法
CN111460400A (zh) * 2020-03-31 2020-07-28 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机可读存储介质
CN111639122B (zh) * 2020-04-08 2023-04-18 广东中科智能区块链技术有限公司 一种融合公有链的联盟链激励方案与装置
CN111565185B (zh) * 2020-04-29 2023-05-12 陈议尊 一种基于时分复用的信息摘要供需交易方法及系统
CN111614739B (zh) * 2020-05-08 2023-06-23 中国信息通信研究院 网络测量数据存储方法、装置和系统
CN111756545A (zh) * 2020-05-29 2020-10-09 中山大学深圳研究院 一种基于区块链数字签名技术的合同认证方法
CN111968000B (zh) * 2020-07-09 2022-03-08 南京邮电大学 一种基于双链机制的智慧农业数据监测与自动控制方法
CN112035894A (zh) * 2020-07-20 2020-12-04 江苏傲为控股有限公司 一种电子证据托管系统
CN111917748B (zh) * 2020-07-22 2022-10-11 上海飞博激光科技股份有限公司 基于ipfs+联盟链的智能激光器远程控制系统和方法
TWI752562B (zh) * 2020-07-22 2022-01-11 重量科技股份有限公司 區塊鏈資料標準化設備及其作業系統
CN111881486A (zh) * 2020-07-23 2020-11-03 中国工商银行股份有限公司 基于区块链的多方数据备份方法、装置及系统
CN112783973A (zh) * 2020-12-31 2021-05-11 中国人民银行数字货币研究所 确定数据完整性的方法、相关装置和数据完整性保护系统
CN113037753B (zh) * 2021-03-09 2022-02-01 电子科技大学 一种基于区块链的具有隐私保护性的加密数据共享方法
CN113141271B (zh) * 2021-04-20 2022-09-20 国网上海市电力公司 一种基于联盟链的变电站设备配置文件版本管理方法
CN113360458B (zh) * 2021-06-05 2023-05-26 湖南大学 一种基于联盟链的分布式文件存储共享系统
CN113761578A (zh) * 2021-09-10 2021-12-07 马治国 一种基于区块链的文书验真方法
IT202200011387A1 (it) * 2022-05-30 2023-11-30 Traent S R L Verifica pubblica di singola storia consistente di registri privati
IT202200011378A1 (it) * 2022-05-30 2023-11-30 Traent S R L Verifica di accettazione di dati condivisi tra una pluralità di nodi
WO2023250073A1 (en) * 2022-06-22 2023-12-28 Visa International Service Association System, method, and computer program product for preventing miner extractable value (mev) attacks in a blockchain network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292621A (zh) * 2017-06-22 2017-10-24 丁江 海量数据确权存证方法和节点
CN107342867A (zh) * 2017-07-07 2017-11-10 北京牛链科技有限公司 签名验签方法和装置
CN107395557A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188029A (ja) * 2010-03-04 2011-09-22 Fujitsu Ltd 電子署名装置、電子署名方法及びコンピュータプログラム
US20150206106A1 (en) * 2014-01-13 2015-07-23 Yaron Edan Yago Method for creating, issuing and redeeming payment assured contracts based on mathemematically and objectively verifiable criteria
WO2016161073A1 (en) * 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
CA3101781C (en) * 2015-12-22 2023-04-04 Financial & Risk Organisation Limited Methods and systems for identity creation, verification and management
KR101735708B1 (ko) * 2016-02-02 2017-05-15 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
JP6648555B2 (ja) * 2016-02-29 2020-02-14 富士ゼロックス株式会社 情報処理装置及びプログラム
WO2017170679A1 (ja) * 2016-03-31 2017-10-05 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
US10713731B2 (en) * 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
KR101841566B1 (ko) * 2016-10-11 2018-05-04 주식회사 코인플러그 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버
US10361853B2 (en) * 2016-10-12 2019-07-23 Bank Of America Corporation Automated data authentication and service authorization via cryptographic keys in a private blockchain
KR101837166B1 (ko) * 2016-10-26 2018-03-09 주식회사 코인플러그 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 통화를 발행 및 지급 결제하는 방법과 이를 이용한 서버
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
US10581621B2 (en) * 2017-05-18 2020-03-03 International Business Machines Corporation Enhanced chaincode analytics provenance in a blockchain
US10663303B2 (en) * 2017-06-12 2020-05-26 Panasonic Intellectual Property Management Co., Ltd. System and method for dynamically authenticating map data using blockchains
US10810683B2 (en) * 2017-11-21 2020-10-20 General Electric Company Hierarchical meta-ledger transaction recording
CN108092982B (zh) * 2017-12-22 2020-10-23 广东工业大学 一种基于联盟链的数据存储方法及系统
CA3089009A1 (en) * 2018-01-19 2019-07-25 Nasdaq, Inc. Systems and methods of digital content certification and verification using cryptography and blockchain
CN108924130B (zh) * 2018-07-02 2021-05-07 上海达家迎信息科技有限公司 一种区块数据的验证方法、装置、设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395557A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
CN107292621A (zh) * 2017-06-22 2017-10-24 丁江 海量数据确权存证方法和节点
CN107342867A (zh) * 2017-07-07 2017-11-10 北京牛链科技有限公司 签名验签方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
毕宇 ; .基于区块链智能合约的PKI-CA体系设计.金融科技时代.2018,(第07期),第44-46页. *

Also Published As

Publication number Publication date
EP3571825A4 (en) 2020-01-01
JP2020511809A (ja) 2020-04-16
EP3849133B1 (en) 2022-07-13
US10691835B1 (en) 2020-06-23
SG11201906830XA (en) 2019-08-27
PH12019501741A1 (en) 2020-06-01
TW202025664A (zh) 2020-07-01
JP6690066B2 (ja) 2020-04-28
EP3849133A1 (en) 2021-07-14
EP3571825A2 (en) 2019-11-27
US20200175207A1 (en) 2020-06-04
KR102153845B1 (ko) 2020-09-09
WO2019072301A3 (en) 2019-10-31
WO2019072301A2 (en) 2019-04-18
US20190278944A1 (en) 2019-09-12
EP3571825B1 (en) 2021-03-10
US10552641B2 (en) 2020-02-04
KR20200079218A (ko) 2020-07-02
CN111566649A (zh) 2020-08-21
ES2870657T3 (es) 2021-10-27
PL3571825T3 (pl) 2021-08-16
TWI714179B (zh) 2020-12-21

Similar Documents

Publication Publication Date Title
CN111566649B (zh) 使用公有侧链验证存储在联盟区块链中的数据的完整性
CN110520884B (zh) 基于可信执行环境的链外智能合约服务
EP3685334B1 (en) Improving integrity of communications between blockchain networks and external data sources
CN110300985B (zh) 基于智能合约白名单在区块链网络中并行执行交易
CN110892434B (zh) 基于区块链网络转移数字票券
CN110800252B (zh) 防止安全多方计算中错误表示输入数据的方法和系统
CN111066019B (zh) 处理存储在区块链网络中的数据元素
US11354656B2 (en) Smart contract whitelists
JP6921266B2 (ja) パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40036090

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant