在数据结构中创建可被加密证明包含有效数据的数据链的设备和方法与流程

文档序号:16637245发布日期:2019-01-16 07:08阅读:172来源:国知局
本公开总体涉及可操作为在数据结构中创建可被加密证明包含有效数据的数据链的设备;这种设备能够提供使数据处理系统对数据损坏、数据丢失、数据通信同步失败和类似的实际操作问题具有鲁棒性的技术效果。此外,本公开涉及在数据结构中创建可被加密证明包含有效数据标识符的数据链的方法,该数据标识符可以安全地允许将实际数据重新发布到分散式网络上。此外,本公开涉及计算机程序产品,计算机程序产品包括其上存储有计算机可读指令的非暂时性计算机可读存储介质,这些计算机可读指令可由包括处理硬件以运行前述方法的计算机化装置运行。
背景技术
::用于编码输入数据以生成相应编码数据的各种设备以及同样用于解码编码数据以生成相应解码数据的各种设备已经在已经授予专利权的早期专利申请中进行了描述,即使输入数据可能具有抽象本质(例如,计算机生成的图形图像数据)并且编码器仅操作存在于输入数据中的位,也能将输入数据有效地转换成其它类型的数据。专利权威机构认为这种数据操作和用于执行这种数据操作的设备涉及技术效果。例如,这种编码器和解码器频繁用于已被授予专利权保护的电信系统中。对等(p2p)计算或对等网络是划分对等体之间的任务或工作量的分布式应用体系结构。对等体在应用体系结构中享有同样的特权、为同等的参与者。据称,对等体形成节点的对等网络。此外,对等体使对等体的资源的一部分(诸如,处理能力、磁盘存储或网络带宽)可被其它网络参与者直接使用,而无需服务器或稳定的主机进行中央协调。分散式网络是使用vpn和软件/硬件bgp路由器向各个个人工作站或办公地点构建的对等网络。是用于分散式对等计算机网络的分布式散列表(hashtable)。此外,通过节点查找指定给定网络的结构和信息的交换。此外,节点使用udp(用户数据报协议)在节点之间进行通信。这些参与者节点形成虚拟网络或覆盖网络。数字id或节点id识别每个参与者节点。通常,在通信网络中,节点是连接点、再分配点或通信端点。在物理网络中,节点是附接至网络的有源电子装置,并且能够通过通信信道创建、接收或发送信息。散列表是用于实现关联阵列的数据结构,即为可将键映射到值的结构。散列表使用散列函数将索引计算至从中可以找到期望值的桶(bucket)或槽(slot)的阵列中。分布式散列表(dht)是提供类似于散列表的查找服务的一类分散的分布式系统;成对存储在dht中,并且任何参与节点都可高效地检索与给定的键相关联的值。加密的散列函数是将任意大小的数据映射到固定大小的位串(例如,散列函数)的数学算法,这种函数也被设计为单向函数(即,反向不可行的函数)。流失事件(churnevent)是由关闭节点并将数据重新定位到活动节点而产生的数据移动。在这样的流失事件期间,必须传输大量数据以备份或复制活动节点,这是一个重要挑战。加密地证明数据的有效性非常重要。此外,大量数据必须以安全的方式重新发布,这是在分散式网络中待解决的特别具有挑战性的问题。在保持大量数据的同时,需要启动节点并且必须使数据在节点中可用。分散式网络通常缺乏从完全系统中断(诸如,整个网络崩溃或全球断电)轻松恢复的能力。此外,在分散式网络中也不可能立即进行全系统升级。因此,鉴于与已知系统和方法相关的前述缺点,特别是由于数据必须被加密证明为包含先前被安全放在网络上且未被攻击者攻入或错误攻入的有效数据,需要克服与用于在分散式网络上的节点处的数据结构中存储数据的现有方法有关的上述缺点。技术实现要素:本公开旨在提供包括一个或多个处理器的设备,其中,一个或多个处理器可操作为利用存储有一个或多个序列的指令的一个或多个非暂时性计算机可读存储介质,其特征在于,一个或多个序列的指令在一个或多个处理器中的运行致使创建能够被加密地证明包含有效数据的数据链,所述指令配置成执行以下步骤:创建没有元素的数据链;在接收数据链之前验证节点的数据链;检验闭合群组的大小以添加数据链;向数据链添加数据块;将新元素注入代表数据元素的当前闭合群组的链中;验证大多数预先存在的节点;以及经由签名元素的数据链验证数据链的签名。本公开旨在提供包括一个或多个处理器的设备,其中,一个或多个处理器可操作为利用存储有一个或多个序列的指令的一个或多个非暂时性计算机可读存储介质,其特征在于,一个或多个序列的指令在一个或多个处理器中的运行致使创建能够被加密地证明包含有效数据的数据链,所述指令配置成执行以下步骤:创建没有元素的数据链;在接收数据链之前验证节点的数据链;检验闭合群组的大小以添加数据链;向数据链添加数据块;将新元素注入代表数据元素的当前闭合群组的链中;验证大多数预先存在的节点;以及经由签名元素的数据链验证数据链的签名。本公开的实施方式能够大致消除或至少部分解决现有技术中的上述缺点(即,问题),并且能够在待实现的分散式网络上进行加密验证以在流失事件期间在将数据从关闭节点重新定位到活动节点的同时,确保数据结构具有加密的有效数据。根据另一方面,提供了在包括一个或多个处理器的设备中创建可被加密地证明包含有效数据的数据链的方法,其特征在于,该方法包括:创建没有元素的数据链;在接收数据链之前验证节点的数据链;检验闭合群组的大小以添加数据链;向数据链添加数据块;仅当链式共识不会被打断时才从数据链移除条目的旧副本,否则保留条目并将条目标记为删除;验证大多数预先存在的节点;以及经由签名元素的数据链验证数据链的签名。根据另一方面,提供了计算机程序产品,其包括其上存储有计算机可读指令的非暂时性计算机可读存储介质,计算机可读指令可由计算机化装置运行,计算机化装置包括运行前述方法的处理硬件。通过附图和结合所附权利要求解释的说明性实施方式的详细描述,本公开的其它方面、有益效果、特征和目的变得显而易见。应理解的是,在不背离由所附权利要求限定的本公开的范围的情况下,本公开的特征易于以各种组合形式进行组合。附图说明当结合附图阅读时,将会更好地理解上文的
发明内容以及下文的说明性实施方式的详细描述。出于说明本公开的目的,在附图中示出了本公开的示例性构造。然而,本公开不限于本文中公开的具体方法和具体手段。此外,本领域技术人员将理解,附图不是按比例绘制的。在任何可能的情况下,相同的元件由相同的附图标记表示。现将参照以下附图仅通过示例的方式来描述本公开的实施方式,在附图中:图1是根据本公开的实施方式的用于创建在分散式网络中被加密验证的数据链的设备的模块的图示;图2是示出了根据本公开的实施方式的创建在分散式网络中被加密验证的数据链的方法的流程图;图3是用于实践本公开的实施方式的硬件环境的图示;以及图4是示出了根据本公开的实施方式的创建数据链的方法的示例性流程图。在附图中,下划线数字用于表示下划线数字定位在其上的项目或下划线数字邻近的项目。未加下划线的数字表示由将未加下划线的数字链接到项目的线所标识的项目。当数字没有下划线并伴有相关箭头时,未加下划线的数字用于标识箭头指向的一般项目。具体实施方式下文的详细描述示出了本公开的实施方式及可实施这些实施方式的方式。尽管已经公开了实施本公开的一些模式,但是本领域技术人员将认识到,用于实施或实践本公开的其它实施方式也是可能的。本公开中使用的定义描述如下:分散式网络(decentralisednetwork)为xor空间中使用类型寻址的对等(“p2p”)网络。散列(hash)是可产生任何输入的固定长度表示的加密单向函数。不可变数据(immutabledata)是具有名称和数据内容的散列的数据类型。其是不可变的,由于更改内容会创建一个新的不可变数据。结构化数据(structureddata)是具有固定名称但具有可变内容的数据类型。group_size是网络地址周围的节点的数目。quorum是被认为足够大以使决策有效的group的数目,并且该数目被认为是多数的(即(group_size/2)+1)。链共识(chainconsensus)基于以下事实:签名者的quorum数量存在于下一个链接(数据块)中,也存在于前一个块中。流失事件(churnevent)是由关闭节点并将数据重新定位到“活动”节点而产生的数据移动。数据标识符(dataidentifier)是加密确保数据标识符精确地指向一个唯一的数据片段的标识符,并且其它数据片段不能与该标识符匹配。简单表示(simplerepresentation)将是包含给定的数据元素本身的散列的数据标识符。在一方面,提供了存储一个或多个序列的指令的一个或多个非暂时性计算机可读存储介质,当一个或多个序列的指令由一个或多个处理器运行时使得创建可被加密证明包含有效数据的数据链,指令配置成执行以下步骤:(a)创建不具有元素的数据链,(b)在接收数据链之前验证节点的数据链,(c)检验闭合群组(closegroup)的大小以添加数据链,(d)将数据块添加至数据链,(e)确保将新元素注入代表数据元素的当前闭合群组的链中(即,链接),(f)验证大多数现有节点,以及(g)通过签名元素的数据链验证数据链的签名。步骤(a)至(g)例如在数据处理设备中运行,该数据处理设备可操作为例如在数据处理系统中断或意外运行崩溃的情况下确保数据处理系统的稳定和可靠的操作。在实施方式中,指令还配置成检验未删除的块。根据一个实施方式,数据标识符验证数据链。根据另一实施方式,数据标识符加密地验证数据链。根据另一实施方式,数据标识符是可以唯一标识和验证数据链的对象。根据另一实施方式,数据标识符的节点数据块包括公钥或签名对。根据另一实施方式,指令还配置成使用签名作为证据来证明公钥是对数据标识符签名的密钥。根据另一实施方式,这些指令还配置成:(i)检查以下二者中的条目:(a)一个或多个数据块的缓存;以及(b)数据链,其中,接收节点检查(a)一个或多个数据块的缓存中的条目和(b)接收到节点数据块时数据链中的条目;(ii)当找到(a)一个或多个数据块的缓存中的条目和(b)数据链中的条目时,将节点添加至数据块;以及(iii)在缓存中创建新的数据块条目,并在未标识条目时等待来自数据标识符的群组成员的进一步通知。根据另一实施方式,这些指令还配置成:(i)当大多数签名者累积在数据链中时,将数据块插入数据链中;(ii)经由其中具有大多数签名的签名元素的链来验证数据链;以及(iii)通过在当前群组中的数据链中对入口进行签名来在新群组中维持每个节点中的各个流失事件的安全性。根据另一实施方式,在每个步骤处验证数据链。多数签名的链可显示整个链从第一元素到最后一个元素都是有效的。根据另一实施方式,将数据描述符(即,数据链)添加至保持在分散式网络上的数据节点。根据另一实施方式,使用一致的加密签名在锁定步骤中对数据链进行加密保护。根据另一实施方式,签名具有特定大小的group_size(例如,12个节点),其中,quorum(例如,7个节点)需要被认为是有效的(非常类似于p共享的n)。根据另一实施方式,包括安全群组的分散式网络和安全群组的这些签名最接近于数据链的持有者(holder)。根据另一实施方式,如果数据链在多于group_size之前被重新发布,则该数据链包括现有群组成员的大多数。根据另一实施方式,群组大小为u64。根据另一实施方式,数据的加密证明对于改变quorum节点有效。根据另一实施方式,当数据链启动时,条目由不断变化的大多数预先存在的节点签名。根据另一实施方式,当数据链弹出时,大多数不同的签名者被加密确认和/或加密验证。根据另一实施方式,加密验证继续至数据链的顶部、其包括由节点的当前闭合群组中的大多数进行签名的条目。根据另一实施方式,节点的当前群组加密地验证整个链和与数据链相关联的每个数据元素。根据另一实施方式,群组改变和网络增长(或者甚至收缩),使得与各种节点相关联的许多链包括允许数据链被交叉引用的共同元素,以从分散式网络启动时开发数据的完整图片。根据另一实施方式,可验证数据元素的数据链提供可证明的数据有效性序列,并且也提供出现在分散式网络上的这种数据的序列。根据另一实施方式,链式的多数一致验证待被验证的数据链的能力,并允许数据被重新发布在分散式网络上。根据另一实施方式,数据结构包括数据标识符对象、节点数据块、数据块和数据链。根据另一实施方式,在数据标识符对象中:数据链是包括已被加密验证的数据标识符的一个或多个数据块的链式列表。根据另一实施方式,数据标识符是唯一标识并验证数据项的对象。根据另一实施方式,数据标识符包括底层数据项的加密散列。根据另一实施方式,数据标识符包括诸如名称、版本等的附加信息。根据另一实施方式,在节点数据块中:每个节点数据块的数据标识符包括公钥/签名对。根据另一实施方式,公钥被证明是使用签名作为证据来对数据标识符签名的密钥。根据另一实施方式,节点数据块包括公钥,该公钥实际上是接近于数据标识符的节点的节点名称。根据另一实施方式,当在群组中的数据为‘输入’、‘发布’或‘删除’时,数据标识符由任何群组成员通信。根据另一实施方式,与节点数据块相关联的utc时间戳记录数据被放置在分散式网络上的时间。根据另一实施方式,在最终一致性网络中,utc时间戳是每个数据块的时间戳的排序列表的中值。根据另一实施方式,使用分散式网络中的数据节点来创建数据块。根据另一实施方式,使用分散式网络将数据节点通信给数据链的持有者。根据另一实施方式,在数据块中:接收节点检查以下项中的条目:(i)一个或多个数据块的缓存;以及(ii)数据链。根据另一实施方式,接收节点检查以下项中的条目:(i)一个或多个数据块的缓存;以及(ii)接收到节点数据块时的数据链。根据另一实施方式,当接收节点在找到以下项中的条目时,接收节点将节点添加至数据块:(i)一个或多个数据块的缓存;以及(ii)数据链。根据另一实施方式,接收节点在缓存中创建新的数据块条目,并在条目未被是不是时等待来自数据标识符的群组成员的进一步通知。根据另一实施方式,节点阵列至少包括quorum成员并具有close_group长度。根据另一实施方式,节点阵列包括接近由数据标识符描述的数据元素的节点。根据另一实施方式,在数据链中:在大多数签名者积累时,数据块被插入至数据链中。根据另一实施方式,如果数据块由于缺乏多数共识而尚不能被添加至数据链,则数据块保留在缓存中并等待另外的节点数据块。根据另一实施方式,在每个步骤处经由其中具有大多数一致的签名的签名元素链对数据链进行验证。根据另一实施方式,多数签名链表明整个链从第一元素到最后一个元素都是有效的。根据另一实施方式,由于上述原因,与多数当前成员相关联的当前群组与先前的条目一致。根据另一实施方式,对当前群组中的数据链中的条目签名,以维持新群组中的每个节点中的各个流失事件的安全性。根据另一实施方式,当前群组中的节点包括与数据链的关系。根据另一实施方式,在每个流失事件上,新群组中的每个节点必须对数据链中的条目签名,以确保以后没有节点可以被插入数据链中。根据另一实施方式,存在几种机制以允许在数据链中插入节点作为节点和群组的并行数据链或者甚至插入实际上为群组一致块的特定数据块的数据链中。根据另一实施方式,允许在数据链中存在重复的条目以维持数据链的完整性。根据另一实施方式,在正常情况下数据链中不存在重复条目,原因在于,数据链仅在成功放置(put)、发布(post)或删除(delete)的情况下生长。根据另一实施方式,删除事件在不破坏数据链共识的情况下从数据链中移除条目。根据另一实施方式,删除条目致使在数据链共识中产生缺口。根据另一实施方式,为了有效地打断链,将条目维持在数据链中并标记为已删除。根据另一实施方式,从任何磁盘缓存中删除实际数据。根据另一实施方式,在分散式网络中,在稳定性上可大幅提高,并可提高故障恢复能力。根据另一实施方式,分散式网络的每个节点存储连接至分散式网络的节点的节点。根据另一实施方式,节点将公钥和安全密钥与其数据一起存储在磁盘上并且与数据链相关联。根据另一实施方式,在给定的分散式网络启动时,该节点尝试重新连接至记录在节点中并存在于数据链中的最后一个地址。根据另一实施方式,群组可决定是否允许节点加入该群组。根据另一实施方式,节点可能必须通过分配新地址再次加入网络。根据另一实施方式,群组决定节点数据链的长度。根据另一实施方式,每组可存在三个(例如)大节点(存档节点(archivenode)),如果该节点具有比该群组中的第三长数据链长的数据链,则该节点可加入该群组。根据另一实施方式,节点试图保持永久数据,并且所有本地数据可在命名目录中累积。根据另一实施方式,在分散式网络启动时,如果节点可以重新加入群组,则该数据将是有用的。根据另一实施方式,如果节点被拒绝并被迫使以新的id重新加入网络,则可创建新命名的目录,并且这允许节点有效地清理未使用的目录。根据另一实施方式,节点保留先前连接的节点的列表以及先前尝试重新加入群组的节点。根据另一实施方式,每个节点可以在不存在其它节点的情况下使用先前已知节点名称的各节点记忆的列表来验证大多数。根据另一实施方式,节点的离线验证不允许将验证发送至另一节点。根据另一实施方式,旧群组的其余部分应当必须再次形成以提供完全验证。本公开可以应用于任何电子数据。例如,实施方式可用于以安全方式高效地重新发布数据。实施方式也可用于提高分散式网络上的稳定性和故障恢复能力。实施方式也可用于在分散式网络中安全地重新发布数据。附图详细描述在图1中示出了模块图100,模块图100示出了根据本公开的实施方式的创建在分散式网络中加密验证的数据链(即,数据链的创建)的过程。模块图100包括数据链验证数据库102、数据链创建模块104、数据链验证模块106、闭合群组检验模块108、数据块添加模块110、旧数据删除模块112、多数验证模块114和签名验证模块116;应理解的是,模块104、106、108、110、112、114、116易于实施为数字硬件和软件产品的组合。数据链验证数据库102存储节点数据、节点数据的名称、节点数据的版本、公钥/签名对、数据标识符等。在操作中,数据链创建模块104创建不具有元素的数据链。数据链验证模块106在接收数据链之前验证节点的数据链。闭合群组检验模块108检验闭合群组的大小以添加数据链。数据块添加模块110将数据块添加至数据链。旧数据删除模块112从数据链中删除/移除数据的旧副本。旧数据删除模块112通过将数据保持在数据链中并标记为已删除来维持数据链的一致性。多数验证模块114验证大多数预先存在的节点。签名验证模块116经由签名元素的数据链来验证数据链的签名。在图2中示出了流程图,该流程图示出了根据本公开的实施方式的用于在分散式网络中创建被加密验证的数据链的方法(即,创建数据链的方法)。在步骤202处,在分散式网络的数据结构中创建没有元素的数据链。在步骤204处,在接收数据链之前通过数据节点对数据链进行验证。在步骤206处,检验闭合群组的大小以将数据链添加至数据节点。在步骤208处,由表示数据元素的闭合群组将数据块(即,链接)添加至数据链。在步骤210处,从数据链中移除数据的旧副本。在步骤212处,验证大多数预先存在的节点以将数据链添加至数据节点。在步骤214处,经由签名元素的数据链验证数据链的签名。图3中示出了用于实践本文中的实施方式的代表性硬件环境。该示意性附图示出了用于根据本文的实施方式加密地检验图1的分散式网络中的数据结构的计算机体系结构/系统的硬件配置。该系统包括至少一个处理器或中央处理单元(cpu)10。cpu10经由系统总线12互连至诸如随机存取存储器(ram)14、只读存储器(rom)16和输入/输出(i/o)适配器18的各种装置。i/o适配器18可选地连接至诸如磁盘单元11和磁带驱动器13的外围装置,或连接至系统可读的其它程序存储装置。系统可以读取程序存储装置上的本发明的指令,并按照这些指令运行本文中描述的实施方式的方法。该系统还包括用户接口适配器19,用户接口适配器19将键盘15、鼠标17、扬声器24、麦克风22和/或诸如触摸屏装置(未示出)或遥控器的其它用户接口装置连接至系统总线12,以收集用户输入。另外,通信适配器20将系统总线12连接至数据处理网络25,以及显示适配器21将系统总线12连接至显示装置23,显示装置23例如可选地实施为诸如显示屏、打印机或发射器的输出装置。在图4中示出了示例性流程图400,该流程图400示出了根据本公开的实施方式的数据链的创建。在图3的硬件环境(即,用于实施本公开的实施方式的示例设备)中,linkblock用于具体地识别群组成员资格的变化。这种识别是通过给定节点发送nodeadded(nodename)或nodelost(nodename)消息(节点添加(节点名称)或节点丢失(节点名称)消息)在操作中实现;例如,准备好消息并作为投票发送。随后,由群组成员对上述消息投票,直到法定数量的与群组成员相关的节点同意。这样的一致性形成了下一个linkblock,并且其相关的群组成员资格随后被隐含在链中。在不背离由所附权利要求限定的本公开的范围的情况下,可以对前文中描述的本公开的实施方式作出修改。用于描述并要求保护本公开的诸如“包括(including)”、“包含(comprising)”、“结合(incorporating)”、“具有(have)”、“为(is)”的表述旨在以非排他的方式解释,即也允许未明确描述的项、部件或元件的存在。对单数的引用也应被解释为涉及复数。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1