多链路密码逻辑区块链
文献发布时间:2023-06-19 11:26:00
本申请是国家申请号为201780031862.2、申请日为2017年5月 23日、发明名称为“多链路密码逻辑区块链”的中国发明专利申请的 分案申请。
本申请要求于2017年5月16日提交的标题为“Rewritable Blockchain”的美国专利申请第15/596,904号、代理人案号15718/112 的优先权。本申请还要求于2017年5月16日提交的标题为“Distributed Key Secret for Rewritable Blockchain”的美国专利申请第15/596,899 号、代理人案号15718/189的优先权。本申请还要求于2017年5月 16日提交的标题为“Multiple-Link Blockchain”的美国专利申请第 15/596,922号、代理人案号15718/190的优先权。本申请还要求于2017 年5月16日提交的标题为“RewritableBlockchain”的美国专利申请第 15/596,932号、代理人案号15718/191的优先权。本申请还要求于2017 年2月17日提交的标题为“Rewritable Blockchain”的欧洲专利申请第17425018.3号、代理人案号A8344EU-ds的优先权。本申请还要求于 2016年8月11日提交的标题为“Rewritable Blockchain”的欧洲专利申 请第16425086.2号、代理人案号A8282EU-ds的优先权。本申请还要 求于2016年5月23日提交的标题为“Rewritable Blockchain”的欧洲专 利申请第16425044.1、代理人案号A8195EU-ds的优先权。
技术领域
本公开涉及多链路密码逻辑区块链,尤其涉及复杂现实世界系统 中的数据验证、检验和重写。
背景技术
由巨大的客户需求驱动的电子和通信技术的迅速发展已经使得 电子交易和记录保持的广泛采用。作为一个示例,电子货币(诸如比 特币)在每年数百万的交易中已经取代纸币。对这种电子交易的验证 和记录的改进将继续增加从事电子交易的运营商可用的特征和选项。
附图说明
图1示出了区块链的两个示例视图。
图2示出了对图1的示例区块链的两个示例重写。
图3示出了示例区块链处理系统。
图4示出了示例区块链重写系统。
图5示出了示例重写管理逻辑。
图6示出了示例重写逻辑。
图7A示出了两个示例冲突搜索。
图7B示出了使用冲突对区块链的示例重写。
图8示出了与示例更新的区块链部分配对的示例区块链部分。
图9示出了示例双链路区块链部分。
图10示出了示例混合区块链。
图11示出了示例可重写区块链场景。
图12示出了示例分布式密钥区块链重写场景。
图13示出了示例区块链记录维护场景。
图14示出了示例物联网可重写区块链场景。
图15示出了示例区块链环路。
具体实施方式
区块链可以包括一系列数据块,这些块包括代码(诸如密码散列 或校验和),该代码可以与序列中的先前块的内容编码一致。在一些 情况下,确定产生相同完整性代码的多个不同的块集合可能是不可解 决的、计算复杂得令人望而却步的、或者工作强度足以挫败在保持完 整性代码的自我一致性的同时篡改区块链内容的企图。然而,在一些 实现中,受信任方可以访问密钥或密钥的一部分,使得独自行动或者 与拥有密钥其他部分的参与方一起行动的该受信任方可以编辑区块 链内容而不留下篡改的指示。
在各种系统中,多方可以使用基于区块链的文件或分类账来维持 事件、交易或其他更新的防篡改记录。在一些情况下,区块链可以在 由不受信任方(例如,不拥有密钥的当事方)对区块链进行更改之后 注册篡改。因此,当事方可以单独地验证由其他当事方的更新是否有 效以及是否与区块链的先前数据块编码一致。完整性代码的自我一致 性允许验证对区块链的更新,即使该当事方缺少区块链的归档版本来 用作参考。当对区块链中的一个或多个数据块的重写没有在区块链中 的块的完整性输出和数据块内容之中引入编码不一致时,重写可以被 表征为保持区块链的有效性。
区块链可以由完整性代码来保护。当提供特定数据作为完整性代 码的输入时,完整性代码可以产生特定的完整性输出。在一些情况下, 当将不同于特定数据的数据提供给完整性代码作为输入时,完整性代 码可产生不同的完整性输出。在示例场景中,存储从来自数据块的特 定输入数据生成的完整性代码的完整性输出,并且随后更改数据块。 如果所更改的数据作为输入被提供给完整性代码,则完整性代码可以 产生与所存储的完整性输出不同或编码不一致的完整性输出。因此, 在该示例场景中可以检测到变化。
区块链可以包括一系列块,其中序列中的每个后续块保持用于前 一块的完整性输出。该系列可以形成块的链,其中每个后续块保持从 紧接在之前的块中存在的数据生成的完整性输出。相应地,如果块被 改变,则可以检测到与被存储在后续块中的完整性输出的编码不一 致。由于完整性输出是块中的所存储数据的一部分,因此也可以通过 编码不一致检测完整性输出本身的变化。完整性代码的这种自我一致 性可以被用来保护区块链关于免受隐蔽篡改。
当由完整性代码保护时,防篡改变化可以包括可以检测到针对区 块链的完整性代码的完整性输出与区块链内的数据之间的编码不一 致的几乎任何变化。例如,区块链的块中的数据可以被散列、通过校 验和来运行或者应用另一完整性代码。如果稍后发现块中的数据与散 列、校验和或其他完整性代码的完整性输出冲突,则这种变化可以被 标识为防篡改。当完整性代码被应用于块中的当前数据时块中当前的 数据不产生与先前所获得的完整性输出相同或等效的完整性输出时, 可能发生冲突。当对块进行更改并且之后没有检测到与完整性代码的 先前存储的完整性输出的编码不一致时,该更改可以是非防篡改的。 在一些情况下,可以通过利用具有不同数据内容的第二块替换第一块 来实现非防篡改重写,其中该不同数据内容产生相同的(或等效的) 完整性输出。
在一些情况下,在录入之后,区块链中的一些块可以包括不再适 合包括在区块链中的信息。例如,块可能在时间之后或在确定数量的 后续条目之后过期,私有信息可能被包括在块中,不准确的条目可能 被包括在块中,对使用区块链的一方或多方不利的信息可能被包括在 块中,可能包括不完整的信息或者可能包括其他不适当的信息。相应 地,受信任方(例如,中立的第三方、管理方或者单独不受信任方的 组)可以以非防篡改方式重写、移除或补充被包括在块中的数据。下 面所描述的系统和技术实施用于在区块链中重写块的技术解决方案, 以允许受信任方编辑来自区块链的信息,而不会导致区块链不能达到其预期目的。例如,各方可以使用经修改的区块链犹如其是较早且未 经修改的区块链。
区块链重写可以被用来执行低等级(例如,从硬件架构角度)的 操作,诸如存储器重写、删除和添加。相应地,这些技术和架构可以 改进计算机系统的底层硬件的操作,因为系统可以利用区块链协议以 用于存储实施可验证性的数据。例如,用于安全系统的操作系统软件 可以被存储在区块链有效载荷中,以保护数据免受恶意软件、未授权 方、未授权设备或其他意外/未授权更改的操作。
附加地或备选地,块可以表示可以在进行更新时被分配的数据的 最小增量。例如,一个或多个更新的块可以在更新期间与整个区块链 分开来发送。然而,在一些情况下,至少整个区块链可以利用单独的 有效更新来分配。例如,当执行新的受保护的交易并将其添加到经由 区块链保护的分类账时,整个区块链(例如,完整的交易历史)可以 在添加更新交易的情况下被重新分配。允许截取、正确调整大小、扩 展或其他区块链大小调整的区块链重写系统(诸如本文所描述的示例 性实施方式)可以通过允许调整在区块链更新和分配期间所消耗的数 据开销来改善底层硬件的操作。
另外,受信任方重写区块链的能力可以通过提供所建立的重写解 决方案来提高抗篡改能力。相应地,受信任方可以重写现有的区块链, 而不必由于不适当的内容而放弃区块链。相应地,与重新创建新的区 块链相比,区块链重写显著提高了系统效率。区块链重写还可以通过 向系统通知其没有接收到区块链丢弃的先前通知来降低恶意方使用 可能由于不适当的内容而被丢弃的已失效区块链来欺骗系统的可能 性。相应地,可重写区块链可以具有提高的数据安全性和抗篡改性的 技术效果。换句话说,本文所讨论的技术和架构包括市场上现有技术 的具体、现实世界的应用和改进。
此外,所讨论的技术和架构(包括那些用于可重写区块链、分布 式密钥、双链路区块链、环路以及其他技术和架构)需要与公认的常 识背道而驰。特别地,区块链分布式数据库的传统方法要求区块链的 不变性作为基本特征。换言之,不变性在以前的工作中已经被反复解 释为建立区块链的技术价值的基本特征。区块链中的不变性被错误地 视为和指示为确保使用区块链的各方信任区块链中所包含的数据的 有效性的必要方式。相应地,这里所描述的向区块链添加可重写性的 技术架构违背了公认的常识。通过引入可重写性,同时仍然保持了高 安全性,并因此也保持了区块链的高技术价值,本发明的技术和架构 违背了公认的常识。这样,尽管本发明的技术和架构与现有技术的教 导有很大不同,但是本发明的技术和架构尽管具有可变性,但是仍然 在区块链中提供了高等级的信任。
图1示出了区块链的两个示例示图100、150,其中,每个后续块 包括使用前一块作为输入的完整性代码(例如,散列、变色龙散列或 其他完整性代码)。例如,块B1 104在从用作完整性代码的输入的 前一块B0 102的内容确定的该完整性输出字段124中包括完整性输 出IC(B0)。被用于确定IC(B0)的B0 102的内容可以包括B0内 的任何或所有字段,诸如数据00 121、[空]完整性输出字段122或 BlockID 123。块的数据字段(例如,数据00 121、数据10 131和其 他数据字段)可以被用来存储任何类型的数据。例如,区块链数据字 段可以保持账户数据、个人数据、交易数据、货币值、合同条款、文 档、版本数据、链路、指针、档案数据、其他数据或任何它们的组合。
块中不被用来确定后续块中的完整性输出的字段可以不一定由 区块链来保护。例如,这些字段可以在不生成块之间的编码不一致的 情况下被更改。此外,如果在针对链中的后续块的完整性输出的确定 中不使用任何完整性输出字段,则区块链可以不是必须确保上面所讨 论的块之间的编码一致性,因为可以改变不受保护的完整性输出而不 必须生成篡改的证据。相应地,在各种实现中,块的数据有效载荷的 完整性输出字段和至少受保护的部分被用于确定针对区块链中的后 续块(例如,下一个块)的完整性输出。类似地,块B2 106的完整 性输出字段125中的IC(B1)可以基于块B1 104内的字段,例如包 括:块B1104的完整性输出字段124、数据字段或BlockID字段中的 任何一个。在该示例中,如下所述,完整性代码IC可以是变色龙散 列。
区块链块可以经由完整性代码被彼此锁定152。在一种意义上, 因为每个块中的完整性代码输出字段基于生成完整性输出时的前一 块中的内容(例如,当该块被添加到链中时),所以块被彼此锁定。 相应地,如果在添加当前块之后前一块发生变化,则该变化将是防篡 改的,因为该变化将与当前块中所存储的完整性输出是编码不一致 的。因此,一旦将具有基于前一块的已存储的完整性输出的当前块添 加到区块链中,则前一块的内容被“锁定”。在图1的示例区块链中, 一旦B2 106(在其完整性输出字段中包含IC(B1))被添加到区块 链中,B1 104的内容就可以被锁定。结果,被B1 104锁定的B0 102 的内容进一步由B2 106保护,因为B2 106防止B1 104以非防篡改方 式被改变。
在示例场景中,如下面所讨论的,可以使用变色龙散列作为完整 性代码来实现可重写区块链。然而,对于不拥有允许编辑的密钥的当 事方,实际上可以使用篡改是不言而喻的任何代码。
图2示出了对图1的示例区块链的两个示例重写200,250。在第 一示例200中,块B2202利用具有新内容的块B2’204来替换。新块 B2’204包括使用密钥来生成的内容,使得当使用块B2’204作为输入 时所生成的完整性输出与使用原始块B2 202作为输入时所生成的完 整性输出相同。例如,IC(B2)=IC(B2’)。
在第二示例250中,块B2 202被移除。来自原始链的块B1 206 可以利用块B1’208来替换,以便与块B3 210中所包含的完整性输出 编码一致。例如,块B1’208可以包括使用密钥来生成的内容,使得 更新的块B1’208可以显现为在后续块B3 210之前的正确块(并且是 在区块链完整性代码方面的正确块)。也就是说,B1在删除块B2之 后被替换,使得B1’可以立即进行B3而不违反区块链完整性代码。
在各种实现中,不同的可重写区块链可以具有不同的密钥。因此, 能够重写给定区块链的受信任方可以不是必须能够充当受信任方并 重写第二个不同的区块链。对不同的区块链使用不同的密钥可以防止 通过公开单个密钥同时危害多个区块链。然而,使用相同“主”密钥的 多个区块链可以由区块链系统生成(例如,如果密钥可以与多个不同 的区块链系统一起被使用,则该密钥可以是主密钥)。在多个区块链 之间使用公共密钥可能比为不同的区块链使用不同的密钥允许更简 化的管理。
附加地或备选地,区块链可以具有允许非防篡改编辑的多个不同 密钥。在示例场景中,主密钥可以与多个区块链一起被使用,每个区 块链具有单独的密钥,这些密钥不一定允许对主密钥所覆盖的其他区 块链进行非防篡改编辑。例如,区块链A、B和C都可以允许用主密 钥MK重写。此外,区块链A可以具有单个重写密钥A1,区块链B 可以具有单个重写密钥B1,并且区块链C可以具有单个重写密钥C1。 在该示例中,处理系统可以使用MK或B1来重写区块链B,而不是 利用A1或C1来重写。
此外,在一些实现中,授予密钥可以被用来向受信任方发布密钥。 例如,加密高速缓存EC可以包括用于区块链A、B和C的附加密钥 (例如,密钥A2...AN、Bn...Bn、C2...Cn)。拥有授予密钥GK的受 信任方解密EC,并允许向新的受信任方颁发所存储的密钥。在一些情况下,主密钥可以加倍作为授予密钥。例如,处理系统可以使用主 密钥来生成用于重写的块内容,并且主密钥可以用作针对密钥的加密 高速缓存的解密密钥。
另外,下面所讨论的分布式密钥方案可以被应用于授予密钥和主 密钥。在一些系统中,受信任方可以单独地执行对区块链的重写。然 而,相同的受信任方可以使用下面所讨论的任何分布式密钥方案组合 他们的密钥以获得与授予密钥或主密钥相关联的权限。例如,三个单 独受信任方可以各自在没有其他各方同意的情况下执行重写。然而, 这三方可能被迫组合他们的密钥(例如协调),以获得授予权限并向 第四方授予其自己的密钥。
在各种实现中,可以通过协调特定阈值数目的当事方、特定的预 定当事方、给定类别的当事方、所有当事方或当事方的另一限定组来 获得增加的权限。分布式密钥方案可以确定用于协调的参与级别规 则。
在各种实现中,密钥可以使用密钥分配方案来分配给操作者。密 钥分配方案可以包括基于操作者身份、关联性、优先级或其他基础的 分配方案。
在一些情况下,区块链被标记以指示它要进行编辑。指示区块链 是可重写的标志或字段可以标识具有重写区块链的权限的受信任方。 这可以帮助对重写区块链感兴趣的各方标识能够执行重写的受信任 方。例如,区块链可能伴有描述区块链的目的、原始的操作参数或其 他信息的元数据。用于重写的标志可以被合并在元数据内。然而,当 这样的元数据被包括在区块链外部时,其可以被改变而没有篡改的证 据。允许元数据被自由改变可以减少执行编辑所需的计算资源,并增 加可以校正元数据错误的参与方的数量。在其他系统中,处理系统可 以将这样的元数据写入区块链本身的块中,例如,写入专用字段或块 的数据有效载荷中。将元数据写入区块链本身可以防止未授权方更改 区块链元数据(例如,用于潜在的恶意目的)。
在一些实现中,可以向不信任方或一部分受信任方保密受信任方 的存在。在一些情况下,完整性代码可以不是必须通过检查其操作来 提供受信任方可以编辑区块链中的条目的指示。也就是说,生成完整 性代码的算法本身并不容易揭示其支持区块链重写。对受信任方的存 在保持保密可以阻止当事方试图窃取或以其他方式取得受信任方的 密钥。此外,如果当事方假设在没有明显篡改的情况下不能够由另一 方编辑该区块链,则当事方可能增强了对区块链的信心。
在一些实现中,具有密钥知识的实体可以对区块链进行更改。该 密钥可以由操作者、集权审计师或其他当事方全部或部分拥有。附加 地或备选地,密钥的份额(例如,部分)可以在几个单独不受信任方 之间分布。完整性代码可以是连接两个块的链路上的虚拟挂锁。
打开虚拟挂锁的密钥可以根据具体应用的要求进行管理。例如, 在商业谈判(或其他谈判)中,允许更改所提议的合同条款的密钥可 以由中立的第三方持有。附加地或备选地,密钥的相等部分(例如, 一半、三分之一)可以由谈判中的每一方持有,使得可以在所有各方 或限定的多个当事方的同意下更改条款。在协作软件设计实现中,可 以在允许对一些软件代码进行更改之前,将密钥按部分分配给利益相 关者以强制达成一致。下面讨论示例密钥分配方案,包括集中式和分 布式方案。然而,其他方案也是可能的。
图3示出了示例区块链处理系统(BPS)300。BPS 300可以包括 系统逻辑314,以支持对区块链的验证和重写。系统逻辑314可以包 括处理器316、存储器320和/或可以被用来实现区块链处理逻辑342 的其他电路。存储器320可以被用来存储区块链重写和块添加中所使 用的区块链元数据322和/或区块链数据324。
存储器还可以包括实现区块链处理的程序指令以及一个或多个 支持数据结构(例如经编码的对象、模板或其他数据结构),以支持 对区块链的更新进行验证并检测篡改的证据。存储器还可以包括标志 323,其可以指示是否可以编辑特定的区块链。在示例中,可以使用 区块链内的特定字段内的位或区块链元数据来实现标志323,以指示 可编辑性。此外,存储器320可以包括参数字段326,其可以包括受 信任方的联系信息的身份,例如姓名、地址、电话、电子邮件或其他 联系信息。
BPS 300还可以包括一个或多个通信接口312,其可以支持无线 (例如,蓝牙、Wi-Fi、无线局域网(WLAN)、蜂窝(第三代(3G)、 第四代(4G)、长期演进高级(LTE/A))和/或有线、以太网、千 兆以太网、光网络协议。通信接口312可以支持与更新区块链或执行 区块链传输的其他方的通信。BPS 300可以包括功率管理电路334和 一个或多个输入接口328。BPS300还可以包括用户界面318,其可以 包括人机界面和/或图形用户界面(GUI)。GUI可以被用来向BPS 300 的操作者呈现来自基于区块链的验证的数据。用户界面318还可以利 用工具来呈现GUI以支持对区块链的块添加。
图4示出了示例区块链重写系统(BRS)400。例如,BRS 400 可以由在区块链上执行校订、修改或补充的受信任方使用。例如,补 充可以包括向现有块添加内容。即使在不支持非防篡改重写的区块链 中,经授权的操作者也可以向区块链添加新的块,例如新的交易记录。 然而,对现有块的更改(包括添加)可能生成篡改的证据,除非由拥 有密钥的受信任方执行。BRS 400可以包括系统逻辑414,以支持对 区块链的验证、更新和重写。系统逻辑414可以包括处理器416、存 储器420和/或其他电路,这些电路可以被用来实现区块链处理逻辑 442和重写管理逻辑(RML)441。
存储器420可以被用来存储在区块链重写和块添加中所使用的区 块链元数据422和/或区块链数据424。存储器420可以进一步存储密 钥421,诸如加密密钥值、陷阱门信息或其他秘密值,它们可以允许 区块链的非防篡改重写。在一些情况下,密钥421可以被存储在受保 护的存储器480中,诸如加密文件或数据驱动器、物理上受保护的驱 动器、被耦合至用于防盗对策的触发器的驱动器或者自删除驱动器, 以防止意外或秘密公开所存储的密钥421。存储密钥的存储器可以包 括受信任存储器或者由受信任方直接或间接拥有或控制的其他存储 器。
存储器420还可以包括应用和结构,例如经编码的对象、模板或 一个或多个其他数据结构,以支持对区块链的更新的验证并检测篡改 的证据。存储器还可以包括标志423,其可以指示是否可以编辑特定 区块链以及受信任方的身份。BRS 400还可以包括一个或多个通信接 口412,其可以支持无线(例如,蓝牙、Wi-Fi、WLAN、蜂窝(3G、 4G、LTE/A))和/或有线、以太网、千兆以太网、光网络协议。通 信接口412可以支持与对区块链进行更新或执行区块链传输的其他方 的通信。附加地或备选地,通信接口412可以支持安全信息交换,诸如安全套接层(SSL)或用于在受信任方之间发送和接收密钥的基于 公钥加密的协议。此外,如下面所讨论的,安全协议可以被用来在各 自具有密钥的一些部分的单独不受信任方之间组合密钥。BRS 400可 以包括功率管理电路434和一个或多个输入接口428。
BRS 400还可以包括用户接口418,其可以包括人机界面和/或图 形用户界面(GUI)。GUI可以被用来向BRS 400的操作者呈现来自 基于区块链的验证的数据。附加地或备选地,用户接口418可以被用 来向操作者呈现区块链重写工具。
在一些情况下,用户界面418可以包括GUI,其具有促进区块链 重写和删除的工具。用于重写的GUI工具可以包括“您所看到的就是 您所获得的”工具,其允许操作者操纵区块链的内容,例如使用类似 文字处理器的工具、类似网络编辑的工具、类似文件浏览的工具或任 何它们的组合。附加地或备选地,用户界面418可以包括命令行编辑 工具。无论是基于文本还是基于图形,这些工具都可以允许操作者访 问密钥,并在它们被授权的区块链上执行编辑。在一些情况下,这些 工具可以拒绝向那些缺少对它们试图编辑的区块链的适当密钥的操 作者提供写入功能。然而,在一些实现中,这些工具可以允许这种未 经授权的编辑,因为这将导致防篡改重写,防篡改重写将使对区块链 的未经授权的编辑无效。
图5示出了可以在电路中被实现或者利用电路来实现的示例 RML 441。RML 441可以处理密钥的管理和重写命令的实现。例如, RML 441可以确定用于特定区块链的密钥的可用性,并将这些密钥传 递给重写逻辑600(下面进行讨论)以用于重写的执行。RML 441还可以处理重写命令的接收或用于区块链重写自动化的命令的接收。一 旦RML 441标识所请求的变化和所涉及的区块链,RML 441就可以 访问区块链(502)。
RML 441可以确定BRS 400的存储器420是否保持允许对所访问 的区块链的重写的密钥(504)。如果存储器420没有存储密钥,则 RML 441可以确定使用通信接口412经由安全通信或经由密钥的各部 分的安全组合是否可访问密钥(506)。例如,这些部分可以包括由 单独不受信任方所持有的密钥的部分,但是作为组,利用它们的部分 组合成完整的密钥,形成受信任方。在一些实现中,密钥或其部分可 以使用通信接口412经由安全通信来访问,例如,以防止通信期间密 钥被拦截。如果不能访问密钥,则RML 441可以经由GUI 418指示 对区块链的非防篡改重写不可用(508)。如果密钥在存储器中或经 由安全通信可访问,则RML 441可以提示操作者对区块链进行重写 (510)。
附加地或备选地,RML 441可以自动获得重写(511)。例如, 重写可以从重写队列中获得、被嵌入在先前接收的命令内、从其他区 块链获得、从由系统标识为恶意代码或其他不适当内容的内容确定、 或者由RML 441自动获得的其他重写。重写可以被存储为命令,该 命令标识要对一个或多个块进行的更改,并且如果要通过更改添加内 容,则将内容写入块。命令本身可以包括要被写入的内容,或者备选 地,可以包括指向内容位置的指针。RML 441可以调用重写逻辑600 (参见图6)来执行对块的重写(512)。例如,当非防篡改重写可用 时,BRL 441可以调用重写逻辑600来执行对块的重写。图6示出了 示例重写逻辑600,其可以在电路中被实现或者利用电路来实现。重 写逻辑600可以访问区块链(602)。例如,重写逻辑600可以访问 存储区块链的存储器。附加地或者备选地,重写逻辑600可以经由联网通信接口(例如,通信接口412)访问区块链。在一些情况下,如 上所述,重写逻辑600可以使用受保护的连接或在受保护的存储器上 访问区块链。
区块链可以包括一个或多个由完整性代码保护的数据块。例如, 可以使用重写保护的密码散列函数(诸如没有用于允许非防篡改重写 的密钥的散列函数、变色龙散列、循环冗余检查(CRC)、校验和、 或其他完整性代码)来保护区块链内的数据块。在一些实现中,可以 由与块的数据内容编码一致的特定完整性输出来保护各个数据块。例 如,当将完整性代码应用于产生完整性输出的块的内容时,完整性输 出可以与块的内容编码一致。当完整性输出与其所保护的数据编码一 致时,数据可以被认为是有效的。如上所述,可以将该特定完整性输 出放置在相邻块内,以防止或挫败以非防篡改方式重写数据内容的企 图。此外,如下文关于混合区块链所讨论的,一些区块链可以包括: 可以允许非防篡改重写的部分(例如,各个块的部分或块组的部分) 以及可能不一定允许由受信任方进行非防篡改重写的部分。
重写逻辑600可以访问密钥,诸如密码密钥或陷阱门信息,该密 钥与区块链的完整性代码配对(604)。密钥可以包括允许系统(例 如,BRS 400)计算冲突的数据,例如,为完整性代码产生相同完整 性输出的两个不同数据块。使用所计算的冲突,设备可以重写区块链, 而不需要重写的块与完整性代码编码不一致。例如,操作者可以指示 BRS 400使用密钥计算冲突并重写区块链。
重写逻辑600可以接收例如来自RML 441的命令,以对区块链 执行重写(606)。例如,可能已经从针对希望替换或删除来自特定 块的数据(例如,内容)的受信任方的操作者接收到该命令。操作者 可以例如在通过人机界面发布给BRS 400的命令中指示来自用户界面的输入设备的原始数据和替换数据。附加地或备选地,可以经由网 络通信接口接收替换数据的命令,例如从与受信任方相关联的终端接 收。重写逻辑600可以从RML 441接收执行重写的命令。执行重写 的进一步命令可以源自自动化源,诸如上面关于RML 441所描述的那些源。
重写逻辑600可以处理密钥、替换数据和原始数据,以确定附加 数据,针对该附加数据,替换数据和附加数据产生了与针对为原始数 据而产生的完整性代码相同的完整性输出(608)。相应地,替换数 据和附加数据可以取代原始数据,而不必创建篡改的证据。在完整性 代码是变色龙散列的示例场景中,用于变色龙散列的密钥允许重写逻 辑600确定针对几乎任何原始数据内容的冲突。在该示例场景中,使 用密钥,重写逻辑600可以计算附加数据,当与由受信任实体选择的 替换数据组合时,该附加数据产生与任何给定原始数据相同的散列输 出。
删除操作可以以与其他重写相同或相似的方式来执行。然而,不 是选择替换数据和附加数据以与相邻块(例如,紧接在区块链之后或 之前的块)编码一致。可以选择替换数据和附加数据以与区块链更上 或更下的其他块编码一致。例如,如果已重写块的替换数据与区块链 更下游的后续块(例如,非相邻块)的数据而不是与正在被替换的块 的数据相冲突,则可以移除一个或多个后续块(例如,区块链中紧跟 已重写块的一个或多个连续块)。附加地或备选地,如果替换数据中 的完整性输出字段包括块(其是在被替换的块之前的两个或更多个 块)的完整性输出,则可以删除正被替换的块之前的一个或多个块。 相应地,当重写包括删除时,重写逻辑600可以在块被重写之前或之 后删除一个或多个块(609)。
一旦重写逻辑600确定适当的附加数据,重写逻辑600就可以生 成附加数据(610)并将附加数据与替换数据组合(612)。在一些实 现中,特别是在区块链的可重写性被保密的方案中,附加数据的存在 可以被屏蔽。因此,不拥有密钥的一方将不能够简单地通过注意到附 加数据的存在来立即将可重写区块链标识为可重写。
例如,可以将附加数据放置在包含具有另一已标识目的的数据的 块内的字段中。例如,如下面关于图8所讨论的,附加数据可以被附 加到完整性输出字段或“随机性”字段。
然而,在一些情况下,拒绝明确地标识用于附加数据的特定目的 (否则其将无法理解)可以足以防止不受信任的操作者怀疑他们正在 使用的区块链是可重写的区块链。
在各种实现中,变色龙散列可以由受信任方和不受信任方两者可 标识,以促进块内容的验证。
然后,重写逻辑600可以写入与附加数据组合的替换数据以代替 原始数据(614)。例如,重写逻辑600可以利用组合的替换数据和 附加数据来覆盖原始数据。因为组合数据与原始数据的完整性输出编 码一致,所以可以以非防篡改方式执行原始数据的覆盖,至少关于完 整性代码。换言之,重写可以是非防篡改的,即使仅利用替换数据来 替换原始数据将导致防篡改重写。如下文所讨论的,在一些实现中可 以使用双链和多链区块链。相应地,与区块链的第一完整性代码编码 一致地重写区块链可能不一定导致完全非防篡改重写。
替换数据可以包括已完全重写的数据、原始数据的经更改的版本 (诸如原始数据的修订版本)、具有添加的原始数据、原始数据的完 全删除、或其他数据。
本文所讨论的技术和架构允许对区块链的内容进行重写,该区块 链可以在开发基于区块链的技术的服务(诸如分散式服务)中被实现。 可以在各种场景中使用对区块链的非防篡改、有效性保留或其他类型 的重写。例如,这些场景可以包括:从区块链中删除不适当的内容、 为使用可重写存储装置的应用提供支持、遵守诸如“被遗忘的权利”的 政府法规或其他场景。
本文所讨论的技术和架构(包括用于可重写区块链、分布式密钥、 双链路区块链、环路以及其它技术和架构)可以与各种区块链一致性 技术结合使用。例如,在一些情况下,可重写区块链可以利用基于工 作的一致性机制的证明来使用。相应地,在找到预定义挑战的解决方 案并显示针对解决方案的工作证明时,可以授予操作者(例如,不受 信任的操作者)将块附加到可重写区块链的能力。在一些实现中,可 以实现基于“实际拜占庭容错”的一致性机制。此外,一些实现可以使 用“智能合同”类型的协商机制,其中操作者可以在显示对智能合同的 条款或规则的遵守时附加块。完整性代码可以独立于区块链中所使用 的特定一致性机制来实现。相应地,完整性代码(包括支持区块链重 写的完整性代码)可以利用几乎任何区块链一致性机制来实现。
在一些实现中,可以由系统(例如,BRS 400)使用变色龙散列 函数,该变色龙散列函数可以在给定密钥时允许有效地确定散列冲 突。在一些情况下,系统可以使用变色龙散列来授予受信任实体、一 起组成受信任方的多个单独不受信任方、或其他实体对区块链进行非 防篡改重写的能力。
在一些实现中,即使在发现多项式级的大量冲突之后(使用密 钥),散列函数仍可以保持抗冲突性。该属性可以被称为密钥曝光自 由度。如下面所讨论的,可以使用转换将变色龙散列函数转换成一个 附加地满足密钥曝光自由度的散列函数。
图7A示出了两个示例冲突搜索700、720。对于缺少密钥(H) 的散列函数,可能很难找到冲突。相应地,发现X和X′,使得H(X) =H(x′)可能是极度困难的(700)。然而,对于变色龙散列CH, 拥有密钥722的设备可能能够找到X和X’,使得CH(X)=CH(X’) (750)。
图7B示出了使用冲突对区块链760进行的示例重写。区块链760 包括块762、764、766和768。块766包括完整性输出784。当具有 不同内容的两个不同块766、770为完整性代码产生相同的完整性输 出786时,块766、770是针对完整性代码的冲突(796)。块766可 以用块770来代替,并且保持与后续块768的编码一致性,因为块766 和770产生相同的完整性输出。然而,如果块770不包含适当的完整 性输出(例如,完整性输出784),则块770将不与块764编码一致。 通过访问完整性代码的密钥,当事方能够指定块770中存在的完整性 输出(797)。相应地,通过包括完整性输出784,可以使块770与块 764编码一致(798)。块770仍然与块768编码一致,因为块770 与块766冲突。备选地,如果块770被代替地构建为包括完整性输出 782,则块770的插入可以被用来删除块764(799)。利用完整性输 出782,块770与块762(作为其前一块)和块768(作为紧随其后的 块)编码一致。相应地,块764可以从区块链中被移除,没有篡改的 证据。
在一些现实世界应用中,可以实现针对允许重写的大多数当事方 (为了维护安全)的仅附加的分类账。为了实现现实世界应用,可以 限制重写,以使其可以由受信任方或者在所限定的环境中来执行。下 面结合图13和图14讨论真实世界应用的两个示例。
在一些情况下,如果不能以有效保存或非防篡改方式来编辑区块 链,则诸如智能合同或覆盖应用的应用可能不一定工作并缩放。智能 合同可以包括一系列指令(例如,计算指令),当事方执行这些指令 以换取补偿。
此外,可重写区块链可以提供对区块链被用来保护的应用的更新 的支持。如果在启动之后对基于区块链的系统进行详细检查,则可以 使用可重写区块链来重建区块链以反映详细检查。
注释
对于字符串x,其长度可以由|x|表示;如果X是集合,则|X|可以 表示X中的元素的数目。当在X中随机选择x时,该选择可以被表 示为x←$X。当A是算法时,y←$A(x)可以表示A在输入x和输出 y上的运行;如果A被随机化,则y是随机变量,并且A(x;r)可以 表示A在输入x和随机性r上的运行。如果A被随机化且对于任何输 入x,r∈{0,1},算法A是概率多项式时间(PPT)。A(x;r)的计 算可以在直到poly(|x|)步骤之后终止。
安全性参数可以被表示为
公钥加密
公钥加密(PKE)方案是一种技术,通过这种技术,可以在两个 或更多个当事方之间公开地交换信息而不一定需要公开加密密钥、密 钥或其他秘密。此外,PKE可以被实现而不必要求在各个当事方之中 交换完全公开密钥或其他秘密。在实现中,PKE可以使用如下定义的 算法元组PKE=(KGen,Enc,Dec)来执行:(1)概率算法KGen将安 全性参数
在一些情况下,可以由单独不受信任的当事方使用PKE或其他安 全交换方案,以组合完整性代码的密钥的部分或份额,来生成能够实 现区块链的非防篡改重写的完整密钥。在一些情况下,安全交换方案 可以被用来确保第三方不能够通过观察交换来获取密钥的部分。附加 地或备选地,可以通过该单独不受信任的当事方使用安全交换方案, 以防止其他单独不受信任方在交换期间获取多个部分。例如,在不受 保护的交换中,一旦单独不受信任方从其他不受信任方收集了部分, 则收集方不可撤销地成为受信方。然而,在安全交换中,诸如如何实 现PKE,不受信任方可以从其他不受信任方收集密钥的部分,而不需要实际了解所收集的各个部分的内容。相应地,从其他单独不受信任 方收集密钥的部分并不一定导致收集方成为受信任方。因此,单独不 受信任方可以一起组成受信任方,但是在组合密钥到期或其他无效之 后,单独不受信任方返回到他们分离的不受信任的状态,直到他们再 次同意组合其各自的部分。在一些情况下,组合密钥可能在预定时间 段之后或在执行预定量的重写之后过期。例如,组合处理可以指定预 定到期参数,该参数可以描绘重写的数目、可以被重写的块的数目、 持续时间、可以被更改的数据量、可以被重写的块的特定列表、一个 或多个事件发生或者它们的组合。
在其他情况下,可以以下方式组合密钥:共同工作的各方可以确 定被用来执行块的非防篡改重写的附加内容。然而,任何一方都不必 收集完整(但加密的)的密钥,使得任何一方都不可以代表其他方确 定附加内容。相反,组成受信任方的组内的每个单独不受信任方可以 计算附加内容的一部分(或者执行处理的某个部分)。由单独不受信 任方的联合努力产生的最终结果用作支持单个块的非防篡改重写的 附加内容。对于任何后续重写,单独不受信任方可以针对被指定用于 由组成受信任方的组重写的每个特定块再次协作。
单独不受信任方可以是在单个系统上具有不同操作者配置文件 的不同操作者(例如,实体、机构、设备或其他当事方)。附加地或 备选地,单独不受信任方可以分布在多个系统上。单独不受信任方可 以在不同的存储器位置中存储其相应的密钥部分,这些存储器位置可 以具有相同或不同的安全性特征。各个存储器位置可以与单独不受信 任方中的各个当事方相关联。例如,存储器位置可以对应于由单独不 受信任方中的相应当事方拥有或维持的存储设备。类似地,受信任方 可以维持相关联的存储器位置。在一些情况下,存储器位置可以用作 当事方的标识符(全部或部分)。例如,针对受信任方的存储器位置 可以被用来确认密钥正由适当的受信任方控制(例如,访问控制、读/写控制或其他控制)。例如,如果密钥没有从受信任的存储器位置(例 如,由受信任方使用、间接控制、维持或拥有的存储器位置)被访问, 则该密钥可能被系统拒绝。类似地,由不受信任方持有的密钥的部分可以被绑定到特定的存储器位置。
下面描述可以被用来支持上述技术和架构的示例实现。例如,下 面所讨论的实现可以被用来构建变色龙散列。然而,其他完整性代码 可以被用于非防篡改区块链重写。
非交互式零知识
如果R:{0,1}
示例属性1(非交互式论证)。用于NP关系R的非交互式论证 是如下所指定的有效算法的元组NIA=(I,P,V)。
·ω←$I(1κ):概率算法I将安全性参数
·π←$P(ω,x,y):概率算法P将CRSω和对x,y作为输入,使 得R(x,y)=1,并返回针对y∈L的成员资格的证明π。
·d=V(ω,y,π):确定性算法V将CRSω和对(y,π)作为输入, 并返回决策位d∈{0,1}。
在一些情况下,非交互式论证可以满足三个已知属性:完整性、 零知识和可靠性,下面将对此进行讨论。CRS可以被用来促进非交互 式零知识条件。
完整性属性可以建立诚实证明者(保持有效证据x)应当能够使 验证者相信y∈L。
示例属性2(针对论证的完整性)。使NIA=(I,P,V)是用于NP 关系R的非交互式论证。如果对于所有对(r,y),使得R(x,y) =1,则NIA可以满足完整性,存在可忽略的函数ν:
零知识。零知识属性表明:可能恶意的验证者可能不一定获取证 据的知识,其不能由自身获取。这可能有助于非交互式零知识 (NIZK)。
示例属性3(零知识)。使NIA=(I,P,V)是用于NP关系R的非 交互式论证。如果存在PPT仿真器S:=(S
模拟可提取性。可靠性表明:恶意证明者难以为元素
示例属性4(真实模拟可提取性(tSE))。使NIA=(I,P,V)是 用于NP关系R的NIZK,其中零知识模拟器S=(S
其中,问答器Oτ将对(x
注意,在上述示例属性4中,仅允许对手看到针对真实陈述的模 拟证明。更强的变体确保即使允许对手看到针对可能虚假的陈述的模 拟证明,模拟可提取性仍然有效。后者的属性也以稳健NIZK命名。
如tSE中所指出的,NIZK明显更有效构建,实际上,通常可以 将NIZK(诸如Groth-Sahai NIZK)与CCA-安全PKE方案组合起来 获得它们。
变色龙散列函数
变色龙散列可以包括密码散列函数,对于该函数,拥有密钥的设 备可以计算冲突。在没有密钥的情况下,变色龙散列可以被设计为使 其在计算上找到冲突是不切实际的。然而,密钥的知识(例如,密码 密钥、陷阱门信息或其他秘密)可以允许针对散列函数在计算上实际 生成冲突。密钥的知识可以允许冲突确定和针对包含至少一些任意内 容的块的生成。
秘密硬币变色龙散列
示例属性5(秘密硬币变色龙散列)。秘密硬币变色龙散列函数 是如下指定的有效算法的元组CH=(HGen,Hash,HVer,HCol)。
·(hk,tk)←$HGen(1
·(h,ξ)←$Hash(hk,m):概率散列算法Hash将散列密钥hk、消 息m∈M和隐式随机硬币r∈R
·d=HVer(hk,m,(h,ξ)):确定性验证算法HVer将消息m∈M、 候选散列输出h和校验字符串ξ作为输入,并且如果(h,ξ)是针对 消息m的有效散列/校验对,则返回等于1的位d(否则d等于0)。
·π′←$HCol(tk,(h,m,ξ),m′):概率冲突寻找算法HCol将陷阱门 密钥tk、有效元组(h,m,ξ)和新消息m′∈M作为输入,并返回 新的检查串ξ′,使得HVer(hk,m,(h,ξ))=HVer(hk,m′,(h,ξ′))=1。如 果(h,ξ)不是针对消息m的有效散列/检查对,则算法返回⊥。
散列算法可以是随机的,并且在输入一些消息m时,其可以一起 产生散列输出h和校验值ξ,该校验值ξ帮助验证给定公共散列密钥 的散列的正确计算。然而,散列算法的随机硬币是秘密的。一种特定 情况是校验值ξ由被用来生成h的随机硬币组成,因为一旦m和r固 定,散列计算就变得确定性的;将这种变色龙散列函数称为公共硬币, 并在下面正式定义它。
示例属性6(公共硬币变色龙散列)。公共硬币变色龙散列函数 是如示例属性5中所指定的算法CH=(HGen,Hash,HVer,HCol)的集 合,具有以下差异:
·在输入散列密钥hk和消息m∈M时,散列算法Hash返回对(h, r),其中r∈R
·验证算法HVer,被给出散列密钥hk、消息m和对(h,r)作 为输入,当且仅当Hash(m;r)=h的情况下返回1。
由于验证算法简单地重新运行散列算法,所以在公共硬币变色龙 散列的情况下,一些实现可以将验证算法从CH中删除。
示例属性7(针对变色龙散列的正确性)。使CH=(HGen,Hash, HVer,HCol)为具有消息空间M的(秘密硬币或公共硬币)变色龙散 列函数。如果对于所有m∈M都存在可忽略的函数ν:
P[HVer(hk,m,(h,ξ))=1:(h,ξ)←$Hash(hk,m);(hk,tk)←$HGen(1κ)] ≥1-ν(κ)。
几乎任何变色龙散列都可以被用来产生公共硬币抗冲突变色龙 散列。然而,在一些情况下,秘密硬币变色龙散列函数可以被用于与 公共硬币应用相同的应用,特别是用于构建变色龙签名和在线/离线签 名。然而,对于秘密硬币变色龙散列,该系统可以存储校验值ξ(而 不是随机性r),以便验证散列输出。此外,散列验证可以不必须包 括重新计算散列。
对于变色龙散列的一些应用来说,抗冲突能力可能不一定足够。 虽然散列函数是抗冲突的,但是看到针对散列函数的冲突的当事方可 能能够找到其他冲突或者恢复密钥。增加的抗冲突能力可以被用来使 得更难找到冲突,甚至在目睹多项式级大量的冲突之后。
另一种类型的变色龙散列可以包括“经标记的”散列函数,其中散 列算法将被称为标记或标签的附加值λ作为输入。在一些情况下,经 标记的散列函数可以对密钥暴露具有抵抗性。例如,对于一些经标记 的散列函数来说,即使给定对为其他任意标记λ≠λ输出冲突的问答 器的访问,系统也不可能为“新”标记λ
增加的抗冲突能力。针对秘密硬币或公共硬币散列函数的冲突的 示例是元组h、(m,ξ)、(m′,ξ′),使得m≠m′且(m,ξ)和(m′, ξ′)(分别)是针对m和m’的有效散列/检查对。对于变色龙散列函 数,具有以下安全性特性,其表明即使给定对冲突寻找算法的访问(为 自适应选择的散列输出返回冲突),散列函数也应该很难找到冲突。
示例属性8(增加的抗冲突能力)。在示例场景中,CH=(HGen, Hash,HVer,HCol)可以是(秘密硬币或公共硬币)变色龙散列函数。 如果对于所有的PPT断路器B,存在可忽略的函数ν:
其中,集合Q是由B向其问答器查询的所有散列输出的集合,并且 问答器O
通用变换
提供增加的抗冲突能力的示例变色龙散列函数包括基于 Nyberg-Rueppel签名方案的散列函数。这些示例变色龙散列函数的安 全性可以使用“通用组模型”内的离散对数假设来证明。
下面的示例构建用于基于Nyber-Ruepple原理的变色龙散列。对 于各种不同的复杂性环境,增加的抗冲突能力可以以非特定方式来实 现。转换可以基于CPA安全PKE方案和tSE NIZK。
使CH=(HGen,Hash,HCol)为公共硬币变色龙散列函数(具有消 息空间M
·HGen
·Hash
·HVer
·HCol
该系统可以使用各种协议来实现。例如,基于公共硬币变色龙散 列函数的系统可以实现Sigma协议。Sigma协议是一种交互式证明方 案,其中“证明者”和“验证者”参与多级通信。在多级通信期间,证明 者可以使验证者相信证明者拥有特定的信息。为了实现tSENIZK, 可以使用CCA安全PKE NIZK论证系统。当加密方案相对于预定义 密文攻击是安全的时,加密方案是CCA安全的。
示例区块链
在示例场景中,块是形式B=(s,x,ctr)的三元组,其中s∈{0, 1}
则B是有效的。其中,H:{0,1}*→{0,1}
示例区块链C可以是块的链(或序列)。在该示例中,最右边的 块是链的头部,由Head(C)表示。具有头部Head(C):=(s,x,ctr)的 任何链C都可以通过附加(有效)块B′:=(s′,x′,ctr′)而被扩展为新的 更长的链C′:=C||B′,使得s′=H(ctr,G(s,x));新链C’的头部为 Head(C′)=B′。链C也可以是空的,并被表示为C=ε。函数len(C) 表示链C的长度(块的数目)。对于长度为n的链C和任何k≥0,
示例可重写区块链
在针对以上示例区块链的示例可重写区块链场景中,块可以是元 组B:=
例如,变色龙散列的域可以通过散列论证的输入Hash来调整到 与区块链的应用相当的大小,该散列是利用具有期望输出大小的规则 抗冲突散列来完成的。
变色龙散列的验证可以使用其自身的验证函数(HVer)来计算。 然而,一些散列函数(诸如没有密钥的那些函数)可以通过预先计算 散列来验证。
在一些情况下,诸如示例算法1的链修订算法可将以下作为输入: 要被修订的链C、表示正被修订的块(在链C中)的位置的索引集合、 以及包含针对正被修订的各个块的新x”值的另一集合。该示例算法 可以接受变色龙散列陷阱门密钥tk作为输入。该算法的直观知识是, 对于每个要被修订的块,计算针对块的散列与其新内容x’的冲突。通 过利用经修改的对应物替换原始块来创建新链C’。在算法1的执行结 束时,中央机构可以将新的修订链广播为特殊链,使得系统的用户采 用新的修订链,以取代其他链,甚至例如更长的链。
在一些情况下,抗冲突变色龙散列函数可能对密钥暴露敏感。例 如,对于一些抗冲突变色龙散列函数,在查看针对该函数的冲突之后, 可以取得密钥。注意,所提出的两种算法(算法1和2)可以暴露一 个或多个冲突以用于修订。例如,算法可以暴露冲突用于修订或用于 被更改或修订的每个块。在一些情况下,系统可以实现具有增加的抗 冲突能力的变色龙散列,以避免密钥暴露。然而,一些系统可以依赖 于抗冲突能力和冲突暴露的受控等级。
在一些情况下,受信任方可以从可重写区块链中移除整个块。例 如,用例可以是可扩展性维护,诸如节省磁盘空间和与可以被用来处 理较大(未修订)链相关的计算能力。为了移除块B
分散式密钥交换
在一些实现中,候选受信任机构可以是明显的。例如,在一些金 融交易中,银行或银行官员可以持有针对完整性代码的密钥,诸如变 色龙散列。在一些情况下,对等应用可能不一定具有这种明确的候选 受信任方。这种情况可以通过使用分散式密钥分配方案来解决。在这 种情况下,陷阱门密钥可能不一定由任何单独的当事方已知,而是在 一些固定集合的用户之间被共享,使得这些用户一起组成受信任方。 当需要修订块时,来自该集合的用户参与安全多方计算协议(MPC) 以计算算法1。
在一些情况下,安全密钥交换(诸如MPC)可以通过让各方发送 开始信号来操作。在一些情况下,一些当事方可能是诚实的或不诚实 的。诚实的当事方可以致力于与其他各方合作,以获得完整的密钥。 然而,不诚实的当事方可能希望通过发送虚假份额来扰乱此过程。尽 管如此,安全密钥交换仍然可以涉及接收与诚实方和不诚实方的份 额。在接收到来自所有诚实当事方的“开始”信号之后,系统可以运行 (hk,tk)←$HGen(1
系统可以接收来自每个当事方P
在示例场景中,示例系统可以包括n个活跃用户。用户的子集U ∈[n]可以保持陷阱门密钥K的份额。用户的子集U可以执行分散式 密钥生成协议。在运行结束时,子集U中的用户得到tk的份额s
针对集合U的示例选择是挑选在线用户的子集。然而,该选择可 以取决于应用。还要处理U中的一些用户实际上是恶意的并且他们的 目标是学习tk或阻止其正确重建的问题。
具体例示
在一些示例实现中,系统可以使用变色龙散列(CH)构建,该构 建在GiuseppeAteniese和B.de Medeiros的“On the key exposure problem in chameleon hashes”(SCN,第165-179页,2004年)中进 行了描述。如上所述,可以被实现的示例CH构建具有双Nyberg-Rueppel签名以及增加的抗冲突能力,例如显示示例属性8的 CH。针对该函数的参数可以包括随机素数q和p=2q+1。参数还可 以包括
·(hk,tk)←$HGen(1
·h:=Hash(m,r,s):为了用随机值
·{0,1}:=HVer(h,m,r,s):为了验证,仅返回Hash(m,r,s)=h。
·(r′,s′)←$HCol(h,m,r,s,m′):为了计算针对消息m’的冲突, 挑选随机数k∈[1,q-1],计算r′←h+(g
半诚实的场景。在示例场景中,子组U中的用户是半可信的。在 此场景中,可以信任子组U中的半诚实用户,以执行协议并根据规则 进行操作,例如可以依赖子组U中的用户来输入正确的份额。对于这 种半诚实场景,下面描述基于和的n阈值密钥共享方案:
·经销商选择秘密s和n个份额s
·n个当事方P
·经销商从当事方P
在示例场景中,用户u∈U单独地选择随机数x
在示例场景中,用户u∈U可以在对((h,m,r,s),m′)上达成一致。 用户单独地选择相应的随机数k
不诚实的场景。附加地或备选地,示例场景可以包括一些用户、 实体、当事方、设备或其他实体,他们可能是不诚实的。例如,不诚 实的用户可能偏离协议规范,以试图学习其他用户的密钥份额。为了 维持这种场景中的安全性,可以实现用于密钥共享的稳健秘密共享方 案。在一些情况下,稳健秘密共享可以支持阈值数目(例如,整数t <n)的可能是不诚实的用户。执行稳健秘密共享的用户可以根据给 定份额重新构建正确的密钥,即使(多达)阈值数目的用户是不诚实 的。稳健秘密共享方案可以使用Shamir秘密共享方案加上Reed-Solomon(RS)纠错码来实现。在密钥重建阶段,在重新构建密 钥之前,在每个份额中使用RS码。在一些情况下,与RS纠错配对 的Shamir秘密共享方案可以在多达三分之一的用户主动不诚实的情 况下操作。在一些示例方案中,可以支持任何不诚实的用户阈值,例如,这可以包括允许仅少于大多数用户不诚实的阈值。
子组中的用户可以选择相应的随机串ρ
在一些实现中,可以使用共享方案,诸如在Tal Rabin和Michael Ben-Or的“Verifiable secret sharing and multiparty protocols with honest majority(extended abstract)”(ACM STOC,第73-85页,1989年)中 所描述的那些方案。例如,其中所讨论的共享方案可以使用广播信道, 并且能够在大多数当事方诚实的情况下成功操作。
此外,一些实现可以使用这样的方案,具有在Allison Bishop、 Valerio Pastro、Rajmohan Rajaraman和Daniel Wichs的“Essentially optimal robust secret sharingwith maximal corruptions”(IACR Cryptology ePrint Archive,2015:1032,2015年)中所描述的可优化 份额大小。例如,其中所讨论的共享方案可以具有在份额大小和当事 方数目n之间缺乏线性相关性的缺陷设置。在一些情况下,份额大小 可以随k线性增长,其中2
块级结构
图8示出了与示例更新的区块链部分850配对的示例区块链部分 800。在该示例中,区块链部分800、850的外部散列H与内部散列G 配对。内部散列可以被嵌套在外部散列内,使得将内部散列的输出作 为输入提供给外部散列。在该示例中,区块链部分,内部散列G可以 是变色龙散列函数。外部散列H可以是变色龙散列函数或另一散列函 数。这些块可以包括HashPrev(例如,前一散列)802字段,其可以 包括用于保持与前一块对应的散列输出的存储库,例如s、s'、s”。块 820,822,832、834可能不一定包括其自身输入的散列输出。然而,针 对块的散列输出被示出在块上方,以表明到下一块的链接803(例如, 块832与820之间以及820与834之间的链接803)。块820、822、 832、834还可以包括有效载荷804字段,该字段可以保持在块内受保 护的数据(例如,x、x’、x”),诸如交易信息、智能合同内容、数值、货币面值或其他受保护的数据。
还可以包括计数器字段806,例如ctr、ctr’、ctr”。计数器字段 806可以包括可以被用于工作证明(PoW)计算、记帐、块跟踪或其 他目的的计数器或随机数。在加密货币实现中,PoW可以被用来验证 对特定当事方的货币奖励的有效性。PoW可以包括计算问题的解,其 中,解的计算复杂但验证的计算相对简单。在智能合同中也可以使用 PoW来验证特定当事方已经完成了他们在合同中的义务。
当块被修订时,例如当冲突被计算时,可以更新随机性808字段。 在一些情况下,随机性字段可以保持第三数据(例如,r、r’、r”), 其可以与替换数据配对以允许对区块链进行非防篡改重写。当块820 被修订时,值s’、x’、ctr’和r’可以由s’、*x’、ctr’和*r’代替。在示例 场景中,s’和ctr’可以不一定被修改,因为ctr’可以由外部散列用来计 算PoW,并且是与保持不变的前一块的链接。使用针对内部散列函数 G的变色龙散列密钥,可以发现冲突,使得G(s',x',and r')=G(s',*x', and*r')。相应地,H(ctr',G(s',x',and r'))=H(ctr',G(s',*x',and*r'))。 结果,s”可以通过修订而保持不变。更新的块部分850包括具有值*x’ 和*r’的替换块822。
在一些实现中,系统可以通过在Block
多链区块链
在一些实现中,受信任实体可以执行可以被隐藏的修订,并且用 户可以不知道新的区块链已经替换了原始区块链。即,除非可以恢复 区块链的旧副本,否则用户可能不一定能够检测是否修订了区块链的 部分。
然而,在一些实现中,可以有利地使修订明显。例如,在审查修 订的系统中,先前协议在执行修订时要求证据,或者在修订的证据是 有利的或以其他方式优选的其他情况下,防篡改修订可能是有利的。 在修订明显的系统中,内容移除或修改可能留下重写标识符或“痕迹” (例如,重写伪像),其可能不一定由包括受信任方的任何人可移除。 然而,在一些实现中,如下面所讨论的,痕迹可以通过受信任方的子 集或者通过多个当事方的协调来移除。
在一些修订明显的实现中,单个区块链可以包括多个链,一个链 基于写锁定链(例如,缺少密钥的散列函数或密钥未知的散列函数), 一个链基于可重写区块链(例如,变色龙散列)。如果在这两个链中, 写锁定和可重写链是完整的,则没有修订并且块是原始的。如果写锁 定链被断开且变色龙链是完整的,则由受信任实体进行了修订。然而, 如果可重写链被断开,则由不受信任实体对区块链进行了编辑,并且 区块链可能被无效。在一些情况下,如果可重写链被断开,则区块链 可能被无效,而不管写锁定链的状态如何。相应地,在这种情况下, 通过变色龙链确保区块链的完整性,而写锁定链充当检测机制。因此,在利用痕迹证据支持重写的区块链中,区块链的有效性与篡改记录的 创建在逻辑上分离。
在一些实现中,可以使用多个链在不同的受信任实体之间进行区 分。相应地,可以将多个可重写链与零个或多个写锁定链一起包括在 区块链中。在受信任的多个实体的跟踪区块链中,与进行修订的受信 任实体相对应的链将不断开,而其他链(包括与其他受信任实体相对 应的链或写锁定链)可能被断开。在一些实现中,包括多个可重写链 提供了篡改痕迹或重写标识符,而没有伴随写锁定链,因为只有与进 行编辑的受信任实体相对应的链可以保持不断开,而其他链虽然可通 过其他受信任实体重写,但是作为编辑的结果也可能被断开。在一些 情况下,当另一受信任实体或拥有其他一个或多个链的密钥的实体批准由先前受信任方进行的编辑时,痕迹可以随后被移除。这可以保护 区块链免受一个受信任方进行的无法跟踪的单方面编辑,但是仍然允 许单个受信任方快速删除敏感信息,而无需在多个当事方之间进行协 调。
此外,在一些方案中,一些受信任实体可以被授权进行没有痕迹 的编辑,而其他受信任方可能在进行编辑时留下痕迹。例如,在多重 可重写链方案中,一个受信任方可以具有针对所有链的密钥,而其他 当事方仅具有针对链的一部分的密钥。拥有所有密钥的当事方可以进 行编辑而不留下痕迹,而只拥有一部分密钥的当事方在编辑时可能留 下痕迹。多链方案可以与分布式密钥方案组合,使得在各个当事方独 自行动时留下痕迹的情况下,各个当事方可以聚合他们的密钥以进行 无痕迹的编辑。
图9示出了示例双链区块链部分900、950,其中块B2 902被修 改。由一个或多个受信任方持有的密钥903允许受信任方打开链路 904并改变块B2 902。然而,写锁定链906或者受信任方缺少密钥的 其他链路可能被断开,以表示发生修订。参照950,可以移除具有可能敏感信息的旧块B2 902,但是断开的链956充当不可磨灭的标记或 痕迹,该标记或痕迹提供产生新块B2’952的修订发生的永久记录。
还可以使用多链区块链来生成具有与可重写区块链空间配对的 不可重写区块链空间的混合区块链。例如,系统可以利用缺少密钥的 完整性代码来保护区块链中的块集合中的每个块的第一个。相应地, 由任何当事方重写块的这些部分的试图都将是防篡改的。示例系统可 以用支持由受信任方重写的完整性代码来保护块的剩余部分。这些可 重写部分可以由受信任方更改,而不生成篡改证据。相应地,操作者 可以使用混合区块链来生成具有不可变核心数据的区块链系统,不可 变核心数据与可以由有限数目的受信任方重写的第三级数据配对。
图10示出了示例混合区块链1000。混合区块链1000包括具有核 心1002部分和第三级部分1004的块1010、1020、1030、1040。组成 核心部分1002的块部分1012、1022、1032、1042由核心完整性代码 1006保护,核心完整性代码1006可以不一定支持由任何当事方进行 的非防篡改重写。相反地,组成块1010、1020、1030、1040的第三 级部分1004的块部分1014、1024、1034、1044可以通过支持非防篡 改重写的第三级完整性代码1008来保护。
在各种实现中,核心1006和第三级1008完整性代码本身可以实 现多个链。例如,如上所讨论的,核心完整性代码1006或第三级完 整性代码1008可以支持留痕迹,使得可以对部分1002、1004执行有 效重写,但是这些改变仍然生成篡改的证据,尽管改变是有效的。附 加地或备选地,核心1006和第三级1008完整性代码可以支持多受信 任方的批准,或者需要不同数量的密钥部分来支持编辑。例如,对核 心部分1002的编辑可以取决于由两个受信任方的批准以执行非防篡 改重写,而对第三级部分的非防篡改编辑可以由单个受信任方执行。 对于分布式密钥系统,示例系统可以允许使用密钥的M个部分对第 三级部分1004进行非防篡改重写,同时仅允许在组合密钥的N个部 分(其中N>M)时对核心部分1002进行非防篡改重写。
在示例场景中,混合区块链可以被用来构建具有完全不可变交易 数据的分类账,该交易数据与交易描述/注释数据配对,可以由针对分 类账的管理员的选择组重写交易描述/注释数据。在一些情况下,分类 帐条目可以包括可以被输入的数据类型中的大小限制或约束。限制允 许的重写可以挫败将不相关或恶意内容写入块的不可变分类账部分 的尝试。块的可重写部分内的描述/注释字段可能遭受较少的条目限 制。然而,管理员可以在改变不是防篡改的情况下更改或移除描述/ 评论字段中先前已写入的内容。
图11示出了示例可重写区块链场景1100。在可重写区块链场景 1100中,控制密钥1150(或主密钥)的受信任方1101可以自行执行 重写1172。例如,受信任方可以完全控制密钥,因为受信任方不必与 其他当事方协调来执行重写1172。例如,受信任方1101可以直接地 或者从一个或多个终端1110控制BRS 400,BRS 400可以将密钥1150 存储在存储器420(例如,受保护的存储器480)中或者从远程位置 (诸如终端1110、云存储装置或其他网络位置)访问/接收密钥1150。 终端1110可以包括各种通信设备,诸如计算机、网络服务器、笔记本电脑、蜂窝电话、智能电话、平板电脑、互联网连接设备、物联网 设备或其他通信设备。BRS 400可以执行RML 441和/或重写逻辑600 以执行区块链重写1172。不受信任方1102可以访问BRS 400、其他 BRS 400系统、终端1110或BPS 300,它们可以验证区块链和/或附 加块1174(例如,向区块链的末端添加新块)。
一些不受信任方可以控制BRS 400,包括在受信任方控制下的 BRS 400。然而,不受信任方不能够访问所存储的密钥1150。例如, 一些不受信任方可能在BRS 400上缺乏访问受信任方的密钥1150的 用户帐户权限,但是仍然可以访问BRS 400的其他功能。附加地或备 选地,关于第一可重写区块链的不受信任方可以充当关于其他区块链 的受信任方。相应地,单个BRS 400可以为多个不同的区块链向多个 不同的受信任方提供重写操作1172。
BRS 400可以访问区块链。当在受信任方的授权下被指示时,BRS 400可以使用密钥1150对所访问的区块链执行重写。
图12示出了示例分布式密钥链区块链重写场景1200。在示例场 景1200中,多个当事方可以包括单独不受信任方IUP(1299)、受 信任方1101和不受信任方1102。IUP 1299可以控制密钥的部分1260, 而受信任方1101可以控制整个密钥1150。在示例场景中,当IUP1299 组合它们的密钥部分1260(例如,通过PKE或其他秘密交换方案, 如上文所讨论的)或者在受信任方1101的授权下使用其密钥1150的 单方重写1172时,可以执行重写1272。然而,各种其他示例分布式 密钥区块链重写场景中,没有单个当事方可以完全控制密钥1150,并 且相应地,当IUPS 1299组合它们的部分1260时,非防篡改区块链 重写1272是可能的。
再次参考示例分布式密钥区块链重写场景1200,IUP 1299可以组 合它们的部分来执行非防篡改重写1272。IUP 1299可以将它们的密 钥部分1260存储在BRS 400、BPS300、终端1110或其他存储器位 置上。IUP 1299可以使用上述交换方案中的一种交换方案来组合它们 的部分。一旦组合的密钥1262可用,BRS 400就可以访问组合的密 钥1262以执行非防篡改重写。
现在转为讨论可重写区块链的现实世界应用,区块链可以被用来 (例如,由私人公司)维持记录。例如,服务提供者(例如,银行、 金融机构或其他企业)可以维持保持交易记录的区块链。
图13示出了示例区块链记录维护场景1300。在一些情况下,可 以被重写的区块链1302可以由服务提供者1304维持在公共位置,其 中,在当事方完成交易时,交易的当事方1308可以向区块链1302的 末端附加块1310(例如,包含交易记录1399)。服务提供者1304持有密钥1350,并且是受信任方。因为执行交易的当事方1308是不受 信任的,所以服务提供者1304可以依靠区块链的仅附加性质来阻止 对过去记录的篡改。
在一些司法管辖区(诸如欧盟),个人可以具有被遗忘的权利。 此外,因为区块链1302包括交易记录1399并且是公开可获取的,所 以区块链1302可以提供由过去用户的欺诈活动的公开记录1398。由 于个人在完成对过去罪行的判决后可以具有广泛的权利将该罪行的 引用从公共领域移除,所以服务提供者1304可以具有移除欺诈活动 的公共记录1398的法律义务。如果不可以重写区块链1302,则服务 提供者1304可能被迫使得区块链1302无效或者清除整个区块链1302 以遵守法律。然而,由于服务提供者1304可以执行对区块链1302执 行非防篡改重写,所以服务提供者可以移除公共记录1398,而无需将 使区块链失效的篡改证据。相应地,上述可重写区块链技术和架构向 公共记录保存和法定遵从的真实应用提供了具体的技术解决方案。
在另一现实世界应用中,可重写区块链可以被用在维护来自物联 网(IoT)设备的数据流记录中。图14示出了示例IoT可重写区块链 场景1400。IoT安全性相机1402可以记录视听(A/V)数据1404, 并将A/V数据存储在可重写区块链1408内。操作IoT安全性相机1402的企业1410可以使用其来监控对第三方客户1499开放的区域(例如, 零售场所的停车场)。当客户1499之间发生争执(例如,轻微的汽 车事故)时,企业1410可以向客户1499提供区块链1408内的A/V 数据1404。
相应地,企业1410可以确信各个客户1499不能够更改A/V数据 1404。因此,A/V数据1404的真实性可以由客户1499自身(或由几 乎任何一方,诸如保险人、调解人或法院)验证。结果,在区块链内 提供视频可以减少企业1410在为客户1499认证A/V数据1404方面 减少未来潜在负担。此外,由于区块链1408是可重写的,所以企业 可以截取A/V数据1404,并提供具有相关A/V数据的段1420。在没 有重写区块链1408的能力的情况下,企业1410可能面临提供不相关 A/V段或移除区块链保护的选择以及面临更繁重的认证要求的风险。 在各种实现中,如下面所讨论的,段1420可以被封装成闭合的区块 链环路。
可重写区块链技术和架构可以支持在没有重写能力的技术解决 方案的情况下不切实际或不可行的区块链形式。例如,在区块链重写 支持的情况下,区块链可以被受信任方“封装”成环路形式。换句话说, 给定线性区块链的第一块可以被重写以包括与区块链的后续块编码 一致的完整性输出。这至少部分地将区块链改造成环路。在没有重写 支持的情况下,在区块链内构建环路是不可能的或不切实际的,除非 在环路中添加第一个块之前知道环路内所有块的内容。在一些情况 下,分支(例如,具有可以跟随第一块的两个分离的可能块)是区块 链失效的指示符。在没有分支的情况下,开环(例如不连接区块链两 端的环路)不能被构建。相应地,在存在分支并不一定使区块链无效 的实现中,开环可以是有效的。
在第一块是区块链中最老的块且后续块是最新块的情况下,受信 任方将区块链重组成闭合的区块链环路。区块链环路可以由多个当事 方用来提供针对有限长度区块链的自洽抗篡改。例如,在区块链覆盖 已完成的一系列交易的情况下,可以将区块链封装到闭环中,以提供 自洽记录,而不必依赖于未来的块添加来保证安全性。
图15示出了示例封装区块链1530、1550。示例区块链环路1530 是开环。示例区块链1500是闭环。受信任方1504可以通过选择至少 一个非端块(例如,来自组1532的块)来锁定到另一块来将区块链 封装成开环区块链1530。备选地,受信任方1504可以通过选择两个端块(例如,来自组1552的两个块)将区块链封装成闭环区块链1550。
对于开环1530,块1538可以用内容1546来重写,使得被存储在 块1534中的完整性输出1536指示块1538在块1534之前(例如,完 整性输出1536应该与内容1546编码一致)。由于块1534保持不变, 所以块1542的内容也可以与块1534中所存储的完整性输出1536编 码一致。完整性输出1536可以被写入块1544中,以确保块1538在 被重写后与块1544编码一致。块1544可以用完整性输出1536来重 写,使得块1558的完整性输出1548在重写之后保持与块1544编码 一致。
对于闭环区块链1550,块1554可以用完整性输出1556来重写, 完整性输出1556指示块1558在块1554之前(例如,完整性输出1556 应该与内容1558编码一致)。块1554可以用完整性输出1556来重 写,使得块1541的完整性输出1566在重写之后保持与块1554编码 一致。相应地,在由受信任方1504创建闭环1550之后,由不受信任 方的重写块1558将与完整性输出1556编码不一致,并且是防篡改的。 另外,在分支使区块链失效的实现中,在块1558之后附加块将使闭 环1550失效。相应地,在分支使区块链无效的实现中,闭环区块链 1550可以被保护免受非防篡改重写和非防篡改添加两者。
上述方法、设备、处理和逻辑可以以许多不同的方式并且以硬件 和软件的许多不同组合来实现。例如,实现的所有或部分可以是电路, 该电路包括指令处理器,诸如中央处理单元(CPU)、微控制器或微 处理器;专用集成电路(ASIC)、可编程逻辑器件(PLD)或现场可 编程门阵列(FPGA);或者包括离散逻辑或其他电路部件(包括模 拟电路部件、数字电路部件或二者)的电路;或者它们的任何组合。 例如,电路可以包括离散互连的硬件部件和/或可以被组合在单个集成 电路管芯上、分布在多个集成电路芯片之间或者在公共封装中的多个 集成电路管芯的多芯片模块(MCM)中被实现。
电路可以进一步包括或访问供电路执行的指令。指令可以被实施 为信号和/或数据流和/或可以被存储在除临时信号之外的有形存储介 质中,诸如闪存、随机存取存储器(RAM)、只读存储器(ROM)、 可擦除可编程只读存储器(EPROM);或者被存储在磁盘或光盘上, 诸如压缩盘只读存储器(CDROM)、硬盘驱动器(HDD)或其他磁 盘或光盘;或者被存储在另一机器可读介质中或上。产品(诸如计算 机程序产品)可以特别地包括存储介质和被存储在介质中或上的指 令,并且指令在由设备中的电路执行时可以使设备实现上述或附图中 所示的任何处理。
实现可以作为电路(例如,硬件和/或硬件和软件的组合)分布在 多个系统部件之间,诸如在多个处理器和存储器之间,可选地包括多 个分布式处理系统。参数、数据库和其他数据结构可以被分别存储和 管理,可以被结合到单个存储器或数据库中,可以以许多不同的方式 逻辑地和物理地组织,并且可以以许多不同的方式来实现,包括作为 数据结构,诸如所链接的列表、散列表、阵列、记录、对象或隐式存 储机制。程序可以是单个程序的部分(例如,子例程)、分离的程序、 分布在几个存储器和处理器上或者以许多不同的方式被实现,诸如在 库(诸如,共享库(例如,动态链接库(DLL))中被实现。例如, 当由电路执行时,DLL可以存储执行上述或附图中所图示的任何处理 的指令。
本文所描述的技术和架构可以被用在各种实现中。作为一个示 例,可以在硬件安全性系统中执行一种方法。该方法可以包括:在处 理电路处经由密钥交换协议接收密钥的第一部分;利用处理电路来组 合第一部分与密钥的第二部分以获得密钥;利用处理电路来确定利用 经更改的数据来重写区块链的所选块中的原始数据,经更改的数据与 先前被存储在所选块中的原始数据不同;以及利用处理电路并使用密 钥来确定包括经更改的数据的冲突数据,冲突数据与先前所确定的完 整性输出编码一致,完整性输出被存储在区块链跟随所选块的特定块 内,先前所确定的完整性输出响应于原始数据而被生成并与原始数据 编码一致。
作为另一示例,一种系统可以包括:存储器、被存储在存储器内 的区块链、以及与通信接口进行数据通信的重写电路。区块链可以包 括:所选块,包括原始数据;以及特定块,包括完整性输出,使用原 始数据来确定完整性输出作为输入。通信接口可以被配置为:执行密 钥交换操作以接收密钥的部分,该部分由多个单独不受信任方发送; 接收与密钥交换协议协调的命令,该命令用来利用经更改的数据重写 原始数据。重写电路可以被配置为:使用密钥的部分获得部分组合; 当部分的计数超过针对重写权限的阈值计数时,计算包括经更改的数 据的冲突数据,冲突数据与完整性输出编码一致,并且使用部分组合 和经更改的数据作为输入来执行计算冲突数据。
在一些实现中,重写电路可以进一步被配置为:当计数没有超过 针对重写权限的阈值计数时,无法计算冲突数据。
在一些实现中,重写电路可以被配置为:通过以下而无法计算冲 突数据:确定计数没有超过阈值;并且响应于确定计数没有超过阈值, 放弃对冲突数据的计算。
在一些实现中,重写电路可以被配置为:通过以下而无法计算冲 突数据:通过尝试利用密钥的不完全知识计算冲突数据来生成无效数 据,无效数据与完整性输出编码不一致;以及通过利用无效数据至少 改写原始数据来执行区块链的防篡改重写。
在一些实现中,特定块可以跟随区块链内的所选块。
在一些实现中,特定块可以包括与区块链内的所选块相邻的块。
在又一示例中,可以在硬件安全性系统中执行一种方法。该方法 可以包括:利用处理电路来确定利用经更改的数据来重写区块链的所 选块中的原始数据,经更改的数据与先前被存储在所选块中的原始数 据不同;标识区块链的特定块,特定块包括第一完整性代码和第二完 整性代码;利用处理电路并使用密钥来确定包括经更改的数据的冲突 数据;以及利用处理电路来通过利用冲突数据替换原始数据来对区块 链执行防篡改重写。冲突数据与被存储在区块链的特定块内的第一完 整性输出编码一致,并且与被存储在特定块内的第二完整性输出编码 不一致。第一和第二完整性输出响应于原始数据而被生成并与原始数 据编码一致。
在另一示例中,一种系统可以包括:存储器、被存储在存储器内 的区块链和重写电路。区块链可以包括:第一块,包括原始数据;以 及第二块,包括使用原始数据作为输入来计算的第一完整性输出;以 及使用原始数据作为输入来计算的第二完整性输出。重写电路可以被 配置为:通过利用不同于原始数据的经更改的数据来重写第一块来在 区块链中生成痕迹,经更改的数据与第一完整性输出编码一致,但与 第二完整性输出编码不一致。
在另一示例中,一种系统可以包括:存储器、通信接口电路、以 及与通信接口和存储器进行数据通信的重写电路。存储器可以被配置 为存储针对保护区块链的变色龙散列的密钥。通信接口电路可被配置 为:访问存储器中的区块链,区块链包括所选块、在区块链上跟随在 所选块之后的第二块和在区块链上在所选块之前的第三块。所选块可 以包括:有效载荷字段,可操作以存储原始数据;第一先前散列字段, 可操作以存储第一变色龙散列输出;以及随机性字段。第二块可以包 括可操作以存储第二变色龙散列输出的第二先前散列字段。可以使用 第三块的内容作为输入来生成第一变色龙散列输出。通信接口电路可以进一步被配置为:接收受信任方指令,以对有效载荷字段执行非防 篡改重写,该指令指定将替换先前被存储在有效载荷字段中的原始数 据的经更改的数据;为了促进指令的执行,接收访问存储器内的密钥 的授权,该授权由针对区块链的受信任方发起,以及发送针对区块链 的重写指令。重写电路可以被配置为:使用有效载荷字段、第一先前 散列字段和密钥作为输入来确定要写入随机性字段的随机性数据,选 择随机性数据,使得当有效载荷字段包含经更改的数据且随机性字段 包含随机性数据时,第二变色龙散列输出与所选块编码一致;生成重 写指令;以及使通信接口发送重写指令。重写指令可以包括:用来将 随机性数据写入随机性字段的第一命令;以及用来利用经更改的数据 替换原始数据的第二命令。
在另一示例中,一种系统可以包括存储器和重写电路。存储器可 以被配置为存储区块链。区块链可以包括:所选块,包括原始数据; 以及特定块,包括完整性输出。重写电路可以被配置为对所选块、特 定块或二者执行非防篡改重写。
在一些实现中,重写电路可以被配置为通过将区块链封装成环路 来执行非防篡改重写。
在一些实现中,重写电路可以被配置为通过利用与完整性输出编 码一致的经更改的数据替换原始数据来将区块链封装成环路。
在一些实现中,重写电路可以被配置为通过将区块链封装成闭 环、开环或二者来将区块链封装成环路。
在一些实现中,区块链可以包括第三级部分和核心部分。
在另一示例中,一种系统可以包括存储器以及被存储在存储器上 的混合区块链。混合区块链可以包括核心部分和第三级部分。满足针 对重写权限的标准可以使当事方有资格重写第三级部分但不是核心 部分。
在一些实现中,该标准可以包括组合第一阈值数目的密钥部分。
在一些实现中,核心部分可以由缺少相关联的密钥的完整性代码 保护。
在另一示例中,一种系统可以包括:存储器;区块链,被存储在 存储器中,区块链包括具有原始数据的块,区块链由针对第一完整性 代码的第一完整性输出保护,第一完整性代码被配置为在被应用于原 始数据时产生第一完整性输出;以及重写电路,与存储器进行数据通 信。重写电路被配置为:访问区块链;访问针对第一完整性代码的密 钥,密钥促进冲突数据的标识,冲突数据不同于原始数据,第一完整 性代码被配置为在被应用于冲突数据时产生第一完整性输出;接收命 令,以利用不同于原始数据的经更改的数据来重写块中的原始数据, 第一完整性代码在被应用于经更改的数据时不产生第一完整性输出; 响应于密钥和经更改的数据生成附加数据;基于经更改的数据和附加 数据生成冲突数据;以及利用冲突数据来重写块。
在一些实现中,经更改的数据包括:原始数据的修订版本、相对 于原始数据的补充数据或者二者。
在一些实现中,其中第一完整性代码包括密码散列、变色龙散列 或者二者。
在一些实现中,区块链包括从第一完整性代码和第二完整性代码 构建的双链。
在一些实现中,第二完整性代码在被应用于冲突数据时不产生第 二完整性输出。
在一些实现中,第二完整性输出被配置为用作将区块链标记为已 重写的重写标识符。
在一些实现中,第一完整性代码包括第一变色龙散列,并且第二 完整性代码包括重写保护密码散列、第二变色龙散列或者二者。
在一些实现中,第一完整性代码包括被嵌套在外部散列内的内部 散列。
在一些实现中,内部散列包括变色龙散列,该变色龙散列被配置 为向外部散列提供散列输出;并且外部散列包括重写保护密码散列。
在一些实现中,重写电路被配置为通过组合密钥的多个部分来访 问密钥。
在一些实现中,多个部分被存储在由单独不受信任方维持的分离 存储器位置中,这些单独不受信任方共同组成受信任方。
在一些实现中,重写电路被配置为使用公钥交换协议来组合多个 部分。
在另一示例中,一种方法包括:在硬件安全性系统中,使用处理 电路来访问针对区块链的密钥;利用处理电路来确定利用经更改的数 据来重写区块链的所选块中的原始数据,该经更改的数据不同于先前 被存储在所选块中的原始数据;以及利用处理电路并且使用密钥来确 定包括经更改的数据的冲突数据,冲突数据与先前确定的完整性输出 编码一致,先前确定的完整性输出被存储在区块链中跟随在所选块之 后的特定块内,先前确定的完整性输出响应于原始数据而被生成并且 与原始数据编码一致。
在一些实现中,利用经更改的数据来重写原始数据包括:利用原 始数据的修订版本重写原始数据、利用相对于原始数据的补充数据来 重写原始数据或者二者。
在一些实现中,区块链由包括密码散列、变色龙散列或者二者的 完整性代码保护;并且密钥是特定于完整性代码的。
在一些实现中,区块链包括使用第一完整性代码和第二完整性代 码的双链。
在一些实现中,经更改的数据包括与第二完整性代码的第二完整 性输出的编码不一致,第二完整性输出不同于先前确定的完整性输 出。
在一些实现中,与第二完整性代码的第二完整性输出的编码不一 致被配置为用作将区块链标记为已重写的重写标识符。
在一些实现中,第一完整性代码包括第一变色龙散列;并且第二 完整性代码包括重写保护密码散列、第二变色龙散列或者二者。
在一些实现中,第一完整性代码包括被嵌套在外部散列内的内部 散列。
在一些实现中,内部散列包括变色龙散列,该变色龙散列被配置 为向外部散列提供散列输出;并且外部散列包括重写保护密码散列。
在一些实现中,访问密钥包括组合密钥的多个部分。
在另一示例中,一种计算机程序或产品可以包括:除瞬态信号之 外的机器可读介质;以及被存储在机器可读介质上的指令。这些指令 在被执行时可以使系统:访问区块链内的原始数据,原始数据由针对 完整性代码的第一完整性输出来保护,完整性代码被配置为在被应用 于原始数据时产生第一完整性输出;确定利用不同于原始数据的经更 改的数据来重写块中的原始数据,使得利用经更改的数据来重写原始 数据产生防篡改重写;访问存储器中的密钥;并且响应于密钥,执行 利用至少经更改的数据替换第一数据的区块链的非防篡改重写,使得 完整性代码被配置为在被应用于非防篡改重写时产生第一完整性输出。
在一些实现中,经更改的数据包括原始数据的修订版本、相对于 原始数据的补充数据或它们的任何组合。
在一些实现中,完整性代码包括变色龙散列。
在一些实现中,指令还被配置为通过组合密钥的多个部分来访问 密钥。
在一些实现中,多个部分被存储在由单独不受信任方维持的分离 存储器位置中,这些单独不受信任方一起组成针对区块链的受信任 方。
在一些实现中,指令还被配置为通过使用公钥交换协议组合多个 部分来防止单独不受信任方单独地获得密钥的整体的知识。
在另一示例中,一种方法包括经由重写电路访问被存储在存储器 上的区块链,其中区块链包括具有第一数据的块;并且区块链由针对 完整性代码的第一完整性输出来保护,完整性代码被配置为在被应用 于原始数据时产生第一完整性输出。该方法还可以包括:经由重写电 路访问针对完整性代码的密钥,该密钥促进不同于原始数据的冲突数 据的标识,完整性代码被配置为在被应用于冲突数据时产生第一完整 性输出;确定利用与原始数据不同的经更改的数据来重写块中的原始 数据,完整性代码在被应用于经更改的数据时不产生第一完整性输 出;响应于密钥和经更改的数据生成附加数据;基于经更改的数据和 附加数据生成冲突数据;以及利用冲突数据重写块。
在一些实现中,访问密钥包括组合密钥的多个部分,多个部分被 存储在由单独不受信任方维持的分离存储器位置中,这些单独不受信 任方一起组成受信任方。
在另一示例中,一种方法包括在硬件安全性系统中:使用处理电 路访问针对区块链的密钥;利用处理电路来确定利用经更改的数据来 重写区块链的所选块中的原始数据,经更改的数据不同于先前被存储 在所选块中的原始数据;以及利用处理电路并使用密钥来确定包括经 更改的数据的冲突数据,冲突数据与先前确定的被存储在区块链中跟 随在所选块之后的特定块内的完整性数据编码一致,先前确定的完整 性输出响应于原始数据而被生成并与原始数据编码一致。
在一些实现中,区块链由包括密码散列、变色龙散列或者二者的 完整性代码来保护。密钥是特定于完整性代码的。
在一些实现中,区块链包括使用第一完整性代码和第二完整性代 码的双链。
在一些实现中,经更改的数据包括与第二完整性代码的第二完整 性输出的编码不一致,第二完整性输出不同于先前确定的完整性输 出。
在一些实现中,与第二完整性代码的第二完整性输出的编码不一 致被配置为用作将区块链标记为已重写的重写标识符。
在一些实现中:第一完整性代码包括第一变色龙散列;并且第二 完整性代码包括重写保护密码散列、第二变色龙散列或者二者。
在一些实现中,第一完整性代码包括被嵌套在外部散列内的内部 散列。
在一些实现中:内部散列包括变色龙散列,该变色龙散列被配置 为向外部散列提供散列输出;并且外部散列包括重写保护密码散列。
在另一示例中,一种系统包括通信接口电路和与通信接口电路进 行数据通信的重写电路。通信接口电路被配置为在处理电路处经由密 钥交换协议接收密钥的第一部分。重写电路被配置为:将第一部分与 密钥的第二部分组合以获得密钥;确定利用经更改的数据来重写区块 链的所选块中的原始数据,经更改的数据与先前被存储在所选块中的 原始数据不同;以及使用密钥确定包括经更改的数据的冲突数据,冲 突数据与被存储在区块链中跟随在所选块之后的特定块内的先前确 定的完整性输出编码一致,先前确定的完整性输出响应于原始数据而 被生成并与原始数据编码一致。
在一些实现中,特定块跟随在区块链内的所选块之后。
在一些实现中,特定块包括与区块链内的所选块相邻的块。
在一些实现中,通信接口电路被配置为通过经由公钥交换协议接 收密钥的第一部分来经由密钥交换协议接收密钥的第一部分。
在一些实现中,通信接口电路被配置为通过在多个单独不受信任 方的授权下执行密钥交换协议来接收密钥的第一部分和密钥交换协 议。
在一些实现中,重写电路还被配置成在组合密钥的第一部分和第 二部分之前,访问受保护存储器中的密钥的第二部分。
在一些实现中,重写电路还被配置成使用密钥将密钥的第三部分 授予先前不受信任方。
在一些实现中,重写电路被配置为通过使用密钥解密存储密钥的 多个部分的高速缓存来授予密钥的第三部分。
在一些实现中,重写电路被配置为通过确定移除通过在不访问第 一部分、第二部分或者二者的情况下执行重写而留下的可检测重写伪 像,确定利用经更改的数据来重写区块链的所选块中的原始数据。
在另一示例中,一种方法包括在存储器中访问区块链,区块链包 括:所选块,包括原始数据;以及特定块,包括完整性输出,完整性 输出根据作为输入的原始数据来确定。该方法还可以包括在通信接口 电路处:执行密钥交换操作以接收密钥的部分,这些部分由多个单独 不受信任方发送;接收与密钥交换操作协调的命令,该命令指定利用 经更改的数据来重写原始数据。该方法还可以包括在重写电路处:从 密钥的部分获得部分组合;以及当部分的计数超过针对重写权限的重 写阈值时,计算包括经更改的数据的冲突数据,其中:冲突数据与完 整性输出编码一致,并且冲突数据根据作为输入的部分组合和经更改的数据来在算法上确定。
在一些实现中,该方法还包括当计数未超过针对重写权限的重写 阈值时,无法计算冲突数据。
在一些实现中,无法计算冲突数据包括:确定计数没有超过重写 阈值;以及响应于确定计数没有超过重写阈值,放弃冲突数据的计算。
在一些实现中,无法计算冲突数据包括:通过试图利用密钥的不 完整知识计算冲突数据来生成无效数据,无效数据与完整性输出编码 不一致;并且执行区块链的防篡改重写包括利用无效数据至少重写原 始数据。
在一些实现中,该方法还包括当计数超过针对密钥授予权限的授 予阈值时,解密密钥部分的高速缓存。
在另一示例中,一种方法包括在硬件安全性系统中:在处理电路 处经由密钥交换协议接收密钥的第一部分;利用处理电路来将第一部 分与密钥的第二部分组合以获得密钥;利用处理电路来确定利用经更 改的数据来重写区块链的所选块中的原始数据,经更改的数据不同于 先前被存储在所选块中的原始数据;以及利用处理电路并使用密钥来 确定包括经更改的数据的冲突数据,冲突数据与被存储在区块链中跟 随在所选块之后的特定块中的先前确定的完整性输出编码一致,先前 确定的完整性输出响应于原始数据而被生成并与原始数据编码一致。
在一些实现中,特定块跟随在区块链内的所选块之后。
在一些实现中,特定块包括与区块链内的所选块相邻的块。
在一些实现中,经由密钥交换协议接收密钥的第一部分包括:经 由公钥交换协议接收密钥的第一部分。
在一些实现中,经由密钥交换协议接收密钥的第一部分包括:在 多个单独不受信任方的授权下执行密钥交换协议。
在一些实现中,该方法还包括:在组合密钥的第一部分和第二部 分之前,在受保护的存储器中访问密钥的第二部分。
在一些实现中,该方法还包括:使用密钥来将密钥的第三部分授 予先前不受信任方。
在一些实现中,授予密钥的第三部分包括:使用密钥来解密存储 密钥的多个部分的高速缓存。
在一些实现中,确定利用经更改的数据来重写区块链的所选块中 的原始数据包括:确定移除通过在不访问第一部分、第二部分或者二 者的情况下执行重写而留下的可检测重写伪像。
在另一示例中,一种系统包括存储器、被存储在存储器内的区块 链,区块链包括:所选块,包括原始数据;以及
特定块,包括完整性输出,完整性输出根据作为输入的原始数据 来确定;通信接口电路被配置为:执行密钥交换操作以接收密钥的部 分,代表多个单独不受信任方接收这些部分;接收与密钥交换操作协 调的命令,该命令指定利用经更改的数据来重写原始数据;以及重写 电路与通信接口电路进行数据通信,重写电路被配置为:从密钥的部 分中获得部分组合;并且当部分的计数超过针对重写权限的重写阈值 时,计算包括经更改的数据的冲突数据,其中:冲突数据与完整性输 出编码一致,并且冲突数据根据作为输入的部分组合和经更改的数据 来在算法上确定。
在一些实现中,重写电路还被配置为当计数不超过针对重写权限 的重写阈值时,无法计算冲突数据。
在一些实现中,重写电路被配置为通过以下而无法计算冲突数 据:确定计数没有超过重写阈值,以及响应于确定计数没有超过重写 阈值,放弃冲突的计算。
在一些实现中,重写电路被配置为通过以下而无法计算冲突数 据:通过尝试利用密钥的不完整知识计算冲突数据来生成无效数据, 无效数据与完整性输出编码不一致;并且通过利用无效数据重写至少 原始数据来执行区块链的防篡改重写。
在一些实现中,特定块包括与区块链内的所选块相邻的块。
在一些实现中,重写电路还被配置为当计数超过针对密钥授予权 限的授予阈值时,解密密钥部分的高速缓存。
在另一示例中,一种方法包括在硬件安全性系统中:访问被存储 在存储器中的区块链,区块链包括:第一块,包括原始数据;以及第 二块,包括使用原始数据作为输入来计算的第一完整性输出以及使用 原始数据作为输入来计算的第二完整性输出。该方法还包括:使用重 写电路来通过利用不同于原始数据的经更改的数据重写第一块来在 区块链中生成重写伪像,经更改的数据与第一完整性输出编码一致但 与第二完整性输出编码不一致。
在一些实现中,在区块链中生成重写重写伪像包括:通过执行区 块链的有效重写来利用经更改的数据重写第一块。
在一些实现中,该方法还包括:通过使用批准密钥以利用批准数 据重写第一块来移除重写伪像,批准数据与第一完整性输出和第二完 整性输出编码一致。
在一些实现中,批准数据包括经更改的数据;并且通过执行针对 区块链的多受信任方重写批准来利用批准数据重写第一块。
在一些实现中,利用经更改的数据重写第一块包括使用密钥以利 用经更改的数据重写第一块;并且该方法还包括:在利用经更改的数 据重写第一块之前,通过在密钥交换中组合密钥的多个部分来生成密 钥。
在一些实现中,组合多个部分包括:当多个部分的计数超过针对 有效防篡改重写的第一阈值时组合多个部分。
在一些实现中,组合多个部分包括:当多个部分的计数超过针对 有效防篡改重写的第一阈值但不超过针对有效非防篡改重写的第二 阈值时组合多个部分,有效非防篡改重写与第二完整性输出编码一 致。
在另一示例中,一种计算机程序或产品包括:除瞬态信号之外的 机器可读介质;以及被存储在机器可读介质上的指令,这些指令被配 置为当被执行时使系统:确定利用不同于先前被存储在所选块中的原 始数据的经更改的数据来重写区块链的所选块中的原始数据;标识区 块链的特定块,特定块包括第一完整性输出和第二完整性输出;使用 第一密钥来确定包括经更改的数据的冲突数据;以及通过利用冲突数 据替换原始数据来执行区块链的防篡改重写。在冲突数据与第一完整 性输出编码一致且与第二完整性输出编码不一致的情况下,第一和第 二完整性输出响应于原始数据而被生成并且与原始数据编码一致。
在一些实现中,指令被配置为:通过执行对区块链的有效重写来 使处理电路执行与第一完整性输出编码一致的防篡改重写。
在一些实现中,指令被配置为:通过生成将区块链标记为已重写 的重写伪像来使处理电路执行与第二完整性输出编码不一致的防篡 改重写。
在一些实现中,指令还被配置为:使处理电路在执行区块链的防 篡改重写之后,使用第二密钥确定利用批准数据重写冲突数据,批准 数据与第一完整性输出和第二完整性输出编码一致。
在一些实现中,批准数据包括经更改的数据;并且指令被配置为: 使处理电路通过确定执行区块链的防篡改重写的多受信任方批准来 确定利用批准数据重写冲突数据。
在一些实现中,指令还被配置为使处理电路通过在密钥交换中组 合第一密钥的多个部分来生成第一密钥。
在一些实现中,指令被配置为:使处理电路通过在多个部分的计 数超过针对有效防篡改重写的第一阈值时组合多个部分,组合多个部 分。
在一些实现中,指令被配置为:使处理电路通过在多个部分的计 数超过针对有效防篡改重写的第一阈值但不超过针对有效非防篡改 重写的第二阈值时组合多个部分,组合多个部分,有效非防篡改重写 与第二完整性输出编码一致。
在另一个示例中,一种方法包括在硬件安全性系统中:利用处理 电路来确定利用经更改的数据来重写区块链的所选块中的原始数据, 不同于先前存储在所选块中的原始数据;标识区块链的特定块,特定 块包括第一完整性输出和第二完整性输出;利用处理电路并且使用第 一密钥来确定包括经更改的数据的冲突数据,冲突数据与第一完整性 输出编码一致;并且与第二完整性输出编码不一致,第一完整性输出 和第二完整性输出响应于原始数据而被生成并且与原始数据编码一 致;以及利用处理电路来通过利用冲突数据替换原始数据来执行区块 链的防篡改重写。
在一些实现中,执行与第一完整性输出编码一致的防篡改重写包 括:执行区块链的有效重写。
在一些实现中,执行与第二完整性输出编码不一致的防篡改重写 包括:生成将区块链标记为已重写的重写伪像。
在一些实现中,该方法还包括:在执行区块链的防篡改重写之后, 确定使用第二密钥利用批准数据来重写冲突数据,批准数据与第一完 整性输出和第二完整性输出编码一致。
在一些实现中,批准数据包括经更改的数据;并且确定利用批准 数据来重写冲突数据包括:确定执行区块链的防篡改重写的多受信任 方批准。
在一些实现中,该方法还包括:通过在密钥交换中组合第一密钥 的多个部分来生成第一密钥。
在一些实现中,组合多个部分包括:在多个部分的计数超过针对 有效防篡改重写的第一阈值时,组合多个部分。
在一些实现中,组合多个部分包括当:在多个部分的计数超过针 对有效防篡改重写的第一阈值但不超过针对有效非防篡改重写的第 二阈值时,组合多个部分。
在另一示例中,一种系统包括:存储器;区块链,被存储在存储 器内,区块链包括:第一块,包括原始数据;和第二块,包括:使用 原始数据作为输入来计算的第一完整性输出;以及使用原始数据作为 输入来计算的第二完整性输出;以及重写电路,被配置为:通过利用 不同于原始数据的经更改的数据来重写第一块以在区块链中生成重 写伪像,经更改的数据与第一完整性输出编码一致但与第二完整性输 出编码不一致。
在一些实现中,重写电路被配置为:通过执行对区块链的有效重 写以通过利用经更改的数据来重写第一块,以在区块链中生成重写伪 像。
在一些实现中,重写电路还被配置为:通过使用批准密钥以利用 批准数据来重写第一块以消除重写伪像,批准数据与第一完整性输出 和第二完整性输出编码一致。
在一些实现中,批准数据包括经更改的数据;并且重写电路被配 置为通过执行对区块链的多受信任方重写批准以利用批准数据来重 写第一块。
在一些实现中,重写电路被配置为:使用密钥以利用经更改的数 据来重写第一块;以及在利用经更改的数据来重写第一块之前,通过 在密钥交换中组合密钥的多个部分来生成密钥。
在一些实现中,重写电路被配置为:通过在多个部分的计数超过 针对有效防篡改重写的第一阈值时组合多个部分,组合多个部分。
在一些实现中,重写电路被配置为:通过在多个部分的计数超过 针对有效防篡改重写的第一阈值、但不超过针对有效非防篡改重写的 第二阈值时组合多个部分,组合多个部分,有效非防篡改重写与第二 完整性输出编码一致。
在另一示例中,一种方法包括在硬件安全性系统中:经由通信接 口电路访问被配置为存储由变色龙散列保护的区块链的区块链数据 库,区块链包括:所选块,包括有效载荷字段和随机性字段;特定块, 在区块链上的所选块之后,特定块包括可操作以存储第一变色龙散列 输出的第一先前散列字段;以及中间块,在区块链上的所选块和特定 块之间,第一变色龙散列输出使用中间块的内容作为输入来生成。该 方法还包括在硬件安全性系统中:接收受信任方指令以从区块链中删 除中间块;为了促进指令的执行,接收访问针对变色龙散列的密钥的 授权,授权由针对区块链的受信任方发起;使用有效载荷字段、第一先前散列字段和密钥作为输入来确定写入随机性字段的随机性数据, 选择随机性数据以使变色龙散列被配置为产生第一变色龙散列输出 是在从区块链中删除中间块并且将变色龙散列应用于所选块时。该方 法还包括:在重写电路处生成删除指令;以及经由通信接口电路并向 区块链数据库发送删除指令。删除指令包括:将随机性数据写入随机 性字段的第一命令;以及用来从区块链中删除中间块的第二命令。
在一些实现中,中间块包括区块链上的所选块和特定块之间的多 个块中的一个块。
在一些实现中,变色龙散列包括被嵌套在重写保护密码散列中的 可重写密码散列。
在一些实现中,特定块进一步包括第三先前散列字段,第三先前 散列字段包括使用重写保护密码散列来生成的写保护散列输出,该重 写保护加密散列将区块链与变色龙散列并行地保护。
在一些实现中,当从区块链中删除中间块以及将重写保护密码散 列应用于所选块时,重写保护密码散列不产生写保护散列输出。
在一些实现中,受信任方包括多个单独不受信任方;并且该方法 还包括:使用基于公钥加密的交换协议来组合由单独不受信任方控制 的多个密钥部分。
在一些实现中,确定随机性数据包括:当多个密钥部分的计数超 过针对重写权限的阈值时,成功地生成随机性数据。
在一些实现中,多个密钥部分中的每一个密钥部分对计数贡献相 等。
在一些实现中,多个密钥部分中的第一密钥部分比多个密钥部分 中的第二密钥部分贡献更多。
在一些实现中,随机性字段被嵌套在特定块内的第一先前散列字 段内,以掩盖随机性字段的存在。
在一些实现中,发送删除指令包括遵守数据隐私规则。
在另一示例中,一种计算机程序或产品包括:除瞬态信号之外的 机器可读介质;以及被存储在机器可读介质上的指令。这些指令被配 置为当被执行时使系统访问被配置为存储由变色龙散列保护的区块 链的区块链数据库,区块链包括:所选块,包括有效载荷字段和随机 性字段;特定块,在区块链上的所选块之后,特定块包括可操作以存 储第一变色龙散列输出的第一先前散列字段;以及中间块,在区块链 上的所选块与特定块之间,第一变色龙散列输出使用中间块的内容作 为输入来生成。这些指令还被配置为当被执行时使系统:接收受信任 方指令,以从区块链中删除中间块;为了促进指令的执行,接收授权以访问针对变色龙散列的密钥,授权由针对区块链的受信任方发起; 使用有效载荷字段、第一先前散列字段和密钥作为输入来确定写入随 机性字段的随机性数据,选择随机性数据,使得变色龙散列被配置为 当从区块链中删除中间块以及将变色龙散列应用于所选块时产生第 一变色龙散列输出。这些指令还被配置为当被执行时使系统:生成删 除指令,并将删除指令发送给区块链数据库。删除指令包括将随机性 数据写入随机性字段的第一命令以及从区块链中删除中间块的第二 命令。
在另一示例中,一种系统包括:存储器,被配置为存储针对保护 区块链的变色龙散列的密钥;通信接口电路,被配置为访问存储器中 的区块链,区块链包括所选块、第二块和第三块,所选块包括可操作 以存储原始数据的有效载荷字段、可操作以存储第一变色龙散列输出 的第一先前散列字段以及随机性字段,第二块在区块链上的所选块之 后,第二块包括可操作以存储第二第二变色龙散列输出的第二先前散 列字段,第三块在区块链上的所选块之前,第一变色龙散列输出使用 第三块的内容作为输入来生成,接收受信任方指令以对有效载荷字段 执行非防篡改重写,受信任方指令指定经更改的数据以替换先前被存 储在有效载荷字段中的原始数据;为了促进指令的执行,接收访问存 储器内的密钥的授权,授权由区块链的受信任方发起;并且发送针对 区块链的重写指令;以及重写电路,与通信接口电路和存储器进行数 据通信,重写电路被配置为:使用有效载荷字段、第一先前散列字段 和密钥作为输入来确定写入随机性字段的随机性数据,选择随机性数 据,使得变色龙散列被配置成当有效载荷字段包含经更改的数据、随 机性字段包括随机性数据以及变色龙散列被应用于所选块时产生第 二变色龙散列输出;生成重写指令,重写指令包括:
第一命令,将随机性数据写入随机性字段;以及第二命令,利用 经更改的数据替换原始数据;以及使通信接口电路发送重写指令。
在一些实现中,变色龙散列包括被嵌套在重写保护密码散列内的 可重写密码散列。
在一些实现中,第二块还包括第三先前散列字段,第三先前散列 字段包括使用重写保护密码散列来生成的写保护散列输出,该重写保 护密码散列将区块链与变色龙散列并行地保护。
在一些实现中,当有效载荷字段包含经更改的数据、随机性字段 包含随机性数据以及重写保护密码散列被应用于所选块时,重写保护 密码散列不产生写保护散列输出:
在一些实现中,受信任方包括多个单独不受信任方;并且重写电 路被配置为:使用基于公钥加密的交换协议来组合由单独不受信任方 控制的多个密钥部分。
在一些实现中,重写电路被配置为:当多个密钥部分的计数超过 针对重写权限的阈值时,成功生成随机性数据。
在一些实现中,多个密钥部分中的每一个密钥部分对计数贡献相 等。
在一些实现中,多个密钥部分中的第一密钥部分对计数的贡献大 于多个密钥部分中的第二密钥部分。
在一些实现中,随机性字段被嵌套在所选块内的第一先前散列字 段中,以掩盖随机性字段的存在。
在一些实现中,相对于原始数据的经更改的数据包括:向有效载 荷字段添加数据、来自有效载荷字段的数据的修订或者二者。
在一些实现中,相对于原始数据的经更改的数据包括来自有效载 荷字段的数据的修订;并且重写电路被配置为利用经更改的数据替换 原始数据以遵守数据隐私规则。
在一些实现中,该系统还包括被配置为在被激活时部署防盗对策 的触发器;并且存储器包括被耦合至触发器的受保护存储器。
在另一示例中,一种方法包括在硬件安全性系统中:经由通信接 口电路访问被配置为存储由变色龙散列保护的区块链的区块链数据 库,区块链包括所选块、第二块和第三块,所选块包括可操作以存储 原始数据的有效载荷字段、可操作以存储第一变色龙散列输出的第一 先前散列字段以及随机性字段,第二块在区块链上的所选块之后,第 二块包括可操作以存储第二变色龙散列输出的第二先前散列字段,第 三块在区块链上的所选块之前,第一变色龙散列输出使用第三块的内 容作为输入来生成;经由通信接口电路接收受信任方指令,以执行对 有效载荷字段的非防篡改重写,该指令指定经更改的数据以替换先前被存储在有效载荷字段中的原始数据;为了促进指令的执行,接收访 问变色龙散列的密钥的授权,该授权由针对区块链的受信任方发起; 以及在硬件安全性系统的重写电路中,使用有效载荷字段、第一先前 散列字段和密钥作为输入来确定随机性数据以写入随机性字段,选择 随机性数据,使得变色龙散列被配置为当有效载荷字段包含经更改的 数据、随机性字段包含随机性数据、以及变色龙散列被应用于所选块 时产生第二变色龙散列输出;生成重写指令,重写指令包括:将随机 性数据写入随机性字段的第一命令;以及利用经更改的数据来替换原 始数据的第二命令;以及经由通信接口电路向区块链数据库发送重写 指令。
在一些实现中,变色龙散列包括被嵌套在重写保护密码散列内的 可重写密码散列。
在一些实现中,第二块还包括第三先前散列字段,第三先前散列 字段包括使用重写保护密码散列来生成的写保护散列输出,该重写保 护密码散列将区块链与变色龙散列并行地保护。
已经具体地描述了各种实现。然而,许多其他实现也是可能的。 本文中所使用的标题和/或副标题仅旨在帮助读者理解所描述的实现。 本发明由权利要求限定。
- 多链路密码逻辑区块链
- 多链路密码逻辑区块链