CN111242617A - 用于执行交易正确性验证的方法及装置 - Google Patents
用于执行交易正确性验证的方法及装置 Download PDFInfo
- Publication number
- CN111242617A CN111242617A CN202010002500.4A CN202010002500A CN111242617A CN 111242617 A CN111242617 A CN 111242617A CN 202010002500 A CN202010002500 A CN 202010002500A CN 111242617 A CN111242617 A CN 111242617A
- Authority
- CN
- China
- Prior art keywords
- consensus
- transaction
- block
- verified
- correctness
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 187
- 238000000034 method Methods 0.000 title claims abstract description 131
- 238000012545 processing Methods 0.000 claims description 9
- 238000010200 validation analysis Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 52
- 238000010586 diagram Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书的实施例提供了用于执行交易正确性验证的方法,所述方法由区块链系统中的轻量节点执行,所述方法包括:从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
Description
技术领域
本说明书实施例涉及区块链技术领域,具体地,涉及用于执行交易正确性验证的方法及装置。
背景技术
区块链系统中包括全量节点和轻量节点,全量节点处维护有完整的区块链信息,而轻量节点处通常只需维护各个区块链的区块头信息。SPV(简单支付验证)是由轻量节点基于本地维护的区块头信息进行的支付验证技术。在现有技术中,轻量节点通常利用SPV验证技术对交易进行验证。如果要证明交易已被正确地执行,SPV验证需要包括存在性验证和正确性验证。SPV验证技术提供了存在性验证方法,然而轻量节点想要证明交易被被正确的共识节点执行了正确的共识过程,还存在许多困难。因此,现有技术中的亟需有效可行的交易正确性验证手段。
发明内容
鉴于上述,本说明书实施例提供了一种用于执行交易正确性验证的方法及装置。
根据本说明书实施例的一个方面,提供了一种用于执行交易正确性验证的方法,所述方法由区块链系统中的轻量节点执行,所述方法包括:从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
可选的,在一个示例中,在基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性之前,所述方法还可以包括:从所述全量节点处获取所述待验证区块的区块体信息;基于所述区块体信息,验证所述轻量节点处的所述待验证区块的区块头的正确性。基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性包括:基于所述区块头的正确性验证结果和所述区块证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
可选的,在一个示例中,基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性可以包括:利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从所述数字签名集合中还原出所述各个共识节点的公钥;以及基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述共识证明信息的正确性。
可选的,在一个示例中,基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述待验证区块中的交易的正确性可以包括:在所还原出的公钥中的至少部分被包括在所述公钥集合中并且被包括在所述公钥集合中的公钥数量满足共识规则时,确定所述共识证明信息是正确的。。
可选的,在一个示例中,所述公钥集合可以包括所述区块链系统中的所有参与共识的区块链节点的公钥,或所述公钥集合可以包括对所述轻量节点处的信任锚点进行共识的所有共识节点的公钥,所述信任锚点指示被验证为正确的信任区块。
可选的,在一个示例中,在从全量节点处获取待验证区块的共识证明信息之前,所述方法还可以包括:接收针对所述交易集合中的指定交易的交易正确性验证请求。从全量节点处获取待验证区块的共识证明信息可以包括:在接收到所述交易正确性验证请求时,从全量节点处获取待验证区块的共识证明信息。所述方法还可以包括:验证所述指定交易是否存在于所述交易集合中;以及基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
可选的,在一个示例中,在从全量节点处获取待验证区块的共识证明信息之前,所述方法还可以包括:监听是否存在包括指定交易的待验证区块。从全量节点处获取待验证区块的共识证明信息包括:在监听到存在包括所述指定交易的待验证区块时,从全量节点处获取所监听到的待验证区块的共识证明信息。
可选的,在一个示例中,所述方法还可以包括:接收针对所述交易集合中的指定交易的交易正确性验证请求;验证所述指定交易是否存在于所述交易集合中;以及基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
可选的,在一个示例中,所述区块链系统可以为联盟链系统。
根据本说明书实施例的另一方面,一种用于执行交易正确性验证的装置,所述装置用于区块链系统中的轻量节点,所述装置包括:共识证明信息获取单元,从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;共识证明信息验证单元,基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及交易集合验证单元,基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
可选的,在一个示例中,所述装置还可以包括:区块体信息获取单元,在基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性之前,从所述全量节点处获取所述待验证区块的区块体信息;区块头验证单元,基于所述区块体信息,验证所述轻量节点处的所述待验证区块的区块头的正确性。共识证明信息验证单元可以基于所述区块头的正确性验证结果和所述区块证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
可选的,在一个示例中,所述交易集合验证单元可以包括:公钥还原模块,利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从所述数字签名集合中还原出所述各个共识节点的公钥;以及共识证明信息验证模块,基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述共识证明信息的正确性。
可选的,在一个示例中,所述共识证明信息验证模块可以在所还原出的公钥中的至少部分被包括在所述公钥集合中并且被包括在所述公钥集合中的公钥数量满足共识规则时,确定所述共识证明信息是正确的。
可选的,在一个示例中,所述公钥集合包括所述区块链系统中的所有参与共识的区块链节点的公钥,或所述公钥集合包括对所述轻量节点处的信任锚点进行共识的所有共识节点的公钥,所述信任锚点指示被验证为正确的信任区块。
可选的,在一个示例中,在从全量节点处获取待验证区块的共识证明信息之前,所述装置还可以包括:验证请求接收单元,接收针对所述交易集合中的指定交易的交易正确性验证请求。所述共识证明信息获取单元在接收到所述交易正确性验证请求时,从全量节点处获取待验证区块的共识证明信息。所述装置还可以包括:存在性证明验证单元,验证所述指定交易是否存在于所述交易集合中;以及指定交易正确性确定单元,基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
可选的,在一个示例中,所述装置还可以包括:待验证区块监听单元,在从全量节点处获取待验证区块的共识证明信息之前,监听是否存在包括指定交易的待验证区块。所述共识证明信息获取单元可以在监听到存在包括所述指定交易的待验证区块时,从全量节点处获取所监听到的待验证区块的共识证明信息。
可选的,在一个示例中,所述装置还可以包括:验证请求接收单元,接收针对所述交易集合中的指定交易的交易正确性验证请求;存在性证明验证单元,验证所述指定交易是否存在于所述交易集合中;以及指定交易正确性确定单元,基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
根据本说明书实施例的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本说明书实施例的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本说明书实施例的方法和装置,可以通过对待验证区块的共识证明信息进行验证来验证待证明区块上的交易集合的正确性,从而轻量节点可以在不用访问多个全量节点的情况下对交易执行正确性验证。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本说明书实施例的实施例,但并不构成对本说明书实施例的实施例的限制。在附图中:
图1示出了可用于执行根据本说明书实施例的用于执行交易正确性验证的方法的环境的示例的示意图;
图2示出了执行根据本说明书实施例的用于执行交易正确性验证的方法的系统架构的示例的示意图;
图3示出了适用于区块链系统的共识过程的一个示例的流程图;
图4示出了根据本说明书实施例的用于执行交易正确性验证的方法所适用的区块链系统的一个示例的示意图;
图5是根据本说明书的一个实施例的用于执行交易正确性验证的方法的流程图;
图6是根据本说明书的一个实施例的用于执行交易正确性验证的方法中的共识证明信息验证过程的示例的流程图;
图7是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图;
图8是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图;
图9是用于说明本说明书实施例的用于执行交易正确性验证的方法中的交易存在性验证过程的示意图;
图10是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图;
图11是根据本说明书的一个实施例的用于执行交易正确性验证的装置的结构框图;
图12是图11所示的用于执行交易正确性验证的装置中的共识证明验证过程的结构框图;以及
图13是根据本说明书的一个实施例的用于实现用执行交易正确性验证的方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在本文中,术语“相连”是指两个组件之间直接机械连接、连通或电连接,或者通过中间组件来间接机械连接、连通或电连接。术语“电连接”是指两个组件之间可以进行电通信以进行数据/信息交换。同样,所述电连接可以指两个组件之间直接电连接,或者通过中间组件来间接电连接。所述电连接可以采用有线方式或无线方式来实现。
现在结合附图来描述本说明书实施例的用于执行交易正确性验证的方法及装置。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work),权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本说明书实施例中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类账被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有区块链节点按照相同的顺序执行交易,并且随后写入相同的分类账。
区块链是一种按照时间顺序来将数据区块顺序相连组合而成的链式数据结构,并且以密码学方式保证数据区块不可篡改和不可伪造。区块链包括一个或多个区块。区块链中的每个区块通过包括该区块链中紧接其之前的前一个区块的加密散列而链接到该前一个区块。每个区块还包括时间戳、该区块的加密哈希以及一个或多个交易(transaction)。对已经被区块链节点验证的交易进行哈希处理并形成Merkle树。在Merkle树中,对叶节点处的数据进行哈希处理,并且针对Merkle树的每个分支,在该分支的根处级联该分支的所有哈希值。针对Merkle树执行上述处理,直到整个Merkle树的根节点。Merkle树的根节点存储代表该Merkle树中的所有数据的哈希值。当一个哈希值声称是Merkle树中存储的交易时,可以通过判断该哈希值是否与Merkle树的结构一致来进行快速验证。
区块链是用于存储交易的数据结构。区块链网络是用于管理、更新和维护一个或多个区块链结构的计算节点网络。如上所述,区块链网络可以包括公有区块链网络、私有区块链网络或联盟区块链网络。
在公有区块链网络中,共识过程由共识网络的节点控制。例如,在公有区块链网络中可以存在成千上万个实体协作处理,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是参与实体的公有网络。在一些示例中,大多数实体(节点)必须按序对每个区块进行签名,并且将签名后的区块添加到区块链网络的区块链中。公有区块链网络的示例可以包括特定对等支付网络。此外,术语“区块链”不特别指代任何特定的区块链。
公有区块链网络支持公有交易。公有交易在公有区块链网络内的所有节点之间共享,并且存储在全局区块链中。全局区块链是指跨所有节点复制的区块链。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实现共识协议。共识协议的示例包括但不限于:工作量证明(POW,proof-of-work)、权益证明(POS,proof-of-stake)和权威证明(POA,proof-of-authority)。在本公开中,采用POW作为非限制性示例。
私有区块链网络被提供来用于特定实体。私有区块链网络中的各个节点的读写权限被严格控制。因此,私有区块链网络通常也称为许可网络,其对允许谁参与网络以及的网络参与水平(例如,仅在某些交易情形下)进行限制。在私有区块链网络中,可以使用各种类型的访问控制机制(例如,现有参与方对添加新实体进行投票,监管机构控制许可等)。
联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权节点控制。例如,由若干个(例如,10个)实体(例如,金融机构,保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是参与实体的私有网络。在一些示例中,每个参与实体(节点)必须按序对每个区块进行签名,并将该区块添加到区块链。在一些示例中,可以由参与实体(节点)的子集(例如,至少7个实体)来对每个区块进行签名,并将该区块添加到区块链。
区块链是防篡改的共享数字分类账,其在公有或私有对等网络中记录交易。分类账被分发到网络中的所有成员节点,并且网络中发生的资产交易历史记录被永久记录在区块中。
共识机制确保分布式区块链网络中的所有网络节点按照相同的顺序执行交易,并且随后写入相同的分类账。
图1示出了可用于执行根据本公开的实施例的用于执行交易正确性验证的方法的环境100的示例的示意图。在一些示例中,环境100使得实体能够参与区块链网络102。如图1所示,环境100包括网络104、和计算设备/系统106、108。在一些示例中,网络104可以包括局域网(LAN),广域网(WAN),因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络104。在一些示例中,计算设备/系统106、108通过网络104相互通信,以及通过网络104实现与区块链网络102之间的通信,以及区块链网络102中的节点(或,节点设备)通过网络104来进行通信。通常,网络104表示一个或多个通信网络。在一些情况下,计算设备/系统106、108可以是云计算系统(未示出)的节点,或者每个计算设备/系统106、108可以是单独的云计算系统,其包括通过网络104互连的多个计算机并且用作分布式处理系统。
在所说明的示例中,计算设备/系统106、108中的每个可以包括能够参与作为区块链网络102中的节点的任何合适的计算系统。计算设备/系统的示例包括但不限于,服务器,台式计算机,笔记本电脑,平板电脑设备和智能手机等。在一些示例中,计算设备/系统106、108上可以安装有用于与区块链网络102交互的一个或多个计算机实现的服务。例如,计算设备/系统106可以上可以安装有第一实体(例如,用户A)的服务,比如,第一实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。计算设备/系统108可以上可以安装有第二实体(例如,用户B)的服务,比如,第二实体用于管理其与一个或多个其他实体(例如,其他用户)的交易的交易管理系统。在图1的示例中,区块链网络102被表示为节点的对等网络,并且计算设备/系统106、108分别作为参与区块链网络102的第一实体和第二实体的节点。
图2示出了执行根据本公开的实施例的用于执行交易正确性验证的方法的系统架构200的示例的示意图。系统架构200的示例包括分别与参与方A,参与方B和参与方C对应的参与方系统202、204、206。每个参与方(例如,用户,企业)参与被提供来作为对等网络的区块链网络212。区块链网络212包括多个节点214,其中,节点214中的至少一些节点在区块链216中记录信息,并且所记录的信息不可更改。尽管在区块链网络212内示意性地示出了单个区块链216,但是可以提供区块链216的多个副本,并且在区块链网络212中维护多个副本,如稍后详细描述的。
在所示出的示例中,每个参与方系统202、204、206分别由参与方A,参与方B和参与方C提供,或者被提供来作为参与方A,参与方B和参与方C,并且充当区块链网络212内的对应节点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)由一连串的区块组成,每个区块存储数据。数据的示例可以包括表示两个或更多参与方之间的交易的交易数据。在本公开中,交易被使用来作为非限制性示例,可以预期的是,任何适当的数据都可以存储在区块链中(例如,文档,图像,视频,音频)。交易的示例可以包括但不限于交换有价值的东西(例如,资产,产品,服务和货币等)。交易数据被不可更改地存储在区块链中。
在存储在区块中之前,对交易数据进行哈希处理。哈希处理是将(作为字符串数据提供的)交易数据转换为固定长度的哈希值(也被作为字符串数据提供)的过程。通过对交易数据进行哈希处理后,即使交易数据出现轻微更改,也会导致得到完全不同的哈希值。哈希值通常是通过使用哈希函数来对交易数据进行哈希处理而生成的。哈希函数的示例包括但不限于安全散列算法(SHA)-256,其输出256比特的哈希值。
多个交易的交易数据可以在被哈希化之后存储在区块中。例如,对两个交易数据进行哈希处理得到两个哈希值,然后,对所得到的两个哈希值再次进行哈希处理以得到另一哈希值。重复该过程,直到对于要存储在区块中的所有交易,得到单个哈希值。该哈希值被称为Merkle根哈希,并且被存储在区块的头部。任何交易的更改都会导致其哈希值发生变化,最终导致Merkle根哈希值发生变化。
通过共识协议来将区块添加到区块链中。区块链网络中的多个节点参与共识协议,并且经过竞争之后将区块添加到区块链中。这样的节点被称为矿工节点(或记账节点)。以上介绍的POW用作非限制性示例。
矿工节点执行共识过程来将交易(所对应的区块)添加到区块链。虽然多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞争以将其区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,直到达到在区块中可以包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与方的交易消息。矿工节点创建区块,并将交易添加到区块中。在将交易添加到区块之前,矿工节点检查待添加的交易中是否存在区块链的区块中具有的交易。如果该交易已被添加到另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并且成对地组合哈希值以生成进一步的哈希值,直到针对区块中的所有交易得到单个哈希值(Merkle根哈希)。然后,将Merkle根哈希添加到区块头中。矿工还确定区块链中的最新区块(即,添加到区块链的最后一个区块)的哈希值。矿工节点还可以在区块头中添加随机数值(noune值)和时间戳。在挖掘过程中,矿工节点尝试找到满足所需参数的哈希值。矿工节点不断更改nonce值,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,一个矿工节点找到满足所需参数的哈希值,并将该哈希值通告给区块链网络中的所有其他矿工节点。其他矿工节点验证哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到它们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上达成一致。上述过程是POW共识协议。
在图2所提供的示例中,参与方A想要向参与方B发送一定数量的资金。参与方A生成交易消息,并将交易消息发送到区块链网络,该交易消息被增加到交易池中。区块链网络中的每个矿工节点创建区块,并从交易池中获取交易,并将交易添加到区块。按照这种方式,参与方A所发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,实施密码技术来维护交易的隐私性。例如,如果两个节点想要保持交易私密性,使得区块链网络中的其他节点不能获悉交易细节,则节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以使用相同的密钥,因此每个节点都可以对交易数据进行加密/解密。
非对称加密中使用密钥对来进行加密和解密,且每个密钥对包括的私钥和公钥不同。对于一个节点来说,其具有的非对称加密的密钥对中的私钥需要保密存储;公钥可以公开出去,让其它节点获得。如果用公钥对数据进行加密,只有用对应的私钥才能解密。例如,再次参考图1。参与方A可以使用参与方B的公钥来加密数据,并将加密后的数据发送至参与方B。参与方B可以使用其私钥来解密从参与方A发来的加密数据(密文)并解密得到原始数据(明文)。使用节点的公钥加密的消息,只能使用成对秘钥中对应的私钥解密。
非对称加密还可以用于提供数字签名,这使得交易中的参与方能够确认交易中的其他参与方以及交易的有效性。例如,参与方A可以对消息进行数字签名,而另一个参与方B可以根据参与方A的数字签名确认消息是由该参与方A发送的。数字签名还可以用于确保消息在传输过程中不被篡改。例如,再次参考图1。参与方A将向参与方B发送消息。参与方A生成消息的哈希值,然后使用其私钥对哈希值进行加密来生成数字签名。参与方A将该数字签名附加到消息,并将具有数字签名的消息发送给参与方B。参与方B使用参与方A的公钥解密数字签名,从而解密出对应的哈希值。参与方B对所接收的消息进行哈希处理以得到另一哈希值,然后比较两个哈希值。如果哈希值相同,则参与方B可以确认该消息确实来自参与方A,并且未被篡改。
在本说明书实施例中,区块链节点可以是图1或图2中的任意参与方。
图3示出了适用于区块链系统的共识过程300的一个示例的示意图。如图3所示,C表示客户端(即轻量节点),R0为区块链系统的当前共识过程的主节点,以及R1、R2和R3为备份节点。
在请求阶段310,客户端C可以向主节点R0发送交易请求(Request),另外,客户端C也可以向区块链系统中的其他节点(例如,R1、R2和R3)发送该交易请求(图3中未示出),然后,该其他节点将所接收的交易请求转发给主节点R0。
在接收到交易请求(Request)之后,主节点R0与备份节点R1、R2以及R3进行共识处理。共识处理的过程包括:预准备阶段(pre-prepare)320、准备阶段(prepare)330以及确认阶段(commit)340。
在预准备阶段320,在接收到一定数量的交易请求后,主节点R0对所接收的交易排序并打包为消息m,然后生成预准备消息(Pre-prepare),并且在给定的时间间隔内,将预准备消息(Pre-prepare)发送(例如,广播)给备份节点R1、R2和R3。预准备消息(Pre-prepare)表明主节点R0正在启动共识过程。
如图3所示,主节点R0向区块链网络中的其他区块链节点R1,R2和R3发送Pre-prepare消息。注意,共识过程300被示为包括4个区块链节点R0,R1,R2和R3仅用于说明目的,共识过程300也可以包括任何合适数量的区块链节点。
在准备阶段330,对于每个备份节点(R1、R2或R3),在接收到预准备消息并验证预准备消息合法后,可以将预准备消息存储在本地日志中,并生成用于响应预准备消息的准备消息Prepare,再将所生成的准备消息Prepare广播至其他节点。准备消息Prepare指示备份节点已从主节点接收到预准备消息Pre-prepare,并且正在响应预准备消息Pre-prepare发送应答。
相应地,每个备份节点也会接收到其他备份节点发送的预准备消息。以备份节点R1为例,备份节点R1接收到主节点R0发送的预准备消息之后,会将生成的准备消息广播至主节点R0、备份节点R2和R3。相应地,备份节点R1也会接收到主节点R0、备份节点R2和R3发送的准备消息。
在确认阶段340,当区块链节点从其他区块链节点接收到足够数量的准备消息Prepare时,该区块链节点确定已经达成共识。例如,如果主节点R0或备份节点R1,R2或R3接收到法定数量(Quorum)的(例如,2f+1,其中f表示多个故障区块链节点)准备消息Prepare,则确定在区块链节点之间达成共识。然后,主节点R0或备份节点R1、R2或R3会向其他节点广播确认消息Commit。
在应答阶段350,在针对发起的提议达成共识后,所有参与共识的节点中的每一个在本地状态机中顺序执行预准备消息pre-prepare的消息m中的一组有序requests,并返回应答消息reply给客户端C。
图3中各个阶段所发送的消息数据格式可以参照本领域的公知常识。此外,图3仅仅是共识过程的一种示例,本说明书实施例中的区块链系统可以采用任意合适的共适过程来进行共识处理。
图4示出了根据本说明书实施例的用于执行交易正确性验证的方法所适用的区块链系统的一个示例的示意图。
如图4所示,区块链系统400中包括轻量节点和全量节点,全量节点包括区块链节点401、402等,轻量节点连接至一个或多个全量节点。例如,作为轻量节点的区块链节点401a、401b、401c与全量节点401连接,区块链节点402a、402b、402c与全量节点402连接。区块链系统400中的各个全量节点互相连接,各个全量节点可以作为记账节点(即共识节点)来基于区块链技术共同维护区块链系统中的所有交易的账本。记账节点可以执行交易验证、交易共识、区块生成等记账操作。全量节点通常会在本地维护区块链的所有数据,包括区块链中各个区块的区块体和区块头。轻量节点可以仅在本地存储区块链中各个区块的块头,以用于简单的验证操作(例如SPV验证)。轻量节点可以始终连接至相同的全量节点,还可以基于连接规则更换其所连接的全量节点,以降低信任风险。
各个区块链节点所发起的交易可以广播至区块链网络中,以进行共识处理。全量节点所发起的交易可以广播给各个其它全量节点,各个全量节点在接收到交易后可以广播给其所连接的轻量节点。轻量节点所发起的交易可以发送给该轻量节点所连接的全量节点,以由该全量节点广播至其它全量节点或轻量节点。轻量节点可以从与其连接的全量节点处下载区块头,以维护本地的区块链(只包括区块头的区块链),还可以根据自身操作的需要从该全量节点处获取区块体中的各个信息。轻量节点可以连接一个或多个客户端(附图中未示出)。客户端发起的交易可以经由轻量节点和轻量节点所连接的全量节点发送到区块链系统中,以对该交易进行记账处理。
本说明书实施例中的用于执行交正确性验证的方法由轻量节点执行。
图5是根据本说明书的一个实施例的用于执行交易正确性验证的方法的流程图。
如图5所示,在块520,从全量节点处获取待验证区块的共识证明信息。共识证明信息可以被包括在待验证区块的区块体中。轻量节点可以从与其连接的任意全量节点处获取待验证区块的共识证明信息。轻量节点可以向全量节点发送共识证明信息获取请求,以由全量节点将共识证明信息发送给轻量节点。在另一示例中,轻量节点可以在下载待验证区块的区块体之后,从区块体中获取共识证明信息。共识证明信息包括数字签名集合。数字签名集合是由对待验证区块达成共识的各个共识节点对待验证区块所对应的第一签名数据原文进行签名而得到的。共识节点可以是区块链系统中的任意全量节点。根据共识算法的不同,第一签名数据原文中的信息也可以不同。在一个示例中,第一签名数据原文可以包括证明摘要信息,证明摘要信息是在各个共识节点处基于第一证明依据信息生成的。
共识证明信息用于证明相应区块已被正确的共识节点执行了正确的共识过程,例如在基于PBFT的共识算法中,可以证明相应区块得到了不低于法定数量的共识节点的确认。各个共识节点可以在对相应区块达成共识时生成数字签名,并在将区块加入区块链时将各个共识节点的数字签名组装成数字签名集合,以生成共识证明信息。
以图3所示的共识过程为例,各个共识节点在确认阶段340收到不低于法定数量的准备消息时,可以基于在各自本地获取的第一证明依据信息生成证明摘要信息,然后利用各自的私钥对证明摘要信息进行签名以生成各自的数字签名。在生成数字签名之后,各个共识节点可以将数字签名包括在确认消息中广播给其他共识节点。各个共识节点在接收到足够数量(不低于f+1个)的确认消息之后,可以基于对该区块进行确认的各个共识节点的数字签名来组装生成共识证明信息,并将共识证明信息包括在相应区块的区块体中。
作为示例,用于生成证明摘要信息的证明依据信息可以包括基于相应区块的公钥集合生成的公钥集合标识信息、公钥集合中的公钥数量、待验证区块的父哈希、待验证区块的交易树根哈希、以及待验证区块的时间戳。公钥集合包括参与相应区块的共识过程的所有共识节点的公钥。当相应区块达成共识时,可以获取到对该区块进行共识的各个共识节点的公钥,以生成对应于该区块的公钥集合,然后可以基于该公钥集合中的各个公钥生成公钥集合标识信息和公钥数量。在一个示例中,可以基于各个公钥来生成默克尔树,该默克尔树的根哈希可以作为公钥集合标识信息。在另一示例中,可以对公钥集合进行哈希运算,并将所得的哈希值作为公钥集合标识。各个区块的父哈希(父区块的哈希值)、交易树根哈希以及时间戳可以从本地所维护的区块链的区块头信息中获取。为了进行区分,本说明书中将各个共识节点在生成签名数据时本地获取的证明依据信息描述为第一证明依据信息,并将轻量节点在进行交易正确性验证时本地获取的证明依据信息描述为第二证明依据信息,但第一和第二证明依据信息所包括的信息的类别是相同的。
在一个示例中,共识节点可以利用摘要算法对用于生成证明摘要信息的第一证明依据信息进行摘要运算以得到证明摘要信息。证明摘要算法可以是哈希运算或其它任意摘要算法,本说明书对此没有限制。在得到证明摘要信息之后,共识节点可以基于证明摘要信息生成第一签名原文信息。例如,可以将证明摘要信息作为第一签名原文信息,还可以进一步地对证明摘要信息进行规定的运算处理(例如哈希运算)之后生成第一签名原文信息。然后可以利用各自的私钥对第一签名原文信息进行签名以得到数字签名。
证明依据信息还可以包括待验证区块在区块链中的序号。根据区块链系统中所使用的共识算法的不同,证明依据信息还可以包括其它信息。例如,在联盟链中,对于诸如PBFT之类的存在主节点和节点更换的共识算法,证明依据信息还可以包括待验证区块所处的共识时代(View)标识。共识时代是指在区块链系统中,某一共识节点作为主节点的对应时间段。每当主节点不能正常执行主节点应执行的操作时,区块链系统可以触发主节点更换过程,在更换主节点之后,区块链系统进入另一个共识时代。共识节点可以对证明依据信息进行哈希运算后,将所得到的哈希值作为第一签名数据原文,然后利用各自的私钥对第一签名数据原文进行加密后生成对应的数字签名。
轻量节点在获取到待验证区块的共识证明信息之后,在块504,基于数字签名集合和轻量节点处的公钥集合验证共识证明信息的正确性。轻量节点本地可以存储有公钥集合。轻量节点处的公钥集合可以包括区块链系统中的所有参与共识的节点的公钥,还可以包括对信任锚点进行共识的各个共识节点的公钥。信任锚点可以指示已被验证为正确的信任区块。信任锚点可以是创世区块,创世区块所对应的公钥集合可以是在生成创世区块时区块链系统中所有共识节点的公钥。当信任区块不是创世区块时,信任区块可以是利用本说明书实施例中的交易正确性验证方法来进行验证的。在待验证区块中的交易集合被验证为正确时,可以将该待验证区块更新为新的信任锚点,并将对该待验证区块进行共识的各个共识节点的公钥更新为信任锚点的公钥集合。
图6是根据本说明书的一个实施例的用于执行交易正确性验证的方法中的共识证明信息验证过程的一个示例的流程图。
如图6所示,在块602,基于数字签名集合,利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从数字签名集合中还原出各个共识节点的公钥。在利用诸如椭圆曲线算法生成公私钥对的情形中,公钥是基于私钥生成的。因而,可以基于数字签名来还原出对应的公钥。数字签名中可以包括用于还原出公钥的信息。以SM2椭圆曲线算法为例,可以在数字签名中包括椭圆曲线点的坐标(x,y)和判断标识,判断标识用于判断椭圆曲线点的坐标y的奇偶性。轻量节点可以基于椭圆曲线点坐标和判断标识来恢复出相应共识节点的公钥。共识证明信息还可以包括第一签名数据原文,椭圆曲线点的坐标和判断标识可以被包括在第一签名数据原文中。还可以进一步基于第一签名数据原文来恢复出公钥。
在还原出各个公钥之后,在块604,基于所还原出的各个共识节点的公钥和轻量节点处的公钥集合,验证共识证明信息的正确性。轻量节点可以基于对应于待验证区块的共识规则来验证共识证明信息的正确性。例如,对于某些共识算法,可以在所还原出的各个公钥被包括在公钥集合中时,确定共识证明信息是正确的。如果所还原出的公钥被包括在公钥集合中,表明待验证区块已经过了正确的共识节点的共识。如果的还原出的公钥没有被包括在公钥集合中,或者部分未被包括在公钥集合中,表明待验证区块未被正确的共识节点共识。在诸如基于PDFT的共识算法中,可以在确定共识证明信息中的数字签名数量不低于法定数量时,从数字签名中还原出公钥。还可以进一步确定所还出原的公钥数量是否达到了法定数量。然后可以在所还原出的各个公钥均被包括在公钥集合中并且公钥数量达到法定数量时确定共识证明信息是正确的。
在一个示例中,即使被还原出的公钥不完全被包括在公钥集合中,如果所还原出的公钥中的至少部分被包括在公钥集合中,并且被包括在公钥集合中的公钥数量满足共识算法对于达成共识的共识规则,也可以确定待验证区块已被正确地共识。例如,对于基于PDFT的共识算法,如果包括在公钥集合中的公钥数量达到了法定数量,也能够证明待验证区块已被正确地共识。因而,可以在被包括在公钥集合中的被还原出的公钥数量达到法定数量时,确定共识证明信息是正确的。
轻量节点可以基于共识算法所对应的共识规则来确定共识证明信息的验证规则。例如,如果共识算法是PBFT算法,则需要在所还原出的公钥被包括在公钥集合中并且所还原出的公钥数量达到法定数量时,确定共识证明信息是正确的。共识算法可以是轻量节点已知的。在另一示例中,可以将共识算法包括在共识证明信息中,从而轻量节点可以从共识证明信息中获知验证规则。
此外,在共识证明信息包括第一签名数据原文时,轻量节点还可以对共识证明信息中的第一签名数据原文进行验证。轻量节点可以在本地获取用于生成签名数据原文的第二证明依据信息,并基于第二证明依据信息以及第一签名数据原文的生成规则来生成第二签名数据原文。然可以基于第一签名数据原文和第二签名数据原文之间的一致性来确定第一签名数据原文是否正确。当二者一致时,可以确定第一签名数据原文是正确的。在一个示例中,可以在第一签名数据原文被验证为正确时,从数字签名中恢复出公钥。
在对共识证明信息进行验证之后,在块560,基于共识证明信息的正确性验证结果,确定待验证区块中的交易集合的正确性。在共识证明信息被验证为正确时,表明待验证区块中的交易都经过了正确的共识过程,因而可以确定待验证区块的区块体是正确的,进而可以认为区块体中的各个交易都是正确的。
通过上述实施例,轻量节点不需要访问多个全量节点即可对待验证区块上的交易集合进行正确性验证。例如,在采用诸如基于PBFT的共识算法的区块链系统中,如果不采用本说明书中的正确性验证方法,轻量节点需要访问多个全量节点才能确定待验证区块是否被法定数量的正确节点正确地共识。然而在实践中,轻量节点难以连接到多个全量节点,因而难以顺利完成正确性验证。
在另一示例中,还可以对待验证区块的区块头进行验证,并在区块头和区块体中的交易集合都被验证为正确时确定待验证区块中的各个交易是正确的。以下将参照图7来说明该示例。图7是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图。
如图7所示,在块702和704,验证共识证明信息的正确性。可以利用本说明书中描述的共识证明信息验证过程来验证共识证明信息的正确性。共识证明信息为正确时,可以确定区块体是正确的。
如果共识证明信息的验证结果是正确的,则在块706,从全量节点处获取待验证区块的区块体信息。然后,在块708,基于区块体信息,验证轻量节点处的待验证区块的区块头的正确性。并在块710,确定区块头是否正确。
可以从全量节点处下载全部区块体信息,然后可以从区块体信息中提取出交易树信息。还可以仅从全量节点处获取交易树信息。在获取到交易树信息之后,可以基于交易树信息来验证区块头中的交易根是否正确。交易树例如可以是基于默克尔(Merkle)树生成的。在Merkle树中,叶子节点中存储有待验证区块中的各个交易的交易数据。可以基于各个叶子节点逐层向上计算二叉的上层节点,只到计算出Merkle根为止。然后可以比较计算所得的merkle根是否与区块头中的交易根一致。当二者一致时,可以确定区块头是正确的。此外,对于区块体还包括收据树和状态树的情形,区块头中还包括收据根和状态根。在该示例中,还可以在获取收据树信息、状态树信息之后,对区块头中的收据根和状态根进行验证,并在交易根、收据根和状态根均被验证为正确时,确定区块头是正确的。收据树和状态树也可以是基于Merkle树生成的,可以基于所获得的收据树信息和状态树信息计算出收据树和状态树的Merkle根,并分别比较二者所得到的Merkle根是否与区块头中的收据根和状态根一致。当计算得到的Merkle根与收据根和状态根一致时,可以确定收据根和状态根是正确的。在区块体还包括收据树和状态树的情形中,也可以不对收据根和状态根进行验证。
在待验证区块的区块头和区块体被验证为正确时,可以确定待验证区块是正确的,进而可以认为区块体中的所有交易都是正确的。因此,在块712,确定待验证区块上的交易集合是正确的。如果区块头或共识证明信息的验证结果是不正确的,则在块714,确定待验证区块上的交易集合是不正确的。为了节省轻量节点处的存储空间,在对待验证区块上的交易集合进行验证之后,可以删除所获得的区块体信息。在待验证区块上的交易集合被验证为正确时,可以将该待验证区块更新为信任锚点。
虽然图7示出的是在共识证明信息被验证为正确之后执行区块头验证过程,但是共识证明信息验证过程和区块头验证过程的执行顺序并没有限制。在另一示例中,二者可以并行执行,还可以在区块头信息验证为正确之后执行共识证明信息验证过程。
当待验证区块中的交易集合被验证为正确时,如果想要验证该待验证区块中的指定交易的正确性,可以验证该指定交易是否存在于待验证区块中。如果指定交易存在于待验证区块中(即对指定交易进行存在性验证),由于待验证区块中的所有交易都已被确定为正确的,则可以确定该指定交易也是正确的。以下,参照图8至图10来描述对指定交易的正确性验证过程。
图8是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图。
如图8所示,在块802,接收针对交易集合中的指定交易的交易正确性验证请求。交易正确性验证请求可以是与轻量节点连接的客户端所发出的。客户端可以针对其所发起的交易向轻量节点发送交易正确性验证请求。交易正确性验证请求中可以包括指定交易的交易哈希,和该指定交易所在区块的区块号。交易哈希和区块号可以是全量节点在将指定交易打包上链之后通过轻量节点通知给客户端的。区块号用于确定指定交易所在的区块,交易哈希可以用于对指定交易进行存在性验证。在另一示例中,交易正确性验证请求可以不包括区块号,轻量节点可以基于交易哈希向全量节点查询该指定交易所在的区块,全量节点可以将区块号发送给轻量节点。在确定指定交易所在的区块之后,轻量节点将该区块确定为待验证区块。
在接收到交易正确性验证请求之后,在块804,从全量节点处获取待验证区块的共识证明信息。然后,在块806,基于共识证明信息确定待验证区块的区块体中的交易集合的正确性。
接下来,在块808,对指定交易在待验证区块中的存在性进行验证。在得到交易集合验证结果和存在性验证结果之后,在块810,基于交易集合的正确性验证结果和指定交易的存在性验证结果,确定指定交易的正确性。可以在交易集合和存在性验证结果均为正确时,确定指定交易是正确的,即指定交易已被正确执行。待验证区块上的交易集合的正确性验证过程和存在性验证过程的执行顺序没有特别限制,二者也可以是并行的。
存在性验证(也可称为存在性证明)可以采取现有技术中的任意存在性验证方法来执行。以下参照图9对存在性验证的一个示例进行说明。
图9是用于说明本说明书实施例的用于执行交易正确性验证的方法中的交易存在性验证过程的示意图。
图9示出了基于Merkle树生成的交易树的一个示例。包括该交易树的区块中包括交易A至P。叶子节点中存储有各个交易的交易哈希HA至HP。轻量节点可以从所下载的区块体信息中获取交易树信息,然后从交易树中获取指定交易的查询路径中的各个叶子节点数据。在没有下载区块体信息的情况下,轻量节点可以向全量节点发送针对指定交易的交易树路径查询请求。全量节点可以将指定交易在交易树中的交易查询路径包括的叶子节点数据发送给轻量节点。
以图9中的交易K为例,从交易K的交易哈希HK所在的叶子节点至交易根HABCDEFGHIJKLMNOP的交易查询路径中的叶子节点数据包括HL、HIJ、HMNOP、HABCDEFGH。在获取这些叶子节点数据之后可以逐层进行二叉计算,以确定所得到的交易根是否与待验证区块的区块头中的交易根一致。具体地,指定交易K的交易哈希HK是已知的。因而,可以基于HK和HL计算得到HKL,然后可以基于HKL和所获取的HIJ计算得到HIJKL,然后可以基于HIJKL和所获取的HMNOP计算得到HIJKLMNOP,然后基于HIJKLMNOP和所获取的HABCDEFGH计算得到HABCDEFGHIJKLMNOP。然后可以比较HABCDEFGHIJKLMNOP与区块头中的交易根是否一致。当二者一致时,可以确定指定交易K的交易合希HK存在于交易树中,这表明交易K存在于待验证区块的交易集合中。当二者不一致时,表明交易K不在待验证区块的交易集合中。
交易集合的验证可以是在接收到针对指定交易的交易正确性验证请求之前执行的。随着区块链系统所处理的交易的增加,区块链上会不断生成新的区块,轻量节点可以根据自身情况来从全量节点处下载区块头,以更新本地的区块链数据。例如,轻量节点可以定期定量地从全量节点处下载区块头。轻量节点可以在更新本地区块链的过程中对区块进行交易集合的正确性验证。例如可以对加入到本地区块链中的区块逐一地进行交易集合的正确性验证。为了减轻轻量节点的负担,轻量节点可以仅对关联区块进行验证。关联区块是与该轻量节点有关的区块,例如可以是包括与该轻量节点连接的客户端所发起的交易的区块,还可以包括与其连接的客户端所关注的交易。在对交易集合进行验证之后,如果接收到了针对指定交易的交易正确性验证请求,可以进一步对指定交易进行存在性验证,以验证指定交易的正确性。以下参考图10对该示例进行说明。
图10是根据本说明书的另一实施例的用于执行交易正确性验证的方法的流程图。
如图10所示,在块1002,监听是否存在包括指定交易的待验证区块。并在块1004,确定是否监听到了包括指定交易的待验证区块。区块头可以包括交易收据标识信息,交易收据标识信息例如可以基于交易收据中的交易地址信息生成。交易收据标识信息例如可以是基于布隆过滤器生成的。交易在被执行之后,共识节点会将交易记录写入交易收据中。交易收据中包括与交易相关的信息。轻量节点可以基于布隆过滤器来监听与是否存在包括指定交易的区块。监听规则可以由客户端来设置。客户端可以在轻量节点处设置监听与其所发起的交易有关的信息。例如,可以监听交易发起方地址对应于客户端的账户地址的交易。还可以监听具体的某笔交易,例如,如果客户发起了一起交易是由账户地址A转账至账户地址B,则可以设置为监听交易发起方地址为A且交易对象地址为B的交易。轻量节点还可以监听与其连接的所有客户端有关的交易,例如可以监听交易发起方地址对应于其所连接的客户端的账户地址的交易。当监听规则是基于交易信息中的其它信息生成的时,可以基于交易收据信息中的对应信息来生成交易收据标识。
在监听到包括指定交易的待验证区块时,在块1006,从全量节点处获取待验证区块的共识证明信息。然后,在块1008,基于共识证明信息确定待验证区块的区块体中的交易集合的正确性。在对待验证区块上的交易集合的正确性进行验证之后,如果客户端请求对待验证区块上的特定交易进行验证,则不必再次执行交易集合的正确性验证过程,而可以只对指定交易是否存在于待验证区块进行验证。
轻量节点可以对监听客户端发送的交易正确性验证请求,并在块1010,判断是否接收到了针对指定交易的交易正确性验证请求。如果接收到交易正确性验证请求,在块1010,对指定交易进行存在性验证。存在性验证过程可以采用如上示例中描述的方法来执行。
在获得存在性验证结果和交易集合的正确性验证结果之后,在块1012,基于交易集合的正确性验证结果和指定交易的存在性验证结果,确定指定交易的正确性。当待验证区块上的交易集合被验证为正确,并且指定交易存在于待验征区块上时,可以确定指定交易是正确的。
轻量节点在接收到交易正确性请求之后,可首先确定该指定交易所在的区块是否已被执行过交易集合正确性验证过程。如果指定交易所在的区块没有执行过交易集合正确性验证过程,则可以采用图8所示的示例来进行交易正确性验证。
图11是根据本说明书的一个实施例的用于执行交易正确性验证的装置的结构框图。如图11所示,交易正确性验证执行装置1100包括共识证明信息获取单元1110、共识证明信息验证单元1120、交易集合验证单元1130、区块体信息获取单元1140、区块头验证单元1150、待验证区块监听单元1160、验证请求接收单元1170、存在性验证单元1180和指定交易正确性确定单元1190。
共识证明信息获取单元1110从全量节点处获取待验证区块的共识证明信息。共识证明信息包括数字签名集合,数字签名集合是对待验证区块达成共识的各个共识节点对待验证区块所对应的第一签名数据原文进行签名而得到的。共识证明信息验证单元1120基于数字签名集合和轻量节点处的公钥集合验证共识证明信息的正确性,公钥集合包括区块系统中的至少部分区块链节点的公钥。在一个示例中,公钥集合可以包括区块链系统中的所有参与共识的区块链节点的公钥。在另一示例中,公钥集合可以包括对轻量节点处的信任锚点进行共识的所有共识节点的公钥,信任锚点指示被验证为正确的信任区块。交易集合验证单元1130基于共识证明信息的正确性验证结果,确定待验证区块中的交易集合的正确性。
可区块体信息获取单元1140在基于共识证明信息的正确性验证结果,确定待验证区块中的交易集合的正确性之前,从全量节点处获取待验证区块的区块体信息。区块头验证单元1150基于区块体信息,验证轻量节点处的待验证区块的交易根的正确性。交易集合验证单元1130可以基于交易根的正确性验证结果和区块证明信息的正确性验证结果,确定待验证区块中的交易集合的正确性。
待验证区块监听单元1160在从全量节点处获取待验证区块的共识证明信息之前,监听是否存在包括指定交易的待验证区块。共识证明信息获取单元1110可以在监听到存在包括指定交易的待验证区块时,从全量节点处获取所监听到的待验证区块的共识证明信息。
验证请求接收单元1170接收针对交易集合中的指定交易的交易正确性验证请求。存在性证明验证单元1180验证指定交易是否存在于交易集合中。指定交易正确性确定单元1190基于交易集合的正确性验证结果和指定交易在待验证区块中的存在性验证结果,确定指定交易的正确性。
验证请求接收单元1170还可以在从全量节点处获取待验证区块的共识证明信息之前,接收针对交易集合中的指定交易的交易正确性验证请求。在该示例中,共识证明信息获取单元1110可以在接收到所述交易正确性验证请求时,从全量节点处获取待验证区块的共识证明信息。
图11中的各个单元并不都是必要的,交易正确性验证执行装置可以不包括其中的部分单元。例如,在一个示例中,可以不包括待验证区块监听单元,还可以不包括验证请求接收单元、存在性验证单元、指定交易正确性确定单元等,还可以不包括区块体信息获取单元和区块头验证单元。
图12是图11所示的用于执行交易正确性验证的装置中的共识证明验证过程的结构框图。如图12所示,交易集合验证单元1120包括公钥还原模块1121和共识证明信息验证模块1122。
公钥还原模块1121利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从数字签名集合中还原出各个共识节点的公钥。共识证明信息验证模块1122基于所还原出的各个共识节点的公钥和轻量节点处的公钥集合,验证共识证明信息的正确性。在一个示例中,共识证明信息验证模块1122可以在所还原出的公钥中的至少部分被包括在所述公钥集合中并且被包括在所述公钥集合中的公钥数量满足共识规则时,确定所述共识证明信息是正确的。
以上参照图1到图12,对根据本说明书实施例的用于执行交易正确性验证的方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本说明书实施例的装置的实施例。
本说明书实施例的用于执行交易正确性验证的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本说明书实施例的用于执行交易正确性验证的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,用于执行交易正确性验证的装置例如可以利用计算设备实现。
图13是根据本说明书的一个实施例的用于实现用执行交易正确性验证的方法的计算设备的结构框图。如图13所示,计算设备1300包括处理器1313、存储器1320、内存1330、通信接口1340和内部总线1350,并且处理器1213、存储器(例如,非易失性存储器)1320、内存1330、通信接口1340经由总线1350连接在一起。根据一个实施例,计算设备1300可以包括至少一个处理器1313,该至少一个处理器1313执行在计算机可读存储介质(即,存储器1320)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器1320中存储计算机可执行指令,其当执行时使得至少一个处理器1313:从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。。
应该理解,在存储器1320中存储的计算机可执行指令当执行时使得至少一个处理器1313进行本说明书实施例的各个实施例中以上结合图1-12描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书实施例的各个实施例中以上结合图1-12描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书实施例的实施例的可选实施方式,但是,本说明书实施例的实施例并不限于上述实施方式中的具体细节,在本说明书实施例的实施例的技术构思范围内,可以对本说明书实施例的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书实施例的实施例的保护范围。
本说明书实施例内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书实施例内容。对于本领域普通技术人员来说,对本说明书实施例内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书实施例内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书实施例内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (19)
1.一种用于执行交易正确性验证的方法,所述方法由区块链系统中的轻量节点执行,所述方法包括:
从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;
基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及
基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
2.如权利要求1所述的方法,其中,在基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性之前,所述方法还包括:
从所述全量节点处获取所述待验证区块的区块体信息;
基于所述区块体信息,验证所述轻量节点处的所述待验证区块的交易根的正确性,
基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性包括:
基于所述交易根的正确性验证结果和所述区块证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
3.如权利要求1所述的方法,其中,基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性包括:
利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从所述数字签名集合中还原出所述各个共识节点的公钥;以及
基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述共识证明信息的正确性。
4.如权利要求3所述的方法,其中,基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述待验证区块中的交易的正确性包括:
在所还原出的公钥中的至少部分被包括在所述公钥集合中并且被包括在所述公钥集合中的公钥数量满足共识规则时,确定所述共识证明信息是正确的。
5.如权利要求1-4中任一所述的方法,其中,所述公钥集合包括所述区块链系统中的所有参与共识的区块链节点的公钥,或
所述公钥集合包括对所述轻量节点处的信任锚点进行共识的所有共识节点的公钥,所述信任锚点指示被验证为正确的信任区块。
6.如权利要求1-4中任一所述的方法,其中,在从全量节点处获取待验证区块的共识证明信息之前,所述方法还包括:
接收针对所述交易集合中的指定交易的交易正确性验证请求,
从全量节点处获取待验证区块的共识证明信息包括:
在接收到所述交易正确性验证请求时,从全量节点处获取待验证区块的共识证明信息,
所述方法还包括:
验证所述指定交易是否存在于所述交易集合中;以及
基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
7.如权利要求1-4中任一所述的方法,其中,在从全量节点处获取待验证区块的共识证明信息之前,所述方法还包括:
监听是否存在包括指定交易的待验证区块;
从全量节点处获取待验证区块的共识证明信息包括:
在监听到存在包括所述指定交易的待验证区块时,从全量节点处获取所监听到的待验证区块的共识证明信息。
8.如权利要求7所述的方法,还包括:
接收针对所述交易集合中的指定交易的交易正确性验证请求;
验证所述指定交易是否存在于所述交易集合中;
基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
9.如权利要求1-4任一所述的方法,其中,所述区块链系统为联盟链系统。
10.一种用于执行交易正确性验证的装置,所述装置用于区块链系统中的轻量节点,所述装置包括:
共识证明信息获取单元,从全量节点处获取待验证区块的共识证明信息,所述共识证明信息包括数字签名集合,所述数字签名集合是对所述待验证区块达成共识的各个共识节点对所述待验证区块所对应的第一签名数据原文进行签名而得到的;
共识证明信息验证单元,基于所述数字签名集合和所述轻量节点处的公钥集合验证所述共识证明信息的正确性,所述公钥集合包括所述区块系统中的至少部分区块链节点的公钥;以及
交易集合验证单元,基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
11.如权利要求10所述的装置,还包括:
区块体信息获取单元,在基于所述共识证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性之前,从所述全量节点处获取所述待验证区块的区块体信息;
区块头验证单元,基于所述区块体信息,验证所述轻量节点处的所述待验证区块的区块头的正确性,
共识证明信息验证单元基于所述区块头的正确性验证结果和所述区块证明信息的正确性验证结果,确定所述待验证区块中的交易集合的正确性。
12.如权利要求10所述的装置,其中,所述交易集合验证单元包括:
公钥还原模块,利用各个共识节点对第一签名数据原文进行签名所使用的加密算法,从所述数字签名集合中还原出所述各个共识节点的公钥;以及
共识证明信息验证模块,基于所还原出的各个共识节点的公钥和所述轻量节点处的公钥集合,验证所述共识证明信息的正确性。
13.如权利要求12所述的装置,其中,所述共识证明信息验证模块在所还原出的公钥中的至少部分被包括在所述公钥集合中并且被包括在所述公钥集合中的公钥数量满足共识规则时,确定所述共识证明信息是正确的。
14.如权利要求10-13中任一所述的装置,其中,所述公钥集合包括所述区块链系统中的所有参与共识的区块链节点的公钥,或
所述公钥集合包括对所述轻量节点处的信任锚点进行共识的所有共识节点的公钥,所述信任锚点指示被验证为正确的信任区块。
15.如权利要求10-13中任一所述的装置,其中,在从全量节点处获取待验证区块的共识证明信息之前,所述装置还包括:
验证请求接收单元,接收针对所述交易集合中的指定交易的交易正确性验证请求,
所述共识证明信息获取单元在接收到所述交易正确性验证请求时,从全量节点处获取待验证区块的共识证明信息,
所述装置还包括:
存在性证明验证单元,验证所述指定交易是否存在于所述交易集合中;以及
指定交易正确性确定单元,基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
16.如权利要求10-13中任一所述的装置,其中,所述装置还包括:
待验证区块监听单元,在从全量节点处获取待验证区块的共识证明信息之前,监听是否存在包括指定交易的待验证区块;
所述共识证明信息获取单元在监听到存在包括所述指定交易的待验证区块时,从全量节点处获取所监听到的待验证区块的共识证明信息。
17.如权利要求16所述的装置,还包括:
验证请求接收单元,接收针对所述交易集合中的指定交易的交易正确性验证请求;
存在性证明验证单元,验证所述指定交易是否存在于所述交易集合中;以及
指定交易正确性确定单元,基于所述交易集合的正确性验证结果和所述指定交易在所述待验证区块中的存在性验证结果,确定所述指定交易的正确性。
18.一种计算设备,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到9中任一所述的方法。
19.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到9中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002500.4A CN111242617B (zh) | 2020-01-02 | 2020-01-02 | 用于执行交易正确性验证的方法及装置 |
PCT/CN2020/132060 WO2021135757A1 (zh) | 2020-01-02 | 2020-11-27 | 用于执行交易正确性验证的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002500.4A CN111242617B (zh) | 2020-01-02 | 2020-01-02 | 用于执行交易正确性验证的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111242617A true CN111242617A (zh) | 2020-06-05 |
CN111242617B CN111242617B (zh) | 2022-05-10 |
Family
ID=70879599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010002500.4A Active CN111242617B (zh) | 2020-01-02 | 2020-01-02 | 用于执行交易正确性验证的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111242617B (zh) |
WO (1) | WO2021135757A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881486A (zh) * | 2020-07-23 | 2020-11-03 | 中国工商银行股份有限公司 | 基于区块链的多方数据备份方法、装置及系统 |
CN112766971A (zh) * | 2021-03-30 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 在区块链中发送交易和执行交易的方法和装置 |
CN112883117A (zh) * | 2020-12-24 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
CN112967065A (zh) * | 2021-05-18 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种交易验证方法、装置、设备及存储介质 |
WO2021135757A1 (zh) * | 2020-01-02 | 2021-07-08 | 支付宝(杭州)信息技术有限公司 | 用于执行交易正确性验证的方法及装置 |
CN113746638A (zh) * | 2021-09-03 | 2021-12-03 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
CN114172689A (zh) * | 2021-11-11 | 2022-03-11 | 卓尔智联(武汉)研究院有限公司 | 一种信息处理方法及设备 |
WO2022057106A1 (zh) * | 2020-09-21 | 2022-03-24 | 江苏傲为控股有限公司 | 数字资产数据包的可信性验证系统 |
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
WO2022100679A1 (zh) * | 2020-11-16 | 2022-05-19 | 腾讯科技(深圳)有限公司 | 一种数据通信方法、装置、计算机设备及存储介质 |
CN115225639A (zh) * | 2022-09-15 | 2022-10-21 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378144B (zh) * | 2021-07-14 | 2022-09-02 | 湖北央中巨石信息技术有限公司 | 基于区块链的图像文件共识方法及系统及装置及介质 |
CN116781269A (zh) * | 2022-03-07 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备、介质及产品 |
CN114826617B (zh) * | 2022-04-29 | 2024-08-20 | 西北工业大学 | 工业物联网终端系统设计、数据验证方法及硬件加速装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681900A (zh) * | 2018-07-18 | 2018-10-19 | 众安信息技术服务有限公司 | 轻节点验证交易的方法 |
CN108711052A (zh) * | 2018-05-18 | 2018-10-26 | 电子科技大学 | 一种基于区块链的信息验证系统 |
CN108964982A (zh) * | 2018-06-13 | 2018-12-07 | 众安信息技术服务有限公司 | 用于实现区块链的多节点的部署的方法、装置及存储介质 |
CN108964926A (zh) * | 2018-08-28 | 2018-12-07 | 成都信息工程大学 | 异构联盟系统中基于二层区块链的用户信任协商建立方法 |
CN109102308A (zh) * | 2018-09-05 | 2018-12-28 | 深圳正品创想科技有限公司 | 基于区块链的商品信息维护方法、区块链节点及其系统 |
CN109241778A (zh) * | 2018-08-13 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链的公共交通数据处理方法和装置 |
CN109242500A (zh) * | 2018-09-20 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 区块链交易有效性验证方法、装置及存储介质 |
CN109863521A (zh) * | 2018-12-13 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 在区块链网络中的数据隔离 |
US20190303932A1 (en) * | 2018-03-28 | 2019-10-03 | NEC Laboratories Europe GmbH | Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts |
CN110601816A (zh) * | 2019-09-18 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链系统中轻量级节点控制方法及装置 |
CN110598456A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109118214B (zh) * | 2017-06-26 | 2020-11-17 | 华为技术有限公司 | 运行智能合约的方法和装置 |
CN109981279B (zh) * | 2017-12-28 | 2022-06-07 | 航天信息股份有限公司 | 一种区块链系统、通信方法、装置、设备及介质 |
CN109995536A (zh) * | 2019-03-15 | 2019-07-09 | 广州杰赛科技股份有限公司 | 一种区块链共识方法、装置及可读存储介质 |
CN110113388B (zh) * | 2019-04-17 | 2020-01-14 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110458560B (zh) * | 2019-07-12 | 2021-10-12 | 创新先进技术有限公司 | 用于进行交易验证的方法及装置 |
CN110597839B (zh) * | 2019-09-20 | 2024-07-23 | 腾讯科技(深圳)有限公司 | 交易数据处理方法、装置、设备以及存储介质 |
CN111242617B (zh) * | 2020-01-02 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 用于执行交易正确性验证的方法及装置 |
-
2020
- 2020-01-02 CN CN202010002500.4A patent/CN111242617B/zh active Active
- 2020-11-27 WO PCT/CN2020/132060 patent/WO2021135757A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303932A1 (en) * | 2018-03-28 | 2019-10-03 | NEC Laboratories Europe GmbH | Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts |
CN108711052A (zh) * | 2018-05-18 | 2018-10-26 | 电子科技大学 | 一种基于区块链的信息验证系统 |
CN108964982A (zh) * | 2018-06-13 | 2018-12-07 | 众安信息技术服务有限公司 | 用于实现区块链的多节点的部署的方法、装置及存储介质 |
CN108681900A (zh) * | 2018-07-18 | 2018-10-19 | 众安信息技术服务有限公司 | 轻节点验证交易的方法 |
CN109241778A (zh) * | 2018-08-13 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种基于区块链的公共交通数据处理方法和装置 |
CN108964926A (zh) * | 2018-08-28 | 2018-12-07 | 成都信息工程大学 | 异构联盟系统中基于二层区块链的用户信任协商建立方法 |
CN109102308A (zh) * | 2018-09-05 | 2018-12-28 | 深圳正品创想科技有限公司 | 基于区块链的商品信息维护方法、区块链节点及其系统 |
CN109242500A (zh) * | 2018-09-20 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 区块链交易有效性验证方法、装置及存储介质 |
CN109863521A (zh) * | 2018-12-13 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 在区块链网络中的数据隔离 |
CN110601816A (zh) * | 2019-09-18 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链系统中轻量级节点控制方法及装置 |
CN110598456A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种数据存储方法、装置、电子设备以及存储介质 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135757A1 (zh) * | 2020-01-02 | 2021-07-08 | 支付宝(杭州)信息技术有限公司 | 用于执行交易正确性验证的方法及装置 |
CN111881486A (zh) * | 2020-07-23 | 2020-11-03 | 中国工商银行股份有限公司 | 基于区块链的多方数据备份方法、装置及系统 |
WO2022057106A1 (zh) * | 2020-09-21 | 2022-03-24 | 江苏傲为控股有限公司 | 数字资产数据包的可信性验证系统 |
WO2022100679A1 (zh) * | 2020-11-16 | 2022-05-19 | 腾讯科技(深圳)有限公司 | 一种数据通信方法、装置、计算机设备及存储介质 |
CN112883117A (zh) * | 2020-12-24 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
CN112883117B (zh) * | 2020-12-24 | 2022-03-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
CN112766971A (zh) * | 2021-03-30 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 在区块链中发送交易和执行交易的方法和装置 |
CN112967065A (zh) * | 2021-05-18 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种交易验证方法、装置、设备及存储介质 |
CN113746638A (zh) * | 2021-09-03 | 2021-12-03 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
CN114172689A (zh) * | 2021-11-11 | 2022-03-11 | 卓尔智联(武汉)研究院有限公司 | 一种信息处理方法及设备 |
CN114172689B (zh) * | 2021-11-11 | 2023-11-28 | 卓尔智联(武汉)研究院有限公司 | 一种信息处理方法及设备 |
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
CN115225639A (zh) * | 2022-09-15 | 2022-10-21 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
CN115225639B (zh) * | 2022-09-15 | 2022-12-27 | 杭州趣链科技有限公司 | 共识可信集群的变更方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111242617B (zh) | 2022-05-10 |
WO2021135757A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242617B (zh) | 用于执行交易正确性验证的方法及装置 | |
CN111062716B (zh) | 生成区块链签名数据的方法及装置、区块链交易发起系统 | |
EP3673617B1 (en) | Retrieving public data for blockchain networks using trusted execution environments | |
US11050549B2 (en) | Blockchain-based transaction method and apparatus, and remitter device | |
CN111047324B (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
US10785035B1 (en) | Anti-replay attack authentication protocol | |
CN110458560B (zh) | 用于进行交易验证的方法及装置 | |
EP3673640B1 (en) | Processing data elements stored in blockchain networks | |
CN111080292B (zh) | 用于获取区块链交易签名数据的方法及装置 | |
CN111212139A (zh) | 对信任节点信息进行更新的方法及装置 | |
US20200366500A1 (en) | Managing blockchain-based centralized ledger systems | |
US10756896B2 (en) | Trustless account recovery | |
EP3808030B1 (en) | Managing blockchain-based centralized ledger systems | |
CN111241593A (zh) | 用于区块链节点的数据同步方法及装置 | |
CN110888933B (zh) | 信息提供方法、装置及系统和信息获取方法及装置 | |
CN111211876B (zh) | 发送针对数据请求的应答消息的方法及装置、区块链系统 | |
CN110852887B (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 | |
CN111144894B (zh) | Utxo处理方法及装置 | |
CN110827034B (zh) | 用于发起区块链交易的方法及装置 | |
CN111143381B (zh) | 用于更新多层块链式结构中的信任点的方法及装置 | |
CN111159286B (zh) | 用于生成多层块链式结构的方法及装置 | |
CN111162970B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240923 Address after: Room 803, 8th floor, 618 waima Road, Huangpu District, Shanghai 200001 Patentee after: Ant blockchain Technology (Shanghai) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |