用于有序数据记录的方法、数据结构和系统技术方案

技术编号:35635990 阅读:15 留言:0更新日期:2022-11-19 16:25
在一个方面,本公开提出用于实现有序的仅附加的数据记录系统的方法、设备、系统和数据结构。特别地,一种方法包括创建第一类型的事务,所述第一类型的所述事务包括与来自事务集中的最新事务的事务输出相关联的输入。然后,创建第二类型的事务。最后,将所述第二类型的所述事务和所述第一类型的所述事务提交到区块链。块链。块链。

【技术实现步骤摘要】
【国外来华专利技术】用于有序数据记录的方法、数据结构和系统


[0001]本公开涉及用于使用分布式分类账(即,区块链)存储数据的方法、设备、系统和数据结构。更具体地,本公开提供有序的仅附加的数据项存储。

技术介绍

[0002]区块链是指一种分布式数据结构,其中在分布式对等(P2P)网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务。除所谓的“Coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,直到一个或多个Coinbase事务为止。Coinbase事务将在下面讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作量证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在节点处被修剪,并且区块的发布可以通过仅发布区块头来实现。
[0003]区块链中的事务用于执行以下操作中的一个或多个:传送数字资产(即,一定数量的数字代币);对虚拟化分类账或注册表中的一组日记账分录进行排序;接收和处理时间戳条目和/或对索引指针按时间排序。也可利用区块链实现区块链上的分层附加功能。区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文档、音频或视频数据。
[0004]区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将在下面详细描述。总之,在该过程中,节点核实事务并将这些事务插入到区块模板中,这些事务尝试为该区块模板标识有效的工作量证明解。一旦找到有效的解,新区块便会被传播到网络的其它节点,从而使得每个节点能够在区块链上记录新区块。为了将事务记录在区块链中,用户(例如,区块链客户端应用程序)将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的节点可以争相寻找将核实有效的事务并入新区块的工作量证明解。每个节点被配置为执行相同的节点协议,该协议将包括用于确认事务有效的一个或多个条件。无效事务将不会传播或并入到区块中。假定事务已经核实有效,从而在区块链上被接受,则该事务(包括任何用户数据)将因此在区块链网络中的每个节点上作为不可改变的公共记录进行注册和索引。
[0005]成功解决工作量证明难题可创建最新区块的节点通常被奖励一个称为“Coinbase事务”的新事务,该事务分发数字资产数额,即代币数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。
[0006]在“基于输出的”模型(有时称为基于UTXO的模型)中,给定事务的数据结构包括一
个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素可从进行中的事务序列导出。可花费输出有时称为UTXO(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字代币或资产所必需的条件的谓词。事务(除Coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二目标事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。
[0007]在此类模型中,当第二目标事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。
[0008]另一种事务模型是基于账户的模型。在这种情况下,每个事务均不通过参考过去事务序列中先前事务的UTXO来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由节点单独存储到区块链中,并不断更新。
[0009]虽然区块链技术最广为人知的是用于实现加密货币,但数字企业家正在探索如何利用比特币所基于的加密安全系统和可存储在区块链上的数据来实现新的系统。如果区块链可以用于加密货币领域之外的自动任务和过程,则会非常有利。这种解决方案将能够发挥区块链的优势(例如,永久性防篡改事件记录、分布式处理等),同时其应用将更加广泛。
[0010]当前研究的一个领域是使用区块链实现“智能合约”。这些是设计成自动执行机器可读合约或协议条款的计算机程序。与以自然语言编写的传统合约不同,智能合约是机器可执行程序,它包括能够处理输入以产生结果的规则,然后使得根据这些结果执行动作。与区块链相关的另一关注领域是使用“代币”(或“彩色币”)来表示现实世界的实体,并通过区块链转移现实世界的实体。潜在的敏感或保密项目可以由无可辨别意义或价值的代币表示。因此,代币充当允许从区块链引用现实世界项目的标识符。
[0011]利用区块链的优点提供永久性防篡改事件记录时,上述示例或场景需要客户端以包括或实现软件和/或硬件用于实现用于管理数字资产以及椭圆曲线数字签名算法(ECDSA)的加密密钥、能够实现区块链事务构建并能够访问区块链库。申请号为2002285.1的英国专利申请案(于2020年2月19日以nChain Holdings Limited名义递交)描述了一种用于与区块链相关联的一项或多项服务的平台。通过该平台,与客户端相关联的数据或信息可以通过为与区块链相关联的一项或多项服务提供应用程序编程接口(API)的方法、设备和系统来简单、安全且即时地写入区块链或从区块链获得,而无需此类客户端实现用于使用区块链的任何处理或功能,同时仍然能够利用与区块链相关联的所有优点。对于这种平台,还需要确保使用或经由平台输入到区块链后的数据不被篡改或修改,并且可以独立审计。因此,本公开描述了一种或多种技术,用于确保基于与平台相关联或经由平台提供的数据的事件序列和/或从任意客户端提供的任意数据项序列是防篡改的,并且可以独立遍
历和验证。

技术实现思路

[0012]在第一方面,本公开提出了用于实现有序的仅附加的数据存储的方法、设备、数据结构和系统。一种根据此方面的数据结构,包括:第一事务;以及第二事务。所述第一事务包括:第一输出;以及第一数据项的表示。所述第二事务包括:所述第一数据项的进一步表示;第二数据项的表示;与所述第一输出相关联的第一输入;以及第二输出。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种与区块链相关联的计算机实现的数据结构,包括:第一类型的事务,所述第一类型的所述事务包括输出,所述输出包括对第二类型的事务的第一引用;以及所述第二类型的所述事务。2.根据权利要求1所述的计算机实现的数据结构,其中所述第一引用是不变引用。3.根据权利要求2所述的计算机实现的数据结构,其中所述第一引用基于所述第二类型的所述事务的不变特征。4.根据权利要求1至3中任何一项或多项所述的计算机实现的数据结构,其中所述第一引用包括所述第二类型的所述事务的事务id。5.根据权利要求1至4中任何一项或多项所述的计算机实现的数据结构,其中所述第二类型的所述事务包括至少一个输入,并且所述第一引用基于对所述第二类型的所述事务的所述至少一个输入中的至少一个。6.根据权利要求1至5中任何一项或多项所述的计算机实现的数据结构,其中所述第二类型的所述事务包括第二引用。7.根据权利要求6所述的计算机实现的数据结构,其中所述第二引用存储在所述第二类型的所述事务的输出中。8.根据权利要求6或7所述的计算机实现的数据结构,其中所述第二引用包括所述第一类型的所述事务的事务id。9.根据权利要求6至8中任何一项或多项所述的计算机实现的数据结构,其中所述第二引用是不变引用。10.根据权利要求9所述的计算机实现的数据结构,其中所述第二引用基于所述第一类型的所述事务的不变特征。11.根据权利要求6、7、9或10中任何一项或多项所述的计算机实现的数据结构,其中所述第一类型的所述事务包括至少一个输入,并且所述第二引用基于所述第一类型的所述事务的所述至少一个输入中的至少一个。12.根据权利要求5或11所述的计算机实现的数据结构,其中包括所述至少一个输入的所述引用采取事务输出点的形式。13.一种与区块链相关联的计算机实现的数据结构,包括:第一类型的事务,包括:对第二类型的事务的第一引用;和至少一个输入;所述第二类型的所述事务,包括:对所述第一类型的所述事务的第二引用;和至少一个输入;并且其中所述第一引用基于对所述第二类型的所述事务的所述至少一个输入中的至少一个,并且所述第二引用基于对所述第一类型的所述事务的所述至少一个输入中的至少一个。14.一种与区块链相关联的计算机实现的数据结构,包括:第一类型的事务,包括:
对第二类型的事务的第一引用;和至少一个输入;所述第二类型的所述事务,包括:对所述第一类型的所述事务的第二引用;和至少一个输入;其中所述第一引用包括所述第二类型的所述事务的事务id,并且所述第二引用基于对所述第一类型的所述事务的所述至少一个输入中的至少一个。15.一种与区块链相关联的计算机实现的数据结构,包括:第一类型的事务,包括:对第二类型的事务的第一引用;和至少一个输入;所述第二类型的所述事务,包括:对所述第一类型的所述事务的第二引用;和至少一个输入;其中所述第一引用基于对所述第二类型的所述事务的所述至少一个输入中的至少一个,并且所述第二引用包括所述第一类型的所述事务的事务id。16.根据权利要求1至15所述的计算机实现的数据结构,包括:第一事务,包括:第一输出;和第一数据项的表示;第二事务,包括:所述第一数据项的进一步表示;第二数据项的表示;与所述第一输出相关联的第一输入;和第二输出。17.一种与区块链相关联的计算机实现的数据结构,包括:第一事务,包括:第一输出;和第一数据项的表示;第二事务,包括:所述第一数据项的进一步表示;第二数据项的表示;与所述第一输出相关联的第一输入;和第二输出。18.根据权利要求16或17所述的计算机实现的数据结构,其中所述第一数据项是元数据和种子。19.根据权利要求18所述的计算机实现的数据结构,其中所述第一项的所述表示包括所述元数据,所述元数据包括所述种子。20.根据权利要求18或19所述的计算机实现的数据结构,其中所述第一项的所述进一
步表示包括所述种子。21.根据权利要求16或17所述的计算机实现的数据结构,其中所述第一数据项的所述第一表示包括所述数据项的哈希值。22.根据权利要求16或17所述的计算机实现的数据结构,其中所述第一数据项的所述第一表示包括所述数据项。23.根据权利要求21或22所述的计算机实现的数据结构,其中所述第一事务包括原像,所述原像包括所述第一数据项的所述第一表示。24.根据权利要求23所述的计算机实现的数据结构,其中所述第一数据结构的所述进一步表示包括所述第一事务的所述原像的哈希值。25.根据权利要求16至24中任何一项或多项所述的计算机实现的数据结构,其中所述第二事务还包括对所述第一事务的引用。26.根据权利要求17至25中任何一项或多项所述的计算机实现的数据结构,还包括:第一类型的事务,所述第一类型的所述事务包括输出,所述输出包括对第二类型的事务的第一引用;以及所述第二类型的所述事务。27.一种与区块链系统中的事务集相关联的计算机实现的方法,所述方法包括以下步骤:接收请求,所述请求触发要存储在所述区块链上的数据项的表示;获得所述事务集中的最新事务;创建新区块链事务,包括:与来自所述最新事务的输出相关联的输入,输出,要存储在所述区块链上的所述数据项的所述表示,和对所述最新事务的引用;将所述事务提交到所述区块链。28.根据权利要求27所述的计算机实现的方法,其中对所述最新事务的所述引用是所述最新事务的不变特征的哈希值。29.根据权利要求28所述的计算机实现的方法,其中所述最新事务包括原像,并且对所述最新事务的所述引用是所述最新事务的所述原像的哈希值。30.根据权利要求27至29中任何一项或多项所述的计算机实现的方法,其中所述新区块链事务还包括对所述事务集中的初始事务的引用。31.根据权利要求30所述的计算机实现的方法,其中对所述事务集中的所述初始事务的所述引用基于所述初始事务。32.根据权利要求30或31所述的计算机实现的方法,其中对所述初始事务的所述引用是所述初始事务的哈希值。33.根据权利要求27至32中任何一项或多项所述的计算机实现的方法,还包括以下步骤:创建第二类型的事务;创建第一类型的事务,所述第一类型的所述事务包括与来自所述事务集中的所述最新
事务的事务输出相关联的输入;将所述第二类型的所述事务提交到所述区块链;以及将所述第一类型的所述事务提交到所述区块链。34.一种与区块链系统中的事务集相关联的计算机实现的方法,所述方法包括以下步骤:创建第二类型的事务;创建第一类型的事务,所述第一类型的所述事务包括与来自所述事务集中的最新事务的输出相关联的至少一个输入;将所述第二类型的所述事务提交到所述区块链;以及将所述第一类型的所述事务提交到所述区块链。35.根据权利要求33或34所述的计算机实现的方法,还包括以下步骤:确定所述事务集的子集中的事务总数;以及确定所述事务子集中的所述事务总数是否等于或大于阈值。36.根据权利要求35所述的计算机实现的方法,其中所述事务子集的成员资格由所述事务是否已在所述区块链上确认来定义。37.根据权利要求35或36所述的计算机实现的方法,其中所述事务子集的成员资格由与所述事务集中的任何事务的花费关系来定义。38.根据权利要求35或36所述的计算机实现的方法,其中所述事务子集的成员资格还由所述阈值来定义。39.根据权利要求35至38中任何一项或多项所述的计算机实现的方法,其中所述事务子集包括第一事务链。40.根据权利要求39所述的计算机实现的方法,其中所述事务子集是所述第一事务链。41.根据权利要求39或40所述的计算机实现的方法,其中所述第一事务链被构造为使得除了所述第一事务之外,所述子集中的每个事务包括对所述链中的上一事务的引用。42.根据权利要求41所述的计算机实现的方法,其中对所述上一事务的所述引用是与来自所述上一事务的事务输出相关联的输入。43.根据权利要求40至42中任何一项或多项所述的计算机实现的方法,其中所述事务集包括多个事务子集。44.根据权利要求43所述的计算机实现的方法,其中所述事务集还包括事务链。45.根据权利要求35至44中任何一项或多项所述的计算机实现的方法,其中所述阈值基于祖先限制。46.根据权利要求45所述的计算机实现的方法,其中所述阈值小于所述祖先限制。47.根据权利要求35至46中任何一项或多项所述的计算机实现的方法,其中基于所述事务子集中的所述事务总数与所述阈值之间的比较来执行创建和提交所述第二类型的所述事务和所述第一类型的所述事务的步骤。48.根据权利要求47所述的计算机实现的方法,其中基于所述事务子集中的所述事务总数是否等于或大于所述阈值来执行创建和提交所述第二类型的所述事务和所述第一类型的所述事务的步骤。49.根据权利要求33至48中任何一项或多项所述的计算机实现的方法,其中所述第一
类型的所述事务包括对所述第二类型的所述事务的第一引用。50.根据权利要求49所述的计算机实现的方法,其中所述第一引用是不变引用。51.根据权利要求50所述的计算机实现的方法,其中所述第一引用基于所述第二类型的所述事务的不变特征。52.根据权利要求49至51中任何一项或多项所述的计算机实现的方法,其中所述第一引用包括所述第二类型的所述事务的事务id。53.根据权利要求33至52中任何一项或多项所述的计算机实现的方法,其中在提交所述第一类型的所述事务之前,在所述区块链上确认所述第二类型的所述事务。54.根据权利要求49至53中任何一项或多项所述的计算机实现的方法,其中所述第二类型的所述事务包括至少一个输入,并且所述第一引用基于所述第二类型的所述事务的所述至少一个输入中的至少一个。55.根据权利要求33至54中任何一项或多项所述的计算机实现的方法,其中所述第二类型的所述事务包括对所述事务集中的事务的第二引用。56.根据权利要求55所述的计算机实现的方法,其中所述第二引用是对所述事务集中的初始事务的引用。57.根据权利要求56所述的计算机实现的方法,其中对所述初始事务的所述引用包括所述初始事务的事务id。58.根据权利要求55至57中任何一项或多项所述的计算机实现的方法,其中所述第二引用是不变引用。59.根据权利要求58所述的计算机实现的方法,其中所述第二引用基于所述第一类型的所述事务的不变特征。60.根据权利要求55至59中任何一项或多项所述的计算机实现的方法,其中所述第二引用包括所述第一类型的所述事务的事务id。61.根据权利要求58或59所述的计算机实现的方法,其中所述第二引用基于所述第一类型的所述事务的所述至少一个输入中的至少一个。62.根据权利要求54或61所述的计算机实现的方法,其中基于所述至少一个输入中的至少一个的所述引用采取事务输出点的形式。63.一种用于向前遍历区块链事务集的计算机实现的方法,包括以下步骤:(f)获得所述事务集中的当前事务;(g)确定所述当前事务是第一类型的事务,并且基于所述确定,执行以下步骤(i)、(ii)和(iii):i.基于所述第一类型的所述事务,获得对第二类型的事务的引用;ii.基于对所述第二类型的所述事务的所述引用,获得所述第二类型的所述事务;以及iii.继续执行步骤(c)...

【专利技术属性】
技术研发人员:安德鲁
申请(专利权)人:区块链许可股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1