CN115943606A - 可编辑区块链 - Google Patents

可编辑区块链 Download PDF

Info

Publication number
CN115943606A
CN115943606A CN202180050287.7A CN202180050287A CN115943606A CN 115943606 A CN115943606 A CN 115943606A CN 202180050287 A CN202180050287 A CN 202180050287A CN 115943606 A CN115943606 A CN 115943606A
Authority
CN
China
Prior art keywords
value
hash
transaction
editing
blockchain
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
CN202180050287.7A
Other languages
English (en)
Inventor
Y·马内维奇
A·巴吉尔
H·迈尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115943606A publication Critical patent/CN115943606A/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

在一些实施例中,处理器可以将值和所述值的散列存储在与区块链网络相关联的分类账中。处理器可以从值的散列构建块散列。处理器可通过识别值的散列与来自先前交易的值的散列相匹配来验证交易。处理器可以维持块散列的完整性。在一些实施例中,处理器可以提供用于区块链网络的编辑交易。处理器可以初始化编辑交易。编辑交易可与经验证的交易相关联。处理器可识别在编辑交易中指示并与经验证的交易相关联的散列值。处理器可编辑与散列值相关联的值。

Description

可编辑区块链
背景技术
本公开总体上涉及信息隐私领域,并且更具体地涉及编辑来自区块链网络的信息。
当前,在通用数据保护规则(GDPR)下,任何个体可以联系实体,要求在特定时间范围内从实体的所有系统中删除他们的个人信息。然而,许多实体现在在它们的系统内利用某种形式的区块链网络,并且本质上,区块链网络利用永久记录信息的不可变分类账。因此,当个人希望从实体的系统编辑/删除他们的个人信息时,就会出现问题。
此外,当前没有足够的方法在不破坏其中存储信息的块的情况下,来编辑来自区块链网络的信息。传统上,区块链网络中的每个块包括先前块的散列,从而将这些块链接在一起以创建链。因此,当块的内容/信息改变时,块的散列也会改变,并且因此无法在链内证明块的有效性。由此,直接从与区块链网络相关联的分类账删除数据是不可能的,因为它将影响将块链接在一起的能力。因此,迫切需要一种装置,其用于编辑来自区块链网络的信息而不破坏继续将块链接在一起和维持具有编辑的内容/信息的块的有效性的能力。
发明内容
本公开的实施例包括用于编辑来自区块链网络的信息的方法、系统和计算机程序产品。处理器可以将值和该值的散列存储在与区块链网络相关联的分类账中。处理器可以从值的散列构建块散列。处理器可通过识别值的散列匹配来自先前事务的值的散列来验证交易。处理器可以维持块散列的完整性。
在一些实施例中,处理器可以编辑该值。所述值的所述编辑可包括将与所述值相关联的位设定为零。
在一些实施例中,编辑所述值进一步包括维持所述值的所述散列和所述块散列。
在一些实施例中,编辑所述值可以进一步包括处理器用所述值的散列替换用户日期。处理器可维持该值的解耦的前图像。
在一些实施例中,值的散列指向解耦的前图像。
在一些实施例中,处理器可以在没有该值的情况下,维持经验证的交易。
在一些实施例中,处理器可以接收所述值。所述处理器可识别所述值与用户数据相关联。处理器可以生成值的散列。
本公开的进一步的实施例包括用于编辑来自区块链网络的信息的方法和系统。处理器可以为区块链网络提供编辑交易。处理器可以初始化编辑交易。编辑交易可与经验证的交易相关联。处理器可识别在编辑交易中指示并与经验证的交易相关联的散列值。处理器可以编辑与散列值相关联的值。
在一些实施例中,处理器可以生成交易信封。交易信封可以包括含有指向前图像的指针的散列值。
在一些实施例中,所述交易信封可以进一步包括所述前图像,并且所述前图像可以包括所述值。
在一些实施例中,反演所述值可包括将与所述值相关联的位设置为零。将与值相关联的位设置为零可允许散列值保持不变。
在一些实施例中,处理器可基于识别在编辑交易之后散列值是相同的来维持经验证的交易。
以上概述并不旨在描述本公开的每个所示实施例或每个实现方式。
附图说明
包括在本公开中的附图被结合到说明书中并且形成说明书的一部分。它们示出了本公开的实施方式,并且与描述一起用于解释本公开的原理。附图仅说明某些实施例,而并不限制本公开。
图1A示出了根据本公开的实施方式的示例性区块链架构。
图1B示出了根据本公开的实施方式的区块链交易流程。
图2示出了根据本公开的实施方式的正在转变为可编辑的区块链的传统区块链。
图3A示出了根据本公开的实施例的传统交易发起。
图3B示出了根据本公开的实施方式的更新的交易发起。
图4示出了根据本公开的实施方式的用于允许编辑信息的交易结构。
图5示出了根据本发明实施例的后代对等体对交易的验证。
图6A示出了根据本公开实施例的用于在区块链网络中维持块散列完整性的示例方法的流程图。
图6B示出根据本公开的实施方式的用于编辑来自区块链网络的信息的示例性方法的流程图。
图7A示出了根据本公开的实施方式的云计算环境。
图7B示出了根据本公开实施方式的抽象模型层。
图8示出了根据本公开的实施方式的可以用于实现本文所描述的方法、工具和模块和任何相关功能中的一个或多个的示例性计算机系统的高级框图。
虽然在此描述的实施例可进行不同修改和替代形式,但是其细节已经通过举例在附图中示出并将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明旨在覆盖落入本公开的精神和范围内的所有修改、等同物和替代物。
具体实施方式
本公开的各方面一般涉及信息隐私领域,尤其涉及编辑来自区块链网络的信息(例如,用户信息、个人数据等)。许多个人喜欢控制那里的信息(例如,个人信息、私人信息或其他信息),并且随着GDPR的出现,个人现在具有被遗忘的权利。有了这样的权利,个人可以联系实体(例如,企业、公司等),要求在特定时间帧内从实体的系统删除他们的信息。然而,许多实体现在在它们的系统内利用某种形式的区块链网络,并且本质上,区块链网络利用永久记录信息的不可变分类账。因此,当个人希望从实体的系统编辑/删除他们的个人信息时,就会出现问题。
当前,不存在用于从区块链网络编辑信息的选项。最接近的替代方案是私有数据收集、加密、以及在具有链上散列的链外存储。然而,每个替代方案实际上不编辑区块链网络的信息,并且每个替代方案具有其自身的缺点。例如,私有数据收集:依赖于基于时间的块到实况策略(例如,在块上设置过期时间);由于对等体/节点在提交时需要拉取私有日期而具有导致性能下降;并且需要事先设计,永不将用户数据放在链上,因为一旦数据在公共链上,就不可能摆脱。此外,加密替代方案需要密钥管理开销,并且在新兴量子计算时代前向保密性尚不明确。最后,在多个管理域的情况下,在链上散列的离链存储会导致数据分布、一致性和可用性的挑战。即,总的来说,每个替代方案的关键问题是它们需要最初没有提供的附加组件,并且因此每次必须在新的区块链上实现,而本文公开的是具有执行次序验证架构的(许可的)区块链的固有内置解决方案。因此,确实需要一种允许信息(因为其涉及特定用户/个人)从区块链中移除的方法,所述方法在本公开中进行了讨论。
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以多种不同的配置来布置和设计。因此,如附图中表示的方法、装置、非易失性计算机可读介质和系统中的至少一个的实施方式的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施方式的代表。
在一个或多个实施例中,如贯穿本说明书所描述的即时特征、结构、或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合所述实施例所描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或去除。此外,在图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,在附图中描绘的任何装置可以是不同的装置。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送所述信息。
此外,尽管在实施方式的描述中可以使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
本文详述了利用允许编辑对来自区块链网络的信息的适配交易信封的方法、系统和计算机程序产品。
在一些实施例中,所述方法、系统和/或计算机程序产品利用作为分布式存储系统的分散式数据库(诸如区块链),所述分布式存储系统包括彼此通信的多个节点。分散式数据库可包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间没有达成一致的情况下,没有单个对等体可以修改数据库记录。例如,对等体可执行共识协议以验证区块链存储交易,将存储交易分组成块,并在块上构建散列链。为了保持一致性,所述过程根据需要通过对存储交易进行排序来形成分类账。
在不同实施例中,可以使用被许可和/或无许可的区块链。在公共或无需许可的区块链中,任何人可在没有特定身份(例如,保持匿名)的情况下参与。公共区块链可以涉及本地密码并且使用基于不同协议(诸如工作证明)的共识。另一方面,经许可的区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、(私人)信息等的企业。
进一步,在一些实施例中,方法、系统和/或计算机程序产品可以利用操作任意的、可编程逻辑的区块链,所述可编程逻辑针对分散式存储方案定制并且被称为“智能合同”或“链码”。在一些实施例中,所述方法、系统和/或计算机程序产品可以进一步利用智能合同,所述智能合同是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,所述协议被称为背书或背书策略。与所述应用相关联的区块链交易可以在被提交至区块链之前得到背书,而未背书的交易被忽略。
背书策略允许链码以背书必需的对等节点集合的形式为交易指定背书者。当客户端将交易发送给背书策略中指定的对等体时,将执行所述交易以验证交易。在一些实施例中,交易首先被模拟,例如背书以从对等体得到同意以满足背书策略。然后,交易进入排序阶段,其中使用共识协议来生成分组到块的已背书交易的有序序列。进一步,在一些实施例中,在交易进入块/多个块并到达对等体之后,交易被验证。
在一些实施例中,所述方法、系统和/或计算机程序产品可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等体)提交交易调用并且向排序服务(例如,排序节点)广播交易建议的客户端或提交-客户端节点。
另一类型的节点是对等节点,其能够接收客户端提交的交易,提交交易,并且维持区块链交易的分类账的状态和副本。对等体也可以具有背书者的作用,尽管它不是必需的。排序-服务-节点或排序器是针对所有节点运行通信服务的节点,并且其实现交付保证,诸如在提交/确认交易和修改区块链的世界状态时向系统中的每个对等节点广播,所述区块链是初始区块链交易的另一名称,其通常包括控制和设置信息。
在一些实施例中,所述方法、系统和/或计算机程序产品可以利用分类账,所述分类账是区块链的所有状态转换的有序的、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(例如,交易)引起。每个参与方(诸如对等节点)可维护分类账的副本。交易可以导致一组资产键-值对作为一个或多个操作数被提交到分类账,诸如创建、更新、删除等。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
在一些实施例中,在此描述的方法、系统和/或计算机程序产品可以利用链,所述链是被结构化为散列链接的块的交易日志,并且每个块包含N个交易的序列,其中N等于或大于1。块报头包括块的交易的散列以及先前块的报头的散列。以这种方式,分类账上的所有交易可被排序并以加密方式链接在一起。因而,不可能在不破坏散列链接的情况下篡改分类账数据。最近添加的区块链块的散列表示在链之前已经发生的每个交易,从而使得可以确保所有对等节点都处于一致且可信的状态。所述链可以存储在对等节点文件系统(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链交易日志中的所有键的最新值。因为当前状态表示信道已知的最新键值,所以有时将其称为世界状态。链码调用执行针对分类账的当前状态数据的交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以简单地是链的交易日志中的索引视图,因此可以在任何时间从链中重新生成。在对等节点启动时并且在接受交易之前,可以自动恢复(或者如果需要的话生成)状态数据库。
本文描述和描绘的即时解决方案的一些益处包括用于编辑来自区块链网络的(个人)信息的方法、系统和计算机程序产品。示例性实施例提供用于保护关于区块链的信息同时保持链的弹性(例如,信息的编辑不会导致后续交易的无效)的解决方案。
值得注意的是,区块链不同于传统数据库,因为区块链不是中央存储,而是分散的、不可变的和安全的存储,其中节点可以共享存储中的记录的改变。区块链中固有的并且有助于实现区块链的一些属性包括但不限于本文进一步描述的不可变分类账、智能合同、安全、隐私、去中心化、共识、背书、可访问性等。根据不同方面,本文描述的系统是由于问责制、安全性、隐私性、许可的去中心化、智能合同的可用性、背书和对于区块链是固有的和唯一的可访问性而实现的。
特别地,区块链分类账数据传统上是不可变的,这提供了用于识别区块链网络中的差异的有效方法;本公开提供了用于减轻差异的方法、系统和计算机程序产品,所述差异将导致交易的后续失效(例如,数据记录)。此外,区块链中使用加密可提供安全性并建立信任。智能合同管理资产的状态以完成生命周期。示例区块链是权限分散的。因此,每个终端用户可以访问自己的分类账副本。多个组织(和同级)可以加入区块链网络。密钥组织可以充当背书对等体,以验证智能合同执行结果、读取-设置和写入-设置。
示例实施例的益处之一是,其通过实现用于编辑来自区块链网络的(个人/私人/等)信息(例如,通过编辑来自交易信封中的原像的信息)的方法来改进计算系统的功能。通过本文所述的区块链系统,计算系统(或计算系统中的处理器)可通过提供对诸如分布式分类账、对等体、加密技术、MSP、事件处理等功能的访问来执行用于利用区块链网络进行编辑处理的功能。此外,区块链使得能够创建商业网络并且使任何用户或组织参与进来。因此,所述区块链不仅仅是一个数据库。所述区块链具有创建用户网络和链上/链外组织的能力,以便以智能合同的形式协作和执行服务过程(其可与编辑过程和/或待编辑的特定信息相关联)。
示例实施例提供优于传统数据库的许多益处。例如,通过区块链,实施例提供对区块链固有的和唯一的责任性、安全性、隐私性、许可的去中心化、智能合同的可用性、背书以及可访问性。
同时,传统数据库不能用于实现示例实施例,因为它没有将所有各方都带到网络上,它没有创建可信的协作并且没有提供数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供对所存储的数字资产的保存。由此,本文所描述的利用区块链网络的提议的实施例不能在传统数据库中实现。
同时,如果使用传统数据库来实现示例实施例,则示例实施例将遭受不必要的缺点,诸如搜索能力、缺乏安全性和慢速交易(例如,通过试图识别编辑信息差异)。因而,示例实施例提供了对区块链中的信息编辑领域/领域中的问题的特定解决方案。
现在转向图1A,图示了根据本公开的实施例的区块链架构100。在一些实施例中,区块链架构100可以包括某些区块链元件,例如,一组区块链节点102。区块链节点102可以包括一个或多个区块链节点,例如对等体104-110(这四个节点仅通过示例描绘)。这些节点参与多个活动,诸如区块链交易添加和验证过程(共识)。对等体104-110中的一个或多个可以基于背书策略来背书和/或推荐交易,并且可以为区块链架构100中的所有区块链节点102提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层116中的区块链不可变分类账,其副本也可存储在基础物理基础设施114上。区块链配置可包括一个或多个应用124,这些应用链接到应用编程接口(API)122以访问和执行所存储的程序/应用代码120(例如,链码、智能合同等),这些程序/应用代码可根据参与者寻求的定制配置来创建并且可维持其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为交易并且经由附加到分布式分类账而被安装在所有区块链节点104-110上。
区块链基础或平台112可以包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支持物理计算机基础设施,所述基础设施可以用于接收和存储新交易并提供对试图访问数据条目的审核者的访问。区块链层116可以暴露接口,所述接口提供对处理程序代码和参与物理基础设施114所必需的虚拟执行环境的访问。加密信任服务118可用于验证交易(诸如资产交换交易)并保持信息私有。
图1A的区块链架构100可以通过区块链平台112暴露的一个或多个接口以及提供的服务来处理和执行程序/应用代码120。应用代码120可以控制区块链资产。例如,应用代码120可以存储和传输数据,并且可以由同级104-110以智能合同和相关联的链码的形式来执行,其中条件或其他代码元素受其执行的影响。作为非限制性示例,可以创建智能合同以执行资源的转移、资源的生成等。智能合同本身可用于识别与授权、访问要求(例如,数据存储库、离链数据存储库、预图像数据库等的)和/或分类账的使用相关联的规则。例如,前图像信息126可由包括在区块链层116中的一个或多个处理实体(例如,虚拟机)处理。结果128可以包括多个链接的共享文档(例如,每个链接的共享文档记录关于前图像信息126的智能合同的发布,被识别为允许或拒绝验证等)。在一些实施例中,物理基础设施114可以用于检索在此所描述的任何数据或信息。
智能合同可以通过高级应用程序和编程语言创建,并且然后写入到区块链中的块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合同代码的执行,所述智能合同代码的执行可以响应于与智能合同相关联的条件被满足而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个共识协议自动复制到遍及整个区块链对等体的分布式网络中。
智能合同可以以键-值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并将它们用于应用程序操作。智能合同代码可以将各种逻辑操作的输出写入到区块链中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后在识别了区块链需要的数据后就删除。
链码可以包括具有附加特征的智能合同的代码解释。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共识过程期间由链验证器一起执行和验证。链码接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据(例如,因此确认贡献、标识与贡献的差异等)。
图1B示出根据示例性实施方式的在区块链的节点之间的区块链交易流150的实例。参照图1B,交易流程可包括由应用客户端节点160发送至背书对等节点181的交易建议191(例如,在一些实施例中,交易建议191可以是包括与链下数据存储/数据库相关联的标识符的请求)。背书的对等体181可以验证客户端签名并且执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。如果获得批准,则建议响应192连同背书签名一起被发送回客户端160。客户端160将背书组装成交易有效载荷193并将其广播至排序服务节点184。排序服务节点184然后将排序交易作为块递送到信道上的所有对等体181-183。在提交到区块链之前,每个对等体181-183可以验证交易。例如,对等体可检查背书策略以确保指定对等体的正确分配已针对交易有效载荷193对结果进行签名并认证签名(例如,所有或阈值数量的对等体验证请求包括允许发现数据存储连接对象和/或访问链下数据库的标识符和/或对称密钥)。
再次参考图1B,客户端节点160通过构建请求并将请求发送至作为背书者的对等节点181来发起交易191。客户端160可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成交易建议191。提议是调用链码函数以使得数据可以被读取和/或写入到分类账(例如,为资产写入新的键值对)的请求。SDK可以将交易提议191的包缩减成适当的架构的格式(例如,远程过程调用(RPC)上的协议缓冲器),并采用客户端的加密证书来产生交易提议191的唯一签名。
作为响应,背书方对等节点181可验证(a)交易提议191格式正确,(b)交易在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在所述实例中,客户端160)被适当地授权以在所述信道上执行所提议的操作。背书的对等节点181可以将交易提议191输入作为对所调用的链码函数的参数。然后,对照当前状态数据库执行链码以产生包括响应值、读集合和写集合的交易结果。然而,此时没有对分类账进行任何更新。在一些实施例中,所述值集合连同背书的对等节点181的签名作为提议响应192被传递回客户端160的SDK,SDK解析应用程序消费的有效载荷。
作为响应,客户端160的应用检查/验证背书的对等体签名,并且比较建议响应以确定建议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常不会将交易提交给排序节点服务184。如果客户端应用程序打算将交易提交给排序节点服务184以更新分类账,则应用程序确定会在提交之前确定指定的背书策略是否已被满足(例如,请求是否已被接受)。这里,客户端可仅包括交易的多方中的一个。在这种情况下,每个客户端可具有其自身的背书节点,并且每个背书节点都需要背书交易。所述架构使得即使应用选择不检查响应或以其他方式转发未背书的交易,背书策略仍将由对等体执行并在提交验证阶段得到保持。
在成功检查之后,在交易有效载荷步骤193中,客户端160将背书组装成交易并且将交易建议191和交易消息内的响应广播至排序节点184。交易可包含读/写集合、背书对等体签名和信道ID。排序节点184不需要检查交易的全部内容以便执行其操作,相反,排序节点184可以简单地从网络中的所有信道接收交易,按信道对它们按时间顺序进行排序,并且创建每个信道的交易块。
交易的块被从排序节点184递送到信道上的所有对等节点181-183。块内的交易194被验证以确保任何背书策略被满足并确保自从交易执行生成读集合以来,对于读集合变量的分类账状态没有改变。块中的交易被标记为有效或无效。此外,在步骤195中,每个对等节点181-183将块附加到通道的链,并且对于每个有效交易,写入集被提交到当前状态数据库。发出一个事件以通知客户端应用交易(调用)已被不可变性地附加到链,以及通知交易是被验证还是无效(例如,请求是否被允许或拒绝,对链外数据存储的访问)。
现在参照图2,示出了根据本公开的实施例的传统区块链202A被转变为可编辑区块链202B。应注意,在附图中相同的参考标号用于指代相同的部件。如图所示,传统区块链202A包括块散列204,所述块散列204是块头部的散列并且充当传统区块链202A中的块(未描绘)的参考编号。块散列204传统上与第一值206和/或第二值208相关联(例如,引用、指向等)。在一些实施例中,第一值206和/或第二值208可以是与涉及信息的交易相关联的值。在这种情况下,信息不可变地存储在传统的区块链202A上。
为了允许第一值206和/或第二值208的编辑,本公开提供通过对第一值206和/或第二值208进行散列来将传统区块链202A转变成可编辑区块链202B。第一值206和/或第二值208的散列生成相应的第一散列210和/或第二散列212,其现在与块204相关联。在这种情况下,并且将在下文中更全面地讨论,现在可以对第一值206和/或第二值208进行编辑而不使块散列204或块散列204所引用的块无效,因为第一散列210和/或第二散列212有效地是传统区块链204中的第一值206和第二值208并且将不改变。应注意,传统的区块链202A和可编辑的区块链202B是相同的区块链,但具有结构改变。
现在参见图3A,所示出的是根据本公开的实施例的传统交易发起300A。如图所示,传统交易300A包括包含有效载荷304的信封302和在有效载荷304上的签名314。有效载荷304包括报头306,报头306包括目的地信息(例如,标识交易的资产应当被发送到哪里等)。有效载荷304进一步包括交易308,交易308包括动作310。交易动作310包括被描绘为交易动作312的指令,但是应所述注意的是,在交易308中可以包括多于一个指令(例如,从数据库x拉取信息并且将信息存储在数据库y中等等)。如图2所示,交易动作312可存储与用户相关联的信息/数据和/或包括块散列204。
在一些实施例中,签名314证明对交易308的动作310的执行结果的同意(例如,证明从数据库X拉取信息等),并且其允许对区块链的承诺。在一些实施例中,如果未接收到签名314,则交易308无效和/或被拒绝,这可以是当交易动作312中的信息不匹配时的情况。例如,如果交易通过有效载荷304中的用户名进行验证并将其提交到区块链,则区块链中的每个对等体现在在区块链分类账的它们的副本上都具有用户名。然后,如果从交易中移除用户名,并且有新对等体加入区块链,则在移除用户名之前,区块链中的对等体将标识交易不再满足条件,并且交易被拒绝。
现在参见图3B,所示出的是根据本公开的实施例的更新的交易发起300B。注意,经更新的交易发起300B包括被包括在传统交易发起300A中的相同组件,但是进一步包括与前图像318相关联的并且指向(例如,包括指针)从有效载荷304分离的前图像318的散列316。前图像318是需要被用于交易308的任何信息/值,但是因为散列316在交易动作312中,所以散列316的值被使用,并且前图像318从不被暴露给区块链(例如,用户数据从不被用在验证逻辑中)。进一步,前图像318可从信封302删除/编辑,并且将不会使交易失效,因为散列316替换了值,并且交易验证对与散列316相关联的值的内容无关。应注意,在此描述的内容在功能上是可实现的,因为在交易的验证期间,验证仅关注一个/多个密钥(例如,与散列316相关联的一个/多个密钥)的版本和背书策略的遵守,因此允许删除原图像318。
现在参考图4,其示出了根据本公开的实施例的允许编辑信息的交易结构400。在一些实施例中,交易结构400可以是由图3A和3B的动作310所使用的结构。在一些实施例中,交易结构400包括交易动作452,其可以是图3A和3B的交易动作312。如所描绘的,交易动作452包括链码动作有效载荷454,所述链码动作有效载荷454包括链码背书动作456。链码背书动作456包括背书458,背书458可以是指示与交易动作452关联的交易可以进行和/或提交至区块链的签名/验证/允许等。
进一步描绘的,链码背书动作456包括提议响应有效载荷460,所述提议响应有效载荷460包括可以与被提议添加到区块链的信息相关联的提议散列462。建议响应有效载荷460还可以包括链码动作464,所述链码动作464可以详述关于交易的信息应当如何/在哪里被存储在区块链上。在一些实施例中,链码动作464包括交易(Tx)模拟结果466,其包括交易读/写集合468。交易读写集合468包括下一步(Ns)读/写(Rw)集合468,其包括指向值484并与值484相关联的(a)值472的散列,值484可以是信息/数据/内容。
在一些实施例中,链码动作464还包括链码事件474,所述链码事件474包括(a)指向和关联于第一有效载荷482的第一有效载荷476的散列,第一有效载荷482可以包括敏感信息。在一些实施例中,链码动作464还包括响应478,所述响应478包括(a)指向和关联于第二有效载荷486的第二有效载荷480的散列,第二有效载荷486可以是用户可能希望可编辑的进一步的信息。在一些实施例中,值472的散列、第一有效载荷的散列476和第二有效载荷的散列480可以全部指向同一信息并且与其相关联(例如,值484、第一有效载荷482或第二有效载荷486)。
注意,值484、第一有效载荷482和第二有效载荷486被存储在前图像488中的交易结构400的解耦区域中,其中值484、第一有效载荷482和第二有效载荷486可被完整查看,但在与交易结构400相关联的交易期间未暴露给区块链。
现在参见图5,示出了根据本公开的实施例的后代对等体518对交易的验证500。如所描绘的,先祖对等体502包括块504,块504包括交易(Tx)506A-C(例如,经验证的交易),其中块504经由与先祖对等体502通信的区块链被存储在先祖对等体502上,将交易506A-C提交至区块链。在一些实施例中,交易506A-C中的每个分别包括有效载荷508A-C和签名510A-C,其中交易一506A包括前图像512,交易二506B包括前图像514,并且交易三506C包括前图像516。在一些实施例中,每个前图像512-516实际上可以是前图像512-516的散列,或者通过指向前图像512-516的散列而被拉入交易506A-C中,但是为了清楚起见,没有描绘散列。
在一些实施例中,后代对等体518可以加入到区块链,并且接收区块链分类账的副本,包括块504,或者在一些实施例中,后代对等体518可以是先祖对等体502,并且块504可以在第四(后续)交易之后被更新。在任一情况下,前图像514被零520替换(例如,与前图像514相关联的值经由前图像514的编辑交易变为零),因此对/在块504中进行编辑。用零520替换前图像514允许交易二506B保持有效。即,在计算散列链时依赖于散列而不依赖于前图像514允许对交易二506B和散列链(在编辑之后)的继续验证。
如本公开中所提供和图5中所描绘的,可从区块链编辑信息,而不使交易无效并保持块散列完整性(例如,允许块的继续链接/链接),这继续允许区块链不变地确认交易的存在。另外,值得注意的是,具有不匹配的散列/前图像的交易将其写入集中的所有键标记为废止,并且在链码执行期间废止的键的后续(例如,交易)读取导致交易的即时终止。通常,排序器验证散列并拒绝具有不匹配的散列/前图像的交易,这是防止具有不匹配的散列/前图像的交易(例如,值)和在编辑之后的相同交易之间的分叉所必需的。因此,本文公开的实施例提供用于在同一交易中通过破坏任何键或引起分叉来编辑的方式。
现在参见图6A,所示出的是根据本公开的实施例的用于维持块散列完整性的示例方法600的流程图。在一些实施例中,方法600可由处理器(例如,区块链中的对等体/节点、系统中的对等体/节点等)执行。在一些实施例中,方法600开始于操作602,其中处理器将值和所述值的散列存储在与区块链网络相关联的分类账中。
在一些实施例中,方法600前进到操作604,其中,处理器从值的散列构建块散列。在一些实施例中,方法600进行到操作606。在操作606,处理器通过识别值的散列匹配来自先前交易(或者,在一些实施例中,新对等方的登录)的值的散列来验证交易。在一些实施例中,方法600前进到操作608,在操作608,处理器维持块散列的完整性(例如,在编辑之后具有相同交易的不匹配散列的交易之间不存在分叉,因此交易不被无效,并且其允许块的继续链接/链接块)。在一些实施例中,方法600可结束。
在下面讨论的一些实施例中,为了简洁起见,未描绘方法600的一个或多个操作。因而,在一些实施例中,方法600可进一步包含处理器编辑所述值。在这样的实施例中,交易的编辑可包括将与值相关联的位设置为零。在一些实施例中,方法600可在所述值的编辑和/或与所述值相关联的信息(例如,用户数据、个人信息等)的编辑之后执行。
在一些实施例中,所述值的所述删除可进一步包含维持所述块散列和所述值的所述散列。在一些实施例中,编辑所述值可进一步包括所述处理器用所述值的所述散列来替换所述值。处理器可进一步维持所述值的解耦的前图像。在一些实施例中,所述值的散列可以指向解耦的前图像。
在一些实施例中,方法600可进一步包括处理器保持经验证的交易而没有值(例如,交易由于值被记录到分类账并且保持不可变和不变的散列而保持有效,即使值被编辑)。在一些实施例中,方法600可进一步包括处理器接收所述值。所述处理器可识别所述值与用户数据相关联。所述处理器然后可以生成所述值的所述散列(例如,所述处理器识别所述值与特定类型的数据/信息相关联,且接着产生所述值的散列且产生如贯穿本发明论述和描绘的所提议的区块链结构)。
现在参见图6B,所示出的是根据本公开的实施例的用于编辑来自区块链网络的信息的示例方法650的流程图。在一些实施例中,方法650可由处理器(例如,区块链中的对等点/节点、系统中的对等点/节点等)执行。在一些实施例中,方法650在操作652处开始,其中,处理器为区块链网络提供编辑交易。
在一些实施例中,方法650进行到操作654,其中处理器初始化编辑交易。编辑交易可与经验证的交易相关联。在一些实施例中,方法650进行到操作656。在操作656,处理器标识在编辑交易中指示并与经验证的交易相关联的散列值。在一些实施例中,方法650前进到操作658,其中,处理器编辑与散列值相关联的值。在一些实施例中,方法650可以在操作658之后结束。
在下面讨论的一些实施例中,为了简洁起见,未描绘方法650的一个或多个操作。因此,在一些实施例中,方法650可以进一步包括处理器生成交易信封。在一些实施例中,交易信封可以包括含有指向前图像的指针的散列值。在一些实施例中,所述交易信封可以进一步包括所述前图像,并且所述前图像可以包括所述值。
在一些实施例中,编辑所述值可包括将与所述值相关联的位设置为零。在这种情况下,将与值相关联的位设置为零可允许散列值保持相同(例如,不改变等)。在一些实施例中,方法650还可以包括处理器基于识别出散列值在编辑交易之后相同而维持经验证的交易。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用程序、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。所述云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,所述标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在部分独立性的感觉,因为消费者通常不具有对所提供的资源的确切部分的控制或知识,但可能能够在较高抽象级别(例如,国家、州或数据中心)指定部分。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础设施对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
图7A示出了云计算环境710。如图所示,云计算环境710包括一个或多个云计算节点700,云消费者使用的本地计算设备(例如,个人数字助理(PDA)或蜂窝电话700A、台式计算机700B、膝上型计算机700C和/或汽车计算机系统700N)可以与云计算节点700通信。节点700可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。
这允许云计算环境710提供基础架构、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图7A中示出的计算设备700A-N的类型旨在仅是说明性的,并且计算节点700和云计算环境710可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
图7B示出了由云计算环境710(图7A)提供的一组功能抽象层。应提前理解,图7B中所示的组件、层和功能仅旨在是说明性的,并且本公开的实施方式不限于此。如下所述,提供以下层和对应功能。
硬件和软件层715包括硬件和软件组件。硬件组件的示例包括:大型机702;基于RISC(精简指令集计算机)架构的服务器704;服务器706;刀片服务器708;存储设备711;以及网络和联网组件712。在一些实施例中,软件组件包括网络应用服务器软件714和数据库软件716。
虚拟化层720提供抽象层,从所述抽象层可以提供虚拟实体的以下示例:虚拟服务器722;虚拟存储器724;虚拟网络726,包括虚拟专用网络;虚拟应用和操作系统728;以及虚拟客户端730。
在一个示例中,管理层740可以提供以下描述的功能。资源供应742提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价744在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户746为消费者和系统管理员提供对云计算环境的访问。服务水平管理748提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行750提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层760提供可以利用云计算环境的功能的示例。可以从所述层提供的工作负荷和功能的示例包括:地图和导航762;软件开发和生命周期管理764;虚拟教室教育传递766;数据分析处理768;交易处理770;以及编辑交易处理772。
图8示出了根据本公开的实施方式的可以用于实现本文所描述的方法、工具和模块中的一个或多个和任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)的示例性计算机系统801的高级框图。在一些实施例中,计算机系统801的主要部件可以包括一个或多个CPU802、存储器子系统804、终端接口812、存储接口816、I/O(输入/输出)设备接口814和网络接口818,所有这些可以直接或间接地通信地耦合,以用于经由存储器总线803、I/O总线808和I/O总线接口单元810的部件间通信。
计算机系统801可包含一个或多个通用可编程中央处理单元(CPU)802A、802B、802C和802D,在本文中统称为CPU802。在一些实施例中,计算机系统801可以包含相对大的系统典型的多个处理器;然而,在其他实施例中,计算机系统801可以替代地是单CPU系统。每个CPU802可以执行存储在存储器子系统804中的指令,并且可以包括一个或多个级别的机载高速缓存。
系统存储器804可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)822或高速缓存存储器824。计算机系统801可以进一步包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统826可被设置用于从不可移动、非易失性磁介质(诸如,“硬盘驱动器”)读取和写入其中。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,或用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。另外,存储器804可包含闪存存储器,例如闪存记忆棒驱动器或闪存驱动器。存储器设备可通过一个或多个数据介质接口连接到存储器总线803。存储器804可以包括具有一组(例如,至少一个)程序模块的至少一个程序产品,这些程序模块被配置为执行不同实施例的功能。
各自具有至少一组程序模块830的一个或多个程序/实用程序828可以被存储在存储器804中。程序/实用程序828可以包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。每个操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序828和/或程序模块830通常执行不同实施例的功能或方法。
尽管存储器总线803在图8中示出为提供CPU802、存储器子系统804和I/O总线接口810之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线803可以包括多个不同的总线或通信路径,其可以以各种形式中的任一种布置,诸如分级、星形或网络配置中的点对点链路、多个分级总线、并行和冗余路径或任何其他适当类型的配置。此外,虽然I/O总线接口810和I/O总线808被示出为单个相应的单元,但是在一些实施例中,计算机系统801可以包含多个I/O总线接口单元810、多个I/O总线808、或两者。进一步,虽然示出了将I/O总线808与运行到不同I/O设备的不同通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统801可以是多用户大型计算机系统、单用户系统或服务器计算机或具有很少或没有直接用户界面但从其他计算机系统(客户端)接收请求的类似设备。进一步,在一些实施例中,计算机系统801可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
要注意的是,图8旨在描述示例性计算机系统801的代表性主要部件。然而,在一些实施例中,各个组件可以具有比图8中所表示的更大或更小的复杂度,可以存在不同于图8中所示出的那些组件或除图8中所示出的那些组件之外的组件,并且此类组件的数量、类型和配置可以变化。
如在此更详细地讨论的,预期在此描述的方法的一些实施例的一些或全部操作可以按替代顺序执行或可以根本不执行;此外,多个操作可同时发生或作为较大过程的内部部分发生。
本公开可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质(或介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在穷举或限于所披露的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
虽然已经根据具体实施例描述了本公开,但预期其变更和修改将对本领域技术人员变得清楚。因此,以下权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有这样的改变和修改。

Claims (25)

1.一种计算机实现方法,所述方法包括:
将值和所述值的散列存储在与区块链网络相关联的分类账中;
从所述值的散列构建块散列;
通过识别所述值的散列与来自先前交易的所述值的散列相匹配来验证交易;以及
维持所述块散列的完整性。
2.根据权利要求1所述的方法,进一步包括:
编辑所述值,其中编辑所述值包含将与所述值相关联的位设置为零。
3.根据权利要求2所述的方法,其中,编辑所述值进一步包括维持所述值的散列和所述块散列。
4.根据权利要求3所述的方法,其中,编辑所述值进一步包括:
用所述值的散列替换所述值;以及
维持所述值的解耦前图像。
5.根据权利要求4所述的方法,其中,所述值的散列指向所述解耦前图像。
6.根据权利要求1所述的方法,进一步包括:
维持经验证的交易而无需所述值。
7.根据权利要求1所述的方法,进一步包括:
接收所述值;
识别所述值与用户数据相关联;以及
生成所述值的散列。
8.一种系统,所述系统包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为执行包括以下的操作:
将值和所述值的散列存储在与区块链网络相关联的分类账中;
从所述值的所述散列构建块散列;
通过识别所述值的所述散列与来自先前交易的所述值的散列相匹配来验证交易;以及
维持所述块散列的完整性。
9.根据权利要求8所述的系统,其中,所述操作进一步包括:
编辑所述值,其中编辑所述值包含将与所述值相关联的位设置为零。
10.根据权利要求9所述的系统,其中,编辑所述值进一步包括维持所述值的散列和所述块散列。
11.根据权利要求10所述的系统,其中,编辑所述值进一步包括:
用所述值的散列替换所述值;以及
维持所述值的解耦前图像。
12.根据权利要求11所述的系统,其中,所述值的散列指向所述解耦的前图像。
13.一种计算机程序产品,所述计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,所述程序指令可由处理器执行以使所述处理器执行功能,所述功能包括:
将值和所述值的散列存储在与区块链网络相关联的分类账中;
从所述值的散列构建块散列;
通过识别所述值的散列与来自先前交易的所述值的散列相匹配来验证交易;以及
维持所述块散列的完整性。
14.根据权利要求13所述的计算机程序产品,其中,所述功能进一步包括:
编辑所述值,其中编辑所述值包含将与所述值相关联的位设置为零。
15.根据权利要求14所述的计算机程序产品,其中,编辑所述值进一步包括维持所述值的散列和所述块散列。
16.根据权利要求15所述的计算机程序产品,其中,编辑所述交易进一步包括:
用所述值的散列替换所述值,其中,所述值的散列指向所述解耦前图像;以及
维持所述值的解耦前图像。
17.一种用于编辑来自区块链网络的信息的方法,所述方法包括:
提供用于所述区块链网络的编辑交易;
初始化所述编辑交易,其中所述编辑交易与经验证的交易相关联;
识别在所述编辑交易中指示的并与所述经验证的交易相关联的散列值;以及
编辑与所述散列值相关联的值。
18.根据权利要求17所述的方法,进一步包括:
生成交易信封,其中,所述交易信封包括包含指向前图像的指针的散列值。
19.根据权利要求18所述的方法,其中,所述交易信封进一步包括所述前图像,并且其中,所述前图像包括所述值。
20.根据权利要求17所述的方法,其中,编辑所述值包括将与所述值相关联的位设置为零,并且其中,将与所述值相关联的所述位设置为零允许所述散列值保持相同。
21.根据权利要求20所述的方法,进一步包括:
基于标识所述散列值在所述编辑交易之后是相同的来维持所述经验证的交易。
22.一种用于编排来自区块链网络的信息的系统,所述系统包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为执行包括以下的操作:
提供用于所述区块链网络的编辑交易;
初始化所述编辑交易,其中所述编辑交易与经验证的交易相关联;
识别在所述编辑交易中指示的并与所述经验证的交易相关联的散列值;以及
编辑与所述散列值相关联的值。
23.根据权利要求22所述的系统,其中,所述操作进一步包括:
生成交易信封,其中,所述交易信封包括包含指向前图像的指针的所述散列值,其中,所述交易信封进一步包括所述前图像,并且其中,所述前图像包括所述值。
24.根据权利要求22所述的系统,其中,编辑所述值包括将与所述值相关联的位设置为零,并且其中,将与所述值相关联的所述位设置为零允许所述散列值保持相同。
25.根据权利要求24所述的系统,进一步包括:
基于标识所述散列值在所述编辑交易之后是相同的来维持所述经验证的交易。
CN202180050287.7A 2020-08-31 2021-07-06 可编辑区块链 Pending CN115943606A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/007,677 2020-08-31
US17/007,677 US20220069977A1 (en) 2020-08-31 2020-08-31 Redactable blockchain
PCT/IB2021/056022 WO2022043778A1 (en) 2020-08-31 2021-07-06 Redactable blockchain

Publications (1)

Publication Number Publication Date
CN115943606A true CN115943606A (zh) 2023-04-07

Family

ID=80352786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180050287.7A Pending CN115943606A (zh) 2020-08-31 2021-07-06 可编辑区块链

Country Status (5)

Country Link
US (1) US20220069977A1 (zh)
JP (1) JP2023538497A (zh)
CN (1) CN115943606A (zh)
DE (1) DE112021004613T5 (zh)
WO (1) WO2022043778A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220407681A1 (en) * 2021-06-21 2022-12-22 Research Foundation Of The City University Of New York Redactable blockchain
US11860863B1 (en) * 2022-06-30 2024-01-02 Amazon Technologies, Inc. Data redaction in a journal-based database

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US10958419B2 (en) * 2018-10-22 2021-03-23 Motorola Solutions, Inc. Method to establish distributed ledger networks with multiple access levels for an incident
US11455380B2 (en) * 2018-11-20 2022-09-27 International Business Machines Corporation Chain-of-custody of digital content in a database system
US11025430B2 (en) * 2018-12-20 2021-06-01 International Business Machines Corporation File provenance database system
US11151261B2 (en) * 2019-04-03 2021-10-19 Cisco Technology, Inc. Blockchain system with severable data and cryptographic proof
CN110572254B (zh) * 2019-09-12 2020-12-04 中国科学院信息工程研究所 一种基于格的可更改区块链方法

Also Published As

Publication number Publication date
JP2023538497A (ja) 2023-09-08
US20220069977A1 (en) 2022-03-03
DE112021004613T5 (de) 2023-07-13
WO2022043778A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US11741083B2 (en) Cross-shard private atomic commit
US11853291B2 (en) Privacy preserving architecture for permissioned blockchains
US11431503B2 (en) Self-sovereign data access via bot-chain
US11184436B2 (en) Automated storage selection with blockchain and NLP
US20220004647A1 (en) Blockchain implementation to securely store information off-chain
US11888981B2 (en) Privacy preserving auditable accounts
US11804950B2 (en) Parallel processing of blockchain procedures
CN115943606A (zh) 可编辑区块链
WO2022116761A1 (en) Self auditing blockchain
US11943360B2 (en) Generative cryptogram for blockchain data management
US11573952B2 (en) Private shared resource confirmations on blockchain
US20230412402A1 (en) Endorsement policy consolidation in blockchain networks
US20220311595A1 (en) Reducing transaction aborts in execute-order-validate blockchain models
US12007981B2 (en) Blockchain selective world state database
US11755562B2 (en) Score based endorsement in a blockchain network
US12015715B2 (en) Trusted aggregation with data privacy based on zero-knowledge-proofs
US11683173B2 (en) Consensus algorithm for distributed ledger technology
US20220255990A1 (en) Topological ordering of blockchain associated proposals
JP2023552784A (ja) ブロックチェーンに対する故障したピアの影響の最小化

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