CN111831740A - 对等体的同步 - Google Patents
对等体的同步 Download PDFInfo
- Publication number
- CN111831740A CN111831740A CN202010297858.4A CN202010297858A CN111831740A CN 111831740 A CN111831740 A CN 111831740A CN 202010297858 A CN202010297858 A CN 202010297858A CN 111831740 A CN111831740 A CN 111831740A
- Authority
- CN
- China
- Prior art keywords
- transaction
- blockchain
- smart contract
- hash
- peer
- 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
- 238000000034 method Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 230000004044 response Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 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
- 230000009286 beneficial effect Effects 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
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
- G06F16/1837—Management specially adapted to peer-to-peer storage networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及对等体的同步。示例操作可以包括以下各项中的一项或多项:对等体基于多个智能合约中的所选择的智能合约从区块链中选择区块,对等体请求与所选择的智能合约相关联的交易,对等体确认所接收到的与所选择的智能合约相关联的交易属于所选择的区块,对等体验证已接收到与所选择的智能合约相关联的所有请求的交易,并且对等体基于所接收到的交易同步所选择的智能合约。
Description
技术领域
本申请一般地涉及数据库存储系统,并且更特定地,涉及对等体的同步。
背景技术
集中式数据库在一个位置处的单个数据库(例如,数据库服务器)中存储和维护数据。该位置通常是中央计算机,例如,台式中央处理单元(CPU)、服务器CPU或大型计算机。通常可以从多个不同的点访问存储在集中式数据库上的信息。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。集中式数据库由于其单个位置而易于管理、维护和控制,特别是出于安全目的。在集中式数据库内,数据冗余最小化,因为所有数据的单个存储位置还意味着给定的一组数据只有一个主记录。
然而,集中式数据库遭受重大缺陷。例如,集中式数据库具有单点故障。特别地,如果没有容错考虑并且发生故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都会丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。因此,连接越慢,每次数据库访问所需的时间量就会增加。另一个缺陷是当集中式数据库由于单个位置而经历高流量时,会出现瓶颈。此外,由于数据库仅维护数据的一个副本,因此集中式数据库提供对数据的有限访问。因此,多个设备无法在不产生重大的问题或覆盖已存储数据的风险的情况下同时访问同一块数据。此外,由于数据库存储系统具有最小的数据冗余甚至没有数据冗余,因此除了通过手动操作从备份存储装置中检索之外,很难检索意外丢失的数据。
因此,需要一种克服这些缺陷和限制的基于区块链的解决方案。通用区块链平台可以由对等体的动态网络运行。可能在不确定的时间段添加、移除或暂停对等体。因此,对于处理交易的每个对等体来说,赶上区块链的当前状态是强制的。
因此,对于区块链网络可能期望一种用于在保持相同的安全保证的同时快速同步对等体的优化方法。
发明内容
一个示例实施例提供了一种系统,该系统包括处理器和存储器,其中,处理器被配置为执行以下各项中的一个或多个:基于多个智能合约中的所选择的智能合约从区块链中选择区块,请求与所选择的智能合约相关联的交易,确认所接收到的与所选择的智能合约相关联的交易属于所选择的区块,验证已接收到与所选择的智能合约相关联的所有请求的交易,并且基于所接收到的交易同步所选择的智能合约。
另一示例实施例提供了一种方法,该方法包括以下各项中的一个或多个:由对等体基于多个智能合约中的所选择的智能合约从区块链中选择区块,由对等体请求与所选择的智能合约相关联的交易,由对等体确认所接收到的与所选择的智能合约相关联的交易属于所选择的区块,由对等体验证已接收到与所选择的智能合约相关联的所有请求的交易,并且由对等体基于所接收到的交易同步所选择的智能合约。
另一示例实施例提供了一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括指令,该指令当被处理器读取时,使处理器执行以下各项中的一个或多个:基于多个智能合约中的所选择的智能合约从区块链中选择区块,请求与所选择的智能合约相关联的交易,确认所接收到的与所选择的智能合约相关联的交易属于所选择的区块,验证已接收到与所选择的智能合约相关联的所有请求的交易,并且基于所接收到的交易同步所选择的智能合约。
附图说明
图1示出了根据示例实施例的包括数据库的系统的网络图。
图2A示出了根据示例实施例的示例区块链体系结构配置。
图2B示出了根据示例实施例的区块链交易流程。
图3A示出了根据示例实施例的许可网络。
图3B示出了根据示例实施例的另一许可网络。
图4A示出了根据示例实施例的流程图。
图4B示出了根据示例实施例的又一流程图。
图5A示出了根据示例实施例的被配置为执行本文所述的一个或多个操作的示例系统。
图5B示出了根据示例实施例的被配置为执行本文所述的一个或多个操作的另一示例系统。
图5C示出了根据示例实施例的被配置为利用智能合约的又一示例系统。
图5D示出了根据示例实施例的被配置为利用区块链的又一示例系统。
图6A示出了根据示例实施例的用于将新区块添加到分布式账本的过程。
图6B示出了根据示例实施例的新数据区块的内容。
图6C示出了根据示例实施例的用于数字内容的区块链。
图6D示出了根据示例实施例的可以表示区块链中的区块结构的区块。
图7示出了支持示例实施例中的一个或多个示例实施例的示例系统。
具体实施方式
将容易理解,如本文的附图中一般性描述和示出的,本组件可以以各种各样不同的配置来布置和设计。因此,如附图所示,对方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制如要求保护的本申请的范围,而仅仅是代表所选实施例。
可以在一个或多个实施例中以任何合适的方式组合或移除如贯穿本说明书描述的即时特征、结构或特性。例如,贯穿本说明书,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指结合该实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书,短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部是指同一组实施例,并且在一个或多个实施例中,可以以任何合适的方式组合或移除所描述的特征、结构或特性。
另外,尽管在实施例的描述中可能已经使用术语“消息”,但是可以将本申请应用于多种类型的网络和数据。此外,尽管在示例性实施例中可能描绘了某些类型的连接、消息和信令,但是本申请不限于某一类型的连接、消息和信令。
示例实施例提供了方法、系统、组件、非暂时性计算机可读介质、设备和/或网络,其提供区块链网络中的对等体的同步。
在一个实施例中,本申请利用去中心化数据库(诸如区块链),该去中心化数据库是包括彼此通信的多个节点的分布式存储系统。去中心化数据库包括类似于分布式账本的仅可追加的不可变数据结构,该不可变数据结构能够维护互不信任的各方之间的记录。不信任的各方在本文中被称为对等体或对等节点。每个对等体维护数据库记录的副本,并且在分布式对等体之间未达成共识的情况下,单个对等体不可以修改数据库记录。例如,对等体可以执行共识协议以验证区块链存储交易,将存储交易分组为区块,并在这些区块上构建哈希链。为了一致性,该过程通过对存储交易进行必要的排序来形成账本(ledger)。在各种实施例中,可以使用许可的和/或无需许可的(permissionless)区块链。在公共或无需许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本地加密货币,并使用基于各种协议(诸如工作量证明(PoW))的共识。另一方面,许可的区块链数据库在一组实体之间提供安全的交互,该组实体共享共同目标但彼此之间并不完全信任,诸如交换资金、商品、信息等的企业。
本申请可以利用区块链,该区块链操作任意的可编程逻辑,该可编程逻辑针对去中心化存储方案被定制,并被称为“智能合约”或“链码”。在一些情况下,可能存在用于管理功能和参数的专用链码,其被称为系统链码。本申请还可以利用智能合约,这些智能合约是受信任的分布式应用,这些分布式应用利用区块链数据库的防篡改属性和节点之间的被称为背书或背书策略的底层协议。与该应用相关联的区块链交易可以在被提交给区块链之前被“背书”,而未被背书的交易则被忽略。背书策略允许链码以背书所必需的一组对等节点的形式来指定交易的背书者。当客户端将交易发送给背书策略中指定的对等体时,交易被执行以验证交易。在验证之后,交易进入排序阶段,在排序阶段中,使用共识协议来产生被分组为区块的已被背书的交易的已排序的序列。
本申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可以在同一物理服务器上运行的意义上,“节点”可以执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如客户端或提交客户端节点,其向背书者(例如,对等体)提交交易调用,并且将交易提议广播到排序服务(例如,排序节点)。另一类型的节点是对等节点,其可以接收客户端提交的交易、提交交易并维护区块链交易的账本的状态和副本。尽管不是必需的,但是对等体也可以具有背书者的角色。排序服务节点或排序者是针对所有节点运行通信服务的节点,并且该节点实现递送保证,诸如在提交交易和修改区块链的世界状态时向系统中的每个对等节点广播,其是通常包含控制和设置信息的初始区块链交易的另一个名称。
该申请可以利用账本,账本是区块链的所有状态转换的有序的、防篡改的记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,交易)引起。每个参与方(诸如对等节点)都可以维护账户的副本。交易可以导致一组资产键值对作为一个或多个操作数(诸如创建、更新、删除等)被提交给账本。账本包括用于将不可变的、有序的记录存储在区块中的区块链(也被称为链)。账本还包括维护区块链的当前状态的状态数据库。
该申请可以利用作为交易日志的链,其被构造为哈希链接的区块,并且每个区块包含N个交易的序列,其中N等于或大于1。区块头部包括该区块的交易的哈希,以及前一个区块的头部的哈希。以这种方式,账本上的所有交易都可以被排序并以加密的方式链接在一起。因此,在不破坏哈希链接的情况下不可能篡改账本数据。最近添加的区块链区块的哈希(hash)表示在它之前已发生的链上的每个交易,使得可以确保所有对等节点处于一致且可信的状态。该链可以被存储在对等节点文件系统(即,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅可追加性质。
不可变账本的当前状态表示链交易日志中包括的所有键的最新值。由于当前状态表示通道已知的最新键值,因此有时它被称为世界状态。链码调用针对账本的当前状态数据执行交易。为了使这些链码交互有效,可以将键的最新值存储在状态数据库中。状态数据库可能仅仅是链的交易日志的索引视图,因此它可以随时从链中重新生成。一旦对等节点启动并且在接受交易之前,可以自动恢复(或如有需要时生成)状态数据库。
本文描述和描绘的本解决方案的一些益处包括用于区块链网络中的对等体的同步的方法和系统。示例性实施例通过扩展数据库的特征(诸如不可变性、数字签名和作为单一事实来源)来解决了时间和信任的问题。示例性实施例提供了用于基于区块链的网络中的对等体的同步的解决方案。基于资产类型和基于智能合约管理资产的规则,区块链网络可以是同质的。
区块链与传统数据库的不同之处在于,区块链不是中心存储,而是去中心化的、不可变的和安全的存储,其中节点必须共享对存储中的记录的更改。区块链中固有的并且有助于实现区块链的一些属性包括但不限于不可变账本、智能合约、安全性、隐私、去中心化、共识、背书、可访问性等,本文将对其进一步进行描述。根据各种方面,由于区块链固有的和唯一的不可变责任、安全性、隐私、许可的去中心化、智能合约的可用性、背书和可访问性,实现了用于区块链网络中的对等体的同步的系统。特别地,区块链账本数据是不可变的,并且提供用于区块链网络中的对等体的同步的有效方法。此外,在区块链中加密的使用提供了安全性并构建信任。智能合约管理资产的状态以完成生命周期。示例区块链是许可去中心化的。因此,每个终端用户都可以具有他自己的账本副本以进行访问。多个组织(和对等体)可以加入到区块链网络上。关键组织可以充当背书对等体,以验证智能合约执行结果、读集合和写集合。换句话说,区块链的固有特征提供了用于对等体的同步的方法的有效实现。
示例实施例的益处之一是,它通过实现用于基于区块链的系统中的对等体的同步的方法来改善计算系统的功能。通过本文所述的区块链系统,计算系统可以通过提供对诸如分布式账本、对等体、加密技术、MSP、事件处理等之类的能力的访问,来执行区块链网络中的对等体的同步的功能。此外,区块链使得能够创建业务网络并让任何用户或组织在链上(on-board)参与。因此,区块链不仅仅是数据库。区块链具有创建用户和链上/链外(off-board)组织的业务网络以用来以智能合约的形式协作和执行服务过程的能力。
示例实施例提供了相对于传统数据库的众多益处。例如,通过区块链,实施例提供了区块链固有和独特的不可变责任、安全性、隐私、许可的去中心化、智能合约的可用性、背书和可访问性。
同时,传统数据库不能被用于实现示例实施例,因为它没有将所有各方都带到业务网络上,它没有创建受信任的协作并且没有提供数字资产的有效存储。传统数据库不提供防篡改存储,并且不提供对正在被存储的数字资产的保护。因此,在传统数据库中无法实现用于区块链网络中对等体的同步的所提出的方法。
同时,如果使用传统数据库来实现示例实施例,则示例实施例将遭受不必要的缺陷,诸如搜索能力、缺乏安全性和缓慢的交易速度。附加地,用于区块链网络中的对等体的同步的自动化方法将根本不可能。
因此,示例实施例提供了针对区块链网络中的对等体的同步的技术/领域中的问题的具体解决方案。
示例实施例还改变了可以如何在区块链的区块结构内存储数据。例如,数字资产数据可以被安全地存储在数据区块的某个部分内(即,头部、数据段或元数据内)。通过将数字资产数据存储在区块链的数据区块内,可以通过哈希链接的区块的链将数字资产数据追加到不可变的区块链账本。在一些实施例中,数据区块可以通过使与数字资产相关联的个人数据不与资产一起存储在区块链的传统区块结构内而不同于传统数据区块。通过移除与数字资产相关联的个人数据,区块链可以基于不可变责任和安全性提供匿名性的益处。
根据示例性实施例,提供了一种优化的同步方法和系统,其中,对等体能够完全同步智能合约的子集(即交易的子集)。根据一个示例性实施例,确保了完全验证部分同步与区块的整个内容一致的能力。尽管区块链网络可能由多个对等体组成,但每个对等体也可能不需要维护所有智能合约的状态,即使在同一网络中存在多个账本(例如HyperledgerFabric中的通道)的情况下。因此,示例性的同步方法可以允许对等体仅维护与感兴趣的智能合约有关的数据(即,交易的有效载荷)以进行更快的同步,但是还可以减少对等体的存储需求。
尽管直到当前状态的检查点是一种好的技术,但是它并未考虑对等体可能只对减少数量的智能合约感兴趣。然而,检查点可以与示例性实施例结合使用以获得组合的益处。当区块链网络中的对等体对处理(甚至在同一账本上的)智能合约的子集的交易感兴趣时,示例性实施例可能是有益的。示例性实施例可以提供对等体的增量同步——即,基于优先级、可用性或按需同步智能合约——的支持。一个示例可以是同步智能合约c1,然后同步c2,依此类推。一般而言,任何同步都以对等体接收到区块头部开始,该区块头部可以包括该区块中包含的交易的哈希。优化的同步可以部分同步区块的内容,而不是一次同步区块的全部内容。当对等体接收到交易的子集时,对等体可能无法验证这些交易是否实际上被包括在区块中,因为区块头部可能仅包括整个交易列表的哈希。
示例性实施例使对等体能够验证实际上属于该区块的交易的子集。可以生成元组列表,以包括(当生成新区块时)该区块中包括的每个智能合约的交易的量。例如,元组可以是(智能合约_1,10个交易)、(智能合约_2,5个交易),等等。示例性实施例可以使用元组列表的哈希或从列表生成的Merkle树的根哈希。注意,如果每个区块上包括多个合约,则可以优先使用Merkle树。因此,区块头部可以具有以下字段:_blockNumber、_blockHash、_hashOfPreviousBlock、_rootHashOfTxsIncludedInBlock、_hashOfTxCountPerSmartcontract。
如果对等体接收到与感兴趣的(一个或多个)智能合约相关联的交易,则对等体可能无法验证内容,并且对等体可能诉诸盲目地信任提供内容的对等体。根据示例性实施例,每个智能合约的交易计数器可以被包括在区块内容中,并且该计数器的哈希可以被包括在区块头部中。然后,对等体能够确认所接收的交易子集(部分内容)对于所接收的区块确实有效。在一个实施例中,对等体可能需要计数器来验证已经接收到每个智能合约的所有交易。并且Merkle树的哈希(或区块内容的哈希_blockHash)用于验证每个交易确实被包括在区块中。
_hashOfPreviousBlock可以由对等体用来验证所接收到的交易的子集实际上属于该区块。_rootHashOfTxsIncludedInBlock是该区块内所有交易Tx1–TxN的哈希。_hashOfTxCountPerSmartcontract[(smart-contract1,|C1txs|),…,(smart-contractN,|CN txs|)]可以由对等体用来验证已接收到与给定智能合约相关联的所有交易(即,防止一些交易被忽略)。
根据一个实施例,对等体可以以安全的方式部分同步并且具有完全可操作的智能合约。一旦接收到区块头部,对等体就可以请求它感兴趣的智能合约的所有交易。作为结果提供的信息将包括交易列表和哈希树(Merkle树),其中树的根对应于rootHashOfTxsIncludedInBlock,并且仅包括与感兴趣的智能合约相关联的叶子。树的所有其余分支可以被预先计算。该Merkle树可以由对等体用来验证发送的任何交易实际上被包括在该区块中。如上所述,对等体可能需要用于对每个智能合约中的交易的数量进行计数的映射,来验证已接收到与给定智能合约相关联的所有交易(即,这防止了一些交易被忽略)。
图1示出了根据示例实施例的用于区块链网络中的对等体的同步的逻辑网络图。
参考图1,示例网络100包括连接到具有用于存储区块110的账本108的区块链106的(一个或多个)对等体102。尽管该示例仅详细描述了一个对等体102,但是多个这样的节点可以连接到区块链106。应当理解,对等体102可以包括附加组件,并且可以在不脱离本文所公开的对等体102的范围的情况下移除和/或修改这里描述的组件中的一些组件。对等体102可以是计算设备或服务器计算机等,并且可以包括处理器104,处理器104可以是基于半导体的微处理器、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或其他硬件设备。尽管描绘了了单个处理器104,但是应该理解,在不脱离对等体102系统的范围的情况下,对等体102可以包括多个处理器、多个核等。
对等体102还可以包括非暂时性计算机可读介质112,非暂时性计算机可读介质112可以具有存储在其上的可由处理器104执行的机器可读指令。机器可读指令的示例如114-122所示,并在下面进一步讨论。非暂时性计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁、光学或其他物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(RAM)、电可擦可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储设备。
处理器104可以获取、解码和执行机器可读指令114以基于多个智能合约中的所选择的智能合约来从区块链106中选择区块。如上所述,区块链账本108可以存储包括交易的(一个或多个)区块110。区块链106网络可以被配置为使用管理多个参与节点的交易的一个或多个智能合约。处理器104可以获取、解码和执行机器可读指令116以请求与所选择的智能合约相关联的交易。处理器104可以获取、解码和执行机器可读指令118以确认所接收到的与所选择的智能合约相关联的交易属于所选择的区块。处理器104可以获取、解码和执行机器可读指令120以验证已经接收到与所选择的智能合约相关联的所有所请求的交易。处理器104可以获取、解码和执行机器可读指令122以基于所接收到的交易来同步所选择的智能合约。因此,对等体102与区块链106的其他对等体同步。
图2A示出了根据示例实施例的区块链体系结构配置200。参考图2A,区块链体系结构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅以示例的方式描绘出)。这些节点参与了多个活动,诸如区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来对交易进行背书,并且可以为体系结构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证并寻求写入存储在区块链层216中的区块链不可变账本,该区块链不可变账本的副本还可以存储在基础物理基础设施214上。区块链配置可以包括一个或多个应用224,该一个或多个应用被链接到应用编程接口(API)222以访问和执行存储的程序/应用代码220(例如,链码、智能合约等),程序/应用代码220可以根据参与者寻求的定制配置来创建,并可以维护它们自己的状态,控制它们自己的资产,并接收外部信息。这可以被部署为交易,并且经由追加到分布式账本而被安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)的各个层,以及可用于接收和存储新交易并向寻求访问数据条目的审计者(auditor)提供访问的基础物理计算机基础设施。区块链层216可以暴露接口,该接口提供对处理程序代码和接合(engage)物理基础设施214所必需的虚拟执行环境的访问。密码信任服务218可以用于验证诸如资产交换交易之类的交易并保持信息私有。
图2A的区块链体系结构配置可以经由区块链平台212公开的一个或多个接口以及提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合约和具有受其执行约束的条件或其他代码元素的链码的形式执行。作为非限制性示例,可以创建智能合约以执行提醒、更新和/或受更改、更新等约束的其他通知。智能合约本身可以用于识别与授权和访问需求以及账本的使用相关联的规则。例如,所选择的智能合约信息226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理。结果228可以包括反映所选择的智能合约的同步交易的子集的数据区块。可以利用物理基础设施214来检索本文描述的任何数据或信息。
智能合约可以经由高级应用和编程语言被创建,然后被写入区块链中的区块。智能合约可以包括使用区块链(例如,区块链对等体的分布式网络)注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,该智能合约代码可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链账本状态的(一个或多个)受信任的修改。可以通过一个或多个共识协议在整个区块链对等体的分布式网络中自动复制由智能合约执行引起的对区块链账本的(一个或多个)修改。
智能合约可以以键值对的格式将数据写入区块链。此外,智能合约代码可以读取存储在区块链中的值,并将它们用于应用操作中。智能合约代码可以将各种逻辑操作的输出写入区块链。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公开的和/或可以被加密并被维护为私有。智能合约使用/生成的临时数据由所提供的执行环境保持在存储器中,然后一旦识别出区块链所需的数据,就被删除。
链码可以包括具有附加特征的智能合约的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,在计算网络上链码在共识过程期间由链验证器一起执行和验证。链码接收哈希,并从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希与从所存储的标识符模板数据创建的哈希匹配,则链码将授权密钥发送到所请求的服务。链码可以将与密码细节相关联的数据写入区块链。
图2B示出了根据示例实施例的区块链的节点之间的区块链交易流程250的示例。参考图2B,交易流程可以包括由应用客户端节点260发送到背书对等节点281的交易提议291。背书对等节点281可以验证客户端签名并执行链码功能以发起交易。输出可以包括链码结果、在链码中读取的一组键/值版本(读集合)和在链码中写入的一组键/值(写集合)。如果被批准,则提议响应292与背书签名一起被发送回客户端260。客户端260将背书组装到交易有效载荷293中,并将它广播到排序服务节点284。排序服务节点284然后将排序的交易作为区块递送给通道上的所有对等体281-283。在提交到区块链之前,每个对等体281-283可以验证交易。例如,对等体可以检查背书策略,以确保正确份额的指定对等体已经对结果进行了签名并针对交易有效载荷293认证了签名。
再次参考图2B,客户端节点260通过构造请求并将请求发送给作为背书者的对等节点281来发起交易291。客户端260可以包括利用支持的软件开发工具包(SDK)的应用,该应用利用可用的API来生成交易提议。该提议是调用链码功能的请求,使得可以将数据读取和/或写入账本(即,为资产写入新的键值对)。SDK可以充当填充程序(shim),以将交易提议打包为适当的体系结构格式(例如,远程过程调用(RPC)上的协议缓冲区),并采用客户端的密码凭证为交易提议产生唯一的签名。
作为响应,背书对等节点281可以验证(a)交易提议格式良好,(b)过去尚未提交该交易(重放-攻击保护),(c)签名有效,以及(d)提交者(在此示例中为客户端260)被适当授权以在该通道上执行提议的操作。背书对等节点281可以将交易提议输入作为调用的链码功能的参数。然后针对当前状态数据库执行链码,以产生包括响应值、读集合和写集合的交易结果。但是,此时尚未对账本进行更新。在292中,该组值以及背书对等节点281的签名作为提议响应292被传递回客户端260的SDK,该SDK解析用于让应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等体的签名,并比较提议响应以确定提议响应是否相同。如果链码仅查询账本,则应用将检查查询响应,并且通常不将交易提交至排序节点服务284。如果客户端应用打算将交易提交至排序节点服务284以更新账本,则应用在提交之前确定指定的背书策略是否已被实现(即,交易所需的所有对等体是否都对交易进行背书)。在此,客户端可以仅包括交易的多方之一。在这种情况下,每个客户端可能有它们自己的背书节点,并且每个背书节点都需要对交易进行背书。该体系结构使得即使应用选择不检查响应或以其他方式转发未被背书的交易,背书策略仍将由对等体强制执行并在提交验证阶段得到维持。
在成功检查之后,在步骤293中,客户端260将背书组装到交易中,并向排序节点284广播交易消息内的交易提议和响应。交易可以包含读/写集合,背书对等体的签名和通道ID。排序节点284不需要检查交易的全部内容以执行其操作,而是排序节点284可以仅从网络中的所有通道接收交易,按时间顺序按通道对它们进行排序,并创建每个通道的交易区块。
交易区块从排序节点284被递送到通道上的所有对等节点281-283。验证区块内的交易294,以确保满足任何背书策略,并确保自交易执行生成读集合以来,用于读集合变量的账本状态没有变化。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块追加到通道的链上,并且对于每个有效交易,将写集合提交给当前状态数据库。发出事件以通知客户端应用交易(调用)已被不可变地追加到链上,以及通知交易是经过验证的还是无效的。
图3A示出了许可的区块链网络300的示例,其特征是分布式的、去中心化的对等体系结构。在此示例中,区块链用户302可以发起针对许可的区块链304的交易。在此示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户侧应用、直接通过API等发布。网络可以向诸如审计者之类的监管者306提供访问。区块链网络运营商308管理成员许可,诸如将监管者306注册为“审计者”,并将区块链用户302注册为“客户”。审计者可能只限于查询账本,而客户可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可以编写链码和客户侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了将来自传统数据源312的凭证包括在链码中,开发者310可以使用带外连接来访问数据。在该示例中,区块链用户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使用到该数据的带外连接。
图4A示出了根据示例实施例的区块链网络中的对等体的同步的示例方法的流程图400。参考图4A,方法400可以包括以下描述的步骤中的一个或多个。
图4A示出了由对等体102(参见图1)执行的示例方法的流程图。应当理解,图4A中描绘的方法400可以包括附加操作,并且可以在不脱离方法400的范围的情况下移除和/或修改其中描述的操作中的一些操作。为了说明的目的,还参考图1中描绘的特征来进行方法400的描述。特别地,对等体102的处理器104可以执行方法400中包括的一些或全部操作。
参考图4A,在框412处,处理器104可以基于多个智能合约中的所选择的智能合约从区块链中选择区块。在框414处,处理器104可以请求与所选择的智能合约相关联的交易。在框416处,处理器104可以确认所接收的与所选择的智能合约相关联的交易属于所选择的区块。在框418处,处理器104可以验证已经接收到与所选择的智能合约相关联的所有所请求的交易。在框420处,处理器104可以基于接收到的交易来同步所选择的智能合约。
图4B示出了根据示例实施例的同步区块链网络的对等体的示例方法的流程图450。参考图4B,方法450还可包括以下步骤中的一个或多个。在框452处,处理器104可以将从所选择的区块的头部导出的哈希与所选择的区块的内容的哈希进行比较,以确认所接收的交易属于所选择的区块。在框454处,处理器104可以基于元组列表来验证已经接收到所有所请求的交易,该元组列表包括所选择的区块中包括的每个智能合约的交易的数量。在框456处,处理器104可导出元组列表的哈希,以验证已接收到所有所请求的交易。在框458处,处理器104可以使用从元组列表生成的Merkle树的根哈希来验证已经接收到所有所请求的交易。在框460处,处理器104可以从所选择的区块的头部中导出所选择的区块的多个智能合约中的每个智能合约的交易计数的哈希,以验证已经接收到与所选择的智能合约相关联的所有所请求的交易。在框462处,处理器104可以接收包括与所选择的智能合约相关联的叶子的哈希树以验证所接收到的交易。哈希树的根可以对应于所选择的区块中包括的所有交易的根哈希。
图5A示出了根据示例实施例的包括被配置为执行各种操作的物理基础设施510的示例系统500。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(智能合约530可以驻留在区块链520上),其可以执行任何示例实施例中包括的(在模块512中的)操作步骤508中的任何操作步骤。步骤/操作508可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512、以及模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5B示出了根据示例实施例的被配置为执行各种操作的另一示例系统540。参考图6B,系统640包括模块512和模块514。模块514包括区块链520和智能合约530(智能合约530可以驻留在区块链520上),其可以执行任何示例实施例中包括的(在模块512中的)操作步骤508中的任何操作步骤。步骤/操作508可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512、以及模块514可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5C示出了根据示例实施例的被配置为利用合约方和中介服务器之间的智能合约配置的示例系统,该中介服务器被配置为强制执行区块链上的智能合约条款。参考图5C,配置550可以表示由智能合约530驱动的通信会话、资产转移会话或过程或进程,其明确地识别一个或多个用户设备552和/或556。智能合约执行的执行、操作和结果可以由服务器554管理。智能合约530的内容可能需要作为智能合约交易的各方的实体552和556中的一个或多个的数字签名。智能合约执行的结果可以作为区块链交易被写入区块链520。智能合约530驻留在区块链520上,该区块链520可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图5D示出了根据示例实施例的包括区块链的系统560。参考图5D的示例,应用编程接口(API)网关562提供用于访问区块链逻辑(例如,智能合约530或其他链码)和数据(例如,分布式账本等)的公共接口。在该示例中,API网关562是用于通过将一个或多个实体552和556连接到区块链对等体(即服务器554)来在区块链上执行交易(调用、查询等)的公共接口。在此,服务器554是区块链网络对等组件,其保持分布式账本和世界状态的副本,从而允许客户端552和556查询有关世界状态的数据以及将交易提交到区块链网络中,在区块链网络中,取决于智能合约530以及背书策略,背书对等体将运行智能合约530。
以上实施例可以以硬件、以处理器执行的计算机程序、以固件或以上述的组合来实现。计算机程序可以体现在诸如存储介质之类的计算机可读介质上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
示例性存储介质可以被耦合到处理器,使得处理器可以从该存储介质读取信息,并且向该存储介质写入信息。在替代方案中,存储介质可以与处理器集成。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为分立组件驻留。
图6A示出了根据示例实施例的将新区块添加到分布式账本620的过程600,并且图6B示出了根据示例实施例的区块链的新数据区块结构630的内容。参考图6A,客户端(未示出)可以向区块链节点611、612和/或613提交交易。客户端可以执行从任何源接收到的指令以在区块链620上进行活动。作为示例,客户端可以是代表请求者(诸如提议区块链的交易的设备、个人或实体)的应用。多个区块链对等体(例如,区块链节点611、612和613)可以维护区块链网络的状态和分布式账本620的副本。在区块链网络中可以存在不同类型的区块链节点/对等体,包括对客户提议的交易进行模拟和背书的背书对等体以及验证背书、验证交易并将交易提交给分布式账本620的提交对等体。在此示例中,区块链节点611、612和613可以执行背书者节点、提交者节点或两者的角色。。
分布式账本620包括按区块存储不可变的、有序的记录的区块链,以及维护区块链622的当前状态的状态数据库624(当前世界状态)。每个通道可以存在一个分布式账本620,并且每个对等体为它们是其成员的每个信道维护分布式账本620的它自己的副本。区块链622是交易日志,其被构造为哈希链接的区块,其中每个区块包含N个交易的序列。区块可以包括诸如图6B所示的各种组件。区块的链接(图6A中的箭头所示)可以通过在当前区块的区块头部内添加先前区块的头部的哈希来生成。以此方式,区块链622上的所有交易都被排序并以加密方式链接在一起,从而防止在不破坏哈希链接的情况下篡改区块链数据。此外,由于链接,区块链622中的最新区块表示在它之前已经发生的每个交易。区块链622可以存储在支持仅可追加的区块链工作负载的对等文件系统(本地或附加存储装置)上。
区块链622和分布式账本622的当前状态可以存储在状态数据库624中。在此,当前状态数据表示区块链622的链交易日志中曾经包括的所有键的最新值。链码调用针对状态数据库624中的当前状态执行交易。为了使这些链码交互极其高效,所有键的最新值都存储在状态数据库624中。状态数据库624可以包括对区块链622的交易日志的索引视图,因此它可以随时从链中重新生成。在接受交易之前,一旦对等体启动,状态数据库624就可以自动恢复(或如有需要的话被生成)。
背书节点从客户端接收交易,并基于模拟的结果对交易进行背书。背书节点保持模拟交易提议的智能合约。当背书节点对交易进行背书时,背书节点创建交易背书,该交易背书是指示对模拟交易的背书的从背书节点到客户端应用的已签名的响应。对交易进行背书的方法取决于可以在链码内指定的背书策略。背书策略的示例是“大多数背书对等体必须对交易进行背书”。不同的通道可能有不同的背书策略。客户端应用将已背书的交易转发到排序服务610。
排序服务610接受已背书的交易,将它们排序为区块,并将这些区块递送给提交对等体。例如,当已经达到交易的阈值、计时器超时或其他条件达到时,排序服务610可以发起新区块。在图6A的示例中,区块链节点612是提交对等体,该提交对等体已接收到用于存储在区块链620上的新数据区块630。区块链中的第一区块可以被称为创世区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务610可以由一群排序者组成。排序服务610不处理交易、智能合约或维护共享账本。相反,排序服务610可以接受已背书的交易并指定将那些交易提交给分布式账本620的顺序。可以设计区块链网络的架构,以使“排序”的具体实现(例如,Solo、Kafka、BFT等)成为可插入的组件。
交易以一致的顺序被写入分布式账本620。建立交易的顺序以确保在将状态数据库624的更新提交到网络时该状态数据库624的更新有效。与通过解决密码难题或挖掘而发生排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式账本620的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新数据区块630时,可以将新数据区块630广播给提交对等体(例如,区块链节点611、612和613)。作为响应,每个提交对等体通过检查以确保读集合和写集合仍与状态数据库624中的当前世界状态相匹配,来验证新数据区块630内的交易。具体地说,提交对等体可以确定当背书者模拟交易时存在的读取数据是否与状态数据库624中的当前世界状态相同。当提交对等体验证交易时,交易被写入分布式账本620上的区块链622,并且使用来自读-写集合中的写入数据更新状态数据库624。如果交易失败,即,如果提交对等体发现读写集合与状态数据库724中的当前世界状态不匹配,则被排序进区块的交易仍将被包括在该区块中,但它将被标记为无效,并且状态数据库624将不被更新。
参考图6B,存储在分布式账本620的区块链622上的新数据区块630(也被称为数据区块)可以包括多个数据段,诸如区块头部640、区块数据650以及区块元数据660,应该理解,各种所描绘的区块及其内容,诸如如图6B所示的新数据区块630及其内容,仅是示例,并不意味着限制示例实施例的范围。新数据区块630可以在区块数据650内存储N(例如1、10、100、500、1000、2000、3000等)个交易的交易信息。新数据区块630还可以在区块头部640内包括到(例如,在图6A中的区块链622上的)先前区块的链接。特别地,区块头部640可包括先前区块的头部的哈希。区块头部640还可以包括唯一的区块号、新数据区块630的区块数据650的哈希等等。新数据区块630的区块号可以是唯一的,并且可以以各种顺序被指派,诸如从零开始的递增/顺序的次序。
区块数据650可以存储被记录在新数据区块630内的每个交易的交易信息。例如,交易数据可以包括以下各项中的一个或多个:交易类型、版本、时间戳、分布式账本620的通道ID、交易ID、时期(epoch)、有效载荷可见性、链码路径(部署tx)、链码名称、链码版本、输入(链码和功能)、客户端(创建者)标识(诸如公钥和证书)、客户端签名、背书者的身份、背书者签名、提议哈希、链码事件、响应状态、名称空间、读集合(交易读取的键和版本列表等)、写集合(键和值的列表等)、开始键、结束键、键列表、Merkel树查询摘要等。可以为N个交易中的每一个存储交易数据。
在一些实施例中,区块数据650还可以存储新数据662,该新数据662将附加信息添加到区块链622中的哈希链接的区块的链中。附加信息包括本文描述或描绘的步骤、特征、过程和/或动作中的一个或多个。因此,新数据662可以被存储在分布式账本620上的区块的不可变日志中。存储这样的新数据662的益处中的一些益处反映在本文公开和描绘的各种实施例中。虽然在图6B中,新数据662被描绘在区块数据650中,但是新数据662也可以位于区块头部640或区块元数据660中。
区块元数据660可以存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括区块创建时的签名、对最后配置区块的引用、识别区块内的有效和无效交易的交易过滤器、对区块进行排序的排序服务的最后偏移持续时间等。签名、最后配置区块和排序者元数据可以由排序服务610添加。同时,区块的提交者(诸如区块链节点612)可以基于背书策略、读/写集合的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据650中的交易数量的字节阵列和识别交易是否有效/无效的验证码。
图6C示出了根据本文所述实施例的用于数字内容的区块链670的实施例。数字内容可以包括一个或多个文件和相关联的信息。文件可以包括媒体、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变、仅可追加的方面作为保护数字内容的完整性、有效性和真实性的保障,从而使其适用于适用可采纳性规则的法律程序中,或在考虑证据或对数字信息的呈现和使用以其他方式感兴趣的其他设置中。在此情况下,数字内容可以被称为数字证据。
区块链可以以各种方式形成。在一个实施例中,数字内容可以被包括在区块链本身中并且可以从该区块链本身访问。例如,区块链的每个区块可以与相关联的数字内容一起存储引用信息(例如,头部、值等)的哈希值。然后可以将哈希值和相关联的数字内容一起加密。因此,可以通过解密区块链中的每个区块来访问每个区块的数字内容,并且每个区块的哈希值可以被用作引用先前块区的基础。这可以说明如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可以存储每个区块的内容的加密哈希,而不存储任何数字内容。数字内容可以与原始文件的哈希值相关联地存储在另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的同一存储设备,或者可以是不同的存储区域,或者甚至是单独的关系数据库。可以通过获得或查询感兴趣的区块的哈希值,然后在存储区域中查找与实际数字内容相对应地被存储的该哈希值,来引用或访问每个区块的数字内容。此操作可以例如由数据库守门者执行。这可以说明如下:
在图6C的示例实施例中,区块链670包括以排序的序列以加密方式链接的多个区块6781、6782、…678N,其中N≥1。用于链接区块6781、6782、…678N的加密可以是多个键控或非键控哈希函数中的任何一个。在一个实施例中,区块6781、6782、…678N经过哈希函数处理,该哈希函数从基于区块中的信息的输入产生n位字母数字输出(其中n是256或另一个数字)。这样的哈希函数的示例包括但不限于SHA型(SHA代表安全哈希算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle树算法、基于随机数的算法和非防碰撞PRF算法。在另一个实施例中,可以通过与哈希函数不同的函数来以加密方式链接区块6781、6782、…678N。为了说明的目的,参考诸如SHA-2之类的哈希函数进行以下描述。
区块链中的每个区块6781、6782、…、678N包括头部、文件版本和值。由于区块链中的哈希的结果,每个块的头部和值都不同。在一个实施例中,该值可以被包括在头部中。如下面更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一区块6781被称为创世区块,并包括头部6721、原始文件6741和初始值6761。用于创世区块的并且实际上在所有后续区块中使用的哈希方案可以变化。例如,可以将第一区块6781中的所有信息一次哈希在一起,或者可以分别对第一区块6781中的每个信息或一部分信息进行哈希,然后可以对分别哈希的部分执行哈希。
头部6721可以包括一个或多个初始参数,例如,其可以包括版本号、时间戳、随机数、根信息、难度级别、共识协议、持续时间、媒体格式、源、描述性关键字和/或与原始文件6741和/或区块链相关联的其他信息。头部6721可以自动地(例如,通过区块链网络管理软件)生成,或者可以由区块链参与者手动生成。与区块链中的其他区块6782至678N中的头部不同,创世区块中的头部6721并不引用先前的区块,仅仅是因为没有先前的区块。
创世区块中的原始文件6741可以是例如如由设备捕获的数据,该数据在其被包含在区块链中之前经过处理或未经处理。通过系统的界面从设备、媒体源或节点接收原始文件6741。原始文件6741与元数据相关联,元数据例如可以由用户、设备和/或系统处理器手动或自动生成。元数据可以与原始文件6741相关联地包括在第一区块6781中。
创世区块中的值6761是基于原始文件6741的一个或多个唯一属性生成的初始值。在一个实施例中,该一个或多个唯一属性可以包括原始文件6741的哈希值,原始文件6741的元数据以及与该文件相关联的其他信息。在一个实现中,初始值6761可以基于以下唯一属性:
1)用于原始文件的SHA-2计算的哈希值
2)起始设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)用于当前控制原始文件和相关联的元数据的软件的区块链网络成员ID
区块链中的其他区块6782至678N也具有头部、文件和值。然而,与第一区块6721不同,其他区块中的头部6722至672N中的每个区块包括紧接在前的区块的哈希值。紧接在前的区块的哈希值可以只是先前区块的头部的哈希,或者可以是整个先前区块的哈希值。通过在剩余区块的每个中包括在前区块的哈希值,可以执行逐个区块地从第N个区块跟踪回到创世区块(以及相关联的原始文件),如箭头680所示,以建立可审计且不可变的监管链。
其他区块中的头部6722至672N中的每个还可以包括其他信息,例如版本号、时间戳、随机数、根信息、难度级别、共识协议和/或与对应文件和/或一般的区块链相关联的其他参数或信息。
其他区块中的文件6742至674N可以等于原始文件,或者可以是创世区块中的原始文件的修改版本,例如,这取决于执行的处理的类型。所执行的处理的类型可能因区块而异。该处理可能涉及例如在前区块中的文件的任何修改,诸如编辑信息或以其他方式改变文件的内容、从文件中取走信息、或向文件添加或追加信息。
附加地或替代地,该处理可能涉及仅从在前区块复制文件,改变文件的存储位置,分析来自一个或多个在前区块的文件,将文件从一个存储装置或存储器位置移动到另一位置,或相对于区块链文件和/或其相关联的元数据执行动作。涉及分析文件的处理可以包括例如追加、包括或与该文件相关联的以其他方式关联的各种分析、统计或其他信息。
其他区块中的其他区块6722至672N中的每个的值是唯一值,并且由于执行的处理而全都不同。例如,任何一个区块中的值都对应于先前区块中的值的更新版本。该更新反映在向其分配了值的区块的哈希中。因此,区块的值提供了对在区块中执行了哪种处理的指示,并且还允许通过区块链跟踪回到原始文件。这种跟踪确认了整个区块链中的文件的监管链。
例如,考虑为了保护文件中显示的人的身份而对先前区块中的文件的部分进行编辑、屏蔽或像素化的情况。在此情况下,包括已编辑文件的区块将包括与已编辑的文件相关联的元数据,例如,如何执行编辑、执行编辑的人员、发生(一个或多个)编辑的时间戳等。可对元数据进行哈希以形成值。由于该区块的元数据与经过哈希以形成先前区块中的值的信息不同,因此这些值彼此相同,并且在解密时可以恢复。
在一个实施例中,当以下中的任何一个或多个发生时,可以更新先前区块的值(例如,计算出的新的哈希值)以形成当前区块的值。在该示例实施例中,可以通过对以下所述的全部或部分信息进行哈希来计算新的哈希值。
a)新的SHA-2计算的哈希值,如果已经以任何方式处理了文件的话(例如,如果文件被编辑、复制、更改、访问或已采取某种其他动作)
b)文件的新存储位置
c)识别的与文件相关联的新元数据
d)将文件的访问或控制从一个区块链参与者转移到另一个区块链参与者
图6D示出了根据一个实施例的可以表示区块链670中的区块的结构的区块的实施例。区块Blocki包括头部672i、文件674i和值676i。
头部672i包括先前区块Blocki-1的哈希值和附加引用信息,其例如可以是本文讨论的任何类型的信息(例如,头部信息包括引用、特性、参数等)。当然,除创世区块外,所有区块均引用先前区块的哈希。先前区块的哈希值可以只是先前区块中的头部的哈希,或者可以是先前区块中的所有或部分信息(包括文件和元数据)的哈希。
文件674i按顺序包括多个数据,诸如数据1、数据2、…、数据N。数据用元数据:元数据1、元数据2、…、元数据N标记,其描述了与数据相关联的内容和/或特性。例如,每个数据的元数据可以包括指示数据的时间戳、处理数据、指示人或数据中描绘的其他内容的关键字和/或可能有助于确立整个文件的有效性和内容的其他特征(并且特别是其使用数字证据的特征)的信息,例如,如结合下面讨论的实施例所述。除元数据外,可以使用到先前数据的引用REF1,REF2,…,REFN标记每个数据,以防止篡改、文件中的空白以及通过文件的顺序引用。
一旦将元数据(例如,通过智能合约)指派给数据,就不能在不改变哈希的情况下改变元数据,其可以容易地被识别为无效。因此,元数据创建信息的数据日志,该数据日志可以由区块链中的参与者访问以供使用。
值676i是哈希值或基于先前讨论的任何类型的信息计算出的其他值。例如,对于任何给定的区块Blocki,该区块的值可以被更新以反映对该区块执行的处理,例如,新的哈希值、新的存储位置、关联文件的新的元数据、控制或访问的转移、标识符或其他要添加的动作或信息。尽管示出了每个区块中的值与用于文件和头部的数据的元数据分离,但是在另一实施例中,该值可以部分或全部基于该元数据。
一旦形成区块链670,则在任何时间点,可以通过向区块链查询跨区块的值的交易历史来获得文件的不可变监管链。该查询或跟踪进程可以从解密最新近包括的区块(例如,最后(第N个)区块)的值开始,然后继续解密其他区块的值,直到达到创世区块为止并且原始文件被恢复。解密还可以涉及在每个区块处解密头部和文件以及相关联的元数据。
基于在每个区块中发生的加密的类型来执行解密。这可能涉及私钥、公钥或公钥-私钥对的使用。例如,当使用非对称加密时,网络中的区块链参与者或处理器可以使用预定算法来生成公钥和私钥对。公钥和私钥通过某种数学关系彼此关联。可以公开分发公钥,以用作接收来自其他用户的消息的地址,例如,IP地址或家庭地址。私钥是秘密保存的并用于对发送给其他区块链参与者的消息进行数字签名。签名包含在消息中,以便接收者可以使用发送者的公钥进行验证。这样,接收者可以确定只有发送者可以发送此消息。
生成密钥对可以类似于在区块链上创建账户,但是不必实际在任何地方进行注册。此外,发送者使用其私钥对在区块链上执行的每个交易进行数字签名。该签名可确保只有帐户所有者才能跟踪和处理(如果在智能合约确定的许可范围内)区块链文件。
图7示出了支持本文描述和/或描绘的示例实施例中的一个或多个示例实施例的示例系统700。系统700包括计算机系统/服务器702,其可以与许多其他通用或专用计算系统环境或配置一起操作。可能适合与计算机系统/服务器702一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述任何系统或设备的分布式云计算环境,等等。
可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述计算机系统/服务器702。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在由通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实践计算机系统/服务器702。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图7所示,云计算节点700中的计算机系统/服务器702以通用计算设备的形式示出。计算机系统/服务器702的组件可以包括但不限于:一个或者多个处理器或者处理单元704,系统存储器706,连接不同系统组件(包括系统存储器706和处理单元704)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器702典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器702访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。系统存储器706在一个实施例中实现其它图的流程框图。系统存储器706可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)710和/或高速缓存存储器712。计算机系统/服务器702可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统714可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器706可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块718的程序/实用工具716,可以存储在例如存储器706中,这样的程序模块718包括——但不限于——操作系统、一个或者多个应用、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块718通常执行本发明所描述的各实施例中的功能和/或方法。
如本领域的技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或结合了软件和硬件方面的实施例的形式,本文中它们通常都可以被称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取在具有在其上体现的计算机可读程序代码的一个或多个计算机可读介质中体现的计算机程序产品的形式。
计算机系统/服务器702也可以与一个或多个外部设备720(例如键盘、指向设备、显示器722等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器702交互的设备通信,和/或与使得该计算机系统/服务器702能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口724进行。并且,计算机系统/服务器702还可以通过网络适配器726与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器726通过总线与计算机系统/服务器702的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器702使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中示出并在前述详细描述中说明了系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例,但是应当理解,本申请不限于所公开的实施例,而是能够进行如由下面的权利要求所阐述和定义的许多重新布置、修改和替代。例如,各个附图的系统的能力可以由本文描述的模块或组件中的一个或多个来执行或在分布式体系结构中执行,并且可以包括发射机、接收机或两者的对。例如,由单个模块执行的全部或部分功能可以由这些模块中的一个或多个来执行。此外,本文描述的功能可以在各种时间执行并与模块或组件内部或外部的各种事件相关。而且,可以经由以下各项中的至少一项在模块之间发送在各种模块之间发送的信息:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或经由多种协议。而且,可以直接和/或经由其他模块中的一个或多个模块来发送或接收由任何模块发送或接收的消息。
本领域的技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其他合适的计算设备或设备组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的本地和分布式形式来实现。
应该注意,在本说明书中描述的一些系统特征已经作为模块呈现,以便更特别地强调其实现独立性。例如,模块可以被实现为硬件电路,该硬件电路包括定制的超大规模集成(VLSI)电路或门阵列,诸如逻辑芯片、晶体管或其他分立组件之类的现成半导体。模块也可以在诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件、图形处理单元等之类的可编程硬件设备中实现。
模块也可以至少部分地以用于由各种类型的处理器执行的软件来实现。所识别的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或功能。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当这些指令被逻辑地结合在一起时,包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、分布在不同的程序之间以及跨若干存储器设备分布。类似地,本文中操作数据可以在模块内被识别和示出,并且可以以任何合适的形式来体现并且可以在任何合适的类型的数据结构内组织。操作数据可以作为单个数据集收集,或者可以分布在不同位置上,包括分布在不同存储设备上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
将容易地理解,如本文的附图中一般性描述和示出的,本申请的组件可以以各种各样不同的配置来布置和设计。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅代表本申请的所选实施例。
本领域的普通技术人员将容易地理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置中的硬件元件来实践以上内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员明显的是,某些修改、变化和替代构造将是明显的。
尽管已经描述了本申请的优选实施例,但是应当理解,所描述的实施例仅是示例性的,并且当考虑到本申请的全范围的等效物和修改(例如协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求限定。
Claims (16)
1.一种系统,包括:
对等体的处理器;
存储器,所述存储器上存储有机器可读指令,所述机器可读指令在由所述处理器执行时,使所述处理器:
基于多个智能合约中的选择的智能合约从区块链中选择区块;
请求与选择的智能合约相关联的交易;
确认接收到的与所述选择的智能合约相关联的交易属于选择的区块;
验证已接收到与所述选择的智能合约相关联的所有请求的交易;以及
基于接收到的交易同步所述选择的智能合约。
2.如权利要求1所述的系统,其中,所述指令还使所述处理器将从所述选择的区块的头部中导出的哈希与所述选择的区块的内容的哈希进行比较,以确认所述接收到的交易属于所述选择的区块。
3.如权利要求1所述的系统,其中,所述指令还使所述处理器基于元组的列表来验证已接收到所有请求的交易,所述元组的列表包括所述选择的区块中包括的每个智能合约的交易的数量。
4.如权利要求3所述的系统,其中,所述指令还使所述处理器导出所述元组的列表的哈希,以验证已接收到所有请求的交易。
5.如权利要求3所述的系统,其中,所述指令还使所述处理器使用从所述元组的列表生成的Merkle树的根哈希来验证已经接收到所有请求的交易。
6.如权利要求1所述的系统,所述指令还使所述处理器从所述选择的区块的所述头部中导出所述选择的区块的所述多个智能合约中的每个智能合约的交易计数的哈希,以验证已经接收到与所述选择的智能合约相关联的所有请求的交易。
7.根据权利要求1所述的系统,其中,所述指令还使所述处理器接收包括与所述选择的智能合约相关联的叶子的哈希树以验证所述接收到的交易。
8.一种方法,包括:
由对等体基于多个智能合约中的选择的智能合约从区块链中选择区块;
由所述对等体请求与所述选择的智能合约相关联的交易;
由所述对等体确认接收到的与所述选择的智能合约相关联的交易属于选择的区块;
由所述对等体验证已接收到与所述选择的智能合约相关联的所有请求的交易;以及
由所述对等体基于接收到的交易同步所述选择的智能合约。
9.如权利要求8所述的方法,还包括将从所述选择的区块的头部中导出的哈希与所述选择的区块的内容的哈希进行比较,以确认所述接收到的交易属于所述选择的区块。
10.如权利要求9所述的方法,还包括基于元组的列表来验证已接收到所有请求的交易,所述元组的列表包括所述选择的区块中包括的每个智能合约的交易的数量。
11.如权利要求10所述的方法,还包括导出所述元组的列表的哈希,以验证已接收到所有请求的交易。
12.如权利要求10所述的方法,还包括使用从所述元组的列表生成的Merkle树的根哈希来验证已经接收到所有请求的交易。
13.如权利要求8所述的方法,还包括从所述选择的区块的所述头部中导出所述选择的区块的所述多个智能合约中的每个智能合约的交易计数的哈希,以验证已经接收到与所述选择的智能合约相关联的所有请求的交易。
14.如权利要求8所述的方法,接收包括与所述选择的智能合约相关联的叶子的哈希树以验证所述接收到的交易。
15.一种非暂时性计算机程序产品,所述非暂时性计算机程序产品包括指令,所述指令当被处理器读取时,使所述处理器执行如权利要求8-14中的任何一项所述的方法的操作。
16.一种计算机系统,包括用于执行如权利要求8至14中的任何一项所述的方法的步骤的模型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/388,525 US11372817B2 (en) | 2019-04-18 | 2019-04-18 | Synchronization of peers |
US16/388,525 | 2019-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831740A true CN111831740A (zh) | 2020-10-27 |
CN111831740B CN111831740B (zh) | 2024-04-16 |
Family
ID=72832485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010297858.4A Active CN111831740B (zh) | 2019-04-18 | 2020-04-16 | 对等体的同步 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11372817B2 (zh) |
CN (1) | CN111831740B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307125A (zh) * | 2020-11-10 | 2021-02-02 | 湖南众享账本网络技术有限公司 | 基于区块链智能合约实现加密电子合同的签约方法及设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111832018A (zh) * | 2019-04-19 | 2020-10-27 | 富泰华工业(深圳)有限公司 | 病毒检测方法、装置、计算机装置及存储介质 |
US11228446B2 (en) * | 2019-05-10 | 2022-01-18 | Advanced New Technologies Co., Ltd. | Blockchain-based reconciliation method and apparatus and electronic device |
CN110659907B (zh) * | 2019-09-24 | 2021-11-12 | 北京海益同展信息科技有限公司 | 用于执行智能合约的方法和装置 |
CN111368001B (zh) * | 2020-03-04 | 2023-06-02 | 徐皓 | 一种区块链方法、系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846278A (zh) * | 2017-10-30 | 2018-03-27 | 中国联合网络通信集团有限公司 | 智能合约处理方法及装置 |
CN108062672A (zh) * | 2017-12-07 | 2018-05-22 | 北京泛融科技有限公司 | 一种基于区块链智能合约的流程调度方法 |
CN108269351A (zh) * | 2018-01-15 | 2018-07-10 | 中链科技有限公司 | 一种数字票据信息处理方法及系统 |
US20180309567A1 (en) * | 2017-04-25 | 2018-10-25 | Microsoft Technology Licensing, Llc | Confidentiality in a consortium blockchain network |
CN109360103A (zh) * | 2018-12-21 | 2019-02-19 | 众安信息技术服务有限公司 | 基于区块链的资产通证化的证券产品处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10824747B1 (en) * | 2017-01-25 | 2020-11-03 | State Farm Mutual Automobile Insurance Company | Systems and methods for controlled access to policy data on blockchain |
US10102265B1 (en) | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
US10095888B1 (en) | 2018-06-04 | 2018-10-09 | Capital One Services, Llc | Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system |
US11018851B2 (en) * | 2018-08-23 | 2021-05-25 | Paypal, Inc. | Multi-blockchain digital transaction information segregation system |
-
2019
- 2019-04-18 US US16/388,525 patent/US11372817B2/en active Active
-
2020
- 2020-04-16 CN CN202010297858.4A patent/CN111831740B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180309567A1 (en) * | 2017-04-25 | 2018-10-25 | Microsoft Technology Licensing, Llc | Confidentiality in a consortium blockchain network |
CN107846278A (zh) * | 2017-10-30 | 2018-03-27 | 中国联合网络通信集团有限公司 | 智能合约处理方法及装置 |
CN108062672A (zh) * | 2017-12-07 | 2018-05-22 | 北京泛融科技有限公司 | 一种基于区块链智能合约的流程调度方法 |
CN108269351A (zh) * | 2018-01-15 | 2018-07-10 | 中链科技有限公司 | 一种数字票据信息处理方法及系统 |
CN109360103A (zh) * | 2018-12-21 | 2019-02-19 | 众安信息技术服务有限公司 | 基于区块链的资产通证化的证券产品处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307125A (zh) * | 2020-11-10 | 2021-02-02 | 湖南众享账本网络技术有限公司 | 基于区块链智能合约实现加密电子合同的签约方法及设备 |
CN112307125B (zh) * | 2020-11-10 | 2024-04-30 | 湖南慧途科技有限公司 | 基于区块链智能合约实现加密电子合同的签约方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20200334204A1 (en) | 2020-10-22 |
CN111831740B (zh) | 2024-04-16 |
US11372817B2 (en) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
US11972004B2 (en) | Document redaction and reconciliation | |
CN111881129A (zh) | 用于数据库的索引管理 | |
US20200394321A1 (en) | Document redaction and reconciliation | |
CN111488393B (zh) | 虚拟区块链 | |
CN112053157B (zh) | 灵活交易验证 | |
CN111881099A (zh) | 数据库私有文档共享 | |
CN111831740B (zh) | 对等体的同步 | |
US11270296B2 (en) | Protection of data trading | |
US11360946B2 (en) | Tracking data transfers | |
CN111796968A (zh) | 受数据库交易保证的提交 | |
US11240003B2 (en) | Consent-based data management | |
US11177938B2 (en) | Database composite endorsement | |
CN111881130A (zh) | 区块链存储结构的冲突解决方案 | |
US11457066B2 (en) | Splitting and merging of storages | |
CN112035291A (zh) | 快照恢复 | |
CN115605868A (zh) | 跨网身份提供 | |
CN111881109A (zh) | 数据库可合并分类账 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
US11082215B2 (en) | Immutable broadcasting queues | |
CN111797426B (zh) | 一种用于去信任通知服务的方法和系统 | |
CN111859411B (zh) | 用于区块链网络中的区块链的方法和系统 | |
CN112052473A (zh) | 地理位置合规性 | |
CN114981773A (zh) | 无冲突版本控制 | |
CN112036876A (zh) | 基于元数据的背书 |
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 |