CN111881206A - 用于数据块的多层图像编码 - Google Patents
用于数据块的多层图像编码 Download PDFInfo
- Publication number
- CN111881206A CN111881206A CN202010337521.1A CN202010337521A CN111881206A CN 111881206 A CN111881206 A CN 111881206A CN 202010337521 A CN202010337521 A CN 202010337521A CN 111881206 A CN111881206 A CN 111881206A
- Authority
- CN
- China
- Prior art keywords
- image
- data
- blockchain
- block
- encoded
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 61
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000006854 communication Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000005065 mining Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003137 locomotive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23109—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3239—Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
示例操作可以包括以下一个或多个:从存储器中检索预定义图像;将要存储在区块链上的数据属性编码到预定义图像的一个或多个图像层中以生成编码图像;生成包括编码图像的数据块,该编码图像包括编码到一个或多个图像层中的数据属性;以及经由数据块的散列链接的链来将数据块存储在分布式分类账上。
Description
技术领域
本申请总体上涉及一种用于经由区块链存储数据的系统,并且更具体地,涉及一种使用多层图像编码过程对块数据进行编码的系统,该多层图像编码过程提供对块数据的属性级访问而不是块级访问。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理器(CPU)、服务器CPU或大型计算机。存储在集中式数据库中的信息通常可以从多个不同的点访问。多个用户或客户端工作站可以在集中式数据库上同时工作,例如,基于客户端/服务器配置。集中式数据库因为它的单个位置而易于管理、维护和控制,特别是出于安全目的。在集中式数据库中,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定的数据集只有一个主记录。
然而,集中式数据库存在明显的缺点。例如,集中式数据库具有单点故障。特别是,如果没有容错考虑,并且出现硬件故障(例如,硬件、固件和/或软件故障),数据库中的所有数据都会丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。因此,连接越慢,每次数据库访问所需的时间量就会增加。另一缺点是,当集中式数据库由于单个位置而经历高流量时,会出现瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库只维护数据的一个副本。因此,多个设备无法在不造成重大问题或覆盖存储的数据的风险的情况下同时访问同一条数据。此外,由于数据库存储系统的数据冗余很少甚至没有,所以意外丢失的数据很难从备份存储中检索,除非通过手动操作。
最近,组织已经开始使用区块链作为传统数据库系统的存储替代品。区块链目前的解决方案允许将多个属性存储到单个数据块中,同时利用智能合同来决定区块链网络中哪些对等节点(peer node)可以访问该数据块。这种实现方式的主要缺陷是,智能合同无法限制区块链对等方对数据块中的哪些属性的访问,这意味着如果区块链对等方可以访问块中的一个属性,那么他们就可以访问块中的所有属性。
因此,需要一种通过提供对块数据的更细粒度的访问来克服这些缺点和限制的解决方案。
发明内容
一个示例实施例提供了一种系统,该系统包括以下中的一个或多个:被配置为存储预定义图像的存储器,和处理器,该处理器被配置为执行以下中的一个或多个:将要存储在区块链上的数据属性编码到预定义图像的一个或多个图像层中以生成编码图像;生成包括编码图像的数据块,该编码图像包括编码到一个或多个图像层中的数据属性;以及经由数据块的散列链接的链将数据块存储在该存储器的分布式分类账上。
另一示例实施例提供了一种方法,该方法包括以下中的一个或多个:从存储器中检索预定义图像;将要存储在区块链上的数据属性编码到预定义图像的一个或多个图像层中以生成编码图像;生成包括编码图像的数据块,该编码图像包括编码到一个或多个图像层中的数据属性;以及经由数据块的散列链接的链来将数据块存储在分布式分类账上。
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,该指令在被处理器读取时使得处理器执行以下中的一个或多个:从存储器中检索预定义图像;将要存储在区块链上的数据属性编码到预定义图像的一个或多个图像层中以生成编码图像;生成包括编码图像的数据块,该编码图像包括编码到一个或多个图像层中的数据属性;以及经由数据块的散列链接的链来将数据块存储在分布式分类账上。
附图说明
图1是示出根据示例实施例的区块链网络的图,其中通过多层图像编码对块数据进行编码。
图2A是示出根据示例实施例的示例区块链体系结构配置的图。
图2B是示出根据示例实施例的节点之间的区块链交易流的图。
图3A是示出根据示例实施例的许可的网络的图。
图3B是示出根据示例实施例的另一许可的网络的图。
图3C是示出根据示例实施例的无许可的网络的图。
图4A是示出根据示例实施例的其中编码有数据属性的图像的图。
图4B是示出根据示例实施例的用于将属性转换成图像的编码器的图。
图4C是示出根据示例实施例的基于不同编码层控制对编码图像块中的属性的访问的过程的图。
图5是示出根据示例实施例的用于将数据转换成图像的图像编码方法的图。
图6A是示出根据示例性实施例的被配置为执行在本文描述的一个或多个操作的示例系统的图。
图6B是示出根据示例性实施例的被配置为执行在本文描述的一个或多个操作的另一示例系统的图。
图6C是示出根据示例实施例的被配置为利用智能合同的另一示例系统的图。
图6D是示出根据示例实施例的被配置为利用区块链的又一示例系统的图。
图7A是示出根据示例实施例的新块被添加到分布式分类账的过程的图。
图7B是示出根据示例实施例的新数据块的数据内容的图。
图7C是示出根据示例实施例的数字内容的区块链的图。
图7D是示出根据示例实施例的可以表示区块链中的块的结构的块的图。
图8A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的图。
图8B是示出根据示例实施例的示例量子安全区块链的图。
图9是示出支持一个或多个示例实施例的示例系统的图。
具体实施方式
容易理解的是,如本文附图中一般描述和示出的,本发明的组件可以以多种不同的配置来布置和设计。因此,如附图所示,方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制所要求保护的本申请的范围,而仅仅是所选实施例的代表。
在一个或多个实施例中,贯穿本说明书描述的当前特征、结构或特性可以以任何合适的方式组合或移除。例如,在整个说明书中,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合实施例描述的特定特征、结构或特性可以包括在至少一个实施例中的事实。因此,在整个说明书中出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似的语言不一定都指同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合或移除。此外,在图中,元件之间的任何连接都可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。此外,附图中描绘的任何设备可以是不同的设备。例如,如果显示移动设备正在发送信息,也可以使用有线设备来发送信息。
此外,虽然术语“消息”可能已经在实施例的描述中使用,但是本申请可以应用于许多类型的网络和数据。此外,虽然在示例性实施例中可以描述特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例实施例提供了通过多层图像编码过程将数据转换成隐藏格式的方法、系统、组件、非暂时性计算机可读介质、设备和/或网络。
在一个实施例中,本申请利用分散式数据库(decentralized database)(诸如区块链),该数据库是分布式存储系统,包括彼此通信的多个节点。分散式数据库包括类似于分布式分类账的仅附接不可变数据结构,能够维护相互不信任方之间的记录。不信任方在本文被称为对等方或对等节点。每个对等方维护数据库记录的副本,并且在分布式对等方之间没有达成共识的情况下,没有单个对等方可以修改数据库记录。例如,对等方可以执行共识协议来验证(validate)区块链存储交易,将存储交易分组为块,并在块上构建散列链。为了保持一致性,此过程通过根据需要对存储交易进行排序来形成分类账。在各种实施例中,可以使用许可的和无许可的区块链。在公共的或无许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链经常涉及本地加密货币,并使用基于各种协议(诸如工作量证明(Proof of Work,PoW))的共识。另一方面,许可的区块链数据库提供了确保共享共同目标但彼此不完全信任的一组实体(诸如交换资金、商品、信息等的企业)之间的互动。
本申请可以利用区块链操作任意可编程逻辑,适合分散式存储方案,称为“智能合同”或“链码”。在一些情况下,管理功能和参数可能存在专门的链码,称为系统链码。本申请可以进一步利用智能合同,这些智能合同是可信的分布式应用,其利用区块链数据库的防篡改属性和节点之间的基础协议,这被称为背书或背书策略。与本申请相关联的区块链交易可以在提交给区块链之前进行“背书”,而未经背书的交易将被忽略。背书策略允许链码以背书所必需的一组对等节点的形式指定交易的背书方。当客户端将交易发送到背书策略中指定的对等方时,执行交易以验证交易。在验证之后,交易进入排序阶段,在该阶段中使用共识来产生分组到块中的、经背书的交易的排序序列。
本申请可以利用作为区块链系统的通信实体的节点。“节点”可以执行逻辑功能,即不同类型的多个节点可以在同一物理服务器上运行。节点被分组在信任域中,并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书方(例如,对等方)递交交易调用并向排序服务(例如,排序节点)广播交易提案的客户端或递交客户端(submitting-client)节点。另一类型的节点是对等节点,其可以接收客户端递交的交易、提交交易,并维护区块链交易的分类账的状态和副本。对等方也可以具有背书方的角色,尽管这不是必需的。排序服务节点或排序方是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交交易和修改区块链的世界状态时到系统中的对等节点中的每一个的广播,区块链的世界状态是通常包括控制和设置信息的初始区块链交易的另一名称。
本申请可以利用分类账,该分类账是区块链所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书方节点、对等节点等)递交的链码调用(即,交易)产生。每个参与方(诸如对等节点)可以维护分类账的副本。交易可以导致一组资产键-值对作为一个或多个操作数(诸如创建、更新、删除等)被提交到分类账。分类账包括区块链(也称为链),其用于在块中存储不可变的、有序的记录。该分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用链,该链是被构造为散列链接的块(hash-linked block)的交易日志,并且每个块包含N个交易的序列,其中N等于或大于1。块头部(block header)包括块交易的散列,以及前面的块的头部的散列。以这样的方式,分类账上的所有交易都可以被排序并密码地链接在一起。因此,在不破坏散列链接的情况下,不可能篡改分类账数据。最近添加的区块链块的散列表示该最近添加的区块链块之前已经到来的链上的每个交易,这使得可能确保所有对等节点处于一致和可信的状态。该链可以存储在对等节点文件系统(即,本地、附加存储器、云等)上,有效地支持区块链工作负载的仅附接的性质。
不可变分类账的当前状态表示链交易日志中包含的所有键的最新值。因为当前状态表示通道已知的最新键值,所以当前状态有时被称为世界状态。链码调用根据分类账的当前状态数据执行交易。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以只是到链的交易日志中的索引视图,因此状态数据库可以在任何时候从链重新生成。在对等节点启动时和交易被接受之前,状态数据库可以自动恢复(或者生成,如果需要的话)。
区块链目前的解决方案允许将多个属性(交易)存储到块中,同时智能合同确定区块链网络中的哪些对等节点可以访问块中的属性。这种实现方式的主要缺陷是智能合同无法限制对块内特定属性/交易的访问。因此,对等节点要么可以访问所有块数据,要么不能访问块数据。例如,在包含人的个人信息的块的情况下,其中的数据可以包括姓名、地址、电话号码、社会保障等。这意味着,如果对等方/客户端想要与另一对等节点共享该块中的个人信息,它必须共享组成该块的所有属性。如果对等方只想共享他们的姓名和电话号码,则他们必须创建只包含这两个属性的完整的新块。这在区块链上造成了冗余存储。
示例实施例针对用于块数据属性的图像编码过程,该过程使用多层图像编码器将块的属性转换成图像内的多层,从而在单个块内提供不同的访问层。关于多层编码所描述和描绘的即时解决方案的一些益处包括通过允许智能合同在块内的属性级而不是块级工作来对块数据进行更细粒度的访问控制。智能合同可以彼此共享数据属性(例如,用户的诸如姓名、地址、电话号码、社会保障、信用卡等的数据属性)。
编码是将数据转换成另一种格式的过程。在本文的示例中,数据属性(诸如字母数字文本)可以被转码成图像,诸如预定义图像内的一个或多个像素(例如,像素的子集)。每个数据属性可以被转码成不同的图像层。作为另一示例,一个或多个属性可以一起编码到同一图像层中。在该示例中,诸如青色、品红色、黄色和黑色(黑)的每种颜色可以是同一图像内的不同图像层,然而,实施例不限于此。
本文描述的系统建立在当前区块链网络的基础上,同时通过不仅仅依赖于通过区块链体系结构的基础提供的安全性来提高对记录篡改的抵抗力和数据隐私。该系统包括能够将数据属性编码成多层图像的图像编码器。此外,智能合同可以控制对图像的每个层/级的访问,从而在块内的属性级而不是块级提供对参与方的访问。例如,对等方可以具有将多个属性分布在图像的不同层的能力,并且可以使用智能合同来确定他们希望与其他人共享图像的哪些层。
例如,对于包括诸如姓名、社会保障号、地址和电话号码等数据属性的块,控制对等方(客户端)不再需要创建仅包含姓名和电话号码的新块来阻止其他参与方(对等方)访问社会保障号。相反,社会保障号可以被加密到图像的姓名和电话号码之外的不同层,并且客户端对等方可以只授予其他对等方访问加密姓名和电话号码的层。
图1示出了根据示例实施例的区块链网络100,其中通过多层图像编码对块数据进行编码。参考图1的示例,区块链网络100包括多个对等节点112、114、116、118和120,它们是区块链网络100的成员,并且在多个对等节点112-120之间复制的分布式分类账上存储区块链130的副本。在该示例中,客户端122通过网关(对等节点120)递交数据以存储在区块链130上,该网关可以被称为客户端节点。
根据各种实施例,在数据被存储在区块链130上之前,可以通过多层图像编码过程对其进行编码,其中数据属性可以被编码成数字图像(例如,CMYK图像等)。例如,在对等节点120上执行的智能合同可以将数据属性转码成数字图像内的不同层。每个图像层可以独立于其他图像层来管理,使得用户可以被授予访问一个图像层,而不能访问其他图像层。例如,智能合同或一组智能合同可以控制对存储在区块链130上的数字图像的每个图像层的访问。仅授权用户(例如,具有使用公钥、密码等)可以被允许访问图像的层。
在本文的示例中,客户端122可以维护用于将数据加密/编码到图像中的唯一密钥(以及同样用于解码/解密图像的密钥)。此外,根据各种实施例,区块链130(和对等节点112-120)可以向客户端122提供不变性、数据的安全存储和服务合同关联(servicecontract association)。服务合同可以在对等节点112-120上运行,并确保除了客户端122之外没有任何一方能够解码原始编码数据。此外,服务合同可以演示或以其他方式跟踪所存储的任何威胁相关信息,这些信息可以为客户端122完全跟踪。
根据各种实施例,图像编码可以在客户端执行,诸如通过客户端对等节点120和/或客户端122。这里,用于执行图像编码的密码/密钥可能只为客户端122和/或客户端节点120所知,而不为网络100上的其他节点112-118所知。客户端122可以根据请求检索编码数据的原始值(或者具有来自客户端的授权的代理也可以检索原始数据)。这是对区块链本地安全能力的补充。
图2A示出了根据示例实施例的区块链体系结构配置200。参考图2A,区块链体系结构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描述)。这些节点参与许多活动,诸如区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来背书交易,并且可以为体系结构200中的所有区块链节点提供排序服务。区块链节点可以启动区块链认证,并试图写入存储在区块链层216中的区块链不可变分类账,其副本也可以存储在基础物理基础设施214上。区块链配置可以包括一个或多个应用224,其链接到应用编程接口(API)222,以访问和执行存储的程序/应用代码220(例如,链码、智能合同等),这些应用可以根据由参与方寻求的定制配置来创建,并且可以维护他们自己的状态、控制他们自己的资产以及接收外部信息。这可以作为交易来部署,并且经由附接到分布式分类账来安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)的各种层,并支撑可用于接收和存储新交易的物理计算机基础设施,并为寻求访问数据条目的审计员提供访问。区块链层216可以暴露接口,该接口提供对处理程序代码和接合物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可用于核实(verify)交易,诸如资产交换交易,并保持信息私密。
图2A的区块链体系结构配置可以由区块链平台212经由暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传送数据,并且可以由节点204-210以智能合约和与受其执行影响的条件或其他代码元素相关联的链码的形式执行。作为非限制性示例,可以创建智能合同来执行提醒、更新和/或受改变、更新等影响的其他通知。智能合同本身可以用于标识与授权和访问要求以及分类账的使用相关联的规则。例如,数据属性226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理,以生成结果228。例如,结果228可以包括其中数据属性被转换/转码的多层编码图像。此外,结果228可以包括控制编码图像数据的终端用户的标识、用于创建编码的加密密钥和/或算法等。物理基础设施214可用于检索本文描述的任何数据或信息。
可以经由高级应用和编程语言创建智能合同,并且然后将其写入区块链中的块。智能合同可以包括用区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。交易是可以响应于与智能合同相关联的条件被满足来执行的智能合同代码的执行。智能合同的执行可以触发对数字区块链分类账的状态的可(多个)信的修改。由智能合同执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议在区块链对等方的分布式网络中自动复制。
智能合同可以将数据以键-值对的形式写入区块链。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将各种逻辑运算的输出写入区块链。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或可以被加密并维护为私有。智能合同使用/生成的临时数据由所提供的执行环境保存在存储器中,一旦标识出区块链所需的数据,就将其删除。
链码可以包括智能合同的、具有附加功能的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,在计算网络中,链码由链验证者(validator)在共识过程期间一起执行和验证。链码接收散列,并从区块链检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符和从所存储的标识符模板数据创建的散列匹配,则链码发送对所请求的服务的授权密钥。链码可以写入与加密细节相关联的区块链数据。
图2B示出了根据示例实施例的区块链节点之间的区块链交易流250的示例。参考图2B,交易流可以包括客户端节点260在290中将数据属性编码到图像中,并且将编码图像作为交易提案291发送到背书对等节点281。背书对等方281可以核实客户端签名并执行链码函数来启动交易。输出可以包括链码结果、在链码中读取的一组键/值版本(读取集),以及在链码中写入的一组键/值(写入集)。如果被批准,提案响应292连同背书签名一起被发送回客户端260。客户端260将背书组装到交易有效载荷293中,并将其广播到排序服务节点284。排序服务节点284然后将排序的交易作为块递送给通道上的所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略,以确保指定对等方的正确分配已经对结果进行了签名,并且针对交易有效载荷293认证了签名。
再次参考图2B,在291中,客户端节点260通过将属性编码到预定义图像中来生成图像,然后通过构造请求并将其发送到作为背书方的对等节点281来启动交易291。客户端260可以包括利用支持的软件开发工具包(software development kit,SDK)的应用,其利用可用的API来生成交易提案。该提案对调用链码函数的请求,使得可以读取数据和/或向分类账写入数据(即,为资产编写新的键值对)。SDK可以充当小型函数库(shim),以将交易提案打包成适当体系结构的格式(例如,通过远程过程调用(remote procedure call,RPC)的协议缓冲器),并采用客户端的加密凭证以产生用于交易提案的唯一签名。
作为响应,背书对等节点281可以核实(a)交易提案是良好形成的,(b)交易在过去还没有被递交(重放攻击保护),(c)签名是有效的,以及(d)递交者(在示例中,是客户端260)被适当授权在该通道上执行提案的操作。背书对等节点281可以将交易提案输入作为调用的链码函数的参量。然后,针对当前状态数据库执行链码,以产生包括响应值、读取集和写入集的交易结果。但是,此时不会对分类账进行更新。在292中,该组值连同背书对等节点281的签名作为提案响应292被传递回客户端260的SDK,客户端260解析应用要消费的有效载荷。
作为响应,客户端260的应用核查/核实背书对等方签名,并比较提案响应以确定提案响应是否相同。如果链码仅查询分类账,则应用将核查查询响应,并且通常不会将交易递交给排序节点服务284。如果客户端应用旨在将交易递交给排序节点服务284以更新分类账,则该应用在递交之前确定指定的背书策略是否已被满足(即,交易所需的所有对等节点是否都对该交易进行了背书)。这里,客户端可能只包括交易的多方之一。在这种情况下,每个客户端可能具有它们自己的背书节点,并且每个背书节点将需要背书交易。该体系结构使得即使应用选择不核查响应或以其他方式转发未经背书的交易,背书策略仍将由对等方强制执行并在提交验证阶段被维持。
在成功核查之后,在步骤293中,客户端260将背书组装到交易中,并且在交易消息中向排序节点284广播交易提案和响应。交易可能包含读/写入集、背书对等方签名和通道ID。排序节点284不需要核查交易的全部内容来执行其操作,相反,排序节点284可以简单地从网络中的所有通道接收交易,按通道按时间顺序对它们进行排序,并为每个通道创建交易块。
交易块在通道上从排序节点284递送到所有对等节点281-283。验证块内的交易294,以确保满足任何背书策略,并确保自通过交易执行生成读取集以来,读取集变量的分类账状态没有改变。块中的交易被标记为有效的或无效的。另外,在步骤295中,每个对等节点281-283将块附接到通道的链,并且对于每个有效交易,写入集被提交到当前状态数据库。发出事件以通知客户端应用交易(调用)已经不可变地附接到链,以及通知交易是经验证的还是未经验证的。
图3A示出了许可的区块链网络300的示例,其特征在于分布式、分散式点对点(peer-to-peer)体系结构。在该示例中,区块链用户302可以启动到许可的区块链304的交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端应用、直接通过API等来发布。网络可以提供对监管者306的访问,诸如审计员。区块链网络运营商308管理成员许可,例如将监管者306注册为“审计员”,并且将区块链用户302注册为“客户端”。审计员可以被限制为只能查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户端应用。区块链开发者310可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的凭证,开发者310可以使用带外连接(out-of-band connection)来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可的区块链304。在进行任何交易之前,对等节点314从管理用户角色和许可的证书授权机构316检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可的区块链304上进行交易。同时,试图利用链码的用户可能需要在传统数据源312上核实他们的凭证。为了确认用户的授权,链码可以通过传统的处理平台318对该数据使用带外连接。
图3B示出了许可的区块链网络320的另一示例,其特征在于分布式、分散式点对点体系结构。在该示例中,区块链用户322可以向许可的区块链324递交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对监管者326的访问,诸如审计员。区块链网络运营商328管理成员许可,诸如将监管者326注册为“审计员”,并且将区块链用户322注册为“客户端”。审计员可以被限制为只能查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330编写链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何交易之前,对等节点334从证书授权机构336检索用户的注册和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可的区块链324上进行交易。同时,试图利用链码的用户可能需要在传统数据源332上核实他们的凭证。为了确认用户的授权,链码可以通过传统的处理平台338对该数据使用带外连接。
在一些实施例中,本文的区块链可以是无许可的区块链。与需要许可才能加入的许可的区块链相反,任何方都可以加入无许可的区块链。例如,要加入无许可的区块链,用户可以创建个人地址,并通过递交交易开始与网络交互,从而将条目添加到分类账中。此外,各方都可以选择在系统上运行节点,并采用挖掘协议(mining protocol)来帮助核实交易。
图3C示出了由包括多个节点354的无许可的区块链352处理交易的过程350。发送方356希望经由无许可的区块链352向接收方358发送支付或一些其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可封装在数字记录中的任何其他资产)。在一个实施例中,发送方设备356和接收方设备358中的每一个可以具有数字钱包(与区块链352相关联),其提供用户界面控制和交易参数的显示。作为响应,该交易通过区块链352广播到节点354。取决于区块链352的网络参数,节点基于由无许可的区块链352创建者建立的规则(可以是预定义的或动态分配的)来核实360交易。例如,这可能包括核实涉及参与方的身份等。可以立即核实该交易,或者可以将其与其他交易放在队列中,并且节点354基于一组网络规则来确定交易是否有效。
在结构362中,有效交易被形成为块,并用锁(散列)密封。该过程可以通过节点354当中的挖掘节点来执行。挖掘节点可以利用专门用于为无许可的区块链352挖掘和创建块的附加软件。每个块可以通过使用网络同意的算法创建的散列(例如,256比特数字等)来标识。每个块可以包括头部、指针或对链中先前块的头部的散列的引用,以及一组有效交易。对先前块的散列的引用与块的安全独立链的创建相关联。
在将块添加到区块链之前,必须对块进行验证。对无许可的区块链352的验证可以包括工作量证明(PoW),其是从块的头部导出的难题的解决方案。虽然在图3C的示例中没有示出,但是用于验证块的另一过程是权益证明(proof-of-stake)。工作证明算法奖励解决数学问题的矿工(miner),与此不同的是,有了权益证明,新块的创建者会根据其财富(也称为“权益”)以确定性的方式被挑选。然后,由选择的/挑选的节点执行类似的证明。
使用挖掘364,节点试图通过对一个变量进行增量改变来解决该块,直到解决方案满足网络范围的目标。这将创建PoW,从而确保正确答案。换句话说,潜在的解决方案必须证明在解决问题的过程中计算资源被耗尽了。在一些类型的无许可的区块链中,矿工可能会得到有价值的奖励(例如,硬币等)用于正确挖掘区块。
这里,PoW过程连同块的链接使得区块链的修改变得非常困难,因为攻击者必须修改所有后续的块以便接受对一个块的修改。此外,随着新块被挖掘,修改块的难度增加,后续块的数量增加。利用分布366,通过无许可的区块链352分布成功验证的块,并且所有节点354将该块添加到多数链(majority chain),该多数链是无许可的区块链352的可审计分类账。此外,由发送方356递交的交易中的价值被存入或以其他方式传送到接收方设备358的数字钱包。
图4A示出了根据示例实施例的包括编码在其中的多个数据属性411、412、413和414的编码图像400。在该示例中,数据属性411-414包括字母数字字符或文本,并且包括(人的)姓名411、地址412、社会保障号(social security number,SSN)413和电话号码414。在该示例中,每个数据属性被转码成图像410内的一个或多个像素(例如,像素的子集)。
编码可以由区块链对等方执行,该对等方接收要存储在区块链的块中的多个属性。作为响应,对等方可以检索预定义图像(例如,CMYK图像等),并对每个属性进行编码以生成隐藏在预定义图像内的图像分量(像素的子集)。这里,每个数据属性411-414被单独添加到图像410。然而,应当理解,多个数据属性可以被编码在一起(例如,至少两个属性),可以被组合并转码成图像410中的共同像素集。
所得的编码图像410然后被存储在区块链400上。这里,编码图像410被包括在区块链400中的块401中。每个块可以在其中包括不同的预定义图像,从而创建图像编码的块的链。也就是说,每个块401-405及其各自的数据被编码为创建图像链的图像。此外,每个图像可以包括指向先前块的指针。例如,编码图像410包括指向区块链400中的先前块402的指针415。结果,图像链可以维护块401-405等之间的链接。
图4B示出了根据示例实施例的用于将块属性转码成图像的编码器460。块内的数据被加密成多层图像,并且这些图像被链接在一起,而不是包含相互链接的数据的数据块。这些多层图像允许智能合同在块内的属性级发生,而不是在块级发生。在图4B中,对区块链内的块如何被加密成多层图像的高级概述。编码技术采用区块链内的典型块430和预先存在的CMYK图像440,并生成表现为与原始图像相同的编码CMYK图像455,但是在产生的编码图像455中隐藏了构成块430的属性431-434。
在图4B中,预先存在的CMYK图像440已经被划分成四个通道441-444,并且通过使用属性来稍微调整构成每个通道的值,将块430内的各个属性431-434隐藏到各个通道分区441-444中。一旦属性被隐藏到每个通道中以创建编码通道451-454,通道再次被层叠在彼此的之上450,并且被重新组合以创建单个CMYK图像455,该图像与原始CMYK图像440具有轻微但几乎不明显的区别。
通过使用图像编码而不是散列来编码块数据431-434,该系统为区块链提供了一种新的安全形式。此外,通过在属性级而不是块级编码/加密块数据,系统提供了一种新的访问块数据的机制(如图4C所示)。
图4C示出了根据示例实施例的基于不同编码层控制对编码图像块480中的属性的访问的过程470。参考图4C,图像块480包括与CMYK图像的四种颜色相对应的四个图像层。每个图像层可以具有被授予不同的访问权限。在该示例中,智能合同481、482和483用于控制作为区块链成员的不同对等方(对等方1、2、3、4和5)的允许访问的级。通过使用多层图像作为区块链的块的加密技术,该系统允许数据以结构化的方式存储,并通过智能合同进行粒度访问控制。
图4C示出了单个块(即,图像块480)如何可以将其属性隔离成单独的层,其中可以通过智能合同481-483来限制或授予对每个层的访问。图4C中图像块480以下的每个对象代表区块链中对等方之间的智能合同。这里,对于对等方2的智能合同481仅授予对图像块480中的第一层(C通道)的访问,这意味着该用户只能访问存储在该块的第一图像层中的那些属性,但是用户不能访问在其他三个图像层中加密的数据属性。同时,对于对等方1、对等方3和对等方5的智能合同482授予对第一图像三个层(C通道、M通道和Y通道)的访问,这意味着它们可以访问在块480的除第四图像层之外的所有图像层中加密的属性。此外,对于对等方4的智能合同483授予对最后两个图像层(通道Y和通道K)的访问,同时阻止对前两个图像层的访问。
例如,社会保障号可以被加密/编码到图像480的第四图像层(通道K)中。在这种情况下,只有对等方4才能访问社会保障号。同时,用户的姓名可以被编码到图像480的第三图像层中。在这种情况下,对等方1、3、4和5将被给予对姓名的访问。通过使用不同的图像层,可以对块数据授予不同级的访问。
图5示出了根据示例实施例的用于将数据转换成图像的图像编码方法500。例如,方法500可以在区块链节点、客户端、用户设备(链外)等中执行。参考图5,在510中,该方法可以包括从存储器中检索预定义图像。例如,图像可以是CYMK图像。图像可以具有能够在其中编码数据的不同层。使用不同层,可以基于分层提供对数据的不同级的访问。
在520中,该方法可以包括将要存储在区块链上的数据属性编码到预定义图像的一个或多个图像层中,以生成编码图像。例如,编码可以包括将第一数据属性编码到预定义图像的第一图像层中,并将第二数据属性编码到预定义图像的第二图像层中。此外,不同的图像层可以具有不同的访问机制。例如,第一图像层可以包括与第二图像层不同的解码机制。
在一些实施例中,编码可以包括将存储第一编码数据属性的第一图像层覆盖在存储第二编码数据属性的第二图像层之上,以生成编码图像。在一些实施例中,编码可以包括将用于存储在区块链上的数据属性转码成预定义图像的图像层内的一组像素(例如,一个或多个图像像素),以生成编码图像。在一些实施例中,编码可以包括将指针编码到编码图像中,该指针指向在分布式分类账上的块的散列链接的链当中的先前块中存储的先前预定义图像。
在530中,该方法可以包括生成包括编码图像的数据块,该编码图像包括编码到一个或多个图像层中的数据属性。在540中,该方法可以包括经由数据块的散列链接的链来将数据块存储在分布式分类账上的。在一些实施例中,该方法还可以包括确定,在经由数据块的散列链接的链存储数据块之前,所生成的数据块已经被区块链的至少一个对等节点背书。
图6A示出了根据示例实施例的示例系统600,其包括被配置为执行各种操作的物理基础设施610。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留于区块链620上),区块链620和智能合同630可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示写入一个或多个智能合同630和/或区块链620或从中读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留于区块链620上),区块链620和智能合同630可以执行任何示例实施例中包括的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示写入一个或多个智能合同630和/或区块链620或从中读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的被配置为利用合同方之间的智能合同配置和被配置为在区块链上强制执行智能合同条款的中介服务器的示例系统。参考图6C,配置650可以表示由明确标识一个或多个用户设备652和/或656的智能合同630驱动的通信会话、资产传送会话或过程或进程。智能合同执行的执行、操作和结果可以由服务器654管理。智能合同630的内容可能需要作为智能合同交易的各方的实体652和656中的一个或多个的数字签名。智能合同执行的结果可以作为区块链交易写入区块链620。智能合同630驻留在区块链620上,其可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D示出了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合同630或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即,服务器654)来在区块链上执行交易(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其保存分布式分类账和世界状态的副本,从而允许客户端652和656查询关于世界状态的数据,以及将交易递交到区块链网络,在区块链网络中,取决于智能合同630和背书策略,背书对等方将运行智能合同630。
以上实施例可以以硬件、以由处理器执行的计算机程序、以固件或以以上的组合来实施。计算机程序可以体现在计算机可读介质上,诸如存储介质上。例如,计算机程序可以驻留在随机存取存储器(random access memory,“RAM”)、闪存、只读存储器(read-onlymemory,“ROM”)、可擦可编程只读存储器(erasable programmable read-only memory,“EPROM”)、电可擦可编程只读存储器(electrically erasable programmable read-onlymemory,“EEPROM”)、寄存器、硬盘、可移动磁盘、光盘只读存储器(compact disk read-onlymemory,“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。或者,存储介质可以集成到处理器中。处理器和存储介质可以驻留在专用集成电路(application specific integrated circuit,“ASIC”)中。或者,处理器和存储介质可以作为分立组件驻留。
图7A示出了根据示例实施例的新块被添加到分布式分类账720的过程700,并且图7B示出了根据示例实施例的区块链的新数据块结构730的内容。参考图7A,客户端(未示出)可以向区块链节点711、712和/或713递交交易。客户端可以是从任何源接收的、在区块链720上执行活动的指令。例如,客户端可以是代表请求者行动的应用,诸如为区块链提案交易的设备、个人或实体。多个区块链对等方(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式分类账720的副本。不同类型的区块链节点/对等方可以存在于区块链网络中,包括模拟和背书由客户端提案的交易的背书对等方;和核实背书、验证交易并将交易提交到分布式分类账720的提交对等方。在该示例中,区块链节点711、712和713可以执行背书方节点、提交方节点或两者的角色。
分布式分类账720包括在块中存储不可变的、有序记录的区块链,以及维护区块链722的当前状态的状态数据库724(当前世界状态)。每个通道可以存在一个分布式分类账720,并且每个对等方为其所属的每个通道维护其自己的分布式分类账720的副本。区块链722是交易日志,该交易日志被构造为散列链接的块,其中每个块包含N个交易的序列。块可以包括各种组件,诸如图7B所示。块的链接(由图7A中的箭头示出)可以通过在当前块的块头部内添加前面的块的头部的散列来生成。以这样的方式,区块链722上的所有交易被排序并密码地链接在一起,防止在不破坏散列链接的情况下篡改区块链数据。另外,由于链接,区块链722中的最新块表示该最新块之前已经到来的每个交易。区块链722可以被存储在对等方文件系统(本地或附加存储器)上,该对等方文件系统支持仅附接的区块链工作负载。
区块链722和分布式分类账722的当前状态可以被存储在状态数据库724中。这里,当前状态数据表示区块链722的链交易日志中曾经包括的所有键的最新值。链码调用针对状态数据库724中的当前状态执行交易。为了使这些链码交互极其有效,所有键的最新值被存储在状态数据库724中。状态数据库724可以包括到区块链722的交易日志中的索引视图,因此它可以在任何时候从链重新生成。在交易被接受之前,在对等方启动时,状态数据库724可以自动恢复(或者生成,如果需要的话)。
背书节点从客户端接收交易,并基于模拟结果背书交易。背书节点保存模拟交易提案的智能合同。当背书节点背书交易时,背书节点创建交易背书,该交易背书是从背书节点到客户端应用的、指示对模拟交易的背书的签名响应。背书交易的方法取决于可能在链码中指定的背书策略。背书策略的示例是“大多数背书对等方必须背书交易”。不同的通道可能具有不同的背书策略。经背书的交易由客户端应用转发给排序服务710。
排序服务710接受经背书的交易,将它们排序到块中,并将块递送给提交对等方。例如,当已经达到交易的阈值、定时器超时或其他条件时,排序服务710可以启动新块。在图7A的示例中,区块链节点712是已经接收到新数据块730以用于存储在区块链720上的提交对等方。区块链中的第一块可以被称为创世块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序方的群组构成。排序服务710不处理交易、智能合同或维护共享分类账。相反,排序服务710可以接受经背书的交易,并指定这些交易被提交给分布式分类账720的顺序。区块链网络的体系结构可以被设计成使得“排序”的具体实现方式(例如,Solo、Kafka、BFT等)成为可插拔组件。
交易以一致的顺序被写入分布式分类账720。建立交易的顺序,以确保当状态数据库724的更新被提交给网络时,这些更新是有效的。与加密货币区块链系统(例如比特币等)不同(其中通过解决加密难题或挖掘进行排序),在该示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据块730时,新数据块730可以被广播给提交对等方(例如,区块链节点711、712和713)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍然匹配状态数据库724中的当前世界状态来验证新数据块730内的交易。具体地,提交对等方可以确定当背书方模拟交易时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等方验证交易时,交易被写入分布式分类账720上的区块链722,并且状态数据库724用来自读取-写入集的写入数据更新。如果交易失败,也就是说,如果提交对等方发现读取-写入集与状态数据库724中的当前世界状态不匹配,则被排序到块中的交易仍将被包括在该块中,但是该交易将被标记为无效,并且状态数据库724将不被更新。
参考图7B,存储在分布式分类账720的区块链722上的新数据块730(也称为数据块)可以包括多个数据段,诸如块头部740、块数据750和块元数据760。应当理解的是,各种所描绘的块及其内容(诸如图7B中所示的新数据块730及其内容)仅仅是出于示例的目的,并不意味着限制示例实施例的范围。新数据块730可以将N个(例如,1、10、100、500、1000、2000、3000个等)交易的交易信息存储在块数据750中。新数据块730还可以将到(例如,在图7A中的区块链722上的)先前块的链接包括在块头部740内。特别地,块头部740可以包括先前块的头部的散列。块头部740还可以包括唯一的块号、新数据块730的块数据750的散列等。新数据块730的块号可以是唯一的,并且以各种顺序分配,诸如从零开始以递增/有序的顺序。
块数据750可以存储记录在新数据块730内的每个交易的交易信息。例如,交易数据可以包括以下中的一个和多个:交易类型、版本、时间戳、分布式分类账730的通道ID、交易ID、时期(epoch)、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和函数)、诸如公钥和证书的客户端(创建者)标识、客户端的签名、背书方身份、背书方签名、提案散列、链码事件、响应状态、命名空间、读取集(交易读取的键和版本列表)、写入集(键和值列表等)、开始键、结束键、键列表、Merkel树查询总结等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,块数据750还可以存储编码图像762,其包括已经经由图像压缩/编码技术编码的、用于区块链存储的数据属性。编码图像762可以包括不同层,并且不同层中编码有不同的属性。每个层可以具有不同的解码机制,从而创建对存储在区块链上的编码图像762内的数据属性的访问粒度。编码图像762还可以包括在其中编码的指针,该指针指向区块链上的先前块的先前编码图像,从而基于编码图像数据在块之间创建链接。存储这种编码图像762的一些益处反映在本文公开和描述的各种实施例中。尽管在图7B中,编码图像762被描绘在块数据750中,但是也可以位于块头部740或块元数据760中。
块元数据760可以存储元数据的多个字段(例如,作为字节数组等)。元数据字段可以包括关于块创建的签名、对最后配置块的引用、标识块内的有效和无效交易的交易过滤器、对块进行排序的排序服务的最后偏移持久化等。签名、最后配置块和排序方元数据可以由排序服务710添加。同时,块的提交方(诸如区块链节点712)可以基于背书策略、读取/写入集的核实等来添加有效性/无效性信息。交易过滤器可以包括大小等于块数据750中的交易数量的字节数组和标识交易是有效的/无效的验证码。
图7C示出了根据本文描述的实施例的用于数字内容的区块链770的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链服务的不可变的、仅附接的方面作为保护数字内容的完整性、有效性和真实性的保障,使其适合用于可受理性规则适用的法律诉讼,或考虑证据的其他设置,或对数字信息的呈现和使用另外地感兴趣的其他设置。在这种情况下,数字内容可以被称为数字证据。
区块链可以以多种方式形成。在一个实施例中,数字内容可以包括在区块链自身中并从其访问。例如,区块链的每个块可以存储参考信息的散列值(例如,头部、值等)以及相关联的数字内容。散列值和相关联的数字内容然后可以一起被加密。因此,可以通过解密区块链中的每个块来访问每个块的数字内容,并且每个块的散列值可以用作参考先前块的基础。这可以示出如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个块的内容的加密散列而没有任何数字内容。数字内容可以被存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。另一存储区域可以是用于存储区块链的相同的存储设备,或者可以是不同的存储区域,或者甚至是分离的关系数据库。每个块的数字内容可以通过获得或查询感兴趣的块的散列值,然后在存储区域中查找该值来进行引用或访问,该散列值与实际数字内容相对应地存储。该操作可以例如由数据库网守(gatekeeper)来执行。这可以示出如下:
在图7C的示例实施例中,区块链770包括以排序序列密码地链接的多个块7781、7782……778N,其中N≥1。用于链接块7781、7782……778N的加密可以是许多密钥或非密钥散列函数中的任何一种。在一个实施例中,块7781、7782……778N受散列函数的影响,该散列函数从基于块中信息的输入产生n位字母数字输出(其中n是256或另一数字)。这种散列函数的示例包括但不限于SHA型(SHA代表安全散列算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle树算法、基于随机数的算法(nonce-based algorithm)和非抗冲突的PRF算法(non-collision-resistant PRF algorithm)。在另一实施例中,块7781、7782……778N可以通过不同于散列函数的函数进行密码地链接。为了说明的目的,下面的描述是参照散列函数(例如SHA-2)进行的。
区块链的块7781、7782……778N中的每一个包括头部、文件的版本和值。作为区块链中进行散列的结果,头部和值对于每个块都不同。在一个实施例中,值可以包括在头部中。如以下更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一块7781被称为创世块,并且包括头部7721、原始文件7741和初始值7761。用于创世块的散列方案以及实际上在所有后续块中,可能会有所不同。例如,第一块7781中的所有信息可以一次被散列在一起,或者第一块7781中的信息的每个或一部分可以被分离地散列,然后可以执行分离散列部分的散列。
头部7721可以包括一个或多个初始参数,该一个或多个初始参数例如可以包括版本号、时间戳、随机数(nonce)、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头部7721可以自动生成(例如,通过区块链网络管理软件)或者由区块链参与方手动生成。与区块链的其他块7782至778N中的头部不同,创世块中的头部7721不引用先前块,这仅仅是因为没有先前块。
创世块中的原始文件7741可以是例如由设备捕获的数据,在其包含在区块链之前经过或不经过处理。原始文件7741通过系统接口从设备、媒体源或节点接收。原始文件7741与元数据相关联,例如,该元数据可以由用户、设备和/或系统处理器手动或自动地生成。元数据可以与原始文件7741相关联地被包括在第一块7781中。
创世块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的散列值、原始文件7741的元数据以及与该文件相关联的其他信息。在一个实施方式中,初始值7761可以基于以下唯一属性:
1)SHA-2计算的原始文件的散列值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)软件用于当前控制原始文件和相关元数据的区块链网络成员ID
区块链中的其他块7782到778N也具有头部、文件和值。然而,与第一块7721不同,其他块中的头部7722至772N中的每一个包括紧接之前块的散列值。紧接之前块的散列值可以只是先前块的头部的散列,或者可以是整个先前块的散列值。如箭头780所示,通过在每个剩余块中包括之前块的散列值,可以逐个块地执行从第N个块回到创世块(以及相关联的原始文件)的跟踪,以建立可审计的和不可变的监管链。
其他块中的头部7722至772N中的每一个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或总体上与相对应的文件和/或区块链相关联的其他参数或信息。
其他块中的文件7742至774N可以等于原始文件,或者可以是创世块中原始文件的修改版本,这取决于例如所执行的处理类型。执行的处理类型可能因块而异。该处理可以涉及例如对之前块中的文件的任何修改,诸如编辑信息或者以其他方式改变文件的内容、从文件中获取信息或者向文件添加或附接信息。
附加地或者可替换地,该处理可以仅涉及从之前块复制文件、改变文件的存储位置、分析来自一个或多个之前块的文件、将文件从一个存储或存储器位置移动到另一存储或存储器位置、或者相对于区块链的文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如附接、包括或以其他方式关联各种分析、统计或与文件相关联的其他信息。
其他块7762至776N中的每一个块中的值是唯一值,并且作为所执行的处理的结果而全部是不同的。例如,任何一个块中的值对应于先前块中值的更新版本。更新反映在值被分配到的块的散列中。因此,块的值提供了块中执行了什么处理的指示,并且还允许通过区块链回到原始文件的追踪。此追踪确认了整个区块链中的文件的监管链。
例如,考虑先前块中的文件的部分被编辑、屏蔽(blocked out)或像素化(pixelated)以保护文件中示出的个人的身份的情况。在这种情况下,包括经编辑的文件的块将包括与经编辑的文件相关联的元数据,例如,如何执行编辑、谁执行编辑、(多个)编辑发生的时间戳等。可以对元数据进行散列以形成值。因为该块的元数据不同于被散列以形成先前块中的值的信息,所以这些值彼此不同,并且可以在解密时被恢复。
在一个实施例中,当出现以下中的任何一个或多个时,可以更新先前块的值(例如,所计算的新的散列值),以形成当前块的值。在该示例实施例中,可以通过散列下面提到的信息中的全部或部分来计算新的散列值。
a)在如果文件已经以任何方式处理过(例如,如果文件被编辑、复制、改变、访问或采取了一些其他动作)的情况下的新的SHA-2计算的散列值;
b)文件的新的存储位置;
c)与文件相关联的新的元数据;
d)将文件的访问或控制从一个区块链参与方传送到另一区块链参与方。
图7D示出了根据一个实施例的可以表示区块链790中的块的结构的块的实施例。块Blocki包括头部772i、文件774i和值776i。
头部772i包括先前块Blocki-1的散列值和附加参考信息,该附加参考信息例如可以是在本文讨论的任何类型的信息(例如,包括参考、特性、参数等的头部信息)。所有块引用先前块的散列,当然,除了创世块。先前块的散列值可以仅仅是先前块中的头部的散列,或者是先前块中包括文件和元数据的信息中的全部或部分的散列。
文件774i有序地包括多个数据,诸如数据1、数据2、…、数据N。数据用描述内容和/或与数据相关联的特性的元数据Metadata 1、Metadata 2、…、Metadata N来标记。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示数据中描绘的个人或其他内容的关键字、和/或可能有助于整体上建立文件的有效性和内容的其他特征(并且特别是其使用数字证据)的信息,例如,如结合下面讨论的实施例所描述的。除了元数据之外,每个数据可以用对先前的数据的引用REF1、REF2、……、REFN来标记,以防止篡改、文件中的间隙以及通过文件的有序引用。
一旦元数据被分配给数据(例如,通过智能合同),元数据就不能在没有散列改变的情况下被变更,其可以被容易地被标识为无效。因此,元数据创建了信息的数据日志,该信息的数据日志可以被访问以供区块链中的参与方使用。
值776i是散列值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的块Blocki,该块的值可以被更新以反映对该块执行的处理,例如,新的散列值、新的存储位置、相关联文件的新的元数据、控制或访问的传送、标识符或要添加的其他动作或信息。尽管每个块中的值被示为与文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链770,在任何时间点,就可以通过向区块链查询块上的值的交易历史来获得文件的不可变的监管链。该查询或跟踪过程可以从解密最近包含的块(例如,最后(第N个)块)的值开始,然后继续解密其他块的值,直到到达创世块并且恢复原始文件。解密还可以包括在每个块处解密头部和文件以及相关联的元数据。
解密是基于每个块中发生的加密的类型来执行的。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用不对称加密时,区块链参与方或网络中的处理器可以使用预定算法生成公钥和私钥对。公钥和私钥通过一些数学关系相互关联。公钥可以被公开地分发以用作用于从其他用户接收消息的地址,例如,IP地址或归属地址(home address)。私钥是保密的,并且用于对发送给其他区块链参与方的消息进行数字签名。签名被包括在消息中,使得接收方可以使用发送方的公钥进行核实。这样,接收方可以确定只有发送方可以发送此消息。
生成密钥对可能类似于在区块链上创建帐户,但实际上不需要在任何地方注册。此外,在区块链上执行的每个交易由发送方使用其私钥进行数字签名。该签名确保只有帐户的所有者才能跟踪和处理(如果在智能合同确定的许可范围内的情况下)区块链的文件。
图8A和图8B示出了区块链的用例的另外的示例,这些示例可以在本文被合并和使用。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量的历史数据(或训练数据)来建立预测模型,以便对新数据进行准确预测。机器学习软件(例如,神经网络等)经常可以筛选数百万条记录来发掘非直觉模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测性监控的机器学习模型。这里,主机平台820可以是云平台、工业服务器、网络服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或装备等),诸如飞机、机车、涡轮机、医疗机械和装备、石油和天然气装备、船只、轮船、车辆等。作为另一示例,资产830可以是诸如股票、货币、数字硬币、保险等非有形资产。
区块链810可用于显著改善机器学习模型的训练过程802和基于训练的机器学习模型的预测过程804。例如,在802中,历史数据可以由资产830自己(或通过中介,未示出)存储在区块链810上,而不是要求数据科学家/工程师或其他用户收集数据。这可以显著减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合同,数据可以直接和可靠地从其原产地直接传送到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合同可以将来自资产的数据直接发送给使用该数据来构建机器学习模型的个体。这允许在资产830之间共享数据。
所收集的数据可以基于共识机制存储在区块链810中。共识机制引入(许可的节点)以确保记录的数据是经过核实的和准确的。记录的数据带有时间戳、加密签名并且不可变。因此,它是可审计的、透明的和安全的。在某些情况下,添加直接写入区块链的IoT设备(如供应链、医疗保健、物流等),提高了记录数据的频率和准确性。
此外,在所收集的数据上对机器学习模型的训练可以由主机平台820进行多轮细化和测试。每一轮都可以基于附加的数据或先前没有考虑过的数据来帮助扩展机器学习模型的知识。在802中,不同的训练和测试步骤(以及与之相关联的数据)可以由主机平台820存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的改变)可以存储在区块链810上。这提供了如何训练模型以及用什么数据训练模型的可核实的证据。此外,当主机平台820已经获得最终训练的模型时,结果模型可以存储在区块链810上。
在模型已经被训练之后,它可以被部署到现场环境中,在那里其可以基于最终训练的机器学习模型的执行来做出预测/决策。例如,在804中,机器学习模型可用于诸如飞机、风力涡轮机、医疗保健机器等的资产的基于状态的维护(condition-basedmaintenance,CBM)。在该示例中,从资产830反馈回的数据可以被输入到机器学习模型中,并用于进行事件预测,诸如故障事件、错误代码等。由主机平台820处的机器学习模型的执行做出的确定可以存储在区块链810上,以提供可审计/可核实的证明。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来故障/故障,并创建警报或通知来替换该部分。该决定背后的数据可以由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以发生在区块链810上或相对于该区块链810发生。
区块链的新交易可以被一起收集到新块中,并被添加到现有的散列值中。然后对其进行加密,为该新块创建新的散列。当其被加密时,将被添加到下一个交易列表中,依此类推。结果是块的链,每个块都包含所有之前块的散列值。存储这些块的计算机定期比较它们的散列值,以确保它们都一致。任何不一致的计算机都会丢弃导致问题的记录。这种方法有利于确保区块链的防篡改性,但并不完美。
操纵(game)这个系统的一个方法是让不诚实的用户改变对他们有利的交易列表,但是保持散列不变。这可以通过暴力来实现,换句话说,通过改变记录,加密结果,并查看散列值是否相同。如果没有,则一次又一次地尝试,直到找到匹配的散列。区块链的安全性基于这样一种信念,即普通计算机只能在完全不切实际的时间尺度上执行这种暴力攻击,诸如宇宙的年龄。相比之下,量子计算机要快得多(快1000倍),因此构成了更大的威胁。
图8B示出了量子安全区块链852的示例850,其实现量子密钥分发(quantum keydistribution,QKD)以保护免受量子计算攻击。在该示例中,区块链用户可以使用QKD核实彼此的身份。这使用量子粒子(诸如光子)发送信息,窃听者不破坏这些信息就无法复制它们。这样,通过区块链的发送方和接收方可以确定彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户可以在他们之间共享秘密密钥862(即,QKD)。因为在该示例中有四个节点,所以存在六对节点,因此使用了六个不同的秘密密钥862,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对都可以通过使用量子粒子(诸如光子)发送信息来创建QKD,窃听者在不破坏这些信息的情况下无法复制它们。这样,一对用户可以确定彼此的身份。
区块链852的操作基于两个过程(i)创建交易,和(ii)构建聚集新交易的块。可以类似于传统区块链网络创建新交易。每个交易可以包含关于发送方、接收方、创建时间、要传送的量(或值)、证明发送方拥有操作资金的参考交易列表等的信息。该交易记录然后被发送到所有其他节点,在那里其被输入到未确认交易的池中。这里,双方(即来自854-860当中的一对用户)通过提供他们的共享秘密密钥862(QKD)来认证交易。此量子签名可以附加到每个交易中,使得篡改变得非常困难。每个节点针对区块链852的本地副本检查它们的条目,以核实每个交易都有足够的资金。然而,交易尚未得到确认。
可以使用广播协议以分散式方式创建块,而不是对块执行传统的挖掘过程。在预定的时间段(例如,秒、分、小时等)网络可以将广播协议应用于任何未确认的交易,从而获得关于交易的正确版本的拜占庭协议(Byzantine agreement)(共识)。例如,每个节点可以拥有私有值(该特定节点的交易数据)。在第一轮中,节点将它们的私有值传输给彼此。在随后的轮次中,节点传达它们在前一轮中从其他节点接收到的信息。这里,诚实的节点能够在新块中创建一组完整的交易。这个新块可以添加到区块链852中。在一个实施例中,本文描述和/或描绘的特征和/或动作可以发生在区块链852上或相对于该区块链852发生。
图9示出了支持在本文描述和/或描绘的一个或多个示例实施例的示例系统900。系统900包括计算机系统/服务器902,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器902一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境等。
计算机系统/服务器902可以在由计算机系统执行的计算机系统可执行指令的一般上下文中描述,诸如程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备来执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906以及将包括系统存储器906的各种系统组件耦合到处理器904的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器902典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器902访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902可以进一步包括其他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统914可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器906可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块918的程序/实用工具916,可以存储在例如存储器906中,这样的程序模块918包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块918通常执行本申请所描述的各实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)的形式或结合软件和硬件方面的实施例,它们在本文中可以统称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有包含在其上的计算机可读程序代码。
计算机系统/服务器902也可以与一个或多个外部设备920(例如键盘、指向设备、显示器922等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器902交互的设备通信,和/或与使得该计算机系统/服务器902能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口924进行。并且,计算机系统/服务器902还可以通过网络适配器926与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器926通过总线与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器902使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例已经在附图中示出并在前面的具体实施方式中描述,但是应当理解,本申请不限于所公开的实施例,而是能够进行由所附权利要求所阐述和定义的许多重新布置、修改和替换。例如,各种图的系统的能力可以由本文描述的一个或多个模块或组件来执行,或者在分布式体系结构中执行,并且可以包括发送器、接收器或两者的对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个执行。此外,本文描述的功能可以在模块或组件内部或外部的不同时间以及与不同事件相关地执行。此外,在各种模块之间发送的信息可以经由数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备中的至少一个和/或经由多个协议在模块之间发送。此外,由任何模块发送或接收的消息可以直接和/或经由一个或多个其他模块发送或接收。
本领域技术人员将会理解,“系统”可以被实现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能手机或任何其他合适的计算设备,或者设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以符合计算技术的本地化和分布式形式来实现。
应当注意,本说明书中描述的一些系统特征已经被呈现为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(VLSI)电路或门阵列、现成半导体(诸如逻辑芯片、晶体管或其他分立元件)。模块也可以在可编程硬件设备中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等。
模块也可以至少部分地在软件中实现,用于由各种类型的处理器执行。可执行代码的标识单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或功能。然而,标识的模块的可执行程序不需要物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令在逻辑上结合在一起时,构成该模块并实现该模块的所述目的。此外,模块可以存储在计算机可读介质上,该介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或许多指令,甚至可以分布在几个不同的代码段上、分布在不同的程序中以及分布在几个存储设备中。类似地,操作数据在本文可以在模块中被标识和图示,并且可以以任何合适的形式被体现,并且被组织在任何合适类型的数据结构中。操作数据可以作为单个数据集来收集,或者可以分布在不同的位置,包括分布在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。
很容易理解,如这里的附图中一般描述和示出的,本申请的组件可以以多种不同的配置来布置和设计。因此,实施例的详细描述并不旨在限制所要求保护的应用的范围,而是仅仅代表所选择的应用实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或不同于所公开的配置的硬件元件来实践上述内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说,某些修改、变化和替代结构将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是说明性的,并且当考虑到其全部范围的等同物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求来限定。
Claims (19)
1.一种计算系统,包括:
存储器,被配置为存储预定义图像;和
处理器,被配置为将要存储在区块链上的数据属性编码到所述预定义图像的一个或多个图像层中以生成编码图像,并生成包括所述编码图像的数据块,所述编码图像包括编码到所述一个或多个图像层中的数据属性,
其中,所述处理器还被配置为经由数据块的散列链接的链将所述数据块存储在所述存储器的分布式分类账上。
2.根据权利要求1所述的计算系统,其中,所述处理器被配置为将第一数据属性编码到所述预定义图像的第一图像层中,并将第二数据属性编码到所述预定义图像的第二图像层中。
3.根据权利要求2所述的计算系统,其中,所述第一图像层包括与所述第二图像层不同的解码机制。
4.根据权利要求1所述的计算系统,其中,所述处理器被配置为将存储第一编码数据属性的第一图像层覆盖在存储第二编码数据属性的第二图像层之上,以生成所述编码图像。
5.根据权利要求1所述的计算系统,其中,所述预定义图像包括青色、品红色、黄色和黑色CMYK图像格式,所述图像格式包括至少四个不同的图像层。
6.根据权利要求1所述的计算系统,其中,所述处理器被配置为将用于存储在所述区块链上的数据属性转码成所述预定义图像的图像层内的一组像素,以生成所述编码图像。
7.根据权利要求1所述的计算系统,其中,所述处理器还被配置为将指针编码到所述编码图像中,所述指针指向在所述分布式分类账上的块的散列链接的链当中的先前块中存储的先前预定义图像。
8.根据权利要求1所述的计算系统,其中,所述处理器还被配置为确定,在经由数据块的散列链接的链存储所述数据块之前,所生成的数据块已经被所述区块链的至少一个对等节点背书。
9.一种方法,包括:
从存储器中检索预定义图像;
将要存储在区块链上的数据属性编码到所述预定义图像的一个或多个图像层中,以生成编码图像;
生成包括所述编码图像的数据块,所述编码图像包括编码到所述一个或多个图像层中的数据属性;以及
经由数据块的散列链接的链来将所述数据块存储到分布式分类账上。
10.根据权利要求9所述的方法,其中,所述编码包括将第一数据属性编码到所述预定义图像的第一图像层中,并将第二数据属性编码到所述预定义图像的第二图像层中。
11.根据权利要求10所述的方法,其中,所述第一图像层包括与所述第二图像层不同的解码机制。
12.根据权利要求9所述的方法,其中,所述编码包括将存储第一编码数据属性的第一图像层覆盖在存储第二编码数据属性的第二图像层之上,以生成所述编码图像。
13.根据权利要求9所述的方法,其中,所述预定义图像包括青色、品红色、黄色和黑色CMYK图像格式,所述图像格式包括至少四个不同的图像层。
14.根据权利要求9所述的方法,其中,所述编码包括将用于存储在所述区块链上的数据属性转码成所述预定义图像的图像层内的一组像素,以生成所述编码图像。
15.根据权利要求9所述的方法,其中,所述编码还包括将指针编码到所述编码图像中,所述指针指向在所述分布式分类账上的块的散列链接的链当中的先前块中存储的先前预定义图像。
16.根据权利要求9所述的方法,还包括确定,在经由数据块的散列链接的链存储所述数据块之前,所生成的数据块已经被所述区块链的至少一个对等节点背书。
17.一种包括指令的非暂时性计算机可读介质,当所述指令被处理器读取时,使得所述处理器执行根据权利要求9-16中任一项所述的方法。
18.一种计算机系统,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令在由所述一个或多个处理器执行时执行根据权利要求9-16中任一项所述的方法。
19.一种系统,所述系统包括分别用于执行根据权利要求9-16中任一项所述的方法的步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/401,586 | 2019-05-02 | ||
US16/401,586 US11201726B2 (en) | 2019-05-02 | 2019-05-02 | Multi-layered image encoding for data block |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881206A true CN111881206A (zh) | 2020-11-03 |
CN111881206B CN111881206B (zh) | 2024-07-23 |
Family
ID=73017696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337521.1A Active CN111881206B (zh) | 2019-05-02 | 2020-04-26 | 用于数据块的多层图像编码 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11201726B2 (zh) |
CN (1) | CN111881206B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11606442B2 (en) | 2019-06-07 | 2023-03-14 | Microsoft Technology Licensing, Llc | Subscription to edits of blockchain transaction |
US11562081B2 (en) | 2019-06-24 | 2023-01-24 | Quantum Properties Technology Llc | Method and system for controlling access to secure data using custodial key data |
US11108550B1 (en) * | 2019-06-24 | 2021-08-31 | Daniel M. Esbensen | Method and system for highly secured network communication using quantum technologies |
US11341254B2 (en) | 2019-06-24 | 2022-05-24 | Quantum Properties Technology Llc | Method and system for securing data using random bits |
US11115804B2 (en) * | 2019-10-04 | 2021-09-07 | Microsoft Technology Licensing, Llc | Subscription to dependencies in smart contracts |
US11838400B2 (en) * | 2019-11-19 | 2023-12-05 | International Business Machines Corporation | Image encoding for blockchain |
US11537728B1 (en) | 2020-01-26 | 2022-12-27 | Quantum Properties Technology Llc | Method and system for securing data using random bits and encoded key data |
US11556517B2 (en) * | 2020-05-17 | 2023-01-17 | International Business Machines Corporation | Blockchain maintenance |
US20220247871A1 (en) * | 2021-02-02 | 2022-08-04 | Kyocera Document Solutions Inc. | Imaging device configured to process entries in a distributed ledger |
US11989266B2 (en) * | 2021-06-15 | 2024-05-21 | Richard Banh | Method for authenticating digital content items with blockchain and writing digital content items data to blockchain |
US12118755B2 (en) * | 2021-12-07 | 2024-10-15 | International Business Machines Corporation | Stochastic compression of raster data |
US20230421570A1 (en) * | 2022-06-27 | 2023-12-28 | Unstoppable Domains, Inc. | Accessing data on a blockchain with proof of data verification |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN108345685A (zh) * | 2018-03-07 | 2018-07-31 | 物数(上海)信息科技有限公司 | 区块链下的多粒度数据处理方法、系统、设备及存储介质 |
CN108681760A (zh) * | 2018-05-15 | 2018-10-19 | 浙江鲸腾网络科技有限公司 | 数据发送方法、接收方法及装置 |
CN108965299A (zh) * | 2018-07-19 | 2018-12-07 | 清华大学 | 一种数据访问方法、访问验证设备及数据存储系统 |
US10250394B1 (en) * | 2018-09-20 | 2019-04-02 | Accenture Global Solutions Limited | Cryptologic self-executing blockchain export commitment |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628300B2 (en) * | 2001-11-30 | 2003-09-30 | International Business Machines Corporation | Transcoding proxy and method for transcoding encoded streams |
JP2010050760A (ja) | 2008-08-22 | 2010-03-04 | Hitachi Ltd | コンテンツ保護装置、および、コンテンツ利用装置 |
US9608829B2 (en) | 2014-07-25 | 2017-03-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
WO2016164496A1 (en) * | 2015-04-06 | 2016-10-13 | Bitmark, Inc. | System and method for decentralized title recordation and authentication |
US11494761B2 (en) * | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US10046228B2 (en) * | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
WO2018039722A1 (en) | 2016-08-30 | 2018-03-08 | Commonwealth Scientific And Industrial Research Organisation | Dynamic access control on blockchain |
IT201700044505A1 (it) | 2017-04-21 | 2018-10-21 | Accenture Global Solutions Ltd | Sicurezza dei dati selettivi nel settore di memorizzazione dei dati |
CN108323232B (zh) | 2017-05-16 | 2020-01-24 | 北京大学深圳研究生院 | 一种多层级区块链系统之间索引与链拓扑结构的维护方法 |
EP3695379A4 (en) * | 2017-10-09 | 2021-07-07 | Great Masters Art Authentication, LLC | SYSTEMS AND PROCEDURES FOR IDENTIFICATION AND AUTHENTICATION OF ARTISTIC WORK |
US10348726B2 (en) * | 2017-10-10 | 2019-07-09 | Laurie Cal Llc | Online identity verification platform and process |
US11244316B2 (en) * | 2018-06-07 | 2022-02-08 | International Business Machines Corporation | Biometric token for blockchain |
-
2019
- 2019-05-02 US US16/401,586 patent/US11201726B2/en active Active
-
2020
- 2020-04-26 CN CN202010337521.1A patent/CN111881206B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426170A (zh) * | 2017-05-24 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN108345685A (zh) * | 2018-03-07 | 2018-07-31 | 物数(上海)信息科技有限公司 | 区块链下的多粒度数据处理方法、系统、设备及存储介质 |
CN108681760A (zh) * | 2018-05-15 | 2018-10-19 | 浙江鲸腾网络科技有限公司 | 数据发送方法、接收方法及装置 |
CN108965299A (zh) * | 2018-07-19 | 2018-12-07 | 清华大学 | 一种数据访问方法、访问验证设备及数据存储系统 |
US10250394B1 (en) * | 2018-09-20 | 2019-04-02 | Accenture Global Solutions Limited | Cryptologic self-executing blockchain export commitment |
Also Published As
Publication number | Publication date |
---|---|
CN111881206B (zh) | 2024-07-23 |
US11201726B2 (en) | 2021-12-14 |
US20200351075A1 (en) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881206B (zh) | 用于数据块的多层图像编码 | |
US11349637B2 (en) | Random node selection for permissioned blockchain | |
CN111951003A (zh) | 用于管理对用户数据的同意的认知系统 | |
AU2021254870B2 (en) | Faster view change for blockchain | |
CN114128214B (zh) | 用于配置区块链的安全层 | |
CN114450708B (zh) | 基于现有链码的链码推荐 | |
CN115211093A (zh) | 数据对象的有效阈值存储 | |
US11838400B2 (en) | Image encoding for blockchain | |
US11379472B2 (en) | Schema-based pruning of blockchain data | |
CN111881109B (zh) | 数据库可合并分类账 | |
CN112241919A (zh) | 具有数据流控制的多域区块链网络 | |
CN116941265A (zh) | 区块链网络身份管理使用ssi | |
CN115004625A (zh) | 用于区块链分类账的索引结构 | |
US11856092B2 (en) | Limiting data availability on distributed ledger | |
CN115943411A (zh) | 用于保护数据的噪声交易 | |
US20230208638A1 (en) | Future asset reclamation via blockchain | |
CN112052474A (zh) | 蓝光拷贝服务 | |
CN116438776A (zh) | 区块链网络中通过伪随机函数的密钥回收 | |
CN116361823A (zh) | 用于隐私保护的区块链的选择性审计处理 | |
CN117999566A (zh) | 隐私保护状态引用 | |
US11683185B2 (en) | Entity certification management | |
CN114981773A (zh) | 无冲突版本控制 | |
WO2023046409A1 (en) | Digital asset platform with hsm verification | |
WO2022057451A1 (en) | Threshold encryption for broadcast content | |
CN116529723A (zh) | Dlt网络的自动合并 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |