CN116324781A - 一种安全的多分布式账本系统 - Google Patents

一种安全的多分布式账本系统 Download PDF

Info

Publication number
CN116324781A
CN116324781A CN202180066280.4A CN202180066280A CN116324781A CN 116324781 A CN116324781 A CN 116324781A CN 202180066280 A CN202180066280 A CN 202180066280A CN 116324781 A CN116324781 A CN 116324781A
Authority
CN
China
Prior art keywords
instructions
record
instruction
user
distributed ledger
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
Application number
CN202180066280.4A
Other languages
English (en)
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.)
Fastnet Network Ltd
Original Assignee
Fastnet Network 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 Fastnet Network Ltd filed Critical Fastnet Network Ltd
Publication of CN116324781A publication Critical patent/CN116324781A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及方法、系统、电子设备和计算机程序,以使用两个或两个以上的不同的分布式账本中的任一分布式账本来实现指令的执行。本公开提供一种计算机实现的方法,用于执行两个或两个以上不同分布式账本中的任一分布式账本发出的指令,其特征在于,该方法包括:监控多个分布式账本以获得包含待执行指令的分布式账本交易;识别多个第一分布式账本交易,其中,该多个第一分布式账本交易中的每一个均出现在所述多个分布式账本中的任一分布式账本中,多个第一分布式账本交易中的每一个都包括待执行指令;对识别出的所述多个第一分布式账本交易中的多个第一指令的至少部分进行验证;以及,对于多个第一指令中的每个通过验证的指令,执行该指令;以及,在电子数据记录中存储该已执行的指令的结果。例如,这可以使用户能够在两个或两个以上不同的分布式账本上发出指令,其中,这些指令被安全且连续地执行,并且无论每个指令是从哪个分布式账本中发出的,与被执行指令相关联的任何用户数据均可以连续且可靠地进行更新。

Description

