CN111488393A - 虚拟区块链 - Google Patents

虚拟区块链 Download PDF

Info

Publication number
CN111488393A
CN111488393A CN202010047186.1A CN202010047186A CN111488393A CN 111488393 A CN111488393 A CN 111488393A CN 202010047186 A CN202010047186 A CN 202010047186A CN 111488393 A CN111488393 A CN 111488393A
Authority
CN
China
Prior art keywords
blockchain
virtual
transaction
user
block
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
Application number
CN202010047186.1A
Other languages
English (en)
Other versions
CN111488393B (zh
Inventor
姜朋慧
刘昕鹏
迈克尔·贝斯勒
隋广涵
郭迎春
郭剑南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111488393A publication Critical patent/CN111488393A/zh
Application granted granted Critical
Publication of CN111488393B publication Critical patent/CN111488393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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/3239Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Development Economics (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或大型计算机。通常可从多个不同点访问存储在集中式数据库中的信息。多个用户或客户端工作站可以在集中式数据库上同时工作,例如,基于客户端/服务器配置。集中式数据库易于管理、维护和控制,特别是出于安全性的目的,因为它的位置一致。在集中式数据库中,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅具有一个主记录。
然而,集中式数据库存在明显的缺点。例如,集中式数据库具有单点故障。特别是,如果没有容错考虑因素并且发生硬件故障(例如,硬件、固件和/或软件故障),则数据库内的所有数据都将丢失,并且所有用户的工作都会中断。此外,集中式数据库高度依赖于网络连接。因此,连接速度越慢,每次访问数据库所需的时间就越长。另一个缺点是当集中式数据库由于单个位置而经历高流量时出现瓶颈。此外,集中式数据库提供对数据的有限访问,因为数据库仅维护一个数据副本。因此,多个设备无法同时访问同一条数据而不会产生重大问题或冒着覆盖存储数据的风险。此外,因为数据库存储系统具有最小到没有的数据冗余,所以除了通过备份存储的手动操作之外,非常难以检索意外丢失的数据。
传统上,集中式数据库受到低搜索能力、缺乏安全性和低速事务的限制。因此,需要一种基于区块链的解决方案来克服这些明显的缺点。
区块链技术被不同的组织和用户广泛使用。此外,出于不同的目的,有许多类型的区块链被引入并且随着时间的推移而规模增大。有一些不同类型的区块链,包括公共区块链、私有区块链和联合区块链。可以从这些区块链中提取部分记录并将其组成子区块链。然而,子区块链可能不会表现为真正的区块链,并且可能不具有主区块链的完整特征。随着区块链的增长,区块链中记录的中立性管理带来了多个问题。查询区块链中的记录的查询可能会产生瓶颈,因为随着时间的推移,区块链中会添加大量记录。区块链为区块链中的参与者提供了相同的访问权限。换句话说,加入此区块链的参与者可以访问存储在此区块链的分类帐中的任何记录。但是,并非所有参与者都可能对给定区块链中的所有记录感兴趣。而且,并非所有记录都适合于所有要访问的参与者。
例如,存在为100个银行创建的一个联合区块链,其具有在这100个银行之间执行的事务的记录。其中一家银行,例如银行A,可能只对自己的事务感兴趣。因此,可以创建虚拟区块链以仅跟踪与银行A相关的记录。存在从多个医院和多个保险代理创建的另一联合区块链。其中一个保险代理人,例如代理人B,可能只关心他自己的事务。因此,可以创建另一个虚拟区块链以跟踪与保险代理B相关的记录。换句话说,可以创建虚拟区块链以仅显示和跟踪特定用户的事务子集。因此,只有适当的用户才能获得适当的信息,并且不会向这些用户公开冗余记录。在信息快速增长和爆炸的时代,很难跟踪区块链上的每一条信息。因此,可能有必要将区块链分成多个虚拟部分以用于不同目的。但是,现有解决方案不提供用于创建虚拟区块链的机制。
因此,期望虚拟区块链以有效的方式提供某些区块链用户对某些记录的访问。
发明内容
一个示例实施例提供了一种系统,其包括处理器和存储器,其中,处理器被配置为执行到区块链中的一个或多个连接,区块链被配置为存储由用户节点提交的多个用户事务,从多个用户事务识别用户请求事务以创建针对该用户的虚拟区块链,其中用户请求事务包含规则,基于用户事务创建虚拟区块链,基于规则利用来自区块链的多个用户事务的用户事务填充虚拟区块链,并执行智能合约以将规则和来自虚拟区块链的所有区块的哈希记录到区块链。
另一示例实施例提供了一种方法,该方法包括由虚拟区块链管理器节点到区块链中的一个或多个连接,区块链被配置为存储由用户节点提交的多个用户事务,由虚拟区块链管理器节点从多个用户事务识别用户请求事务以创建针对该用户的虚拟区块链,其中用户请求事务包含规则,由虚拟区块链管理器节点基于用户请求事务创建虚拟区块链,虚拟区块链管理器节点基于规则利用来自区块链的多个用户事务中的用户事务填充虚拟区块链,并由虚拟区块链管理器节点执行智能合约以将规则和来自虚拟区块链的所有区块的哈希记录到区块链
另一示例实施例提供了一种包括指令的非暂时性计算机可读介质,所述指令在由处理器读取时使得处理器执行到区块链的一个或多个连接,区块链被配置为存储由用户节点提交的多个用户事务,从多个用户事务识别用户请求事务以创建针对该用户的虚拟区块链,其中用户请求事务包含规则,基于用户请求事务创建虚拟区块链,基于规则利用来自区块链的多个用户事务的用户事务填充虚拟区块链,并执行智能合约以将规则和来自虚拟区块链的所有区块的哈希记录到区块链。
附图说明
图1示出了根据示例实施例的包括分类帐数据库的系统的网络图。
图2A示出了根据示例实施例的示例对等节点配置。
图2B示出了根据示例实施例的另一对等节点配置。
图3示出了根据示例实施例的许可网络。
图4A示出了根据示例实施例的流程图。
图4B示出了根据示例实施例的另一流程图。
图5A示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统。
图5B示出了根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例系统。
图5C示出了根据示例实施例的签约方和中间服务器之间的智能合约配置,该中间服务器被配置为在区块链上实施智能合约条款。
图5D示出了根据示例实施例的另一附加示例系统。
图6A示出了根据示例实施例的将新数据添加到数据库的过程。
图6B示出了根据示例实施例的包括新数据的数据块的内容。
图7示出了支持一个或多个示例实施例的示例系统。
具体实施方式
容易理解的是,可以以各种不同的配置来布置和设计如本文一般描述和附图中所示的各个组件。因此,如附图中所示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是代表所选实施例。
可以在一个或多个实施例中以任何合适的方式组合贯穿本说明书描述的各个特征、结构或特性。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用指的是至少一个实施例包括结合该实施例描述的特定特征、结构或特性的事实。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指代相同的一组实施例,并且在一个或多个实施例中,可以以任何合适的方式组合所描述的特征、结构、或者特性。
另外,虽然可能已经在实施例的描述中使用术语“消息”,但是该应用可以应用于许多类型的网络数据,例如分组、帧、数据报文等。术语“消息”还包括分组、帧、数据报文及其任何等同物。此外,虽然在示例性实施例中可以描述某些类型的消息和信令,但是它们不限于某种类型的消息,并且该应用不限于某种类型的信令。
示例实施例提供方法、系统、组件、非暂时性计算机可读介质、设备和/或网络,其提供在区块链网络中虚拟区块链的创建。
分散式数据库是分布式存储系统,其包括彼此通信的多个节点。区块链是分散式数据库的一个例子,它包括一个仅附加的不可变数据结构,类似于能够在相互不可信方之间保持记录的分布式分类账。不可信方在此称为对等方或对等节点。每个对等方维护数据库记录的副本,并且没有单个对等方可以修改数据库记录而不在分布式对等方之间达成共识。例如,对等方可以执行共识协议以验证区块链存储事务,将存储事务分组为块,并在块上构建哈希链。此过程通过根据需要为了一致性对存储事务进行排序来形成分类帐。在公共或免许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本地加密货币,并且基于诸如工作证明(Proof of Work,PoW)之类的各种协议使用共识。另一方面,许可的区块链数据库提供了一种系统,该系统可以保护共享共同目标但彼此不完全信任的一组实体之间的相互作用,例如交换资金、商品,信息等。
区块链操作任意的可编程逻辑,其适合于分散的存储方案并且被称为“智能合约”或“链代码”。在一些情况下,可以存在用于管理功能和参数的专用链代码,其被称为系统链代码。智能合约是受信任的分布式应用,它利用区块链数据库的防篡改属性和节点之间的底层协议(其被称为背书或背书策略)。一般而言,区块链事务通常必须在提交给区块链之前被“背书”,而未被背书的事务则被忽略。典型的认可策略允许链代码以一组对等节点的形式指定事务的背书人,对于背书来说这是必需的。当客户端将事务发送到背书策略中指定的对等方时,执行该事务以验证该事务。在验证之后,事务进入排序阶段,其中共识协议用于产生分组为块的背书的事务的有序序列。
节点是区块链系统的通信实体。“节点”可以在不同类型的多个节点可以在同一物理服务器上运行的意义上执行逻辑功能。节点在信任域中分组,并与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型,例如客户端或提交客户端节点,其向背书人(例如,对等方)提交事务调用,并且将事务提议广播到排序服务(例如,排序节点)。另一种类型的节点是对等节点,其可以接收客户端提交的事务,提交事务并维护区块链事务的分类账的状态和副本。对等方也可以扮演背书人的角色,尽管这不是必需的。排序服务节点或排序方是为所有节点运行通信服务的节点,并且实现传送保证,例如在提交事务和修改区块链的世界状态时向系统中的每个对等节点广播,其是通常包括控制和设置信息的初始区块链事务的另一个名称。
分类帐是区块链的所有状态转换的有序的、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书人节点、对等节点等)提交的链代码调用(即,事务)产生。事务可以导致一组资产键值对被提交给分类帐作为一个或多个操作数,例如创建、更新、删除等。分类帐包括区块链(也称为链),用于以块的形式存储不可变的顺序的记录。分类帐还包括状态数据库,该状态数据库维护区块链的当前状态。每个渠道通常有一个分类帐。每个对等节点为其所属的每个通道维护一个分类帐的副本。
链是事务日志,其被构造为散哈希链接的块,并且每个块包含N个事务的序列,其中N等于或大于1。块头包括块的事务的哈希,以及先前块的头的哈希。通过这种方式,分类账上的所有交易都可以按顺序排列并以加密方式链接在一起。因此,不可能在不破坏散哈希链接的情况下篡改分类帐数据。最近添加的区块链块的哈希表示在其之前来到的链上的每个事务,它可以确保所有对等节点处于一致且可信任的状态。链可以存储在对等节点文件系统(即,本地、附加存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变分类帐的当前状态表示链事务日志中包括的所有密钥的最新值。因为当前状态表示通道已知的最新键值,所以它有时被称为世界状态。链代码调用针对分类帐的当前状态数据执行事务。为了使这些链代码交互有效率,键的最新值可以存储在状态数据库中。状态数据库可以只是链的事务日志的索引视图,因此可以随时从链中重新生成。在对等节点启动时以及在接受事务之前,可以自动恢复(或在需要时生成)状态数据库。
本文描述和描绘的各解决方案的一些益处包括用于在区块链网络中创建虚拟区块链的方法和系统。示例性实施例通过扩展数据库的特征(诸如不变性、数字签名和作为单一事实来源)来解决时间和信任的问题。示例性实施例提供了用于基于区块链的网络中创建虚拟区块链的解决方案。基于资产类型和基于智能合约管理资产的规则,区块链网络可以是同质的。
区块链与传统数据库的不同之处在于区块链不是中央存储,而是分散的、不可变的和安全的存储,其中节点必须共享存储中的记录的变化。区块链中固有的并且帮助实现区块链的一些属性包括但不限于不可变的分类账、智能合约、安全性、隐私、分散、共识、背书、可访问性等,将在本文中进一步描述这些内容。根据各个方面,由于区块链固有的和独特的不可变的责任、安全性、隐私、允许的分散、智能合同的可用性、背书和可访问性,实现用于在区块链网络中创建虚拟区块链的系统。特别地,区块链分类帐数据是不可变的,并且其提供了用于在区块链网络中创建虚拟区块链的有效方法。此外,在区块链中使用加密可提供安全性并建立信任。智能合约管理资产的状态以完成生命周期。示例区块链是权限分散的。因此,每个最终用户可以拥有自己的分类帐副本来访问。多个组织(和对等方)可以在区块链网络上加入。关键组织可以作为背书对等方来验证智能合约执行结果、读取集和写入集。换句话说,区块链固有特征提供了用于创建虚拟区块链的方法的有效实现。
示例实施例的益处之一是其通过实现用于在基于区块链的系统中创建虚拟区块链的方法来改进计算系统的功能。通过这里描述的区块链系统,计算系统可以通过提供对诸如分布式分类账、对等、加密技术、MSP、事件处理等能力的访问来执行用于基于区块链网络中的父物理区块链来实现虚拟区块链的功能。此外,区块链可以创建一个商业网络,并使任何用户或组织能够参与其中。因此,区块链不仅仅是一个数据库。区块链具有创建用户和加入/离场组织的业务网络能力,以智能合约的形式协作和执行服务流程。
示例实施例提供了超过传统数据库的许多益处。例如,通过区块链,实施例提供了区块链固有且独特的不可变责任、安全性、隐私、允许的分散、智能合同的可用性、背书和可访问性。
同时,传统数据库不能用于实现示例实施例,因为它不带来业务网络上的所有方,它不创建可信协作并且不提供数字资产的有效存储。传统数据库不提供防篡改存储,也不提供对存储的数字资产的保存。因此,所提出的用于在区块链网络中创建虚拟区块链的方法不能在传统数据库中实现。
同时,如果传统数据库将用于实现示例实施例,则示例实施例将遭受诸如搜索能力、缺乏安全性和事务的低速之类的不必要的缺点。此外,在区块链网络中创建虚拟区块链的自动方法根本不可能。
因此,示例实施例提供了区块链网络中区块链的虚拟化领域中的问题的特定解决方案。
示例实施例还改变了如何将数据存储在区块链的块结构内。例如,数字资产数据可以安全地存储在数据块的特定部分内(即,在报头、数据段或元数据内)。通过将数字资产数据存储在区块链的数据块内,可以通过哈希链接的块链将数字资产数据附加到不可变区块链分类账。在一些实施例中,通过使与数字资产相关联的个人数据不与资产一起存储在区块链的传统块结构内,数据块可以与传统数据块不同。通过移除与数字资产相关联的个人数据,区块链可以基于不可变的责任和安全性提供匿名的好处。
根据示例性实施例,提供了一种用于构建和使用虚拟区块链的方法和系统。虚拟区块链基于已存在的父物理区块链。物理区块链和虚拟区块链之间的关系可以是一对多。换句话说,物理父区块链可以具有多个虚拟子区块链。虚拟区块链的生命周期可能包括:
–虚拟区块链的创建;
–虚拟区块链中数据的填写;
–虚拟区块链的更新/同步;以及
-虚拟区块链的停用。
虚拟区块链是独立的,并且表现为所选参与者的真实区块链。可以直接访问虚拟区块链中的记录内容,并且可以将所有现有事务记录提供给拥有虚拟区块链的所选参与者。可以将虚拟区块链与数据库表的数据库视图进行比较,该数据库表过滤掉来自真实表的数据以获得快速概览并执行搜索查询。此外,示例性实施例可以使用交叉和稀疏认证方法来确保虚拟区块链中所访问记录的完整性。
根据示例性实施例,可以基于父物理区块链来创建虚拟区块链。虚拟区块链的内容可以基于规则,并且可以被验证为存储在物理区块链上的事务。参与节点可以向物理区块链提交事务以创建其自己的虚拟区块链。换句话说,区块链节点可以成为虚拟区块链的所有者。资产矿工可以基于规则和所有者的签名来验证虚拟区块链。虚拟区块链中的所有块的规则和散列值可以作为事务记录在物理区块链中。虚拟区块链中的最后一个块可以具有到物理(父)区块链中的块的链接,其可以用于在使用该物理块之前确保虚拟区块链是正确的。在该物理块之后出现的任何新数据可能需要由用户验证。
当满足其规则的新节点加入物理区块链时,可以更新虚拟区块链。在这种情况下,虚拟区块链所有者需要提交具有整个虚拟块的哈希值的新事务请求。如上所述,针对一个父物理区块链可以存在若干子虚拟区块链。在一个实施例中,可以根据不同的条件将一个物理区块链扩展为多个虚拟区块链。这些条件可能包括:
-访问的记录热点;
–记录的分类;
-记录的参与者;
-预定义规则或定制规则;以及
–共事生态系统。
为了构建虚拟区块链,需要基于该规则确定从物理区块链到虚拟区块链的一组实体。规则可以指示要复制哪种记录以及要构建什么类型的链接。如果物理父区块链中存在更新,则必须在物理区块链和虚拟区块链之间同步数据。注意,可以为所有虚拟块创建新的哈希值。虚拟区块链仍然是分布式的,但在大多数情况下它要小得多。这样,与大型父区块链相比,在虚拟区块链上可以更快地执行搜索查询。同时,虚拟区块链可以通过减少对父区块链的访问来改善区块链网络的整体性能。虚拟区块链管理器节点还可以通过将物理区块链的各个部分提取到多个虚拟区块链来保护对父区块链的记录的访问。
物理区块链中记录的虚拟区块链的事务包括虚拟区块链中的所有块的哈希值。由于之前已经验证了该规则的事务,用户只需要根据哈希值验证虚拟区块链中每个块的内容,而不是再次检查规则。对于在该事务之后添加到虚拟区块链中的新块,用户需要自己验证这些块,直到创建这些块的新事务为止。虽然创建虚拟区块链需要额外的成本,但随着时间的推移使用虚拟区块链会带来明显的好处。
例如,在银行区块链系统中,创建“贷款”虚拟区块链。所有“贷款”相关事务都在该虚拟区块链中暴露给组织(例如,信用卡中心和信用评估中心),而其他银行信息可能对这些组织隐藏。另一个例子可以是用于快餐连锁的食物跟踪区块链系统。可以创建“快餐食品”虚拟区块链。该快餐连锁的所有食品相关数据都可能暴露在虚拟区块链“快餐食品”中,而与其他快餐食品供应商相关的数据可以被隐藏。
图1示出了根据示例实施例的用于在区块链网络中创建虚拟区块链的逻辑网图。
参见图1,示例网络100包括连接到用户节点103的虚拟区块链管理器节点102。虚拟区块链管理器节点102可以连接到区块链106,区块链106具有用于存储用户的事务(Tx)的分类账108。虽然该示例仅详细描述了一个虚拟区块链管理器节点102,但是多个这样的节点可以连接到区块链106。应当理解,虚拟区块链管理器节点102可以包括额外的组件,并且可以在不脱离本文公开的虚拟区块链管理器节点102的范围的情况下移除和/或修改本文描述的一些组件。虚拟区块链管理器节点102可以是计算设备或服务器计算机等,并且可以包括处理器104(其可以是基于半导体的微处理器)、中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和/或其他硬件设备。尽管描绘了单个处理器104,但是应当理解,在不脱离虚拟区块链管理器节点102系统的范围的情况下,虚拟区块链管理器节点102可以包括多个处理器、多个核等。
虚拟区块链管理器节点102还可以包括非暂时性计算机可读介质112,其上可以存储可由处理器104执行的机器可读指令。机器可读指令的示例被示为114-122并且进一步讨论如下。非暂时性计算机可读介质112的示例可以包括包含或存储可执行指令的电子、磁、光或其他物理存储设备。例如,非暂时性计算机可读介质112可以是随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、硬盘、光盘或其他类型的存储设备。
处理器104可以获取、解码和执行机器可读指令114以连接到区块链106,区块链106被配置为存储由用户节点提交的多个用户事务109。如上所述,区块链分类帐108可以存储用户事务109。区块链106网络可以被配置为使用管理多个参与节点的事务的一个或多个智能合约。虚拟区块链管理器节点102可以创建具有分类帐111的虚拟区块链110。
处理器104可以提取、解码和执行机器可读指令116以从多个用户事务识别用户请求事务以创建用户的虚拟区块链110,其中用户请求事务包括规则。处理器104可以获取、解码和执行机器可读指令118以基于用户请求事务创建虚拟区块链。处理器104可以获取、解码和执行机器可读指令120,以基于该规则利用来自区块链的多个用户事务中的用户事务来填充虚拟区块链。处理器104可以获取、解码和执行机器可读指令122以执行智能合约以将规则和来自虚拟区块链110的所有块的哈希记录到区块链106上。
图2A示出了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(仅由示例描述这四个节点)。这些节点参与多个活动,例如区块链事务添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于认可策略背书事务,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证,并寻求写入区块链层216中存储的区块链不可变分类账,其副本也可以存储在基础物理基础设施214上。区块链配置可以包括一个或多个应用224,其链接到应用编程接口(API)222以访问和执行存储的程序/应用代码220(例如,链代码、智能合约等),程序/应用代码220可以根据参与者所寻求的定制配置而被创建,并且可以维持他们自己的状态、控制他们自己的资产,以及接收外部信息。这可以作为事务部署,并通过附加到分布式分类账安装在所有区块链节点204-210上。
区块链基础或平台212可以包括区块链数据、服务(例如,加密信任服务、虚拟执行环境等)的多个层,以及可以用于接收和存储新事务并为正在寻求访问数据条目的审计者提供访问的基础物理计算机基础设施。区块链层216可以暴露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可以用于验证诸如资产交换事务之类的事务并保持信息私密。
图2A的区块链架构配置可以通过由区块链平台212暴露的一个或多个接口以及提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和传输数据,并且可以由节点204-210以智能合约和相关链码的形式执行,其中条件或其他代码元素符合其执行。作为非限制性示例,可以创建智能合约以执行提醒、更新,和/或符合该提醒、通知的其他通知等。智能合约本身可以用于识别与授权和访问要求和使用相关联的规则以及分类帐的使用。例如,可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)处理用于创建虚拟区块链226的事务。结果228可以包括反映该规则的数据块和虚拟区块链的块的哈希。物理基础设施214可用于检索本文描述的任何数据或信息。
在链代码内,可以通过高级应用和编程语言创建智能合约,然后将其写入区块链中的块。智能合约可以包括用区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合约代码的执行,其可以响应于与满足智能合约相关联的条件而执行。智能合约的执行可以触发对数字区块链分类帐的状态的可信修改。可以通过一个或多个共识协议,在区块链对等方的整个分布式网络中自动复制由智能合约执行引起的对区块链分类账的修改。
智能合约可以以键-值对的形式将数据写入区块链。此外,智能合约代码可以读取区块链中存储的值并在应用操作中使用它们。智能合约代码可以将各种逻辑运算的输出写入区块链。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以加密并保持为私有。智能合约使用/生成的临时数据由提供的执行环境保存在内存中,然后在识别出区块链所需的数据后删除。
链代码可以包括具有附加特征的智能合约的代码解释。如本文所述,链代码可以是部署在计算网络上的程序代码,其中在共识过程期间由链验证器一起执行和验证链代码。链代码接收哈希并从区块链中检索与通过使用之前存储的特征提取器创建的数据模板相关联的哈希。如果哈希标识符的哈希和从存储的标识符模板数据创建的哈希匹配,则链代码将授权密钥发送到所请求的服务。链代码可以写入与密码细节相关的区块链数据。图2A中,虚拟区块链的创建可以包括执行智能合约。一个功能可以是在分类账上提交与智能合约的执行相关的事务,用于记录规则和虚拟区块链的块的哈希,其可以被提供给节点204-210中的一个或多个。
图2B示出了根据示例实施例的区块链的节点之间的事务流程250的示例。参考图2B,事务流程可以包括由应用客户端节点260发送给背书对等节点281的事务提议291。背书对等方281可以验证客户端签名并执行链代码功能以发起交易。输出可以包括链代码结果、在链代码(读取集)中读取的一组键/值版本、以及在链代码(写入集)中写入的键/值集。如果批准,则将提议响应292与背书签名一起发送回客户端260。客户端260将背书组装到事务有效载荷293中并将其广播到排序服务节点284。然后,排序服务节点284将排序的事务作为块递送到通道上的所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证该交易。例如,对等方可以检查背书策略以确保指定对等方的正确分配已经对结果进行了签名并且针对事务有效负载293对签名进行了认证。
再次参考图2B,客户端节点260通过构造并向作为背书人的对等节点281发送请求来发起事务291。客户端260可以包括利用支持的软件开发工具包(software developmentkit,SDK)的应用,例如NODE、JAVA、PYTHON等,其利用可用的API来生成事务提议。该提议是调用链代码功能的请求,以便可以读取数据和/或将数据写入分类帐(即,为资产写入新的键值对)。SDK可以用作填充层以将事务提议打包成适当架构的格式(例如,通过远程过程调用(remote procedure call,RPC)的协议缓冲区)并获取客户机的加密凭证以产生事务提议的唯一签名。
作为响应,背书对等节点281可以验证(a)事务提议是否格式良好,(b)过去尚未提交交易(重放-攻击保护),(c)签名是有效的,以及(d)提交者(该示例中为客户端260)被适当授权在该通道上执行所提出的操作。背书对等节点281可以将事务提议输入作为被调用的链代码功能的参数。然后针对当前状态数据库执行链代码以产生包括响应值、读取集和写入集的事务结果。但是,此时没有对分类帐进行更新。在292中,将该组值与背书对等节点281的签名一起作为提议响应292传递给客户端260的SDK,其解析应用要消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方的签名并比较提议响应以确定提议响应是否相同。如果链代码仅查询分类帐,则应用将检查查询响应并且通常不将该事务提交给排序节点服务284。如果客户端应用打算将该事务提交给排序节点服务284以更新分类帐,则该应用确定在提交之前是否已满足指定的认可策略(即,事务所需的所有对等节点都支持该事务)。这里,客户端可以仅包括事务的多方中的一方。在这种情况下,每个客户端可以拥有自己的背书节点,并且每个背书节点都需要支持该事务。该体系结构使得即使应用选择不检查响应或以其他方式转发未经背书的事务,该背书策略仍将由对等方强制执行并在提交验证阶段维持。
在成功检查之后,在步骤293中,客户端260将背书组装到事务中,并将事务消息中的事务提议和响应广播到排序节点284。事务可以包含读取/写入集、背书对等方的签名、以及通道ID。排序节点284不需要检查事务的整个内容以便执行其操作。相反,排序节点284可以简单地从网络中的所有通道接收事务、按通道按时间顺序排序、并且对每个信道创建事务块。
事务块从排序节点284传递到通道上的所有对等节点281-283。验证块内的事务294以确保满足任何背书策略并确保读取集变量的分类帐状态没有变化,因为读取集是由事务执行生成的。块中的事务被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将该块附加到信道的链,并且对于每个有效事务,将写入集提交给当前状态数据库。发出一个事件,通知客户端应用事务(调用)已不可变地附加到链,以及通知事务是否已经过验证或无效。
图3示出了许可的区块链网络300的示例,其具有分布式、分散的对等架构,以及管理用户角色和许可的证书授权318。在该示例中,区块链用户302可以向许可的区块链网络310提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用直接通过REST API等发出。可信的商业网络可以提供对监管系统314(例如审计者(例如,美国股票市场中的证券交易委员会))的访问。同时,节点308的区块链网络运营者系统管理成员许可,例如将监管系统314登记为“审计者”并且将区块链用户302登记为“客户端”。审计者可以仅限于查询分类帐,而客户端可以被授权部署、调用和查询某些类型的链代码。
区块链开发者系统316编写链代码和客户端侧应用。区块链开发者系统316可以通过REST接口将链代码直接部署到网络。为了在链码中包括来自传统数据源330的凭证,开发者系统316可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到网络。在继续任何事务之前,对等节点312从证书授权机构318检索用户的登记和事务证书。在一些情况下,区块链用户必须拥有这些数字证书,以便在许可的区块链网络310上交易。同时,可能需要驱动链代码的用户尝试以在传统数据源330上验证他们的凭证。为了确认用户的授权,链代码可以使用通过传统处理平台320的到该数据的带外链接。
图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可以在识别用户节点提交的更新请求事务时更新虚拟区块链。在框460处,处理器104可以基于预定义规则来更新虚拟区块链。更新请求事务可以包含新虚拟块的哈希值和新规则。
图5A示出了根据示例实施的示例系统500,其包括被配置为例执行多种操作的物理基础设施510。参考图5A,物理基础设施510包括模块512和模块514。模块514包括区块链520和智能合约530(其可以驻留在区块链520上),其可以(在模块512中)执行任意示例实施例中包括的操作步骤508中的任意步骤。步骤/操作508可以包括所描述或描绘的一个或多个实施例,并且可以表示从一个或多个智能合约530和/或区块链520写入或读取的输出或写入信息。物理基础设施510、模块512、和模块514可以包括一个或多个计算机、服务器、处理器、存储器、和/或无线通信设备。此外,模块512和模块514可以是相同的模块。
图5B示出了根据示例实施例的被配置为执行多种操作的示例系统540。参考图5B,系统540包括模块512和模块514。模块514包括区块链520和智能合约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”)中。替代方案中,处理器和存储介质可以作为分立组件驻留。例如,图6示出了示例计算机系统架构600,其可以表示或集成在任何上述组件等中。
图6A示出了根据示例实施例的添加新块到分布式分类帐630的过程600,并且图6B示出了根据示例实施例的用于区块链的块结构650的内容。参考图6A,客户端(未示出)可以向区块链节点621、622和/或623提交事务。客户端可以是从任何源接收的指令以在区块链630上制定活动。作为示例,客户端可以是代表请求者(例如,设备、个人或实体)提出区块链的事务的应用。多个区块链对等方(例如,区块链节点621、622和623)可以维持区块链网络的状态和分布式分类账630的副本。区块链网络中可以存在不同类型的区块链节点/对等方,包括模拟和背书客户端提交的事务并且提交对等方的背书对等方,其验证背书、验证事务、并将事务提交到分布式分类账630。在该示例中,区块链节点621、622和623可以执行背书者节点、提交者、或上述两者的角色。
分布式分类帐630包括:区块链632,其以块的形式存储不可变的、顺序的记录;以及状态数据库634(当前的世界状态),其维持区块链632的当前状态。每个通道可以存在一个分布式分类账630,每个对等方为其所属的每个频道维护它自己的分布式分类帐630的副本。区块链632是事务日志,被构造为哈希链接的块,其中每个块包含N个事务的序列。块可以包括如图6B所示的多个组件。可以通过在当前块的块头中添加先前块的头的哈希来生成块的链接(由图6A中的箭头示出)。以这种方式,区块链632上的所有事务被排序并加密地链接在一起,防止篡改区块链数据而不破坏哈希链接。此外,由于链接,区块链632中的最新块表示在其之前的每个事务。区块链632可以存储在对等文件系统(本地或附加的存储)上,其支持仅附加的区块链工作负载。
区块链632和分布式分类帐632的当前状态可以存储在状态数据库634中。这里,当前状态数据表示区块链632的链事务日志中包括的所有键的最新值。链代码调用针对状态数据库634中的当前状态执行事务。为了使这些链代码交互极其有效率,在状态数据库634中存储所有键的最新值。状态数据库634可以包括到区块链632的事务日志中的索引视图,因此,其可以随时从链中再生。在接受事务之前,可以在对等方启动时自动恢复(或在需要时生成)状态数据库634。
背书节点从客户端接收交易并基于模拟结果背书事务。背书节点持有模拟事务提议的智能合约。当背书节点背书事务时,背书节点创建事务背书,该背书是从背书节点到客户端应用、指示模拟的交易的背书的签名响应。背书事务的方法取决于可在链码内指定的背书政策。背书政策的一个例子是“大多数背书对等方必须背书事务”。不同的通道可能有不同的背书政策。背书的事务由客户端应用转发给排序服务610。
排序服务610接受背书的交易,将它们排序为块,并将块传递到提交的对等方。例如,在达到事务阈值、计时器超时或其他条件时,排序服务610可以发起新块。在图6A的示例中,区块链节点622是已经接收到用于存储在区块链630上的新数据块650的提交对等方。
排序服务610可以由排序者的群组成。排序服务610不处理事务、智能合约或维护共享分类帐。相反,排序服务610可以接受所背书的交易并指定这些事务被提交给分布式分类账630的顺序。区块链网络的架构可以被设计为使得“排序”的具体实现(例如,Solo,Kafka,BFT等)成为可插拔的组件。
以一致的顺序将事务写入分布式分类帐630。建立事务的顺序以确保状态数据库634的更新在它们被提交到网络时是有效的。与通过解密密码拼图或挖掘发生排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式分类账630的各方可以选择最适合该网络的排序机制。
当排序服务610初始化新块650时,可以将新块650广播到提交对等方(例如,区块链节点621、622和623)。作为响应,每个提交对等方通过检查以确保读取集和写入集仍然与状态数据库634中的当前世界状态匹配来验证新块650内的事务。具体地,提交对等方可以确定当背书者模拟事务时存在的读取数据是否与状态数据库634中的当前世界状态相同。当提交对等方验证事务时,事务被写入分布式分类账630上的区块链632,并且使用来自读写集的写数据更新状态数据库634。如果事务失败,也就是说,如果提交的对等方发现读写集与状态数据库634中的当前世界状态不匹配,则排序到块中的事务仍将包含在该块中,但它将是标记为无效,状态数据库634将不会更新。
参见图6B,存储在分布式分类帐630的区块链632上的块650(也称为数据块)可以包括多个数据段,例如块头660、块数据670和块元数据680。应当理解,图6B中所示的多种被描述的块及其内容,例如块650及其内容,仅仅用于示例的目的,并不意味着限制示例实施例的范围。在一些情况下,块头部660和块元数据680都可以小于存储交易数据的块数据670,然而,这不是必需的。块650可以存储块数据670内的N个事务(例如,100、500、1000、2000、3000等)的事务信息。块650还可以在块头660中包括到先前块(例如,图6A中的区块链632上的)的链接。具体地,块头660可以包括先前块的头部的哈希。块头660还可以包括唯一块号,当前块650的块数据670的哈希等。块650的块编号可以是唯一的,并且以从零开始的增量/顺序的顺序分配。区块链中的第一个区块可以称为创世区块,其包括关于区块链、其成员、其中存储的数据等的信息。
块数据670可以存储块650内记录的每个事务的事务信息。例如,事务数据可以包括下列内容中的一个或多个:事务类型、版本、时间戳、分布式分类帐630通道ID、事务ID、时期、有效负载可见性、链代码路径(部署tx)、链代码名称、链代码版本、输入(链代码和功能)、客户端(创建者)标识(例如公钥和证书)、客户端签名、背书者身份、背书者签名、提议哈希、链代码事件、响应状态、命名空间、读取集(事务读取的键的列表和版本等)、写入集(键和值的列表等)、开始键、结束键、键列表、Merkel树查询摘要等。可以为N个事务中的每一个存储事务数据。
在一些实施例中,块数据670还可以存储数据672,其将附加信息添加到区块链632中的哈希链接的块的链。因此,数据672可以存储在分布式分类账630上的块的不可变日志中。存储这种数据的一些益处672反映在本文公开和描述的各种实施例中。
块元数据680可以存储多个元数据字段(例如,作为字节数组等)。元数据字段可以包括块创建的签名、对最后配置块的引用、标识块内有效和无效事务的事务过滤器、对排序块的排序服务的保持的最后偏移等。可以由排序服务610添加签名、最后配置块和排序者元数据。同时,块的提交者(例如区块链节点622)可以基于背书策略添加有效/无效信息,验证读/写集等。事务过滤器可以包括大小等于块数据670中的事务数量的字节数组和标识事务是否有效/无效的验证代码。
图7并不意在对本文描述的申请的实施例的使用范围或功能提出任何限制。无论如何,计算节点700能够实现和/或执行上文描述的任意功能。
计算节点700中,存在计算机系统/服务器702,其可与许多其他通用或专用计算系统环境或配置一起操作。可适用于计算机系统/服务器702的众所周知的计算系统、环境、和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
可以在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述计算机系统/服务器702。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。可以在分布式云计算环境中实现计算机系统/服务器702,其中由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图7所示,云计算节点700中的计算机系统/服务器702以通用计算设备的形式示出。计算机系统/服务器702的组件可以包括但不限于一个或多个处理器或处理单元704、系统存储器706、以及将包括系统存储器706的多个系统组件耦合到处理器704的总线。
总线表示若干类型的总线结构中的任意一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用多种总线架构中的任何总线架构的处理器或本地总线。作为示例而非限制,这样的架构包括工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)本地总线、和外围组件互连(Peripheral Component Interconnects,PCI)总线。
计算机系统/服务器702通常包括多种计算机系统可读介质。这样的介质可以是计算机系统/服务器702可访问的任何可用介质,并且其包括易失性和非易失性介质,可移动和不可移动介质。在一个实施例中,系统存储器706实现其他附图的流程图。系统存储器706可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)710和/或高速缓冲存储器712。计算机系统/服务器702还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统714用于从不可移除的非易失性磁介质(未示出并且通常称为“硬盘驱动器”)读取和写入。尽管未示出,但是可以提供用于读取和写入可移除的非易失性磁盘(例如,“软盘”)的磁盘驱动器,以及用于读取或写入可移除的非易失性光盘(例如CD-ROM,DVD-ROM或其他光介质)的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据媒体接口连接到总线。如下面将进一步描绘和描述的,存储器806可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置为执行本申请的各种实施例的功能。
作为示例而非限制,可以在存储器706中存储具有一组(至少一个)程序模块718的程序/实用程序716以及操作系统、一个或多个应用程,其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现。程序模块718通常执行如本文所述的本申请的多个实施例的功能和/或方法。
如本领域技术人员将了解的,本申请的方面可体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)、或者组合软件和硬件方面的实施例的形式,本文中这些实施例通常可以被称为“电路”、“模块”或“系统”。此处,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有包含在其上的计算机可读程序代码。
计算机系统/服务器702还可以与一个或多个外部设备720(例如键盘、指示设备、显示器722等)、一个或多个使用户能够与计算机系统/服务器702交互的设备、和/或使计算机系统/服务器702能够与一个或多个其他计算设备通信的任意设备(例如,网卡、调制解调器等)通信。可以通过I/O接口724进行这一通信。此外,计算机系统/服务器702可以经由网络适配器726与诸如局域网(LAN)、一般广域网(WAN)和/或公共网络(例如因特网)的一个或多个网络通信。如所示,网络适配器726通过总线与计算机系统/服务器702的其他组件通信。应当理解,尽管图中未示出,可以与计算机系统/服务器702结合使用其他硬件和/或软件组件。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统,磁带驱动器和数据存档存储系统等。
尽管在附图中示出了并且在前面的详细描述中描述了系统、方法和非暂时性计算机可读介质中的至少一个的示例性实施例,但是应当理解,本申请不限于在所公开的实施例中,而是能够进行如下所述的权利要求所阐述和限定的许多重新排列、修改和替换。例如,可以由本文描述的模块或组件中的一个或多个或在分布式架构中执行各个图的系统的能力,并且各个图的系统的能力可以包括发射器、接收器或两者的对。例如,由各个模块执行的全部或部分功能可以由这些模块中的一个或多个执行。此外,可以在不同时间并且与模块或组件内部或外部的多个事件相关地执行本文描述的功能。此外,可以通过以下中的至少一个在模块之间发送在各个模块之间发送的信息:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备和/或通过多个协议。此外,可以直接地和/或经由一个或多个其他模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话、或任意其他合适的计算设备、或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,可以以与计算技术一致的本地化和分布式形式实现本文公开的方法、系统和装置。
应当注意,已经作为模块呈现本说明书中描述的一些系统特征,以便更具体地强调它们的实现独立性。例如,模块可以实现为包括硬件电路,包括:定制的超大规模集成(VLSI)电路或门阵列的,诸如逻辑芯片、晶体管或其他分立元件的现成半导体。还可以在可编程硬件设备(例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现模块。
还可以至少部分地以软件实现模块,以由各种类型的处理器执行。可执行代码的识别的单元可以例如包括可以例如被组织为对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,所识别的模块的可执行程序不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑上连接在一起时这些指令包括模块并实现模块的所述目的。此外,模块可以存储在计算机可读介质上,该计算机可读介质可以是例如硬盘驱动器、闪存设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,甚至可以分布在多个不同的代码段上、不同的程序中、以及多个存储器设备上。类似地,本文中,可以在模块内识别和描述操作数据,并且操作数据可以以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可以作为单个数据集收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
容易理解的是,如本文附图中一般描述和说明的,可以以各种不同的配置来布置和设计本申请的组件。因此,实施例的详细描述不旨在限制所要求保护的本申请的范围,而仅仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以以不同顺序的步骤和/或使用与所公开的配置不同的配置中的硬件元件来实践上述内容。因此,尽管已经基于这些优选实施例描述了本申请,但是对于本领域技术人员来说显而易见的是,某些修改,变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应该理解,所描述的实施例仅是说明性的,并且当考虑具有完整范围的等同物或修改(例如,协议、硬件设备、软件平台等)时,本申请的范围仅由所附权利要求限定。

Claims (10)

1.一种方法,包括:
由虚拟区块链管理器节点连接到配置为存储用户节点提交的多个用户交易的区块链;
由所述虚拟区块链管理器节点从所述多个用户交易中识别出用户请求交易以为所述用户创建虚拟区块链,所述用户请求交易中包含规则;
由所述虚拟区块链管理器节点基于所述用户请求交易创建虚拟区块链;
由所述虚拟区块链管理者节点根据所述规则将来自所述区块链的所述多个用户交易中的所述用户交易填充到所述虚拟区块链;以及
由所述虚拟区块链管理器节点执行智能合约以将所述规则和来自虚拟区块链的所有区块的哈希记录到所述区块链。
2.根据权利要求1所述的方法,还包括:将所述规则和来自所述虚拟区块链的所有所述区块的哈希存储在所述区块链上,作为用于验证所述虚拟区块链上的区块的交易。
3.根据权利要求1所述的方法,还包括:向存储在所述虚拟区块链上的至少一个区块分配到存储在所述区块链上的区块的链接,以确保在所述至少一个区块之前存储在所述虚拟区块链上的区块的正确性。
4.根据权利要求3所述的方法,还包括:将所述链接分配给存储在所述虚拟区块链上的最后一个区块。
5.根据权利要求1所述的方法,还包括:在识别出所述用户节点提交的更新请求交易之后,更新所述虚拟区块链。
6.根据权利要求5所述的方法,其中,所述更新请求事务包含新的虚拟区块的哈希值和新的规则。
7.根据权利要求6所述的方法,还包括基于预定义规则来更新所述虚拟区块链。
8.一种计算机系统,包括:
处理器;
耦合到所述处理器的计算机可读存储介质,所述计算机可读存储介质包括指令,当所述指令由所述处理器执行时实施如权利要求1-7中任意一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质包括程序代码,所述程序代码可由处理器执行以使所述处理器实施如权利要求1-7中任意一项所述的方法。
10.一种系统,所述系统包括分别用于执行如权利要求1-7中任意一项所述的方法的各个步骤的模块。
CN202010047186.1A 2019-01-25 2020-01-16 虚拟区块链 Active CN111488393B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/257455 2019-01-25
US16/257,455 US11195180B2 (en) 2019-01-25 2019-01-25 Virtual blockchain

Publications (2)

Publication Number Publication Date
CN111488393A true CN111488393A (zh) 2020-08-04
CN111488393B CN111488393B (zh) 2023-11-10

Family

ID=71732701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010047186.1A Active CN111488393B (zh) 2019-01-25 2020-01-16 虚拟区块链

Country Status (2)

Country Link
US (1) US11195180B2 (zh)
CN (1) CN111488393B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055173A (zh) * 2020-08-24 2020-12-08 深圳区块大陆科技有限公司 一种利用区块链防止篡改监控视频的方法
CN112468565A (zh) * 2020-11-19 2021-03-09 江苏省测绘资料档案馆 基于区块链的空间数据完整性管理和共享流程跟踪的系统
CN113506107A (zh) * 2021-06-21 2021-10-15 数界(深圳)科技有限公司 一种区块链节点虚拟化的实现方法及区块链节点
CN113807917A (zh) * 2021-09-13 2021-12-17 广州酷狗计算机科技有限公司 虚拟盲盒流转、下单控制方法及装置、设备、介质、产品
CN114064984A (zh) * 2022-01-14 2022-02-18 浙商银行股份有限公司 一种基于稀疏数组链表的世界状态增量更新方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341451B2 (en) * 2018-10-10 2022-05-24 Questaweb Holdings Inc. Hierarchical blockchain architecture for global trade management
WO2021125109A1 (ja) * 2019-12-19 2021-06-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、装置、及び、プログラム
US11113241B1 (en) * 2020-08-22 2021-09-07 Tyson York Winarski Computer application for blockchaining files through a graphical user interface
US11971999B2 (en) * 2020-10-20 2024-04-30 Tyson York Winarski Optimizing blockchain creation with artificial intelligence based on system resources
CN112559635B (zh) * 2020-12-23 2023-06-16 网易(杭州)网络有限公司 以太坊联盟链节点的业务处理方法、装置、设备及介质
CN114826790B (zh) * 2022-06-30 2022-11-15 浪潮电子信息产业股份有限公司 一种区块链监测方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682984A (zh) * 2016-10-27 2017-05-17 上海亿账通区块链科技有限公司 基于区块链的交易事务处理方法及系统
CN106899680A (zh) * 2017-03-09 2017-06-27 上海亿账通区块链科技有限公司 多区块链的分片处理方法和装置
US20180139278A1 (en) * 2016-11-14 2018-05-17 International Business Machines Corporation Decentralized immutable storage blockchain configuration

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083413A1 (en) * 2007-09-24 2009-03-26 Levow Zachary S Distributed frequency data collection via DNS
US10310824B2 (en) * 2011-09-07 2019-06-04 Imagine Communications Corp. Distributed ledger platform for computing applications
US20140164234A1 (en) * 2012-12-12 2014-06-12 Capital One Financial Corporation Systems and methods for splitting a bill associated with a receipt
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US11941588B2 (en) 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180220292A1 (en) * 2017-01-30 2018-08-02 Sap Se Blockchain-Based Subscription Management
WO2018175666A1 (en) * 2017-03-21 2018-09-27 Dappsters, LLC Blockchain systems and methods
US11240035B2 (en) * 2017-05-05 2022-02-01 Jeff STOLLMAN Systems and methods for extending the utility of blockchains through use of related child blockchains
US10123202B1 (en) * 2017-07-11 2018-11-06 Verizon Patent And Licensing Inc. System and method for virtual SIM card
US10958418B2 (en) * 2017-10-10 2021-03-23 Chromata Corporation System and method for a blockchain network with heterogeneous privacy
US11139979B2 (en) * 2017-12-18 2021-10-05 Koninklijke Kpn N.V. Primary and secondary blockchain device
WO2019186747A1 (ja) * 2018-03-28 2019-10-03 日本電気株式会社 仮想ブロックチェーンシステム、データ管理方法及びプログラム
US10855446B2 (en) * 2018-04-24 2020-12-01 Duvon Corporation Autonomous exchange via entrusted ledger
CN108898389B (zh) * 2018-06-26 2021-05-18 创新先进技术有限公司 基于区块链的内容验证方法及装置、电子设备
US10671315B2 (en) * 2018-08-17 2020-06-02 Bank Of America Corporation Blockchain architecture for selective data restore and migration
US11341451B2 (en) * 2018-10-10 2022-05-24 Questaweb Holdings Inc. Hierarchical blockchain architecture for global trade management
US11615416B2 (en) * 2018-10-12 2023-03-28 Eugenia Roxanne Miller Child support and centralized distributed network
US11588643B2 (en) * 2018-12-27 2023-02-21 Paypal, Inc. Blockchain management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682984A (zh) * 2016-10-27 2017-05-17 上海亿账通区块链科技有限公司 基于区块链的交易事务处理方法及系统
US20180139278A1 (en) * 2016-11-14 2018-05-17 International Business Machines Corporation Decentralized immutable storage blockchain configuration
CN106899680A (zh) * 2017-03-09 2017-06-27 上海亿账通区块链科技有限公司 多区块链的分片处理方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055173A (zh) * 2020-08-24 2020-12-08 深圳区块大陆科技有限公司 一种利用区块链防止篡改监控视频的方法
CN112468565A (zh) * 2020-11-19 2021-03-09 江苏省测绘资料档案馆 基于区块链的空间数据完整性管理和共享流程跟踪的系统
CN113506107A (zh) * 2021-06-21 2021-10-15 数界(深圳)科技有限公司 一种区块链节点虚拟化的实现方法及区块链节点
CN113807917A (zh) * 2021-09-13 2021-12-17 广州酷狗计算机科技有限公司 虚拟盲盒流转、下单控制方法及装置、设备、介质、产品
CN114064984A (zh) * 2022-01-14 2022-02-18 浙商银行股份有限公司 一种基于稀疏数组链表的世界状态增量更新方法及装置

Also Published As

Publication number Publication date
US11195180B2 (en) 2021-12-07
CN111488393B (zh) 2023-11-10
US20200242602A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
US10671308B2 (en) Private and fault-tolerant storage of segmented data
US11240001B2 (en) Selective access to asset transfer data
CN111488393B (zh) 虚拟区块链
US11227057B2 (en) Membership access management of a database
US11341121B2 (en) Peer partitioning
US11693840B2 (en) Database storing authenticated skill-based attributes
US11232221B2 (en) Right to be forgotten on an immutable ledger
US10936445B2 (en) Resource management
US10833845B2 (en) Guarantee of ledger immutability
US11089096B2 (en) Management of digital assets
US10819523B2 (en) Guarantee of ledger immutability
US11270296B2 (en) Protection of data trading
CN112840617A (zh) 存储区块链资源的区块链通知板
US20200092362A1 (en) A sparse peer with transient participation
US20200143496A1 (en) Proof-carrying smart contract
US11637691B2 (en) Management of a size of a ledger
US11032083B2 (en) Atomic transactional processing
US11354278B2 (en) Linking of tokens
US11138188B2 (en) Performance optimization
US20200092360A1 (en) Sparse peer with transient participation
US11893554B2 (en) Secure smart note
US20200074463A1 (en) Secure smart note
CN111698198B (zh) 秘密生成和份额分发
US11245756B2 (en) Sparse peer with transient participation
US20200389318A1 (en) Metadata-based endorsement

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