一种安全的多分布式账本系统
技术领域
本公开涉及方法、系统、电子设备和计算机程序,以使用两个或两个以上不同的分布式账本中的任一分布式账本来实现指令的执行,例如使得可以使用两个或两个以上不同的分布式账本中的任一分布式账本来安全地控制用户相关数据。
背景技术
分布式账本技术(DLT)具有广泛的用途潜力,其提供了一种无需中央数据认证机构即可安全、可靠地存储数据的方法。因此,DLT可以在广泛的领域带来一系列技术优势,例如,包括改良的数据透明度、不依赖于特定存储实体的更强大的数据存储、改良的数据安全性和改良的抗欺诈能力,并且已经在电能分配和点对点云存储等不同领域中得到应用。
区块链是DLT的一个例子,并于2009年在一份名为“Bitcoin:A Peer-to-PeerElectronic Cash System”的白皮书中以Satoshi Nakamoto的名义首次出版。白皮书的副本可在以下位置找到:https://bitcoin.org/bitcoin.pdf。该白皮书提出了一种点对点版本的电子现金,称为“比特币”,它利用后来被称为区块链的技术来记录比特币的点对点转移。
分布式账本,诸如区块链或区块有向无环图(Block DAG)(诸如Yoad Lewenberg等人的论文“Inclusive Block Chain Protocols”中描述的内容-https://fc15.ifca.ai/preproceedings/paper_101.pdf),是一种数字帐本或电子数据记录,使用它可以存储有效的不可变的数据记录。它们可能是去中心化的,因为它们不一定需要中央机构将数据添加到分布式账本中或维护分布式账本的完整性。在某些情况下,它们是无需许可的,这意味着任何实体/节点都可以向分布式账本写入数据或从中读取数据。在其他情况下,它们是经过许可的,这意味着读取和/或写入权限仅授予参与分布式账本的经过许可的实体/节点。可以通过向参与分布式账本网络的节点的网络广播“交易”的实体将数据添加到分布式账本,其中交易包括待添加到分布式账本的数据和符合分布式账本协议的加密元素。然后,参与分布式账本网络的每个节点都可以检查交易的有效性,如果获得许可,则立即将交易添加到分布式账本的本地副本中,或者将交易添加到其正在处理的交易区块中,或将交易添加到未确认的交易列表,等待包含到另一个节点的广播区块中。
如果正在处理一个交易区块,那么每个节点也可以将其他已广播到节点网络的新交易添加到其正在处理的新区块中。一段时间后,一个节点会向网络中的其他节点发布他们的新区块,新区块包括各种新交易以及将新区块与区块链中的前一个区块或区块DAG中的前一个区块绑定的加密数据。通过以这种方式将连续的区块以加密方式绑定在一起,如果区块链或区块DAG中的一个区块在以后的任何时间被更改(例如,有人希望以欺诈方式更改存储在区块链或区块DAG中的数据),则可以很容易地检测到。
在一个节点发布新区块后,网络中的其他节点可以检查新区块的内容,如果接受,则将区块的全部内容添加到分布式账本的本地副本中。附加地和可选地,每个节点现在可以开始处理他们的下一个新区块,该新区块将再次以加密方式绑定到其前一个或多个区块。因此,可以看出,每次发布和接受新区块时,区块链和区块DAG都会增长,每个新接受的区块都以加密方式绑定到其前一个或多个区块。节点检查已发布的新交易和已发布的新区块并将它们接受到分布式账本副本中的过程通常称为“共识”机制。
在白皮书中,“Bitcoin:A Peer-to-Peer Electronic Cash System”为比特币区块链提出了一个特定的协议。该协议涵盖诸如应包含在交易中的信息的格式和类型、应包含在新区块中的信息的格式和类型、应用于交易和新区块的加密技术和配方以及待使用的共识机制的特定类型(例如,在比特币中,共识机制在区块链的每个区块中使用基于哈希值的工作量证明,这也是每个连续区块之间的加密纽带)。如果广播交易不完全地符合协议,它将不会被包含在任何新区块中。同样,如果一个新区块不完全地符合协议,它就不会被节点网络接受到区块链上。
虽然包括区块链和区块DAG在内的DLT最初是为了支持加密货币比特币而提出的,但随后发现了许多其他用途。起初,推出了新的加密货币,诸如Litecoin、Ripple和Namecoin,它们各自在自己特定的分布式账本网络上运行,并使用自己特定的DLT协议。从那时起,人们就已经认识到,DLT可能具有比加密货币更广泛的利用,并且可以在有效且不可变的数据记录是有用的任何场景中使用。例如,以太坊和Corda是为使用更具表现力的智能合约而创建的DLT,智能合约是在DLT上运行的计算机程序或指令,可以配置为在特定数据出现在分布式账本上时执行特定流程。另一个DLT的示例是Hashgraph,它使用区块DAG。这导致当前存在的不同DLT的数量迅速增加,每个DLT都针对自己的特定使用场景进行定制,并且预计随着技术获得进一步的发展和认可,不同DLT的数量将继续增加。
发明内容
根据本公开的第一方面,提供了一种计算机实现的方法,用于执行两个或两个以上不同分布式账本中的任一分布式账本发出的指令。该方法包括:监控多个分布式账本以获得包含待执行指令的分布式账本交易;识别多个第一分布式账本交易,其中,多个第一分布式账本交易中的每一个第一分布式账本交易均出现在多个分布式账本中的任一分布式账本中,该多个第一分布式账本交易中的每一个第一分布式账本交易都包括待执行指令;对识别出的所述多个第一分布式账本交易中的多个第一指令的至少部分进行验证;以及对于多个第一指令中的每个通过验证的指令,执行该指令;以及在电子数据记录中存储该已执行指令的结果。
该方法还可以包括:在执行该多个第一指令中的通过验证的指令之后,在该多个分布式账本中的至少一个分布式账本中存储指示该电子数据记录中存储的每个结果的第一验证记录。
该第一验证记录可以指示该多个第一指令中通过验证的指令的执行顺序。附加地或可选地,该第一验证记录可以指示已执行的多个第一指令的结果在该该电子数据记录中的存储顺序。
该电子数据记录可以包括默克尔树(Merkle tree),其中,该方法还包括:至少部分基于该多个第一指令中的已执行指令的每个存储结果来更新该电子数据记录中的该默克尔树,其中,该第一验证记录包括该电子数据记录中的已更新默克尔树的第一默克尔根(Merkle root)。
该方法还可以包括:在执行该多个第一指令中的通过验证的指令之后,基于该多个第一指令中的已执行指令生成第一指令记录,其中,第一验证记录还包括该第一指令记录。
该第一指令记录可以指示该多个第一指令中通过验证的指令的执行顺序。
该第一指令记录可以包括使用该多个第一指令中的已执行指令的至少部分指令生成的第二默克尔根。附加地或可选地,该第一指令记录可以包括唯一指示该多个第一指令的至少部分已执行指令的值(例如,哈希值)。
该第一验证记录包括序列标识,该序列标识指示存储在多个分布式账本中的至少一个分布式账本中验证记录的相对顺序。
该方法还可以包括:在将该第一验证记录存储至该多个分布式账本中的至少一个账本中之后,检查该第一验证记录是否存在于该一个或多个分布式账本中的至少一个分布式账本中;如果该第一验证记录不存在于该多个分布式账本中的至少一个分布式账本中,则将该第一验证记录重新放入该一个或多个分布式账本中的至少一个分布式账本中。
该方法还可以包括:存储该多个第一指令中的每个已执行指令的副本;检查该多个第一指令中的每个已执行指令是否存在于该多个分布式账本中的至少一个分布式账本中;并且对于并不存在于该多个分布式账本中的至少一个分布式账本中的该多个第一指令中的每个已执行指令,向该多个分布式账本中的至少一个分布式账本广播新的分布式账本交易,该新的分布式账本交易包括该已执行指令。
该方法还可以包括:确定通过验证的多个第一指令的执行的顺序;以及,根据确定出顺序执行通过验证的多个第一指令。
该方法还可以包括:识别多个第二分布式账本交易,其中,该多个第二分布式账本交易中的每一个第二分布式账本交易均出现在该多个分布式账本中的任一分布式账本中,该多个第二分布式账本交易中的每个二分布式账本交易均包括待执行指令;验证多个第二指令中的至少部分指令;以及,对于该多个第二指令中的每个通过验证的指令:执行该指令,以及,在该电子数据记录中存储该已执行指令的结果。
该方法还可以包括:在执行该多个第二指令中的通过验证的指令之后,在该多个分布式账本中的至少一个分布式账本中存储第二验证记录,其中,该第二验证记录指示每个作为该多个第二指令中的已执行指令的结果存储在该电子数据记录中的结果。
该第二验证记录可以指示该多个第二指令中通过验证的指令的执行顺序。
该电子数据可以包括默克尔树,其中该方法还包括:至少部分基于该多个第二指令中的已执行指令的每个存储结果来进一步更新该电子数据记录中的该默克尔树,其中,该第二验证记录包括该电子数据记录的进一步更新的默克尔树的第三默克尔根。
该方法还可以包括:在执行该多个第二指令中的该通过验证的指令之后,基于该多个第二指令中的已执行指令生成第二指令记录,其中,该第二验证记录包括该第二指令记录。
该第二指令记录可以指示该多个第二指令中通过验证的指令的执行顺序。
该第二指令记录可以包括使用该多个第二指令中的已执行指令的至少部分指令生成的第四默克尔根。附加地或可选地,该第二指令记录可以包括唯一指示该多个第二指令的至少部分已执行指令的值(例如,哈希值)。
该第二验证记录可以包括指示该第二验证记录位于该第一验证记录之后的序列标识。
该方法还可以包括:确定该多个第二指令中通过验证的指令的执行顺序;以及,根据该确定的顺序执行该多个第二指令中通过验证的指令。
该多个第一分布式账本交易中的至少一个第一分布式账本交易可以出现在该多个分布式账本中的第一分布式账本中,并包括用于执行与该第一用户相关联的流程的指令;该多个第一分布式账本交易中的至少一个其他的第一分布式账本交易可以出现在该多个分布式账本中的第二分布式账本中,并包括用于执行与该第一用户相关联的另外的流程的指令。
用于执行与该第一用户相关联的流程的指令可以包括用于修改与该第一用户相关联的数据的指令。用于执行与该第一用户相关联的另外的流程的指令可以包括用于进一步修改与该第一用户相关联的数据的指令。
该多个第一分布式账本交易中的至少一个第一分布式账本交易可以出现在该多个分布式账本中的第一分布式账本中,并可以包括用于执行与该第一用户相关联的流程的指令;该多个第二分布式账本交易中的至少一个第一分布式账本交易可以出现在该多个分布式账本中的第二分布式账本中,并可以包括用于执行与该第一用户相关联的另外的流程的指令。
用于执行与该第一用户相关联的流程的指令可以包括用于修改与该第一用户相关联的数据的指令。用于执行与该第一用户相关联的另外的流程的指令可以包括用于进一步修改与该第一用户相关联的数据的指令。
该多个第一指令中的每个第一指令均可以包括与该指令相关联的用户的标识,并且该已执行指令的每个结果都与关联于该已执行的指令的用户相关联地存储在电子数据存储中。
该方法还可以包括:接收关于与第一用户相关联地存储在该电子数据存储中的电子数据状态的第一状态查询;响应于该第一状态查询,传达状态通知,其中,该状态通知包括:与该第一用户相关联的电子数据状态的指示,以及用于对指示出的与该第一用户相关联的电子数据的状态进行验证的状态证明。
该第一状态查询可以与该第一用户相关联的电子数据的当前状态有关。该状态通知还可以指示存储在该多个分布式账本中的一个或多个分布式账本中的验证记录,其中,该验证记录对应于导致与该第一用户相关联的数据的当前状态的已执行指令记录的存储结果。
该第一状态查询还可以包括存储在该多个分布式账本中的一个或多个分布式账本中的验证记录的标识,其中,该电子数据状态的指示可以是在该验证记录被识别时与该第一用户相关联的电子数据状态的指示。
该电子数据记录可以包括默克尔树。该状态证明包括默克尔证明。与该第一用户相关联的电子数据的被指示状态相对应的验证记录包括至少部分基于已执行指令的存储结果生成的默克尔根,其中,该已执行指令为导致与该第一用户相关联的电子数据的已指示状态的指令。
根据本公开的第二方面,提供了一种计算机程序(例如,非瞬时性计算机程序),用于当其在电子设备的至少一个处理器上运行时,执行第一方面所述的方法。
根据本公开的第三方面,提供了一种电子设备(例如,本文所公开的操作员),用于执行第一方面所述的方法。例如,该电子设备可以包括一个或多个处理器和存储器,其中,该存储器包括计算机程序,该计算机程序用于在该一个或多个处理器中的任一处理器上运行时,执行第一方面所述的方法。
根据本公开的第四方面,提供了一种计算机实现的方法,用于监控两个或两个以上不同分布式账本中的任一分布式账本发出的指令的执行。该方法包括:监控多个分布式账本以获得包含待执行指令的分布式账本交易;识别多个第一分布式账本交易,其中,该多个第一分布式账本交易中的每一个第一分布式账本交易均出现在该多个分布式账本中的任一分布式账本中,该多个第一分布式账本交易中的每一个分布式账本交易都包括待执行指令;识别存储在该多个分布式账本中的至少一个分布式账本中的第一验证记录,其中第一验证信息用于验证多个第一指令中的指令的执行;以及,使用该第一验证信息验证该指令的执行。
每个已执行指令的结果可以存储在电子数据记录中,其中,该第一验证记录可以包括第一数据修改语句,该第一数据修改语句指示存储有待验证指令的执行结果的电子数据记录,验证指令的执行至少使用该第一数据修改语句。
验证指令的执行还可以使用存储在该多个分布式账本中的至少一个分布式账本中并且位于该第一验证记录之前的在先验证记录。
该在先验证记录可以包括在先数据修改语句,其中,该在先数据修改语句指示该待验证指令被执行前的电子数据记录,验证指令的执行至少使用该在先数据修改语句。
该电子数据记录可以包括默克尔树,其中,该第一数据修改语句包括第一默克尔根,该在先数据修改语句包括在先默克尔根。
验证指令的执行可以包括验证该多个第一指令中的至少部分第一指令的执行顺序。可选地,验证该多个第一指令中的至少部分第一指令的执行顺序还可以使用一个或多个其他验证记录。
该方法还可以包括:从存储每个指令执行结果的电子数据记录中接收关于与第一用户相关联的数据的当前状态的第一状态查询;响应于该第一状态查询,传达状态通知,其中,该状态通知包括:与该第一用户相关联的数据的当前状态的指示;存储在该多个分布式账本中的一个或多个分布式账本中的验证记录的标识,该验证记录包括用于验证与该第一用户相关联的数据的已指示的当前状态的验证记录;以及用于对指示出的与该第一用户相关联的电子数据的状态进行验证的状态证明。
该方法还可以包括:从存储每个指令执行结果的电子数据记录中接收关于与第一用户相关联的数据状态的第二状态查询,其中,该第二状态查询包括存储在该多个分布式账本中的一个或多个分布式账本中的验证记录的标识;响应于该第二状态查询,传达状态通知,其中,该状态通知包括:验证记录被识别时与该第一用户相关联的数据状态的指示,以及在验证记录被识别时用于对指示出的与该第一用户相关联的电子数据的状态进行验证的状态证明。
根据本公开的第五方面,提供了一种计算机程序(例如,非瞬时性计算机程序),用于当其在电子设备的至少一个处理器上执行时,执行第四方面所述的方法。
根据本公开的第六方面,提供了一种电子设备(例如,本文所公开的监控实体),用于执行第四方面所述的方法。例如,该电子设备可以包括一个或多个处理器和存储器,其中,该存储器包括计算机程序,该计算机程序用于在该一个或多个处理器中的任一处理器上运行时,执行第四方面所述的方法。
根据本公开的第七方面,提供了一种计算机实现的方法,用于第一用户验证与其相关联且存储在电子数据记录中的数据的状态。该方法包括:输出关于该电子数据记录中与该第一用户相关联的数据的状态的状态查询,其中,该状态查询包括该第一用户的标识;接收状态通知,其中,该状态通知包括:与该第一用户相关联的数据的状态的指示,以及用于对指示出的与该第一用户相关联的电子数据的状态进行验证的状态证明;识别多个分布式账本中的一个或多个分布式账单的验证记录,其用于验证与该第一用户相关联的数据的状态的指示;使用该状态证明和该识别的验证记录来验证与该第一用户相关联的数据长度状态的指示。
该状态通知可以包括验证记录的指示。
根据本公开的第八方面,提供了一种计算机程序(例如,非瞬时性计算机程序),用于当其在电子设备的至少一个处理器上运行时,执行第七方面所述的方法。
根据本公开的第九方面,提供了一种电子设备(例如,本文所公开的第一用户或第二用户),用于执行第七方面所述的方法。例如,该电子设备可以包括一个或多个处理器和存储器,其中,该存储器包括计算机程序,该计算机程序用于在该一个或多个处理器中的任一处理器上运行时,执行第七方面所述的方法。
根据本公开的第十方面,提供了一种计算机实现的方法,用于使用多个不同的分布式账本中的任一分布式账本发出待执行指令。该方法包括:向该多个不同的分布式账本中的第一分布式账本发出待执行第一指令,其中,该第一指令包括第一用户的标识,该第一指令的执行会导致与该第一用户相关联的存储在电子数据记录中的数据被修改;以及,向该多个不同的分布式账本中的第二分布式账本发出待执行第二指令,其中,该第二指令包括第一用户的标识,该第二指令的执行会导致与该第一用户相关联的存储在该电子数据记录中的数据被修改。
根据本公开的第十一方面,提供了一种计算机程序(例如,非瞬时性计算机程序),用于当其在电子设备的至少一个处理器上运行时,执行第十方面所述的方法。
根据本公开的第十二方面,提供了一种电子设备(例如,本文所公开的操作员),用于执行第十方面所述的方法。例如,该电子设备可以包括一个或多个处理器和存储器,其中,该存储器包括计算机程序,该计算机程序用于在该一个或多个处理器中的任一处理器上运行时,执行第一方面所述的方法。
附图说明
本公开实施例将结合以下附图仅以示例的方式进行描述,其中:
图1示出了根据本公开的一方面所述的系统100的示意图;
图2示出了图1所示系统的数据记录、第一DLT和第二DLT的分层的可视化概念;
图3示出了一种表示图1所示系统的第一用户修改与其相关联的数据的示例流程的序列图;
图4示出了作为图3所示流程的一部分的区块链交易中包含的数据的可视化示例;
图5示出了图4所示区块链交易的指令中包含的数据的可视化示例;
图6示出了作为图3所示流程的一部分的验证记录中包含的数据的可视化示例;
图7示出了图1所示系统的第二层数据记录的默克尔树的示例;
图8示出了用于图6所示验证记录的指令的默克尔树的示例;
图9示出了区块链中分叉的示例;
图10示出了作为图3所示流程一部分的第一DLT和第二DLT中的指令和验证记录的示例;
图11示出了表示,图1所示系统中的第一用户验证其在第二层数据记录中的数据的当前状态的示例流程的序列图。
具体实施方式
发明人已经认识到,随着分布式账本技术(DLT)的增长和发展,不同实体可能越来越难以放心、安全、可靠地使用它。例如,如果选择一个特定的DLT来管理数据或资产/数据资产(诸如金融资产/令牌,例如数字货币或加密货币,或者要通过DLT安全地存储或运行的任何其他形式的数据/信息/指令),则在最初选择的DLT被证明是不安全的、不可靠的或过时的情况下,可能很难将数据或资产/数据资产迁移到不同的DLT。因此,发明人已经意识到,使用两个或两个以上不同的DLT来控制相同的数据可能是有益的。这可能会增强DLT的数据安全性和可靠性,因为存储的数据将不再绑定到单个特定的将来可能会遭受任何数量的已知/未知的安全性漏洞、攻击和/或其他缺陷/瑕疵的DLT平台,该平台。然而,这带来了许多不同的技术挑战。例如,如果可以使用两个或两个以上不同的DLT来控制相同的数据,则可以通过两个不同的独立机制对其进行独立修改。由于与处理数据相关的交易/指令不一致和/或顺序不正确,这可能会导致安全性和稳定性漏洞。此外,如果所有两个或两个以上DLT的数据未一致更新,则不同DLT之间可能存在不准确性/不一致性,这可能表示进一步的安全性/稳定性风险。这在被控制的数据是数字货币的情况下可能很重要,例如导致双重支出或其他类型的意外/故意欺诈,对于所有类型的DLT和数据记录来说通常也很重要。稍后将详细介绍由此带来的技术问题以及发明人开发的技术方案,特别是与处理区块链回滚相关的内容。
在整个以下公开内容中,术语“区块链”、“分布式账本”、“区块链技术”和“分布式账本技术(DLT)”可互换使用。应当理解,区块链是一种特定类型的DLT,但本发明同样适用于其他类型的DLT,例如区块DAG。因此,无论在何处使用术语“区块链”,都应理解本公开同样适用于任何其他类型的DLT。此外,在整个以下公开内容中,术语“交易”与DLT相关。本领域的技术人员将理解,上下文中的“交易”不限于某物所有权的转移,例如货币。相反,“交易”是将某种形式的信息放在DLT上的方式。例如,一个实体可以广播待放在DLT上的“交易”,该交易包括待放在DLT上的信息以及在DLT上待接受交易所需的任何其他数据项(例如公钥、签名、哈希值等)。待放入DLT的信息可能与货币的金融转移有关,但也可以是任何其他类型的数据或信息(例如,实体希望存储在DLT上以供以后参考的一段数据,或用于执行某些进一步处理的指令,例如通过可由指令触发的计算机程序(例如智能合约))。因此,可以使用“交易”的替代术语,例如DLT/区块链“指令”或DLT/区块链“消息”。
图1示出了根据本公开的一个方面所述的系统100的示意图。系统100包括操作员110、至少部分地由操作员110控制/维护的电子数据记录115、第一DLT网络120、第二DLT网络130、第一用户140、第二用户150和监控实体160。操作员110、第一用户140、第二用户150和监控实体160中的每一个都可以实现为任何合适的电子计算设备/实体的一部分,例如服务器、计算机或移动计算设备的一部分,诸如智能手机、平板电脑、笔记本电脑等。例如,操作员110、第一用户140、第二用户150和监控实体160中的每一个的功能(如下所述)可以编码在软件/计算机程序中,该软件/计算机程序可以存储在计算设备上的存储器中并且使用计算设备的一个或多个处理器来运行。虽然表示了两个不同的用户,但系统100可以可选地仅包括一个用户,或者三个或三个以上用户,每个用户被配置为执行下面描述的用户操作。
虽然图1中表示了两个DLT,但操作员110、第一用户140、第二用户150和监控实体160可以与任何数量的DLT交互。每个DLT都可能有自己特定的DLT操作协议,诸如从区块链读取数据和/或将数据写入区块链和/或将数据所有权从一个实体转移到同一区块链上的另一个实体。每个DLT都可以是许可的或非许可的。作为非限制性示例,每个DLT都可以根据比特币、以太坊、Corda、Quorum、Hyperledger等中的任何协议进行操作。
电子数据记录115可以实现为任何合适形式的数据存储,例如它可以实现为操作员110参与其中的DLT(例如,操作员有权编辑的许可区块链),或者它可以是非区块链数据记录,例如至少部分由操作员110管理的任何形式的数据库。
虽然在图1中没有表示,但是操作员110和监控实体160可以可选地相互通信。操作员110和第一用户140可以可选地相互通信。操作员110和第二用户150可以可选地相互通信。监控实体160和第一用户140可以可选地相互通信。监控实体160和第二用户150可以可选地相互通信。每个通信接口都可以使用任何合适的电子通信协议/标准来实现。虽然图1所示的每个通信接口都是直接连接,但可以理解的是,在通信路径中可以可选地存在任意数量的中间设备/实体。
图2示出了数据记录115、第一DLT 120和第二DLT 130的分层的可视化概念。DLT120和130可以被认为是在系统结构的“层1”中。在层1中可以有任何数量的不同DLT,每个DLT都可以由系统110中的不同参与者编辑和读取,例如操作员110、第一用户140、第二用户150和监控实体160。数据记录115可以被认为是在系统结构的“层2”中。层2中的数据记录115由操作员110维护/控制。在本公开的系统100中,可以使用两个或两个以上层1DLT来控制特定数据项或资产。例如,第一用户140可以拥有一个数据资产,诸如一定数量的数字货币或他们希望使用两个或两个以上层1DLT控制的任何其他形式的信息/数据。这些数据可以通过他们发布到第一DLT 120或第二DLT 130的指令来控制。操作员110使用层2中的数据记录来维护由两个或两个以上层1DLT同时控制的数据的一致性。通过这种方式,与用户相关联的数据可以通过发布到多个层1DLT中的任何一个的交易/指令以在所有层1DLT中安全且一致的方式被修改。层1在概念上可以被认为位于系统的层0之上,层0是层1DLT运行的公共/私有网络。
图3示出了表示第一用户140发出待执行指令的示例流程的序列图。
在步骤S310中,第一用户140向第一DLT 120或第二DLT 130广播第一DLT交易400(以下称为第一区块链交易)。
图4示出了包含在第一区块链交易400中的数据的可视化示例。第一区块链交易400可以根据用于任何DLT被广播到的协议进行格式化,诸如包括DLT交易所需参数410(其可以包括例如发送方地址、接收方地址、交易费等中的任何一个或多个)和DLT交易签名420。DLT交易签名420可以由第一用户140根据用于第一区块链交易400广播到的任何DLT的加密协议,通过使用他们的DLT私钥对第一区块链交易400的内容进行签名来生成。根据本公开,第一用户140在第一区块链交易中包括第一指令500。如技术人员将理解的的是,区块链交易通常具有可用的用户自定义数据字段430,并且第一指令500可以包括在用户自定义数据字段430中。
图5示出了包含在第一指令500中的数据的可视化示例。第一指令500可以被配置为包括操作员110可以使用其识别第一用户140的数据,以及指示指令的性质的数据。例如,该指令可以是对电子数据记录115中第一用户的数据执行某种修改,或者是触发电子数据记录115上或别处保存的并链接到操作员110或电子数据记录115的一些计算机程序/过程(诸如智能合约)的指令,以便该指令的执行触发计算机程序/过程,以及根据操作员110设置的任何安全/加密程序所需的任何其他数据。在该示例中,第一指令500包括第一用户ID512,操作员110可以使用该第一用户ID 512唯一地识别第一用户,并因此唯一地识别层2数据记录115内与第一用户140相关联的任何数据。第一用户ID 512可以唯一地指示第一用户140,或者第一用户140可以具有多个不同的第一用户ID,每个第一用户ID与他们在层2数据记录115中的一些不同数据有关。在这种情况下,第一用户ID 110可以被视为识别层2中第一用户140账户的账户ID。
在图5所示的示例中,使用函数514和变量518来指示指令的性质。根据系统100配置允许的指令的特定类型,可以为第一用户140设置各种不同的功能,例如“触发”、“发送”、“删除”、“替换”、“转移”、“添加”等。变量518可以包括执行指示的指令所需的任何数据(例如,待添加到数据记录115的数据,或待触发的计算机程序/例程的标识,或以某种方式修改其数据的其他用户帐户,或待传达的消息的内容和接收方等)。例如,如果第一用户在层2账户中持有多DLT数字货币,则函数514可以指示需要对第一用户的一定量的货币进行金融转移。在这种情况下,修改函数514可以被设置为指示“转移”,并且变量可以指示待转移的量和该量要转移到的层2账户。在进一步的示例中,函数514可以指示待执行/触发的特定过程或操作,其中变量518包括发生该过程或操作所需的任何数据,例如待执行例程的地址的标识和/或待传递给该例程的有效负载等。
在图5所示的示例中,多DLT系统100的安全/加密要求被设置为要求指令详情510包括第一用户序列号516,以及第一指令500包括第一用户签名520(尽管用户序列号516和第一用户签名520都是可选的,并且在一些实现中,操作员110可能不要求它们中的一个或两个出现在交易中以便对交易进行通过验证)。第一用户序列号516可以是第一用户140随着它生成的每个新指令而递增/递减的值。这可以使操作员110在执行下述步骤S330的过程时能够增强多DLT系统100的安全性,例如防止重放攻击,和/或检查来自第一用户140的指令可能需要的相对执行顺序。第一用户签名520可以是指令详情510的数字签名,该数字签名根据由系统安全标准定义的用于指令执行的任何加密协议,使用与第一用户140相关联的私钥生成。为了保护第一指令500而用于第一用户签名520的加密标准可能不同于用于DLT交易签名420的加密标准。因此,在层2数据记录处执行的操作可能比第1个DLT 120和/或第2个DLT130使用的加密标准更高。因此,本公开可以增强系统操作的第一DLT 120和/或第二DLT 130的数据安全性。
应当理解的是,不同的层1DLT可能需要不同类型的DLT交易所需参数410和/或DLT交易签名420,但是指令500的内容可能总是相同的,无论它被发送到哪个DLT。因此,可以从其内容中唯一地识别广播到任何层1DLT的每条不同指令,并且可选地,可以为每个指令生成唯一的交叉DLT ID,例如通过生成指令500或指令详情510的哈希值(例如,见后述的指令记录616)。
操作员110被配置为监控第一DLT 120和第二DLT 130以寻找包括指令的分布式账本交易。例如,操作员110可以在第一和第二DLT上运行参与节点并接收每个广播交易。附加地或可选地,他们可以读取添加到第一和第二DLT的每个区块的内容(每个区块都包括多个分布式账本交易)。附加地或可选地,操作员110可以不运行第一和第二DLT的节点,而是通过查询在第一和第二DLT网络上运行节点的实体来监控第一和第二DLT中的一个或多个。
在步骤S320中,操作员110将第一分布式账本交易识别为包括待执行指令的交易。应当理解的是,第一和第二DLT中的每一个都可以包括许多与本公开不相关的分布式账本交易(例如,如果它们是通用DLT,例如以太坊),在这种情况下,操作员110被配置为识别包括指令的分布式账本交易,因此忽略DLT上的其他交易。操作员110可以以各种不同的方式识别包括待执行指令的交易,这些不同的可能性不是本公开的主题。因此,在本公开中没有给出详细解释,而仅通过简单示例说明:操作员110可以评估每个交易的内容以查找参考图5所描述的指令形式的数据,或者它可以被配置为在DLT交易所需参数410和/或用户自定义数据字段中查找数据,这些数据识别随操作员110注册的用户/账户(例如,使用第一用户ID512,或指示向其转移的层2帐户ID,并将其与随操作员110注册的用户ID/帐户ID进行比较等),或在交易中查找标记为与操作员110相关的任何其他数据项(例如指示交易包括待执行指令的标志)。
在步骤S330中,在将第一分布式账本交易400识别为相关之后,操作员110验证第一指令500。验证可以包括以下任何一项或多项:检查指令格式是否正确;使用向第一用户注册的加密密钥和标准对称/非对称加密技术检查第一用户签名520;检查第一用户序列号516是否符合预期(例如,操作员110之前没有看到包含在来自第一用户140的先前识别的指令中的值和/或包含的值从来自第一用户140先前指令正确地递增/递减)。
应当理解的是,许多不同的指令可以出现在来自各种不同用户(例如,第一用户140、第二用户150等)的第一DLT 120和/或第二DLT 130上。操作员110可以持续监控第一和第二DLT以寻找这些指令,并且当这些指令被识别时,验证它们的内容。例如,操作员110可以存储(例如,在层2数据记录115的一部分中,或在操作员110可访问的任何其他存储器中)每个已识别的指令的副本,然后周期性或间歇性地验证一个或多个已识别的指令(例如,按照指令被识别的时间顺序进行验证,以便首先验证最早的指令,或按在指令中已识别的任何顺序进行验证,或按任何其他顺序进行验证等)。可选地,通过验证(即,通过所有验证检查)的每个指令的副本可以被操作员110记录(例如,记录在层2数据记录115的一部分中,或记录在操作员110可访问的任何其他存储器中)并被标记为“待处理”。然后,操作员110可以周期性地选择一个或多个待处理指令来执行(例如,基于待处理所花费的时间来区分优先级,或根据任何其他要求(例如在指令中识别的任何顺序)来区分优先级,或根据任何其他排序方案或流程来执行)。可选地,操作员110可以在通过验证之后立即执行每个指令。
在执行已识别指令之前,操作员110可以被配置为确定执行指令的顺序。这可以在验证已识别的指令之前执行,例如,如果在通过验证时或者在验证之后立即执行指令,例如,如果操作员验证指令并将通过验证的指令添加到“待处理”池,操作员从该“待处理”池中选择用于执行的指令。应当理解的是,操作员110可以被配置为根据系统100的特定实现以任何合适的方式确定执行顺序。例如,它可以基于操作员110被配置为遵循的任何执行顺序规则和/或指令的内容(例如,遵循包括在用户序列号516/变量518中的任何顺序编号,或基于诸如函数514和/或变量518的指令的性质确定正确的顺序),和/或操作员110识别指令的时间(例如,以识别指令的顺序执行指令)确定。通过这种方式,无论每个指令发布在哪个层1DLT上,操作员110都可以维持指令执行的正确顺序,这维持了系统100的安全性、可靠性和鲁棒性。
在步骤S340中,执行通过验证的第一指令500。例如,如果指令详情510指示第一用户512将一定量的货币从他们的层2账户转移到不同用户的层2账户,则操作员110将通过存储该指令的执行结果来修改电子数据记录115以反映该变化(在这种情况下,结果将包括减少第一用户账户的余额和增加不同用户账户的余额)。在进一步的的示例中,如果指令详情510包括第一用户140希望存储的另外的数据,操作员110将电子数据记录115中与第一用户ID 512相关联的另外的数据存储为已执行指令的结果。在进一步的示例中,如果修改详情510是触发某些其他过程的指令(例如,调用层2智能合约或某些其他形式的计算机代码/程序来执行特定过程),则操作员110将执行这些指令并将该指令的执行结果存储在电子数据记录115中(可选地,与用户ID512相关联,以便用户稍后可以查询电子数据记录115中其数据的当前状态,该状态取决于存储的结果)。在该示例中,存储的结果例如可以是由触发过程返回的值,诸如过程的接收或结果或响应,和/或可以是包括在指令详情510中的计算机代码,其存储可能会选择性地触发另外的过程并导致结果也作为结果的一部分存储。
可选地,对于所有类型的存储结果,存储结果可以包括序列号(例如,序列号516,其可能会在执行的指令和结果之间创建另外的链接;或者随着与第一用户相关联的数据的每个进一步更新而改变的序列号,例如随着与用户相关联的每个存储结果递增或递减;或者随着操作员110存储的每个结果而改变的序列号,例如无论关联的用户是哪个,随着每个新存储结果递增或递减)。例如,每个存储结果可以包括:序列号;执行指令产生的新数据,例如新账户余额,或执行指令返回的响应/接收/结果等。它还可以可选地包括与结果相关联的用户的用户ID,或者用户可以在电子数据记录115内以任何其他方式与存储结果相关联。这样,可以建立每个存储结果的历史记录。
存储结果的数量不一定与执行指令成1:1的比例。例如,执行指令可能导致两个不同的存储结果,诸如一个用户的余额减少(这将是一个存储结果)和另一个用户的余额增加(这将是另一个存储结果)。此外,如果一组指令被执行(稍后在“验证组”的上下文中描述)并且两个指令引起与特定用户相关的存储数据的改变,则操作员110可以被配置为存储每个指令的单独的结果,或者可以被配置为存储特定用户的执行这两个指令的一个结果。
操作员110可以存储/记录(例如,在层2数据记录115的一部分中,或在操作员110可访问的任何其他存储器中)第一指令500的全部内容,例如在“验证组”中。如稍后在“指令执行排序”部分中进一步详细地解释的,操作员110可以在一系列连续的验证组中保存每个已执行指令的记录,每个验证组包括一个或多个已执行指令。该记录可能对已执行交易排序的可验证性和/或处理区块链回滚很有用,如“指令执行排序”部分中进一步解释的那样。
在步骤S350中,操作员110在第一DLT 120和/或第二DLT 130上存储第一验证记录600,该第一验证记录指示已执行的第一指令500的存储结果(在电子数据记录115中)。
图6示出了第一验证记录600中包括的数据的可视化示例。第一验证记录600的目的是使第一用户140和/或监控实体160能够验证操作员110是否正确执行了指令。验证详情610可以包括使第一用户140和/或监控实体160能够执行该验证的信息。操作员签名620是可选的,并且是操作员110使用与其关联的私钥生成的验证详情610的数字签名,以证明第一验证记录600源自操作员110。这可用于检查第一验证记录600的完整性,并确保第一验证记录600源自有权限执行指令和修改层2数据记录115的实体,因此可以被信任。然而,可以以任何其他合适的方式实现对第一验证记录600的来源和内容的信任。
验证详情610包括数据记录修改语句614,该数据记录修改语句指示指令的执行结果被存储之后的层2数据记录115(例如,该数据记录修改语句可以指示已执行指令的存储结果)。这可以被第一用户140和/或监控实体160用来验证已执行指令。在层2数据记录115包括默克尔树的一个特定示例中,当操作员110记录指令的执行结果时,他们可以使用存储的结果更新默克尔树,并且数据记录修改语句164可以包括更新后的默克尔树的默克尔根。当验证记录用于验证两个或两个以上的存储结果时,诸如已经执行了两个或两个以上的指令时(例如,其对应的验证组包括两个或两个以上指令),数据记录修改语句614可以指示结果的存储顺序。在一些配置中,结果的存储顺序也可以指示相应指令的执行顺序(例如,当操作员110被配置为存储其执行的每个指令的结果时,它可以以执行指令的相同顺序将这些结果存储在默克尔树中)。然而,在其他实现中,结果的存储顺序可以不指示指令的执行顺序,例如在两个或两个以上可能非连续执行的指令导致仅一个待存储结果的情况下。通过以根据结果的存储顺序的方式生成数据记录修改语句,例如使用稍后描述的默克尔树,可以以许多不同的方式实现用于表明结果的存储顺序的数据记录修改语句614。
在进一步的示例中,层2数据记录115可以不包括默克尔树,但可以以任何其他方式构建。在这种情况下,数据存储在层2数据记录115中的方式可以指示结果的存储顺序,并且数据记录修改语句164可以包括该数据的数据库哈希值,使得数据库哈希值也可以指示结果的存储顺序。
可选地,验证详情610还可以包括唯一标识操作员110的操作员ID 612。这可以在例如有一个以上操作员110被授权执行指令和修改层2数据记录115的情况下使用。
进一步可选地,验证详情610可以包括唯一标识第一验证记录600的验证记录ID618。使用该验证记录ID 618可以唯一地识别第一验证记录600。验证记录ID可以充当序列标识,该序列标识指示存储在层1DLT上的验证记录的相对顺序,例如,如果它是递增/递减数字,则递增/递减出现在先前验证记录中的验证记录ID 618。然而,应当理解的是,第一验证记录600可以以任何其他方式被唯一地识别(例如,通过数据记录修改语句614,这对于存储在第一和/或第二DLT上的验证记录可能是唯一的)。
进一步可选地,第一验证记录600可以包括指令记录616,该指令记录指示与第一验证记录600相关的指令(即,包括在相应验证组中的指令)。如前所述并在下面的“指令执行排序”中更详细地解释,操作员110记录的每个验证组可以包括一个或多个已执行指令,并且操作员110存储在第一和/或第二DLT上的每个验证记录可以对应于一个验证组(例如,每个验证组可以被唯一地编号—可选地以指示验证组的相对顺序/序列的方式—并且编号可以与验证记录ID 618相关或相同)。数据记录修改语句614指示在将一个或多个指令的执行结果存储在验证组中之后层2数据记录115的状态。指令记录616指示验证组中的一个或多个已执行指令并且可以指示指令被执行的相对顺序。
指令记录616可以包括以下的一个或多个:基于一个或多个已执行指令的至少一部分生成的默克尔根;和/或每个已执行指令的至少一部分的哈希值(或一些其他唯一记录/标识/值)和/或两个或两个以上已执行指令的至少一部分的哈希值(或一些其他唯一记录/标识/值)。在包括每个已执行指令的至少一部分的哈希值/标识的情况下,它们可以可选地以指示它们被执行的顺序的方式在指令记录616内排序。在包括两个或两个以上已执行指令的至少一部分的哈希值/标识的情况下,这些指令可以按照与它们被排序的顺序相对应的顺序排列,然后采用哈希值,使得基于这些指令生成的哈希值/标识将指示执行的顺序。
图7示出了层2数据记录115的默克尔树的一个示例。本领域技术人员将容易理解默克尔树的操作。在该特定示例中,四个不同的指令执行结果已存储在层2数据记录115中(例如,这可能是四个不同指令的执行结果,或少于四个已执行指令,或多于四个已执行指令,如前所述),这导致默克尔树有四片叶,每片叶指示一个存储的结果。然而,应当理解的是,默克尔树可以包括任意数量的叶。在这个例子中,叶1的哈希值H1与已执行的第一指令500的存储结果有关。叶1的内容(即已执行的第一指令的存储结果,或已执行的第一指令的存储结果的哈希值)取决于系统100的实现和正在执行的指令的性质。例如,它可以包括在第一用户请求的数据修改之后与第一用户140相关的层2数据的副本,或者它可以是由指令(以及可选的指令序列号516)触发的程序/过程的返回结果/接收等。在第一指令500涉及货币交易的一个示例中,叶1可以包括第一用户ID 510和第一用户账户在交易已经被执行之后的余额。如前所述,每片叶的排序可以指示存储每个结果的顺序,这在一些实现中还指示操作员110执行指令的顺序(例如,操作员被配置为存储每个已执行指令的一个或多个结果,并将这些结果以与指令执行的顺序相对应的顺序存储)。例如,在图7中,导致叶1中包括存储结果的指令可能已经在导致叶2中包括存储结果的指令之前执行等。叶的相对排序影响树的默克尔根,这样默克尔根就可以指示存储结果的相对排序。
图8示出了与第一验证记录600相关的指令的默克尔树的示例。在该特定示例中,第一验证记录600涉及已经由操作员110执行的四个指令,这导致默克尔树有四片叶,每片叶指示执行的指令。然而,应当理解的是,默克尔树可以包括任意数量的叶。在此实例中,叶1包括至少部分已执行的第一指令,例如第一指令500的全部,或第一指令500的哈希值,或指令详情510,或指令详情510的哈希值(即,前面描述的唯一的交叉DLT ID)。可选地,每片叶还可以包括一些指示指令执行的数据,例如由指令触发的过程/程序的接收或结果。如果与验证记录500相关的每个指令的相对执行顺序很重要,则每片叶的顺序可以指示指令的执行顺序。例如,在图8中,叶1指令可能在叶2指令之前执行等。叶的相对排序影响树的默克尔根,这样默克尔根就可以指示执行的指令的相对排序。然而,如果与第一验证记录600相关的已执行指令的相对顺序不重要,则构成默克尔根的叶子的顺序可以是任意的。通过以这种方式生成默克尔树,操作员110可以将默克尔根作为指令记录616的一部分,从而包括与第一验证记录600相关的所有已执行指令的相对较小/较短的可证明记录,并且可选地,也可以选择它们的执行顺序。
操作员110可以通过向第一DLT120和/或第二DLT130广播另外的区块链交易来存储第一验证记录600,其中第一验证记录600包括在用户自定义数据字段中(如前述图4所示)。因此,第一验证记录600可以以第一用户140、第二用户150和监控实体160可读的有效不变的方式存储。然后,第一用户140和/或监控实体160可以使用第一验证记录600来验证操作员110已经正确地执行指令,如稍后在“证明指令执行”中解释的那样。
指令执行排序
指令执行排序对于系统100的安全、可靠操作可能非常重要。例如,先前已经认识到,为了防止双重消费加密货币欺诈,必须能够确定之前是否使用过加密货币。许多现有的独立区块链通过区块链上区块的时间顺序特性实现了这一点,每个区块中都包括一个时间戳并在现有区块中检查新交易中识别的加密货币是否尚未被使用。
然而,发明人已经认识到,可靠排序可能不仅在货币相关应用中很重要,而且更普遍地对于所有应用程序都是重要的。例如,应当理解的是,在各种因特网和电信领域和协议中,未正确排序的指令/消息传递可能被利用作为安全性和稳定性的漏洞。例如,前述的每个指令都可能包括通信数据,诸如TCP/IP数据包,并且通信数据的排序和同步可以通过多种方式影响系统的安全性,诸如消息/指令的顺序不正确或不完整的消息/指令集导致系统的安全性在完整性或可用性方面受到损害。如前所述,本公开的指令可以涉及任何形式的数据指令/消息。因此,发明人已经认识到维护和/或验证指令执行顺序,例如当用于携带指令/消息时以及当用于任何其他目的时,对于实现安全、可靠和防欺诈系统可能具有重要意义。
然而,这在系统在多个层1DLT(例如,第一DLT 120和第二DLT 130)上运行的多DLT系统中尤其具有挑战性。例如,跨两个或两个以上不同的层1DLT发布的指令可能需要以特定顺序执行,以保持系统的安全、可靠和防欺诈能力。在多个层1DLT之间维护和验证指令执行排序和系统一致性的一个特殊挑战是“区块链回滚”,此时区块链内的区块可能会丢失。例如,回滚可能由区块链分叉引起,出现在分叉的较短分支上的一个或多个区块链交易可能从区块链中丢失(或回滚)。本领域技术人员将很容易理解DLT分叉的可能性,以及DLT在出现分叉时的行为特征。其结果可能是,包括第一指令的重播分布式账本交易(之前在账本回滚中丢失)可能会在包括第二指令的其他分布式账本交易之后出现在分布式账本上,而实际上第一指令在第二指令之前执行。
图9示出了区块链中分叉的示例表示。交易1是数据块B1的一部分,它出现在区块链的“分支1”上。然而,由于分叉,它实际上已经从区块链中丢失,因为区块链在更长的分支“分支2”上继续存在。交易2是数据块B3的一部分,出现在“分支2”上。稍后,交易1可以作为“分支2”上数据块B8的一部分附加到区块链中,例如通过参与区块链的节点。因此,交易1在区块链中出现的时间晚于交易2。但是,如果交易1先于交易2很重要(例如,它们与连续的消息相关),这可能会导致安全或稳定性失效,或者可能允许在使用区块链的应用程序中发生欺诈。回滚的其他原因可能是区块链的参与者出于某种原因同意将区块链回滚到特定的早期区块(例如以太坊和以太坊经典分叉)。
丢失区块链交易在本公开中可能特别成问题,因为跨不同层1DLT的指令执行的相对顺序对于系统的安全性和稳定性以及操作员110动作的可验证性可能是重要的。在这种情况下,简单地重放由于回滚而丢失的层1DLT上的区块链交易可能是不安全的,因为重放的交易可能与指令的实际执行顺序不一致。
为了应对这些技术挑战,发明人已经实现了前述的验证记录的使用。
图10示出了第一DLT 120和第二DLT 130上的指令和验证记录的示例。每个指令由一个字母表示,例如A、Q、M等,并包括在第一DLT 120或第二DLT 130的区块中的区块链交易中。每个指令可以采用前面描述的第一指令500的形式。可以理解的是,第一用户140可以向层1DLT中的一个发出指令,然后向相同或不同的层1DLT发出后续指令(即,可以向任何层1DLT发出指令,使得与第一用户140相关联的存储在电子数据存储中的数据(例如,层2数据)在所有层1DLT上是同等地可控制的)。
包括指令A、Q、M等的每个区块链交易在上面的步骤S320中由操作员110识别,在步骤S330中验证并在步骤S340中执行(在该示例中,对所有识别的指令执行验证,并且它们都通过验证,但是在替代方案中,此时只有一些已识别指令A、Q、M可能会经过验证—其他指令可能会在稍后经过验证,例如导致它们出现在稍后的验证组/记录中)。如前所述,操作员110可以被配置为确定指令A、Q、M的正确执行顺序,从而维护系统安全性和可靠性。作为步骤S340的过程的一部分,操作员110还可以记录(例如,在层2数据记录115的一部分中,或在操作员110可访问的任何其他存储器中)已执行指令的副本,例如如前所述的“验证组”。例如,操作员110可以识别指令A并将其添加到待处理组。操作员110对识别出的每个另外的指令(在该示例中,指令Q和M)执行相同的操作,直到预定的时间段过去或直到待处理组已满。当每个指令被执行时,它们可能被存储在一个验证组中。如果验证组中指令执行的相对顺序对于安全性/可验证性目的很重要,则可以记录它们执行的相对顺序,例如通过电子数据记录115的默克尔树(图7)和/或已执行指令的默克尔树(图8,其中,例如叶1至少包括指令A的一部分,叶2至少包括指令Q的一部分等)。因此,无论在哪个层1DLT上发现指令,操作员110都可以维护和记录交易执行的相对排序。如果验证组中指令执行的相对排序不重要,则可以不记录执行顺序。
操作员110可以生成对应于验证组的验证记录。验证记录可以采用上述第一验证记录600的形式。例如,验证记录n是根据指令(在该示例中是指令A、Q和M)执行的存储结果生成的(即,数据记录修改语句614是根据指令A、Q和M的存储结果生成的)。验证记录n也可以基于已执行指令A、Q和M的至少部分生成(例如,指令记录616可以基于指令A、Q和M中的每一个的至少部分生成)。一旦生成,操作员110还可以可选地将验证记录n的副本记录/存储在与层1DLT不同的位置(例如,在层2数据记录115的一部分中,或在任何其他操作员110可访问的存储器中)。如果将来从任何层1DLT中丢失验证记录n,这可能会有用。操作员110还可以存储/记录验证记录n和验证组n之间的关联(或者只是作为验证组n的一部分的已执行指令的副本)。
可选地,在将最新的验证记录存储到至少一个层1DLT之前,操作员110可以检查在先验证记录n-1和/或与在先验证记录n-1相关的已执行指令(例如,作为在先验证组n-1的一部分的已执行指令)和/或与当前验证记录n相关的已执行指令(例如,即将作为验证记录n存储的当前验证组n的一部分的已执行指令),并仍然存在于层1DLT上。如果不是,则可以将它们添加回至少一个层1DLT上。
例如,在图10中可以看出,第二DLT 130有一个分叉。分叉的下分支向前移动,因此上分支的内容丢失。指令M和Z,以及验证记录n最初都出现在第二DLT 130的上分支上,并且会由于这次分叉导致的回滚而丢失。在操作员110准备好验证记录n+1之后,它可以检查包括在验证组n和验证组n+1以及验证记录n中的已执行指令是否出现在层1DLT中。此时,操作员110可以识别出指令M和Z以及验证记录n已经由于回滚而丢失。操作员能够向丢失了指令M的第二DLT 130广播一个新区块链交易(这是可能的,因为操作员110保留了指令M的副本,它可以作为新区块链交易的一部分包括在内。是否新区块链交易将源自操作员110并由运营商签署并不重要。层1分布式账本交易的起源与当前系统无关。用户自定义的新交易的数据字段将包括之前丢失的指令的完整副本,这是本发明运行和验证过程的重要信息)。这出现在图10中分叉的下分支上。它还可能广播另一个包括验证记录n的新区块链交易和另一个包括指令Z的新区块链交易,这两个交易也出现在图10中分叉的下分支。之后,最新的验证记录n+1可以存储在至少一个层1DLT上。虽然这些新交易中的每一个都在一个单独的区块中表示,但它们中的一些或全部可能会出现在同一区块内的第二个DLT 130上。此外,新交易出现在第二DLT 130上的顺序并不重要,这将从下面的解释中理解。
已执行指令和验证记录出现在层1DLT中的相对顺序并不重要,因为无论这些验证记录出现在层1DLT的何处,它们实际执行的顺序(这对于系统100的稳固、安全和可靠运行可能很重要)都包括在验证记录的内容中。特别地,每个验证记录可以包括指示验证记录的相对序列/顺序的序列标识。在这种情况下,可以辨认出与验证记录n-1相关的的指令都在与验证记录n相关的指令之前执行,而验证记录n所涉及的指令又都在验证记录n+1所涉及的指令之前执行。
在某些系统实现中,了解每个验证记录中指令执行的相对顺序可能并不重要。例如,在只需要较粗略级别的执行顺序可验证性来维持系统的安全性和稳定性的系统中,或者在操作员110被配置为执行指令使得两个或两个以上指令的执行顺序很重要的情况下,它们每个都出现在不同的验证组中,以便可以以这种方式验证执行的排序,或者操作员110被配置为在每个验证组中仅包括一个已执行指令。
然而,在其他系统中,了解每个验证记录内指令执行的相对顺序可能很重要,即验证执行排序需要达到查找器级别。这可以使用前面描述的数据记录修改语句614和/或指令记录616来实现。
以这种方式,无论回滚如何,都可以维护每个已执行指令的记录,以及使执行顺序能够被检查和验证(粗略级别或精细级别)的验证数据。因此,用户可以确信,一旦验证记录包括在层1DLT中,相关指令将由操作员110执行,并且可以验证它们相对于较早已执行指令的排序,而无论任何层1DLT上的回滚。这样做的另一个好处涉及用户可以确信指令已可靠执行的时间段。例如,对于比特币等许多区块链技术,建议为了依赖区块链交易,最好等待特定数量的区块(例如6个区块)被添加到交易出现的区块之后的区块链之后。这是为了确保交易不会因为分叉而丢失。每个区块都需要一段时间才能添加(例如,大约10分钟),因此这种等待可能很重要。然而,在本公开中,一旦操作员在层1DLT上存储了基于用户指令的验证记录,无论未来可能出现回滚(假设用户已验证其内容,如后所述),用户就可以确信该指令已被执行。这可能会显著提高速度和效率,使用户可以确信其通过层1DLT发出的指令的执行。
应当理解,虽然图10中表示的每个区块仅包括单个交易,但实际上每个区块可能包括多个交易。图10中为空的区块实际上不会为空,但在本示例中,它们不包括具有根据本公开的指令的任何区块链交易。在该示例中,验证记录存储在第一和第二DLT上。这可能更适合提高稳健性和数据完整性,从而提高安全性。因此,即使在分叉的情况下,层1DLT上也应该始终至少有一份验证记录副本(两份DLT同时独立分叉,导致它们都丢失相同的验证记录是极不可能的)。然而,这不是必需的,并且在可选方案中,验证记录可以仅存储在层1DLT中的一个中。
虽然在上述示例中,操作员110检查前一个验证记录和/或前一个验证组和/或当前验证组的指令是否存在于层1DLT上,但操作员110也可以随时可选地检查任何在先验证组以及任何在先验证记录的指令是否仍然出现在层1DLT上。
证明指令执行
为了确信操作员110正在正确执行指令,用户可能会尝试使用存储在层1DLT上的修改记录来验证层2数据记录115的状态。
图11示出了第一用户140可验证其在层2数据记录115上的数据的当前状态的示例流程的序列图。
在步骤S1110中,第一用户140向操作员110和/或监控实体160传达第一状态查询。监控实体160可以是被配置为监控层1DLT以识别包括指令的区块链交易并识别存储在层1DLT上的验证记录的实体。它还可以被配置为确定哪些验证记录与哪些已执行指令相关。这可以使用包括在验证记录的指令记录616中的指令哈希值来完成,例如,通过生成其在层1DLT中识别的每个指令的相关部分的哈希值并将其与包括在其识别的指令记录616中的哈希值进行比较。可选地,在指令哈希值不构成指令记录616的一部分的情况下,操作员110可以例如通过监控实体160和操作员110之间的通信信道通知监控实体160哪些指令与每个验证记录相关。可选地,监控实体160可以使用指令记录616验证操作员110传达的该信息。例如,在由操作员110指示的验证记录600的指令记录616包括默克尔根的情况下,基于操作员110已经声明的指令是指示的验证记录600的一部分以及操作员110声明被包括在默克尔树中的顺序,监控实体160可以生成默克尔根,并将该默克尔根与指示的验证记录600的指令记录616中的默克尔根进行比较。可选地,除了传达哪些指令与验证记录相关之外,操作员110还可以提供证明,诸如当指令记录包括默克尔根时的默克尔证明,或指令记录包括两个或两个以上已执行指令的哈希值时的零知识证明(Zero Knowledge Proof,ZK证明),用于证明验证记录中的指令记录。因此,监控实体160可以验证操作员110提供的信息(并且在相关的验证记录内验证指令执行的顺序)。此外,监控实体160可以例如通过执行每个已执行指令更新其保存的影子副本记录和/或通过操作员110向监控实体160传达指令执行的每个存储的结果(其可通过每个验证记录中的数据记录修改语句614来验证)可选地监控保存在电子数据记录115中的数据的状态。因此,监控实体160可能具有与操作员110非常相似的操作和知识水平,但与操作员110不同的是,操作员未被授权执行指令、改变层2数据记录115或在层1DLT上存储验证记录。
系统100中的监控实体160是可选的,因为操作员110可以执行与监控实体160相同的功能。然而,具有独立于操作员110的监控实体160可能有一些好处,例如防止/检测操作员110的指令审查和/或检测来自操作员110的欺诈/不准确和/或向用户提供通信接口,使得操作员110不需要与用户通信。
例如,第一状态查询可以是对电子数据记录115中与第一用户相关联的数据的当前状态的请求,或者是对在层1DLT中的特定验证记录时电子数据记录115中与第一用户相关联的数据的状态的请求。第一状态查询可以包括第一用户的标识(例如,第一用户ID512)和与查询的性质有关的信息(例如,它是否是对特定验证时的状态的请求,它可以包括验证记录的标识,诸如验证记录ID 618)。
在步骤S1120中,操作员110和/或监控实体160可以向第一用户传达状态通知。状态通知可以包括第一用户数据的状态的指示(例如,当前/最新状态,或者在第一状态查询中识别的验证记录时的状态)。当前/最新状态可以是最近存储的与第一用户相关联的指令执行结果(例如,操作员在步骤S340中存储的每个记录包括,例如:序列号;用户ID;以及指令执行产生的新数据,当前状态的指示可以是具有最新序列号的存储结果)。第一状态查询中识别的验证记录时的状态可以是生成验证记录所依据的与第一用户相关联的存储结果,或者是在生成验证记录之前与第一用户相关联的最近存储的结果(例如,当验证记录是基于与第一用户无关的存储结果生成时)。状态通知可以进一步包括状态证明,供第一用户140在验证第一用户数据的指示状态时使用。在第一状态查询是针对数据的最新状态的情况下,状态通知甚至可以进一步包括对应于第一用户数据状态的最近变化的验证记录的指示(即,包括数据记录修改语句614的验证记录至少部分地基于由操作员110存储的指令的执行记录所引起的第一用户数据的最近改变而生成)。状态证明可以采取任何合适的形式,使第一用户140能够使用相关验证记录中的状态证明和数据记录修改语句614来验证第一用户数据的指示状态。例如,在验证记录被配置为使得数据记录修改语句614是默克尔根的情况下,状态证明可以是默克尔证明,第一用户140可以使用它验证默克尔根(在数据记录修改语句614中)是由操作员110至少部分地使用第一用户数据的指示状态生成的。在数据记录修改语句614是数据库哈希值的情况下,状态证明可以包括ZKProof。
可选地,操作员110/监控实体160还可以向第一用户传达识别的验证记录与一个或多个特定执行的指令(由用户在第一状态查询中识别的特定指令,例如如果用户在执行特定指令后检查其数据的状态,或导致用户数据当前状态的特定指令)相关的证明。该证明可以采用任何合适的形式。例如,在验证记录被配置为使得指令记录包括默克尔根的情况下,该证明可以是默克尔证明,或者在指令记录包括两个或两个以上已执行指令的哈希值的情况下,该证明可以是ZK证明。然而,如果验证记录被配置为包括与它们相关的至少一部分已执行指令的哈希值,则第一用户可以直接证明与它们相关的任何特定指令形成所识别的验证记录的一部分。
在步骤S1130中,第一用户140可以在第一DLT 120或第二DLT 130中查找相关验证记录,并从中检索任何相关信息(例如,数据记录修改语句614和/或至少部分指令记录616)。
在步骤S1140中,第一用户140可以使用状态证明和相关验证记录的检索部分来验证其数据的状态。因此,可以使用可在第一DLT 120和/或第二DLT 130上访问的加密安全信息来证明或反驳从操作员110和/或监控实体160到第一用户140的关于其数据状态的语句。
用户接收到的状态指示可以采取任何合适的形式,这取决于存储在电子数据记录115中的用户数据的性质。例如,如果用户数据涉及金融货币,则状态可以指示用户账户的当前余额,每次与第一用户相关的已执行指令的结果被存储在电子数据存储115中时,该余额将被改变。在进一步的示例中,如果用户数据包括由在层1DLT上的指令触发的过程/通信/操作的记录/结果,则该状态可以包括已接收和存储的记录/结果。
可选地,用户可以读取层1DLT和/或查询操作员110/监控实体160,以识别出现在与其相关的层1DLT上的指令(例如,源自它们的指令,或者以任何方式识别它们的指令,例如作为金融交易的接收方的指令)。他们还可以查询操作员110/监控实体160,以确定哪些指令已执行以及基于每个指令执行的结果生成的验证记录(例如,他们可以询问操作员110/监控实体160是否已经执行了指令A、B、C等中的任何一个,并且作为回报,他们可以接收指令A已被执行并且包括在验证记录Y中的指示,可选地具有诸如默克尔证明或ZK证明之类的包括证明,如上所述)。然后,用户可以知道哪些指令被认为已经被执行以及它们被执行的时间(并验证它们是否包括在指示的验证记录中),然后可以可验证地检查它们包括数据的状态作为指令执行的结果(例如,通过查询它们的数据在验证记录Y时的状态,然后验证返回的指示状态,如上所述)。
因此,用户可以以导致这些指令的安全、一致和可验证执行的方式向多个层1DLT中的任何一个发出指令。因此,用户可以使用任何两个或两个以上不同的层1DLT以安全、可靠、一致和值得信赖的方式控制数据。
技术人员将容易理解的是,在不脱离本公开的范围的情况下,可以对本公开的上述方面进行各种改变或修改。
在上面的解释中,操作员110存储有序的验证组,每个验证组包括一个或多个已执行指令的副本。然而,在可选方案中,操作员110可以简单地存储每个已执行指令,其与部分地根据指令的执行结果生成的验证记录相关联。例如可以通过验证记录ID来保持每个验证记录的相对排序,这样可以记录验证记录之间指令执行的相对排序(也可以通过数据记录修改语句614和/或指令记录616来记录验证记录内指令执行的相对排序)。
验证记录600中的指令记录616是可选的。例如,一些验证记录可以涉及电子数据记录115的一个或多个部分的初始状态,诸如层2记录中用户账户的起始余额。在这种情况下,可以省略指令记录616并且数据记录修改语句614可以指示电子数据记录115的一个或多个部分的初始状态。
第一用户140和/或第二用户150可以可选地包括智能合约或某种其他形式的可触发计算机程序/过程。例如,上述用户处理可以由智能合约执行,并且可选地,可以根据结果执行进一步的处理。例如,智能合约可以由第一DLT120上特定指令的存在触发。智能合约可以使用参考图11描述的过程来验证指令的执行,并且可选地,如果验证通过,则执行进一步的操作。在一个特定的非限制性示例中,数据(例如令牌)可以以这种方式从特定层1DLT上的层2帐户迁移到层1帐户。例如,将令牌从层2帐户转移到迁移层2帐户的指令可以被发布到层1DLT的其中一个中。智能合约可以通过指令中对迁移层2帐户的引用来触发。执行此指令导致结果存储在层2电子数据记录115上,使得迁移账户将令牌添加到其余额中。智能合约可以验证指令的执行(例如,利用上面参考图11描述的用户验证过程),并且如果验证通过,则将令牌添加到层1DLT(例如,以预定的层1令牌:层2令牌的比率)。可选地,智能合约随后可以向层1DLT的其中一个发出另外的指令,以删除迁移账户中保存的层2令牌,或者可以以任何其他合适的方式锁定或删除迁移账户中的层2令牌。可以反向执行类似的过程,以将层1令牌迁移到层2帐户。
在整个公开中,经常使用术语“哈希值”。在基于数据生成哈希值的时,可替代地使用任何合适的过程可以生成唯一指示数据的任何其他合适类型的值。例如,在生成已执行指令的至少一部分的哈希值时,在可选方案中,可以基于已执行指令使用任何合适的过程来生成唯一指示已执行指令的至少一部分的值。
在本公开的一些方面,公开了默克尔树和默克尔根的使用,例如关于层2数据记录115和数据修改语句164;和/或已执行指令和指令记录616。这仅仅是可以使用的一种非限制性示例结构/方法,如前所述,其他结构/方法也是可能的。作为保存或指示数据结构中信息的相对排序的一类数据结构的进一步示例,沃克尔树(Verkle tree)和沃克尔根(Verkleroot)可用于层2数据记录115和数据修改语句164;和/或已执行指令和指令记录616。沃克尔树类似于默克尔树,但允许在每个级别组合两个以上项。保存或指示相对排序的任何其他类型的数据结构可以可选地地用于层2数据记录115和数据修改语句164;和/或已执行指令和指令记录616。在上述示例中,系统100包括单个操作员110和单个监控实体160。然而,在可选方案中,系统100可以包括两个或两个以上操作员实体110和/或两个或两个以上监控实体160,每个实体起都如上所述的作用。例如,如果有两个或两个以上操作员实体110,它们可以被配置为分担处理负担,诸如产生交替的验证记录等。在进一步的示例中,如果有两个或两个以上监控实体160,它们可以各自独立执行上述监控功能。
以上所有描述的本公开的各方面可以通过软件、硬件或者软件和硬件的组合来实现。例如,操作员110、用户和/或监控实体160的功能每个都可以通过包括计算机可读代码的软件来实现,当在任何电子设备的一个或多个处理器(诸如一个或多个微处理器,或可编程逻辑)上运行时,该软件执行上述功能。软件可以存储在任何合适的计算机可读介质上,例如非瞬时性计算机可读介质,诸如只读存储器、随机存取存储器、CD-ROM、DVD、蓝光、磁带、硬盘驱动器、固态硬盘和光驱。计算机可读介质可以分布在网络耦合的计算机系统上,使得计算机可读指令以分布式方式存储和执行。

Claims (16)

1.一种计算机实现的方法,用于执行两个或两个以上不同分布式账本中的任一分布式账本发出的指令,所述方法包括:
监控多个分布式账本以获得包含待执行指令的分布式账本交易;
识别多个第一分布式账本交易,其中,所述多个第一分布式账本交易中的每一个第一分布式账本交易均出现在所述多个分布式账本中的任一分布式账本中,所述多个第一分布式账本交易中的每一个第一分布式账本交易都包括待执行指令;
对识别出的所述多个第一分布式账本交易中的多个第一指令的至少部分进行验证;以及
对于所述多个第一指令中的每个通过验证的指令,
执行所述指令;以及
在电子数据记录中存储该已执行的指令的结果。
2.根据权利要求1所述的方法,还包括:
在执行所述多个第一指令中的所述通过验证的指令之后,在所述多个分布式账本中的至少一个分布式账本中存储指示所述电子数据记录中存储的每个结果的第一验证记录。
3.根据权利要求2所述的方法,其中,所述第一验证记录指示所述多个第一指令中通过验证的指令的执行顺序。
4.根据权利要求2或3所述的方法,还包括:
在执行所述多个第一指令中的所述通过验证的指令之后,基于所述多个第一指令中的所述已执行的指令生成第一指令记录,
其中,第一验证记录还包括所述第一指令记录。
5.根据权利要求4所述的方法,其中,所述第一指令记录指示所述多个第一指令中通过验证的指令的执行顺序。
6.根据权利要求2至5中任一项所述的方法,其中,所述第一验证记录包括序列标识,所述序列标识指示存储在所述多个分布式账本中的至少一个分布式账本中的验证记录的相对顺序。
7.根据上述权利要求中任一项所述的方法,还包括:
确定通过验证的所述多个第一指令的执行的顺序;以及
根据确定出所述顺序执行通过验证的所述多个第一指令。
8.根据上述权利要求中任一项所述的方法,其中,所述多个第一分布式账本交易中的至少一个第一分布式账本交易出现在所述多个分布式账本中的第一分布式账本中,并包括用于执行与第一用户相关联的流程的指令;以及,
其中,所述多个第一分布式账本交易中的至少一个其他的第一分布式账本交易出现在所述多个分布式账本中的第二分布式账本中,并包括用于执行与所述第一用户相关联的另外的流程的指令。
9.根据上述权利要求中任一项所述的方法,还包括:
识别多个第二分布式账本交易,其中,所述多个第二分布式账本交易中的每个第二分布式账本交易均出现在所述多个分布式账本中的任一分布式账本中,所述多个第二分布式账本交易中的每一个第二分布式账本交易都包括待执行指令;
对所述多个第二指令中的至少部分进行验证;以及
对于所述多个第二指令中的每个通过验证的指令:
执行该指令;以及
在所述电子数据记录中存储该已执行的指令的结果。
10.根据权利要求9所述的方法,还包括:
在执行所述多个第二指令中的所述通过验证的指令之后,在所述多个分布式账本中的至少一个分布式账本中存储第二验证记录,所述第二验证记录指示每个作为所述多个第二指令中的已执行的指令的结果存储在所述电子数据记录中的结果。
11.根据权利要求9或10所述的方法,其中,所述多个第一分布式账本交易中的至少一个第一分布式账本交易出现在所述多个分布式账本中的第一分布式账本中,并包括用于执行与第一用户相关联的流程的指令;以及,
其中,所述多个第二分布式账本交易中的至少一个第一分布式账本交易出现在所述多个分布式账本中的第二分布式账本中,并包括用于执行与所述第一用户相关联的另外的流程的指令。
12.根据上述权利要求中任一项所述的方法,其中,所述多个第一指令中的每个第一指令均包括与该指令相关联的用户的标识,并且已执行的指令的每个结果都与关联于该已执行的指令的用户相关联地存储在所述电子数据存储中,
其中,所述方法还包括:
接收关于与第一用户相关联地存储在所述电子数据存储中的电子数据的状态的第一状态查询;
响应于所述第一状态查询,传达状态通知,所述状态通知包括:
与所述第一用户相关联的电子数据的所述状态的指示;以及
用于对指示出的与所述第一用户相关联的电子数据的所述状态进行验证的状态证明。
13.一种计算机程序,用于当其在电子设备的至少一个处理器上执行时,执行前述权利要求中任一项所述的方法。
14.一种电子设备,用于执行权利要求1至12中任一项所述的方法。
15.一种计算机实现的方法,用于监控两个或两个以上不同分布式账本中的任一分布式账本发出的指令的执行,所述方法包括:
监控多个分布式账本以获得包含待执行指令的分布式账本交易;
识别多个第一分布式账本交易,其中,所述多个第一分布式账本交易中的每一个第一分布式账本交易均出现在所述多个分布式账本中的任一分布式账本中,所述多个第一分布式账本交易中的每一个第一分布式账本交易都包括待执行指令;
识别存储在所述多个分布式账本中的至少一个分布式账本中的第一验证记录,其中所述第一验证信息用于验证所述多个第一指令中的指令的执行;以及
使用所述第一验证信息验证所述指令的所述执行。
16.一种计算机实现的方法,用于第一用户验证与其相关联且存储在电子数据记录中的数据的状态,所述方法包括:
输出关于所述电子数据记录中与所述第一用户相关联的数据的所述状态的状态查询,其中所述状态查询包括所述第一用户的标识;
接收状态通知,所述状态通知包括:
与所述第一用户相关联的数据的所述状态的指示;以及
用于对指示出的与所述第一用户相关联的电子数据的所述状态进行验证的状态证明;
识别多个分布式账本中的一个或多个分布式账本的验证记录,所述一个或多个分布式账本用于验证与所述第一用户相关联的数据的状态的所述指示;
使用所述状态证明和识别出的所述验证记录来验证与所述第一用户相关联的数据的所述状态的所述指示。
CN202180066280.4A 2020-11-20 2021-11-19 一种安全的多分布式账本系统 Pending CN116324781A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20209072.6 2020-11-20
EP20209072.6A EP4002180A1 (en) 2020-11-20 2020-11-20 Secure multi distributed ledger system
PCT/EP2021/082270 WO2022106603A1 (en) 2020-11-20 2021-11-19 Secure multi distributed ledger system

Publications (1)

Publication Number Publication Date
CN116324781A true CN116324781A (zh) 2023-06-23

Family

ID=73543210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180066280.4A Pending CN116324781A (zh) 2020-11-20 2021-11-19 一种安全的多分布式账本系统

Country Status (5)

Country Link
US (1) US20240007312A1 (zh)
EP (1) EP4002180A1 (zh)
JP (1) JP2023549667A (zh)
CN (1) CN116324781A (zh)
WO (1) WO2022106603A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3493141A1 (en) * 2017-12-01 2019-06-05 Quant Network Ltd. Blockchain communications and ordering

Also Published As

Publication number Publication date
WO2022106603A1 (en) 2022-05-27
US20240007312A1 (en) 2024-01-04
EP4002180A1 (en) 2022-05-25
JP2023549667A (ja) 2023-11-29

Similar Documents

Publication Publication Date Title
JP7241216B2 (ja) ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム
JP7273053B2 (ja) ブロックチェーン通信と順序付け
US11170092B1 (en) Document authentication certification with blockchain and distributed ledger techniques
US11764946B2 (en) Audit chain for private blockchain
US20200067697A1 (en) Method for operating a blockchain
KR101937220B1 (ko) 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법
CN112287034B (zh) 一种数据同步方法、设备以及计算机可读存储介质
EP3726774A1 (en) Transparent blockchain sidechains to support blockchain processing heterogeneity
US11818266B2 (en) Methods and systems for distributed cryptographically secured data validation
CN111327564A (zh) 一种联盟链的准入方法及装置
KR102627868B1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
EP3864794B1 (en) Linking transactions
CN113874839A (zh) 区块链交易内的脚本内函数
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
EP4352911A1 (en) Computer-implemented method and system for verifying tokens on a blockchain
US20190251532A1 (en) Systems and methods for providing distributed licensing and subscription management
CN116324781A (zh) 一种安全的多分布式账本系统
CN112948847A (zh) 基于区块链的数据共享系统及数据正确性验证方法
CN117473557B (zh) 一种可信设置方法及装置
US20230281585A1 (en) Systems and Methods for Managing Network-Agnostic Smart Contracts
Yadav et al. Blockchain Technology: and its Applications
WO2023148042A1 (en) Blockchain based privacy enhanced outsourced data storage
JP2022087787A (ja) 秘密鍵方式の電子署名装置
CN115130148A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40094695

Country of ref document: HK