CN110945548A - 用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法 - Google Patents

用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法 Download PDF

Info

Publication number
CN110945548A
CN110945548A CN201880049013.4A CN201880049013A CN110945548A CN 110945548 A CN110945548 A CN 110945548A CN 201880049013 A CN201880049013 A CN 201880049013A CN 110945548 A CN110945548 A CN 110945548A
Authority
CN
China
Prior art keywords
transaction
node
transactions
computer
storage pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201880049013.4A
Other languages
English (en)
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.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
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 Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of CN110945548A publication Critical patent/CN110945548A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/04Payment circuits
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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/407Cancellation of a transaction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Multi Processors (AREA)

Abstract

描述了一种在区块链网络中实现的计算机实现的方法。验证节点接收关于包括多个交易的新挖掘的区块的数据,并向分布式存储池发送删除请求,以从所述分布式存储池中删除所述多个交易。存储所述分布式存储池的节点存储多个交易,所述多个交易形成等待挖掘到区块链的区块中的交易的分布式存储池的至少一部分。所述计算机实现的方法还包括接收来自所述区块链网络的验证节点的删除请求,所述删除请求识别已经包括在新挖掘的区块中的一个或多个交易,所述删除请求表明所述一个或多个交易应从所述分布式存储池中删除。

Description

用于管理区块链网络中大型分布式存储池的计算机实现的系 统和方法
技术领域
本申请主要涉及适用于在区块链网络的节点中实现的计算机实现的方法和系统。描述了用于处理大量交易和大交易区块的修改后的区块链节点结构、网络架构和协议。本发明特别适用于但不限于与比特币区块链一起使用。
背景技术
在本文中,使用术语“区块链(Blockchain)”来包括所有形式的电子的、基于计算机的分布式分类账(Distributed Ledgers),包括但不限于区块链和交易链技术、许可及未许可的分类账、共享分类账及其变型。虽然也已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账(Bitcoin Ledger)。虽然出于方便和说明的目的,本文中涉及的是比特币(Bitcoin),但应当指出的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方式和协议也落入本发明的范围内。
区块链是基于共识的电子分类账,所述分类账被实现为由区块组成的基于计算机的去中心化的分布式系统,而区块由交易和其他信息组成。就比特币而言,每个交易是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,并且包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对所述交易进行“验证”。一些网络节点充当矿工,执行工作以确保每个交易有效,无效交易则被网络拒绝。例如,安装在所述节点上的软件客户端在引用未花费的交易输出(Unspent Transaction Outputs,简称UTXO)的交易上执行验证工作。可通过执行其锁定和解锁脚本来执行验证。如果锁定和解锁脚本的执行评估为真(TRUE),并且如果满足某些特定条件,则所述交易有效,可将所述交易写入区块链。因此,为了将交易写入区块链,所述交易必须:i)由接收交易的节点进行验证——如果交易经验证通过,则所述节点将所述交易中继到网络中的其他节点;ii)添加到矿工建造的新区块中;iii)被挖掘,即添加到过去交易的公共分类帐中。当向区块链添加充分数量的区块以使交易实际上不可逆转时,交易被视为已确认。
尽管区块链技术以使用加密货币实现而闻名,但数字企业家已经开始探索使用比特币所基于的加密安全系统和可存储在区块链上的数据来实现新系统。如果区块链能够用于自动化任务和流程,而不仅仅局限于以加密货币计价的支付,那么将是非常有利的。这类解决方案将能够利用区块链的优势(例如,事件的永久防篡改记录、分布式处理等),同时在所述解决方案的应用中更具通用性。
研究的领域之一是使用区块链来实现“智能合约”(“Smart Contract”)。这些智能合约是旨在自动执行机器可读合约或协议条款的计算机程序。与用自然语言编写的传统合约不同,智能合约是一种机器可执行程序,包括可处理输入以产生结果的规则,智能合约可根据这些结果执行操作。
与区块链相关的另一领域是使用“代币”(“Tokens”)(或“彩色币”)(“colouredcoins”)通过区块链来表示和传输现实世界的实体。潜在的敏感或机密项目可以由没有明显意义或价值的代币来表示。因此,代币充当允许从区块链引用现实世界的项目的标识符。
发明内容
区块链技术(例如比特币)的未来至少部分依赖于能够增加每秒已发行交易量的新架构的提议。这种新架构的一个要求是取消对区块大小限制的当前限制。在这种情况下,一个技术问题是如何管理数据的大区块以及如何管理非常大的区块链的存储。另一个技术问题是如何管理等待挖掘到区块中且并入区块链的交易池。本地存储池无法提供足够的存储能力,因此需要设计分布式存储池(Distributed Memory Pool,简称DMP)的新模型。一旦交易被包括在区块链中,就希望从这样的分布式存储池中移除交易。然而,另一个技术问题是如何以安全的方式管理从分布式存储池中移除交易,而不会在分布式存储池中造成数据不一致的问题。另一个技术问题是如何减轻数据不一致的问题,同时提高对试图破坏存储在分布式存储池中的数据的攻击的安全性。
本发明的某些实施例的目的是通过提供本文所述的技术方案来解决这些技术问题。特别地,本申请描述了在区块链网络中验证节点和分布式存储池节点之间的通信和数据管理协议,该协议允许修剪分布式存储池,同时减轻分布式存储池内的数据不一致问题。因此,本发明通过增加区块链网络的容量同时保持其分布式性质来提供技术贡献。
描述了一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:
存储多个交易,所述多个交易形成等待挖掘到区块链的区块中的交易的分布式存储池的至少一部分;和
接收来自所述区块链网络的验证节点的删除请求,所述删除请求识别已经包括在新挖掘的区块中的一个或多个交易,所述删除请求表明所述一个或多个交易应从所述分布式存储池中删除。
前述方法允许验证节点与分布式存储池通信,以移除已经并入区块链并且因此可以从分布式存储池移除的交易。发送/接收表明应该从分布式存储池中删除一个或多个交易的显式删除请求不同于仅已挖掘交易的通知。在现有技术的配置中,直到已经在顶部上挖掘了足够的区块以便确认交易之后,才从存储池中移除已挖掘的交易。因此,存储池包含大量交易,这些交易在挖掘到区块链后的相当长一段时间内不太可能被需要。此外,如果矿工在一段时间后自动删除交易,而不遵循特定删除请求协议,那么在某些情况下者会导致数据不一致。本发明认识到并解决了这些问题。
所述方法还可以包括当接收到所述交易的第一门限数量的删除请求时,将所述交易标记为从所述分布式存储池移除。所述方法还可以包括当接收到所述交易的第二门限数量的删除请求时,从所述分布式存储池中物理地移除所述交易。所述第二门限大于所述第一门限。此外,所述第一和第二门限数量的删除请求需要来自所述区块链网络中门限数量的不同验证节点。这些特征要求在分布式存储池中将交易标记为已删除的共识级别,并且在从分布式存储池中物理地移除交易之前需要进一步的共识级别。这减轻了数据不一致的问题,也提高了对试图破坏存储在分布式存储池中的数据的攻击的安全性。交易有效地包括关于所述分布式存储池的三个状态:可用;已移除;和物理上移除。如果需要,标记为已移除的交易可以恢复为在分布式存储池中再次可用。根据系统的配置,物理上移除的交易可能无法恢复。
交易可以仅在从接收到所述删除请求以来经过门限时间之后,才从所述分布式存储池中物理地移除,在此期间,未接收到所述交易的进一步数据请求。例如,在所述交易并入请求从所述分布式存储池删除的所述区块链之后,所述门限时间可以对应于并入所述区块链的至少1、2、3、4、5、6个或更多个区块。而且,自接收到所述删除请求以来,可以按照递减的时间顺序从所述分布式存储池中物理地移除所述交易,在此期间,未接收到所述交易的进一步数据请求。所述计算机实现的方法还包括当所述交易依赖于先前移除的交易时,将所述交易标记为从所述分布式存储池移除。这些功能进一步有助于减轻数据不一致的问题,还提高了对试图破坏分布式存储池中存储的数据的攻击的安全性。
所述删除请求可以存储在与所述分布式存储池关联的新删除请求数据库中。从没有验证所述交易的验证者接收的所述删除请求可以被丢弃。仅在启用检查验证者选项时才丢弃所述交易。还可以监视已经标记为从所述分布式存储池中移除的交易的数据请求的数量。使用这样的系统,对于标记为从所述分布式存储池中移除的所述交易在接收到门限数量的数据请求之后,可以将所述交易标记为恢复到所述分布式存储池的候选。当接收到所述交易的恢复请求时或当接收到所述交易的门限数量的恢复请求时,可以将所述交易取消标记为从所述分布式存储池移除。所述门限数量的恢复请求可能需要来自所述区块链网络中门限数量的不同验证节点。响应于对已从所述分布式存储池中移除的交易的查询,发送表明所述交易已从所述分布式存储池移除的消息。而且,这样的消息可以所述交易已从所述分布式存储池移除,还表明已移除消息接收的删除消息的数量。同样,这些特征进一步有助于减轻数据不一致的问题,还提高对试图破坏存储在分布式存储池中的数据的攻击的安全性。
从所述区块链网络中的分布式存储池存储节点的角度描述了分布式存储池管理协议的上述特征。从所述区块链网络中的验证节点的角度出发,提供了一种计算机实现的方法,所述方法包括:
接收关于包括多个交易的新挖掘的区块的数据;和
向分布式存储池发送删除请求,以从所述分布式存储池中删除所述多个交易。
所述删除请求应该优选地包含随机数和/或时间戳,以避免散布可能影响共识协议的欺诈性副本。所述删除请求优选地使用所述验证节点的私钥签名。
所述节点可以存储其已验证的交易的记录,并且只发送其先前已验证的交易的删除请求。当启用检查验证者选项时,才可以针对所述节点先前已验证的交易发送删除请求。而且,可以发送恢复请求以使所述交易在所述分布式存储池中再次可用,例如,在区块链重组后发送以保持系统内的数据一致性。
所述删除请求可以由以下一项或多项激活:
接收已挖掘的区块;
所述区块链重组;和
双重花费或其他形式的交易冲突。
来自所述分布式存储池的交易修剪可以由以下一个或多个激活:
手动修剪;
交易到期;和
所述分布式存储池中的交易达到存储限制。
本发明的实施例可以以多种形式提供。例如,可以提供一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被执行时使一个或多个处理器执行本文所述的方法。还可以提供一种电子设备,所述电子设备包括:接口设备;一个或多个处理器,连接到所述接口设备;存储器,连接到所述一个或多个处理器,所述存储器存储了计算机可执行指令,所述计算机可执行指令在被执行时使得所述一个或多个处理器执行本文所述的方法。此外,还可以提供区块链网络的节点,所述节点用于执行本文所述的方法。
附图说明
参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现在仅通过示例并参考附图来描述本发明的实施例,其中:
图1示出了区块的整体结构;
图2以操作图的形式示出了比特币网络的修改后的架构,所述操作图示出了从用户提交交易到交易在区块链结束的步骤;
图3示出了在存储池中等待确认的交易的总大小的示例的曲线图;
图4示出了链接到内部去中心化存储设施的多个节点。
图5示出了一种配置,其中每个节点都是分布式存储池和分布式存储设施的一部分;
图6示出了一种新的节点结构如何融入比特币网络,示出了一种网络配置,其中验证节点是存储池的成员,这些池共同构成去中心化的分布式比特币网络;
图7示出了新节点的功能;
图8示出了新的默克尔树结构,所述结构构成了对当前协议的修改。
图9示出了创建布隆过滤器的工作流程;
图10示出了说明交易如何在可逆布隆过滤器(Invertible Bloom Filters,简称IBFs)和可逆布隆查找表(Invertible Bloom Lookup Tables,简称IBLTs)中编码的工作流程;
图11示出了包括验证者节点v和存储池节点s的存储池集群。
图12示出了验证者节点vn(0≤n<N)接收关于新挖掘的区块的更新——在验证区块后,验证者向分布式存储池(DMP)发送对已发布交易的删除(DELETE)请求,每个存储池节点sm(0≤m<M)跟踪SDB表上的存储请求和RDB表上的移除请求;和
图13示出了交易idi的状态图——根据从验证者接收的消息的类型(即存储(STORE)、移除(REMOVE)、恢复(REVERT))和数量(例如N、N*、N**),交易可以将状态更改为可用(Available)、已移除(Removed)或物理地移除(Physically removed)。
具体实施方式
区块链网络节点的类型
区块链网络可描述为点对点开放式成员网络,任何人都可以加入,无需邀请,无需经其他成员同意。运行区块链协议(区块链网络在区块链协议下运行)实例的分布式电子设备可以参与区块链网络。这种分布式电子设备可以称为节点。例如,区块链协议可以是例如比特币协议或其他加密货币。
运行区块链协议并形成区块链网络的节点的电子设备可以是各种类型的,包括例如计算机(如台式计算机、笔记本电脑、平板电脑、服务器、计算机农场)、移动设备(如智能手机)、可穿戴计算机(如智能手表)、或其他电子设备。
区块链网络的节点使用合适的通信技术彼此连接,所述通信技术可以包括有线和无线通信技术。在许多情况下,区块链网络至少部分地在互联网上实现,并且一些节点可以位于地理上分散的位置。
当前,节点维护区块链上所有交易的全局分类帐,所有交易分组到多个区块中,其中每个区块包含区块链上前一个区块的散列。全局分类账是分布式分类账,每个节点可以存储全局分类账的完整副本或部分副本。影响全局分类账的节点的交易由其他节点验证,从而保持全局分类账的有效性。本领域的普通技术人员将会理解实现和操作区块链网络(例如使用比特币协议的区块链网络)的细节。
每个交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定了如何以及谁可以访问所述交易的输出。交易的输出可以是作为交易结果的值被转移到的地址。然后,所述值与所述输出地址相关联,作为未花费的交易输出(UnspentTransaction Output,简称UTXO)。随后的交易可以将所述地址作为输入来花费或分散所述值。
节点可以根据其功能而具有不同的类型或类别。已经提出了与节点相关联的四个基本功能:钱包、挖掘、全区块链维护和网络路由。这些功能可能有所不同。节点可具有多个功能。例如,“全节点”(“Full Node”)提供了所有四种功能。轻量级节点,例如可以在数字钱包中实现,并且可以仅具有钱包和网络路由功能。数字钱包可跟踪区块头,而不是存储全区块链,区块头在查询区块时用作索引。节点使用面向连接的协议(例如传输控制协议(Transmission Control Protocol,简称TCP/IP))相互通信。
可提供节点的附加类型或类别:商户节点(Merchant Node)(本文有时称为“M节点”)。M节点旨在专注于交易的快速传播。M节点可存储也可不存储全区块链,并且不执行挖掘功能。从这个意义上讲,M节点与轻量级节点或钱包类似。但是,M节点包括附加功能以实现交易的快速传播。M节点的操作重点是未确认交易的快速验证和传播,特别是传播到其他M节点,未确认交易被从这些M节点快速推出到区块链网络中的其他节点。为了便于实现此功能,允许M节点进行更多数量的传入连接,特别是传出连接,否则,这些连接可能会被允许用于管理协议下的节点。
M节点可统称为商户网络(Merchant Network,简称“M-net”)(或“M网络”)。术语“商户”可解释为“专用的”。M节点可集成到区块链网络中。每个M节点都是区块链网络上的一个专用节点,满足特定的硬件和性能能力,确保其能够执行M节点的功能。也就是说,M网络可视为区块链网络内的一个子网,并通过区块链网络分布。M节点可设置用于执行一个或多个专用功能或服务。
为了使M网络可靠地运行,能够在一定的安全级别上提供服务,M节点需要保持对整个M网络的良好概览,因此需要建立有效的路由协议。每当M节点接收到启动交易时,M节点需要将交易广播给其他几个M节点以及其他节点。在M网络环境下,这相当于寻找多旅行商问题(Multiple Traveling Salesman Problem,简称MTSP)的解决方案。有许多解决方案可以解决多旅行商问题,其中任何一个方案都可运用于M网络。每个M节点都以某种最新的形式运行路由优化。
在一些实施方式中,M网络实现为去中心化的IP多播类型的网络。也就是说,为了使传入交易能够快速扩散到区块链网络,可以使用多播来确保交易在整个M网络中快速广播,从而使得所有M节点专注于将交易转发到区块链网络中的其他节点。
多播网络架构允许同时向一组目的节点分布数据的可能性,无需为每个对接收信息感兴趣的节点复制数据。如果节点想要接收多播传输,那么节点加入多播组(注册阶段),此后所述节点将能够接收通过多播组发送的所有数据。IP多播不需要具备有多少个接收器的先验知识就能扩展到更大的接收器群,通过仅要求源发送一次数据包,就可以有效地利用网络基础结构。对于多播网络的性质,由于与大量其他节点同时通信,因此使用面向连接的协议(如TCP)是不切实际的。据此,使用无连接协议。
一些区块链网络(例如比特币)使用TCP进行节点对节点的通信。使用TCP发送的数据包具有相关联的序列号,所述序列号用于排序。除此之外,TCP协议在建立连接和终止连接时都涉及三次握手过程。通过TCP发送的数据包有相关的开销,所述数据包具有相关联的序列号和一个三次握手协议。建立连接时,传输了128-136字节,而关闭连接花费160字节。因此,包传输中的握手成本高达296字节。此外,当节点接收新交易时,所述节点通过包含交易散列的库存(INV)消息通知其他节点。接收INV消息的节点检查所述交易的散列是否已经被看到过;如果没有看到过,则所述节点将通过发送获取数据(GETDATA)消息来请求交易。交易从节点A传输到节点B所需的时间为T1=verification+TCP(inv+getdata+tx),其中,TCP()表示由TCP握手程序引入的时间开销。
M节点可用于使用TCP与现有协议(如比特币)授权的其他节点通信。然而,M节点可使用无连接协议(如用户数据报协议(User Datagram Protocol,简称UDP))在多播情况下从M节点到M节点的通信,甚至更合适地从M节点到多个M节点通信。与TCP不同,UDP不涉及握手协议,因此M节点能够更快地传播交易。这也可以避免恶意节点不发送实际交易而是通过发送重复的INV消息来捆绑其他节点。
UDP的轻量级特性与某些权衡相关联。错误检查较少,也没有错误恢复。在一些实施方式中,可以通过将错误恢复、排序和重新传输作为应用层的功能来在应用级别克服UDP的这些限制。把错误检查放在应用级别消除了网络的开销。
在一个示例情况下,区块链网络上的常规节点生成其希望通过M网络处理的交易(例如基于商户的支付)。常规节点可以将交易发送到M节点,然后所述M节点使用多播将交易广播到其他M节点,或者如果常规节点知道M节点的IP多播地址,则可以将交易直接发送到多个M节点。在一些示例中,M网络的所有M节点都是单个多播地址的成员,因此发送到所述地址的所有交易都被所有M节点接收。然而,在一些情况下,可能有多个与M网络相关联的多播地址,并且接收M节点可以从路由信息中评估是否需要将交易进一步广播到其他多播地址,以将交易传播到全M网络。
多播有助于确保新交易快速初始传播到所有M节点;但是,多播解决方案并不一定解决由增加的交易吞吐量引起的区块链网络的可伸缩性问题。网络中的每个节点通常都维护一个存储池(Mempool),所述存储池包含其已经看到的未确认的交易,这些交易还没有被完成工作量证明的矿工合并到区块链。支付处理中使用的交易数量的显著增长会增加每个存储池中存储的交易数量。因此,尽管M网络中的节点能够几乎同时接收新的交易,但是所述节点对于大型且快速变化的存储池可能具有存储能力的限制。
为了解决这个问题,M节点可以使用通过分布式散列表(Distributed HashTable,简称DHT)实现的共享存储池,作为使用多播的替代。
假设交易(TX)的平均大小为500字节,交易速率为大约10个交易/秒,则M网络可以接收大约400GB的每日传入数据。所有这些数据都需要在未确认交易的存储池中存储不同的时间。因此,M网络需要大量存储空间和快速存储数据的能力。为了不对每个单独的M节点提出太多的要求,M节点实现一个依赖于DHT的共享存储池。不是让每个M节点将所有传入的交易保存在自己的存储池中,而是每个M节点只存储总数的某一部分,以及存储其余部分的散列和相关密钥值。
DHTs是一类去中心化的分布式系统,允许在节点之间对密钥集进行成员划分,能够以有效且优化的方式仅向给定密钥的所有者发送消息。网络的每个节点都可以看作是散列表阵列的一个单元。DHTs旨在管理大量节点,允许新节点加入网络,旧节点离开网络或崩溃,而不损害共享数据的完整性。DHTs确保去中心化(没有中心权力,也没有中心协调)、可伸缩性(系统具有数百万节点的高效行为)和容错性(系统可靠,能够管理加入和离开网络或崩溃的节点)。网络中的每个节点可以只与少数其他节点保持联系,因此在出现变化或新数据时,网络不会过载。
这种概念同样可应用于UTXO数据库,所述数据库包含区块链上所有未花费的输出的集合。可以使用DHT构建UTXO数据库,以便在一组节点之间共享内容。
许多可能的DHT结构和协议可用于实现M网络的共享存储池。一个例子是PastryTM,此外还有许多其他的例子。PastryTM是一种旨在维护覆盖网络的协议,所述网络能够在分布式系统上存储和传输信息。PastryTM网络中的每个节点都分配有一个128位标识符,所述标识符用于指示节点在圆形节点标识符(ID)空间中的位置(范围从0到2128-1)。当节点加入网络时,随机分配所述ID。每个节点维护一个路由表、一个邻域集和一个叶集。
在确定稳定的DHT的维数时,需要考虑的一个因素是确保整个网络的鲁棒性和可靠性所需的副本数量。如前所述,节点可以加入和离开网络,这不应影响数据的可用性。如果存储交易A的节点离开网络,则有必要在网络的另一部分中找到交易A。在现有的区块链网络中(例如比特币),网络的数量或区块链副本的数量等于网络中全节点的数量(平均5000个副本),但这影响了可伸缩性。
在一个M网络配置中,存储池不是在每个M节点上完全复制的,而是通过DHT来实现。为了提供可靠性,可将DHT实现为具有一些重叠;即每个交易数据项都在多个M节点中复制,尽管不是在每个M节点中都复制。例如,可将DHT实现为指定最少数量的2个副本,同时假设两个节点之间的完全独立性为
Figure BDA0002377160040000131
这将可能导致两个节点在任何给定时间内同时停机。
因此,用于在分布式存储池中存储新交易的过程可包括以下步骤,其中使用DHT实现分布式存储池。所述过程包括:节点将交易发送到M节点。M节点根据所述实现来散列交易或交易ID以获得密钥值。密钥值指示所述M节点或多个M节点(在复制数据的情况下),交易存储在所述M节点或多个M节点。然后,M节点将交易存储在分布式存储池中,可包括:基于密钥值和M网络中M节点的分配ID,将交易路由到要存储交易的正确的M节点。根据所涉及的DHT协议,M节点可能会收到确认。当M节点从常规节点接收新交易时,M节点可以执行某些验证操作以验证交易的真实性。
可以将交易散列以生成用于交易的密钥。密钥可以指示在DHT中交易应存储的位置,所述位置可以在当前M节点以外的其他节点上。M节点评估交易是否已在运行的DHT中。基于组成M网络的M节点之间的密钥空间划分,每个M节点具有一部分存储的交易。在一些配置中,密钥空间在参与的M节点之间划分。划分可能涉及重叠,以引起网络弹性的复制。在一些实施方式中(例如使用PastryTM),每个M节点都分配了唯一的密钥或ID号码,交易可以基于交易密钥值的接近度存储在所述M节点或多个M节点(在需要复制的情况下)。M节点可以在本地具有交易的存储部分以及其余部分的散列或密钥值。因此,M节点能够基于运行中的本地数据来评估新交易是否在DHT中。
如果交易不在DHT中,那么在操作中,M节点根据其密钥值将交易存储在DHT中。一般来说,这可以采取put(k,tx)操作的形式,其中k是密钥值,tx是交易。适用的DHT路由协议确保交易发送到并存储在适当的M节点。基于所选择的实施方式,DHT可以根据分布式散列表的各种协议来操作。使用DHT在M网络中存储交易避免了在M网络中使用库存/获取数据(INV/GETDATA)消息来将交易路由到每个M节点。
在本示例的操作中,M节点可根据区块链网络的正常交易转发协议将交易发送到区块链网络中的常规节点。例如,到普通节点的通信可以使用TCP进行节点对节点的连接。
在一种配置中,M节点包括处理器、网络接口、和存储器。可以使用任何合适的计算硬件来实现所述M节点,所述计算硬件具有网络连接性和足够的处理与存储资源来执行本文描述的功能。所述M节点可包括处理器可执行指令以实现本文描述的功能。在一些情况下,处理器可执行指令可称为区块链商户节点应用,但可以理解,基于硬件和操作系统,指令可以在一个或多个模块、应用程序、脚本、或其他编程结构中实现。处理器可包括多核处理器和/或多个处理器。
存储器部分地基于其DHT密钥值(即M节点ID)存储数据,包括基于DHT的存储池的分配部分。在此示例实施方式中,存储器还存储路由表、邻域集和叶集。路由表包含M网络内特定路由目的地的列表,当节点接收到数据包时,会参考路由表以了解将数据发送到何处。路由表还可包含有关每个目的地与M节点间距离的信息。邻域集(例如基于邻近度量(ping延迟))包含关于接近的M节点的信息。叶集包含数字上接近的M节点。如果M节点的密钥值(节点ID)在数字上接近,那么所述节点在数字上接近。存储器还包括M节点信誉表,这将在下文中进一步说明。
为了提供可伸缩性,除了使用DHT实现存储池之外,M网络还允许节点加入M网络。新节点需要具有至少一个已经是M网络一部分的M节点的地址,以便所述新节点可以将其加入请求定向到其中一个M节点。M节点可以执行某些验证动作,这可能涉及查询新节点。例如,M网络可以具有一组与加入其指定给M节点的M网络相关联的最低标准。举例来说,所述标准可包括可用的最小处理资源、可用的最小空闲存储或连接性要求。
假设M节点完成为检验新节点而执行的任何验证操作,那么M节点根据控制DHT操作的任何DHT协议,将加入请求(Joinrequest())转发到DHT。DHT与新节点通信,以向新节点提供路由表,密钥值(节点ID)和任何其他数据,以使新节点能够充当M网络上的新M节点。
应当理解,节点能够轻易加入M网络造成了恶意节点也容易加入网络。为了识别和隔离潜在的恶意节点,一种配置提供M节点存储M节点信誉表,用于跟踪和更新节点行为排名。当新节点加入网络时,所述节点可以被添加到M节点信誉表中,如节点ID字段所示。在一些实施方式中,所述表还可以包括加入时间。所述表还包括所述M节点的分数或评级。
分数可以根据某些行为指标向上或向下调整。例如,如果M节点未能转发交易,保持一段时间的静默,用被确定为非交易性的流量淹没M网络,或者以其他方式参与负面行为,那么所述M节点的排名可能被降低或递减。如果节点的分数低于预设的最小值,那么可以将所述节点从M网络中排除。
维护在特定M节点上的M节点信誉表可仅限于跟踪其邻居的分数,而不是全M网络。因此,当新M节点在t时刻加入网络时,其邻居的M节点信誉表不包含有关新节点的任何信息,但是从t时刻开始,所述邻居开始建立新节点的信誉,将信息存储在节点注册表中。例如,如果新节点是静默节点,这意味着所述节点不传输通过网络接收到的信息,那么所有邻居都开始在其各自的M节点信誉表中记录此行为(例如给新节点的ID分配负值)。在一定时间t+n之后,如果知道新节点的所有节点的M节点信誉表都包含负值,那么节点可决定隔离新节点并将新节点从网络禁止。
M网络的分布式存储池中的交易可能需要等待相当长的时间才能被确认,即在被合并到添加到区块链并被确认的区块中之前。当足够数量的后续区块添加到其上方的区块链中时,所述区块被视为“已确认”,这样,扭转链中的增长并删除区块以更改为不同的分支或分叉在计算上不可行。
由于存储池的大小和灵活性以及交易量,给定交易可能比某些区块链实施方式(例如比特币)中的交易的未确认时间更长。在传统的比特币实施方式中,一旦将交易合并到区块中,所述交易便从存储池中删除。这意味着,如果所述区块最终成为孤立块,那么所述区块中的所有交易都会在网络上重新传输。在快速交易网络的情况下,这可能不切实际,或者可能导致对某些交易的确认长时间延迟。
因此,在一些实施方式中,存储池可以跟踪已并入交易的区块的确认数量,即在并入了交易的区块之后添加到区块链的区块的数量。只有在确认的预定数量发生后,交易才会从存储池中删除。预定数量可以是4、5、6、7或对于给定实施方式的任何合适的数量。存储池数据条目可构建为包括交易ID字段,交易字段和确认数量(Number of Confirmations,简称NoC)字段。在另一实施方式中,存储池数据条目可以简单地记录区块数量,而不跟踪NoC。根据区块链的当前区块数量,所述存储池数据条目可以从区块数量中评估发生了多少次确认。
一旦发生必要数量的确认,交易就可以安全地从存储池中删除。这样,在孤立区块的情况下不会有交易损失,并且在必要数量的确认之后,交易将被永久删除。
本说明书下文中描述的解决方案利用了如前所述的修改后类型的快速验证节点。描述了一种新的全节点配置,所述配置实际上是具有大规模存储功能和修改后的操作协议的M节点验证体系结构。M节点和存储节点共同构成了新的全节点的核心。详细描述了新的节点结构,包括必要的技术要求和技术解决方案,并提供了可持续激励模型。
区块大小和存储要求
当前区块大小为1Mb。当前,区块由包含所谓的幻数(总是相同的值)的字段、表明区块实际大小的值、所谓的区块头、区块中包含的交易数量、以及实际交易列表组成。实际交易列表总是从币库交易开始,所述交易包含挖掘区块的奖励。在图1中,示出了区块的整体结构。
区块头包含以下内容:
1.版本号(4字节)
2.前一个区块头的散列(32字节)
3.默克尔根散列(Merkle root hash)(32字节)
4.时间(4字节)
5.目标门限(编码为nBits–4字节)
6.只被使用一次的非重复的随机数(4字节)
当前,区块包含大约2000个交易,并且大约每10分钟挖掘一次(10分钟的区块时间设置为第一确认时间和在链拆分上浪费的时间之间的折衷)。这提供了大约每秒3.5个交易的交易速率,理论上每秒最多7个交易。相比之下,VISA以大约每秒10000个交易的速率运行,并且每秒可以达到50000多个交易。
显然,为了建立有竞争力的支付系统,有必要对当前的限制条件进行某种规避。由于已经确定10分钟的区块时间,因此必须考虑区块大小的变化,进而考虑区块链本身的变化。在本说明书中,描述了一种可伸缩的解决方案,所述解决方案每秒大约能够处理例如50000个交易。
增加当前区块的大小,甚至完全取消限制,是一个备受讨论的话题,有时也是有争议的话题。双方似乎都有强有力的论据,因为保持现有大小和增加大小都有明显的好处和权衡。
假设交易速率为r,我们可以计算出必要的区块大小。下面假设区块时间(平均)10分钟。因此,假设每个区块的交易数量为T(r)。我们得到
T(r)=r·6·102block-1
如果sTx是平均交易大小(以字节为单位),则区块大小B(r,sTx)可以表示为
B(r,sTx)=sTx·T(r)=sTx·r·6·102
因此,考虑到50000个交易/秒和sTx=500字节的情况,快速回溯计算得出:
Figure BDA0002377160040000181
Figure BDA0002377160040000182
这反过来又导致了
Figure BDA0002377160040000183
的存储需求。很明显,对于这种大小的区块,我们需要稍微不同的区块传播和存储方法。下表1示出了交易速率、平均交易大小、区块大小以及每月和每年所需存储空间量之间的关系。
Figure BDA0002377160040000191
表1:交易速率、平均交易大小、区块大小以及每月和每年所需存储空间量之间的关系
新的比特币网络
我们为比特币网络提出的架构如图2所示,图2示出了从用户提交交易到交易在区块链结束的操作示意图。
提供了一种系统,其中特殊验证节点(通过分布式散列表DHT维护特殊验证节点之间的共享存储池)接收交易,验证交易,并在存储池分配交易。验证节点向矿工提供服务,即提供有效交易散列的列表。矿工根据这些散列来组装预区块(区块骨架)(BlockSkeletons),并尝试解决散列难题。找到难题的解决方案时,获胜的矿工将区块骨架发送回验证节点。所述验证节点验证区块并确保区块存储。最初,验证节点存储区块本身是可能且可行的。当区块大小最终超过某个大小门限时,验证节点将:a)扩展自身的存储能力;或b)将存储外包给专门的存储节点。本说明书下文将讨论这两种体系结构。
新的全节点
按照顺序
Figure BDA0002377160040000201
的区块大小,依靠PC型节点来提供用于托管区块链全图像的存储能力似乎不再可行。相反,需要提供
Figure BDA0002377160040000202
或更多存储的设备(见表1)。挑战就变成了创建一个既能容纳新区块又能保持网络的分布式、去中心化和不信任性的系统。
设想了两种类型的全节点结构,以及这两种类型的组合:
1.带有相关联的千兆兆字节存储机架的验证节点
2.基于内部去中心化的分布式点对点(Peer-to-Peer,简称P2P)单节点网络的带有关联存储池验证节点,非常类似于当前的比特币网络本身
3.1和2的组合
所提出的解决方案试图通过引入类似于在当今比特币网络上运行的所谓全节点的节点,来解决一直保持区块链的分布式和去中心化的记录的问题,但是相比之下,这些节点具有随着区块的大小和交易数量的增加而扩展的能力。
区别不仅限于纯粹的结构和硬件相关问题。与撰写本文时运行的基于家用电脑的全节点相比,本文提出的新节点将是专用节点。所述新节点需要大量的投资,因此,激励措施将大不相同。在可扩展的范例中,M节点(验证节点)和新的全节点(验证和存储节点的组合)都将期望对其服务进行补偿。
另一方面,我们拥有去中心化的分布式存储解决方案,这些解决方案主要由单个节点组成。Storj(Wilkinson et al.,2016)、Sia(NebulousLabs)和MaidSafe(maidsafe)是很好的例子。就Storj而言,其功能基于参与者因提供存储空间而获得奖励。
如上所述,也可以想到由千兆兆字节(Pb)机架和点对点(P2P)存储系统组成的超级节点。
因为比特币生态系统严重依赖于以去中心化方式分布的整个区块链的多个副本的存在,所以显然,对所有全节点进行补偿是很重要的。这与挖掘非常不同,挖掘本质上是一种由赢家获得全部奖金的游戏。因为矿工将依靠他们(赢得的)区块最终进入公共区块链,所以奖励存储全节点符合他们的利益。
节点将组成为池,这些池充当超级节点。为了保持区块链的分布式性质,必须有一定数量的此类超级节点(≥100)。超级节点连接但不重叠。
技术要求
如上所述,在讨论新的全节点时,需要考虑两种完全不同的体系结构(见表2)。
新的全节点需要维护两种类型的存储:
1)存储池的类似随机存取存储器(Random Access Memory,简称RAM)的分布式散列表(DHT)存储器/存储。
2)区块链的永久性磁带/磁盘式存储。
如上所述,对于50000个交易/秒的交易速率,区块预计为
Figure BDA0002377160040000211
这意味着年存储需求为~365×24×6×15Gb=7.9·105Gb=0.8Pb/yr(见表1)。
表2示出了当前全节点和未来全节点之间的比较:
Figure BDA0002377160040000221
同时,机架/集群需要维护存储池。这样可以快速恢复区块。存储池的必要大小更难评估。当前,区块大小约为1兆字节(~1Mb),每秒约有4个交易(~4Tx/s),在存储池中等待的交易总大小在2兆字节到约70兆字节(~70Mb)之间波动。图3示出了在存储池中等待确认的交易的总大小的示例图。
如上所述,我们设想了两种根本上不同的、能够存储大量数据的结构,以及两种结构的组合。图4和图5中示出了这两种结构。图4示出了包括能够访问内部去中心化存储设施的多个节点的配置。图5示出了一种配置,其中每个节点都是分布式存储池和分布式存储设施的一部分。图4所描述的体系结构似乎适合拥有并维护多个验证节点的较大实体,这些节点都可以访问实体自身的存储设施。相比之下,图5中描述的架构是完全去中心化的。这一解决方案适用于希望加入共享的分布式存储池的单个节点(例如具有足够存储容量的家用PC)。已经存在用于此目的的底层存储技术(例如Storj、Sia、MaidSafe)。
图6示出了一种将新的全节点如何适应比特币网络进行可视化的方法,图6显示了一种网络配置,其中验证节点是存储池的成员。这些池共同构成一个去中心化的分布式比特币网络。
全节点操作
在大区块场景中,我们将面临另一种情况,而不仅仅是由于空间需求。存储池应能够容纳相当于一个区块的量,即大约15千兆字节(~15Gb),最好是下一个要挖掘的区块的等量。这也将与需要考虑的开销相结合。
1)存储池需要与其他验证节点同步。这涉及交换可逆布隆过滤器查找表(MichaelT.Goodrich,2011年)
2)需要仔细检查IBLTs,检索丢失的交易(Tx)
3)需要验证额外检索的交易
4)基于从矿工或其他全节点接收到的区块骨架来组装区块新的全节点保持最新的存储池。它通过与矿工交换IBLTs和其他验证以及新的全节点来实现。
矿工发送一个包含以下内容的区块骨架(元组)(Tuple):
1.只被使用一次的非重复的随机数,n
2.IBLT
3.币库交易
基于此,新的全节点相应地对交易进行排序(根据一组特定的规则),并组装新挖掘的区块。新的全节点继续将区块存储在自己的存储中,并将骨架传播到其他新的全节点。本说明书的下文将更详细地描述协议。
激励
特定配置的一个重要特征是将激励内置到系统中,以激励提供新的节点结构和服务。由于存储区块链需要大量成本,因此需要激励措施。图7示出了新的全节点的功能。新的全节点因两种类型的服务而获得奖励,主要是:
1)编制已验证的交易列表,准备挖掘。将交易的散列值(默克尔根)发送给矿工,矿工选择列表并挖掘区块。
2)获胜的矿工将已挖掘的区块的骨架发送给几个新的全节点。所述骨架包括币库交易,其中包含:
a.挖掘奖励。
b.作为承诺方案一部分的机密,所述方案用作提供已验证列表的支付机制。
c.支付区块验证和/或在区块链上存储区块的费用。
[交易]验证节点将通过收费系统补偿交易验证。接收验证/新的全节点将因以下一项或多项而获得奖励:
1)向矿工提供已验证的交易(Tx)散列的列表(见上文b.)
2)从区块骨架重新组装区块(“固定”费用)(“flat”fee)。
3)区块的大小(“每兆字节存储”付款)
激励在于100个区块确认时间T100
1)矿工需要等待时间t约为T100,以领取奖励。
2)验证节点需要等待时间t约为T100,才能收到验证区块中交易的费用。
3)新的全节点需要等待时间t约为T100,才能收到区块组装费和取决于大小的存储费用。
因此,100个区块的确认时间将为矿工提供必要的激励,以将骨架区块(包括支付)传播到一系列新的全节点,并且激励新的全节点将骨架区块传播到其他新的全节点。
还应指出,矿工可以自由选择他们希望包含在区块中的(交易)列表。因此,我们设想了一个市场,由验证节点组成,验证节点通过编制已验证的交易的列表进行竞争,矿工可以通过承诺交易从验证过的交易中选择和购买。
重访挖掘
比特币生态系统依赖于挖掘过程。矿工从存储池(或者如本文所设想的,从专门的验证节点)中收集交易(Txs),将交易组织为区块,尝试找到解决散列难题的方案(只被使用一次的非重复的随机数)。区块头包含区块链上前一个区块的散列、交易的默克尔树的根、以及矿工包含的只被使用一次的非重复的随机数。所述难题的解决包括计算与前一个区块散列和默克尔根串联的只被使用一次的非重复的随机数(迭代选择)的双SHA256散列,检查其是否小于所谓的难度目标。如果小于难度目标,则难题得以解决;如果大于难度目标,则只被使用一次的非重复的随机数的迭代继续。这在新的范例中保持不变。构成挑战的是极大地扩大的区块大小和已挖掘区块在整个网络中的分布。对于千兆字节大小的区块,通过网络广播整个区块不一定可行。
相反,我们提出一种解决方案,包括以下步骤:
1.矿工从验证/M节点和/或新的全节点接收已验证的交易的列表。
2.矿工本身可能或可能不操作自己的交易散列值存储池,所述存储池遵循特定排序惯例。[https://www.cryptocoinsnews.com/bitcoin-in-bloom-how-iblts-allow-bitcoin-scale/]中提供了此类排序的示例。
3.矿工通过确定只被使用一次的非重复的随机数n来解决散列难题。
4.接下来,计算散列树(默克尔树,下文称为HT),存储默克尔树的根(见下一节)。
5.交易列表用于创建IBLT。IBLT可用于计算两个集合(例如存储池)之间的内容差异,以及协调两个集合。
6.元组{n;IBLT;CoinBase Tx;HT root}被广播到验证/M节点。
7.新的全节点为区块链的存储池和存储操作DHT。
8.池基于元组{n;IBLT;CoinBase Tx;HT root}重新组装区块,并通过a)自身存储区块或b)通过存储在专用存储节点上,将区块记录在区块链上。
避免矿工之间的竞争
矿工能够从由多个验证节点组成的市场中选择已验证的交易列表。除非另有说明,否则假设矿工将选择最大化其潜在收入的列表是合理的。细心的读者可能会指出,这可能导致矿工主要从同一节点选择同一列表。反过来,这会导致一些矿工相互竞争,试图挖掘同一区块的情况。这有利于具有最大散列能力的矿工。
我们提出在区块头中添加一个额外字段。所述字段包含每个矿工选择的随机数。这保证了每个矿工从不同的起点开始,因此防止将解决区块仅归结为散列能力。这又将模拟现在的情况,即矿工倾向于挖掘相似但独立选择且略有不同的区块。
协议
在此,我们对操作新的全节点所必需的协议进行说明。
为了使所提出的系统发挥作用,所涉及的节点(验证者、矿工、新的全节点……)的存储池应遵循交易的排序惯例。在此,我们提出使用加文·安德烈森(Gavin Andresen)提出的规范顺序。在所述排序中,排序与区块中的交易列表有关,但是在此,我们提出了一个想法:所有验证节点和新的全节点都对其存储池使用相同的约定。
约定可以总结如下:
1)按照相对于前一个交易散列的升序对交易进行排序。
2)从排序列表中添加不依赖于后续交易的第一个交易。
如前所述,区块包含所谓的默克尔根散列。它是通过散列所有交易(包括币库交易),然后散列串接的散列,直到达到默克尔根散列而产生的。显然,如果矿工没有正在制造币库交易,验证节点可以计算整个默克尔树,从而计算默克尔根和相应的散列。
在此,我们提出通过以下方式的程序来计算默克尔树:
验证者节点计算一个小默克尔根(Little Merkle Root)。所述程序与计算标准默克尔根时的程序相同,但有几处例外:
1)排出币库交易。
2)包括所谓的承诺交易。
3)矿工制造币库交易,并将其与小默克尔根散列串联起来,产生默克尔根散列。
图8示出了新的默克尔树结构。注意,所述结构构成了对当前协议的修改。
修改区块头
如上所述,我们提出在区块头中添加一个额外字段,其中包含矿工选择的随机数。因此,散列难题的解决变化如下:
SHA256[SHA256[Prev.Block Hash∥Merkle Root∥nonce]]
SHA256[SHA256[RND||Prev.Block Hash||Merkle Root||nonce]]
因此,我们提出用包含随机数的额外字段来增强已挖掘的新区块的区块头。区块头将包含以下内容:
1.版本号(4字节)
2.前一个区块头的散列(32字节)
3.默克尔根散列(Merkle Root Hash)(32字节)
4.时间(4字节)
5.目标门限(编码为nBits–4字节)
6.只被使用一次的非重复的随机数(4字节)
7.随机数(4字节)
验证→矿工
验证节点:
ο根据请求,验证节点(可能是也可能不是新的全节点)准备要挖掘的已验证的交易的列表。
ο验证者节点创建承诺交易。
ο计算所谓的小默克尔根(Little Merkle Root)(见前面的小节),其中包括承诺交易。
ο验证者节点准备两个IBLT:
1)为区块中的所有交易(IBLT1);和
2)为区块中所有对应的交易标识符(TxID)(IBLT2)
ο验证者节点向矿工发送:
1)小默克尔根。
2)IBLT1。
3)IBLT2(可选——仅当矿工使用自己的TxID-/存储池运行时)。
4)前一区块散列。
5)上述散列校验和。
矿工:
ο从验证者节点接收数据后,矿工继续创建币库交易,其中包括挖掘奖励以及矿工希望将挖掘的区块发送到的新的全节点的区块验证/存储的奖励。此外,币库交易包含带有机密的输出字段,所述机密字段与承诺交易中的机密匹配。
ο矿工使用从验证者节点收到的小默克尔根,并将其与币库交易结合起来以创建默克尔根散列。
ο矿工现在掌握了开始解决散列难题所需的所有信息。
ο按照前述进行挖掘。
矿工→新的全节点
矿工:
ο挖掘一个区块后,矿工将以下内容发送到新的全节点列表:
ο只被使用一次的非重复的随机数(难题的解决方案),n。
ο币库交易。
ο区块头。
ο默克尔根。
ο小默克尔根。
ο IBLT1。
ο IBLT2(可选)。
ο散列校验和。
新的全节点:
ο检查币库交易中是否包含适当的奖励。
ο节点通过计算校验和(散列)来检查接收到的数据是否一致。
ο节点使用IBLT1来确保区块中的交易存在于存储池中。
ο使用IBLT1查询存储池,节点组装区块。然后存储所述区块(见有关新的区节点和存储的部分)。
ο从矿工收到的数据将广播到其他新的全节点。
定制交易列表
我们设想这样一种情况,即已验证的交易的市场将适应矿工的需求。矿工倾向于选择最大化其潜力的列表,而验证M节点将顺应这类趋势。
在某些情况下,矿工可能希望通过合并两个或多个列表中的交易来自定义其区块。通过计算两个IBLT之间的差异,可以在两个集合之间进行集合对账。然后,矿工将包含差异的IBLT发送回其中一个提供节点,以此方式检索制作列表所需的信息,所述列表包含两个列表中的所有交易。
显然,如果矿工想要根据几份列表编制自己的列表,就会带来额外的挑战。本文简要地介绍一下各个要点。
如果矿工要合并来自各个验证节点的列表,不清楚应该如何合并默克尔根。在此,我们提出以下建议:
构建多个单个小默克尔根的大小默克尔根(Big Little Merkle Root);和
将大小默克尔根与币库交易相结合。
额外费用与添加到列表/区块的额外交易量不成比例。由于可以合理假设各种存储池大量重叠,因此合并列表等于从另一个列表中添加了一些(相对而言)交易。然而,为了合并列表,矿工必须从每个验证节点“购买”全列表(通过承诺交易)。这是否是一种对于矿工有利可图的方法还有待观察。
合并来自多个验证节点的列表需要矿工和每个提供验证节点之间的承诺。可以想到,矿工可能会滥用所述系统。目前,尚无规则/协议强制所有承诺交易都将在区块中结束。一种可能是验证节点可以检查每个区块并否决包含其交易的那些区块。
节点结构和操作的总结
就计算工作而言,如今的比特币网络主要集中在挖掘方面。随着交易量的大幅增加,集中在挖掘方面不一定可行。本说明书中描述的解决方案将各种任务降级到相应的专用节点,矿工本身也变得更加专用。编制已验证的交易清单、基于区块骨架重新构建区块、以及存储都是需要大量资源的功能。因此,预计比特币网络的结构将发生变化,激励机制也会随之改变。我们已经在本说明书中详细描述了这些问题。
本说明书介绍的元素包括:
ο新型的节点结构,本文称为新的全节点或超级节点,可能是也可能不是验证M节点的扩展。
ο节点根据协议进行操作,所述协议有效地允许从验证节点到矿工以及从矿工到新的全节点的千兆字节大小的区块的广播。
ο用于存储区块链的两个整体存储结构,可能是也可能不是所提出的新的全节点的一部分。
ο激励模型,允许建立已验证的交易的预区块列表市场,在挖掘后进行区块组装和存储。
ο新的默克尔树结构,使得矿工无需维护自己的存储池。
ο在区块头中添加一个带有由矿工选择的随机数的额外字段,以避免挖掘行为变成纯粹基于散列能力的竞争。
ο通过特殊承诺交易来奖励验证。
根据一种实现方式,提供了一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:
从对应于多个已验证交易的所述区块链网络接收已挖掘数据;
基于所述已挖掘数据组装区块;和
将已组装区块发送到存储实体以存储在区块链上。
这种方法使得节点能够构造要存储在存储实体上的大区块,无需矿工构造和存储大区块并通过区块链网络传输此类区块。此外,所述架构允许使用专用于存储大的且不断增长的区块链的大型存储实体。
所述计算机实现的方法可进一步包括:
从所述区块链网络接收所述交易;
验证从所述区块链网络接收的所述交易;
与所述区块链网络中其他节点一起维护所述已验证交易的分布式、去中心化存储;和
将对应于所述已验证交易的数据分配到所述区块链网络以用于挖掘,所述数据包括所述验证交易的列表。每个列表都可以提供已验证的交易的完整列表,以挖掘到区块中。
这种计算机实现的方法有效地消除了矿工执行验证功能的要求,同时与区块链网络中其他节点一起保留了已验证交易的分布式、去中心化存储。此外,所述方法使得交易验证节点能够通过准备和分配对应于已验证交易的数据到区块链网络用于挖掘来向矿工提供服务。例如,所述方法可以准备和分配已验证的交易的列表。
与所述区块链网络中的其他交易验证节点一起维护所述已验证交易的分布式、去中心化存储的步骤可包括同步所述区块链网络上的交易验证节点,以去中心化和分布式的方式维护所述已验证的交易的最新列表。例如,可以通过交换可逆布隆过滤器查找表来同步所述验证节点。所述已验证交易按定义的顺序排序,以便在所述区块链网络中的交易验证节点上使用通用排序系统,以维护所述已验证交易的分布式、去中心化存储。例如,可使用规范的排序系统来维护所述已验证交易的分布式、去中心化存储。已得知这是一个特别有效的在保持去中心化的、分布式存储的同时确保以一致的方式维护网络上的交易数据的方法。
所述将对应于所述验证交易的数据分配到所述区块链网络以用于挖掘的步骤可包括:准备对应于所述已验证的交易的列表的数据(例如可逆布隆查找表和对应于所述已验证交易列表的任何附带数据,其中所述已验证交易包含在所述区块中)。此外,所述将对应于所述已验证的交易的数据分配到所述区块链网络以用于挖掘的步骤包括:为所述数字资产创建承诺交易,以换取向矿工提供对应于所述验证交易列表的所述数据。例如,计算散列树、帕特里夏(Patricia)树、或另一类型的基数树,所述承诺交易包括在内。
在通过解决相关联的密码难题(例如散列难题)来分配和挖掘对应于验证交易的数据之后,已挖掘数据被发送回交易验证节点,而不是由矿工直接存储在区块链上。已挖掘数据可以组装成(大)区块,并存储在专门为存储大量数据而配置的存储实体上和/或分布式存储系统中。如前所述,这使得验证节点能够构造要存储在存储实体上的大区块,无需矿工构造和存储大区块并通过区块链网络传输此类区块。此外,所述架构允许使用专用于存储大的且不断增长的区块链的大型存储实体。
从所述区块链网络接收的所述已挖掘数据可包括对应于所述已验证交易的区块头。所述已挖掘数据还可包括用于数字资产的交易,以换取基于所述已挖掘数据组装所述区块。此外,所述方法可包括在接收所述数字资产之前等待与最小数量的所述区块相关联的时间段t的要求。这提供了用于提供验证节点的激励方案,因为提供者将因提供已验证的交易的清单(例如,以可逆布隆查找表的形式)用于挖掘和/或在区块链上存储已挖掘区块而获得奖励。在接收数字资产之前需要一个最短的时间,激发矿工将骨架区块(包括支付)传播到一系列节点,并且将激励节点将骨架区块传播到其他节点。
基于所述已挖掘数据来组装所述区块的步骤可涉及组装大区块,每个区块具有例如至少2、4、6、8、10、50、100、500、1000或10000兆字节的大小。尽管上限会随着时间增加,但可以指定1PB的额定上限值。每个区块可包括例如至少5000、10000、500000、100000、500000或1000000个交易。尽管上限会随着时间增加,但可以指定每个区块1012个交易的额定上限值。如前所述,本文所述的方法、节点和区块链网络架构使大区块能够被构造和存储在存储实体上,无需矿工构造和存储大量交易。这使得系统能够应对大幅提高的交易速率。
在本文所述的方法中,可以将区块修改为包括包含由矿工提供的随机数的区块头。即,交易验证节点可以用于处理区块,所述区块包括区块头,所述区块头包含由矿工在从区块链网络接收已解决的交易时提供的随机数。这构成了对区块头的更改,因此矿工可以选择或随机生成一个插入区块头的数字。这有助于确保即使许多矿工选择了同一交易列表,所述矿工在尝试挖掘相同区块时也不会相互竞争。
用于存储前述的数据的大区块的存储实体可以在所述区块链网络上的多个交易验证节点之间共享,所述多个交易验证节点在所述区块链网络上形成超级节点,其中,所述共享存储实体是公共存储节点、分布式存储或两者的组合。这种架构使得在区块链网络上形成一个超级节点,并允许提供专用存储设施来存储区块链和服务区块链网络。
鉴于上述内容,还提供了一种区块链网络的超级节点,所述超级节点包括:
如前所述的多个验证节点;和
用于存储所述区块链的共享存储实体,
其中,所述共享存储实体是公共存储节点、分布式存储或两者的组合,和
其中,由所述多个节点组装的区块被发送到并存储在所述共享存储实体,由此所述共享存储实体维护所述区块链。
这种架构更适合于处理实现期望的交易速率增加所需的大区块大小,这是本文描述的方法和配置的目的。例如,共享存储实体可配置为具有至少100G的存储容量,并且更优选地具有至少1、10、100或1000GB的存储容量。虽然上限会随着时间而增加,但可以指定106TB甚至106YB的额定上限值。
就总体网络架构而言,可以提供包括多个这种超级节点的区块链网络。所述超级节点可以连接(但不重叠)在所述区块链网络上,每个所述超级节点的共享存储实体用于存储所述区块链的副本。超级节点实际上包括一组节点,这些节点形成了用作超级节点的池。为了保持区块链的分布式性质,应该有利地有一定数量的这样的超级节点(例如,至少10、50、100或1000个,并且可选地小于100,000,000个)。
布隆过滤器和可逆布隆查找表(IBLT)
在本节中,我们总结了所谓的布隆过滤器的属性以及对这些过滤器的扩展,称为可逆布隆查找表。
最简单的形式是布隆过滤器是一个阵列。所述阵列有两个与其相关联的参数M和k。M是所述阵列中的位数,而k是不同散列函数Hk的数量,因此
Figure BDA0002377160040000351
其中S16是十六进制字符串的空间,散列函数作用于所述空间。为了确定交易Tx0是否属于布隆过滤器所针对的集合,我们需要计算H(Tx0)…Hk(Tx0),然后检查阵列中相应的位是否设置为1。图9示出了创建布隆过滤器的工作流程。
如果一个或多个为否,则Tx0绝对不在查询的集合中。但是,布隆过滤器确实允许误报。这是因为散列函数将位更改为1的概率为p=1/|size of array|=1/M。因此,没有使用所谓的给定散列函数
Figure BDA0002377160040000361
将位设置为1。
Figure BDA0002377160040000362
因此,如果有k个散列函数,则给定位不被设置为1的概率为
Figure BDA0002377160040000363
如果需要插入n个元素,则所述概率变成
Figure BDA0002377160040000364
布隆过滤器的一个明显缺点是它既不跟踪也不保持任何特定的顺序。很显然,如果我们希望维护要过滤的项目的索引,则需要扩展过滤器的功能。这就是可逆布隆过滤器(IBFs)和可逆布隆查找表(IBLTs)的作用。
不同于只激活阵列中的位,密钥的异或和、散列值(像以前一样)和总计数器存储在IBF的每个字段中。所述过程如图10所示,图10示出了说明交易如何在IBF/IBLT中编码的工作流程。
应用
我们假设有两个节点N1和N2,分别维护存储池m1和m2。每个存储池包含来自十六进制字符串S16的元素。我们进一步假设存储池遵循由安德烈森(Andresen)提出并且已在本说明书前文概述的排序惯例。
现在,N1发送m1给N2,N2现在可以通过两种方式处理集合对帐:
1)通过△m=m2-m1计算集合差(见(David Eppstein,2011),(Michael T.Goodrich,2011))
2)迭代m2中的交易,检查所述交易是否存在于的存储池中
我们看出IBLT至少可以用于两个目的:
1)让节点根据其存储池中已经存在的交易组装已挖掘的区块,帮助识别和检索其没有的区块。
2)在属于不同节点的存储池之间保持一定级别的同步。
在分布式存储池上修剪
如上所述,区块链技术(例如比特币)的未来至少部分依赖于能够增加每秒已发行交易量的新架构的提议。这种新架构的一个要求是取消对区块大小限制的当前限制。在这种情况下,本地存储池无法提供足够的存储能力,因此需要设计分布式存储池(DMP)的新模型。用于管理分布式存储池的修改后的架构提供了以下功能:
对存储在分布式存储池中的交易的有效性的全局共识;
存储信息的一致性和完整性;
快速读写操作;和
分布式存储池中抵御路由和存储攻击的安全机制。
一旦交易被包括在新挖掘的区块中,DMP的相应副本可不再需要存储。在本节中,我们通过提供从DMPs中安全删除交易的协议来扩展先前的架构。
我们提供了DMP架构和分布式散列表操作的概要。我们还介绍了一种新的机制来达成分布式共识,以修剪DMP内部的交易。此外,还介绍了解决DMP内部数据不一致的不同政策,包括:
交易可以标记为已移除,但仍然本地存储在存储池节点中;
同一交易可以在一个存储池节点中标记为已移除,并且在另一个存储池节点中仍然可用;
区块链重组可能需要先前从存储池中移除的交易的存储。
当前比特币网络中的单个节点可以视为提供分布式存储池(DMP)的节点集群。提出的DMP依赖于分布式散列表结构,所述结构部署在由诚实节点之间的个体信任关系组成的网络中。节点的连接集合建立在路由和应用程序级信息的集合之上。信任证书的发布或存储不涉及任何中央机构:每个节点维护其自己的受信对等方的记录。
恶意实体需要加入网络来执行某些形式的攻击。例如,女巫攻击(Sybil Attacks)的重点是创建大量的虚假身份以破坏系统[John R.Douceur,The Sybil Attack,FirstInternational Workshop on Peer-to-Peer Systems,Springer-Verlag,London,UK,2002]。连接到网络的女巫节点可能会中断或延迟合法路由查询,并传播错误的路由信息。本文描述的分布式散列表路由协议具有子线性时间和空间复杂性,并且基于以下假设:
节点不能区分诚实和恶意节点;
大多数诚实节点与其他诚实节点有更多的连接;和
每个节点负责存储关于密钥空间分区的信息。
分布式散列表协议提供两个主要功能:
更新()用于构建路由表,并在每个分布式散列表节点插入密钥;和
DHT节点x使用GET(x,k)来查找由密钥k表示的目标密钥值记录。
每个DHT节点x通常由公钥Px和当前的IP地址addrx来标识。该信息与记录signx(Px,addrx)安全链接,其中signx()表示带有相应私钥的签名。节点ID使用签名记录存储在DHT中。当节点改变位置或接收到新的IP地址时,必须将新记录[Px,addrx]存储到DHT中。恶意节点可能插入错误的密钥-值对(Key-Value Pair)。GET方法负责验证返回的密钥-值记录中的签名。
数据路由网络可以用无向图表示。恶意边缘将恶意节点连接到诚实节点,而诚实边缘连接两个诚实节点。虽然创建任意数量的女巫身份对于恶意实体来说在计算上是可以承受的,但是创建恶意边缘需要说服诚实节点建立到女巫控制的身份之一的受信链接。如果没有稀疏切割将诚实区域分成两部分,则从诚实节点开始的短随机行走可能会在诚实节点结束。
可以通过在网络中发起独立的随机行走来构建节点的路由表。该节点将从每次行走的接收节点收集一个或多个随机密钥-值记录。该路由信息在查找过程中使用:如果本地表不包含所述密钥,则查找消息被多播到节点集合。一个或多个接收节点可能本地存储了查询的密钥-值记录。没有发送对其他节点表的直接请求。因此,恶意节点不能任意增加远程表中错误条目的数量。
密钥不使用确定性函数(例如散列)存储在共享空间中,以防止恶意节点强行执行期望的输出,并在两个诚实密钥之间插入错误的密钥。因此,将不会定义测量两个密钥之间距离的功能。每个节点x构建长距离路由表,所述表包含指向ID均匀分布在密钥空间中的其他节点的指针。通过发起随机行走和从结束节点收集随机ID来存储指针。短距离路由表包含密钥-值记录。根据预定义的顺序,这些密钥最接近节点的ID。
路由结构能够管理:(a)节点故障,即路由表中的冗余提供了检索密钥值的替代路径;(b)密钥改变,即添加或删除密钥导致DHT空间中密钥分配和长距离指针分配之间的不一致;和(c)网络连接的变化,即只要没有稀疏切割分割诚实网络并且没有端点变得恶意,则添加或移除受信连接不会影响路由性能。新密钥的同步和可用性通过定期更新(UPDATE)调用来提供。
受信连接的概念对于在DHT架构中提供安全性和完整性至关重要。可以使用两种不同的机制在网络中创建新的边缘。
主观联系建立在对等体之间的社会或职业关系上:例如,全球或当地知名实体的友谊、合约和信任。例如,非营利组织、研究机构、政府实体以及签署特定协议的私营公司都可以成为受信关系。
传递连接基于逻辑属性和信任度,以增加网络上随机路径的数量。逐跳(Hop-by-Hop)行走中的随机性增加,使得恶意节点更难利用恶意边缘的漏洞。可以在对等体之间交换签名消息,以了解其他节点之间的受信连接。节点可以决定为其受信连接分配不同的权重,以便调整在随机行走中选择单个跳的概率,或者初始化新的可传递连接。每个节点负责自己的权重。诚实节点将根据其对等节点的路由行为调整其连接的权重:如果密钥应落入其短距离路由表中,则节点可能无法提供有效的密钥-值记录。因此,可以组织新的随机行走通过弱边缘,恶意节点的影响将随着时间的推移而降低。
DMP功能由专用比特币节点的集群提供。在集群中,验证者节点收集并验证新的传入交易,而存储池节点负责持久存储已验证的交易。图11示出了具有验证者节点v和存储池节点s的存储池集群的设计。这两种类型节点的功能可以由相同的物理实体提供,也可以嵌入不同的实体中。
DMP提供两个基本操作:存储和检索已验证的交易。给定交易ti,标识符id(ti)可以分配为idi=H(ti),其中H代表散列函数。标识符将在DMP用作密钥。使用特定的多播地址,可以从群集中的多个验证者接收交易。然后,每个验证者将独立地验证该交易。然而,底层DHT结构没有在密钥空间中嵌入交易ID来防止密钥群集攻击。因此,交易可以存储在DMP的随机节点中。对于给定的交易或交易集合,验证者节点可以向随机存储池节点发送R存储(RSTORE)消息请求,其中R是数据复制因子。
假设N个验证者将独立验证交易ti。每个验证者v都维护称为VDB的本地数据库。数据库的每个条目都包含交易idi的标识符和用于验证的二进制决策。每个验证者将根据本地决定向DMP发送存储(STORE)(ti,idi)或拒绝(REJECT)(idi)消息
只有当接收到N/2+1存储消息时,每个存储池节点s才会存储ti。或者,一旦节点接收到第一存储消息,它激活定时器来接收到达定额所需的N/2更多STORE消息。如果超时且未收到足够的确认,则交易将被丢弃。每个存储池节点sm还将保留ti的接收确认的数量Ni,m>N/2+1。
检索已验证的交易ti需要广播消息查询(QUERY)(idi)。负责存储ti的存储池节点将向查询节点发送消息数据(DATA)(ti)。如果需要M个存储池节点来存储ti,查询节点应该至少接收M/2+1个数据消息,以考虑所存储的交易的一致性。此外,查询节点可以用有效性请求(VALIDITY REQ)(ti)消息询问N/2+1个随机验证者,以根据存储在VDB的信息评估ti的有效性。
用于管理不断增加的交易活动的可扩展体系结构要求使用大量数据操作的存储基础架构。例如,10K txn/s的交易速率和1KB的交易平均大小要求每月存储约27TB的区块。
在M网络集群中,提出了两种不同的存储体系结构(或它们的组合)。第一种体系结构适用于拥有和维护多个验证节点的较大实体,这些节点都可以访问集中式存储设施。相比之下,完全去中心化的体系结构适合具有足够存储容量、希望加入共享和分布式存储池的单个节点。
在下文中,我们使用以下术语来表示交易相关性:
交易可以花费前一个称为父(Parent)交易的输出;
交易可以为称为子(Child)交易的后续交易创建输出。
可以创建交易相关性或交易链来表示复杂的交易工作流程,该工作流程需要在父[比特币核心源代码。网址:https://github.com/bitcoin/bitcoin]之前添加子。当交易链通过网络传输时,数据到达顺序可能与数据传输顺序不匹配。在这种情况下,接收节点使用孤儿交易池(Orphan Transaction Pool)来存储引用未知父交易的交易。一旦知道了父,引用所述父创建的UTXO的任何孤儿都会从孤立池中释放出来,并递归地重新验证。然后按照正确的顺序重构整个交易链,并将其包括在交易池中。因此,当新交易被添加到存储池时,它没有存储池中的子,因为这些子将是孤儿。
为了防止拒绝服务攻击(Denial-of-Service Attack),存储在存储器中的孤儿交易数量受到限制。如果池中的孤儿交易数量超过了允许的最大值,将从池中逐出随机选择的孤儿交易,直到池的大小回到限制范围内。
本地存储池包含与节点对区块链的视角一致的交易集合。出于以下原因之一,可以从本地存储池中删除交易:
已挖掘区块中的交易发布。验证新区块时,其交易将从存储池中移除。
区块链重组(reorg)。如果区块与区块链断开连接,则其交易将移回存储池。
与区块内交易冲突(双重花费)(Double Spending)。验证新区块时,与该区块中的交易冲突的所有交易及其所有相关关系都将从存储池中移除。
此外,根据本地存储池的配置,可以考虑以下其他情况:
手动修剪;
期满;和
本地存储大小限制。
删除交易及其子交易时,必须在执行实际移除之前计算完整的交易集合,否则存储可能会处于无法检索父交易的不一致状态。标记为要移除的给定交易的所有祖先都需要更新。因此,在更新所有相关交易的状态之前,不能删除链中的中间交易。
在重组的情况下,新交易可能有存储池子交易,导致状态不一致,因为可能有来自断开连接的区块的交易的后代交易。在这种情况下,必须检查存储池中区块内交易的区块外后代。在比特币核心中,函数子代更新(UpdateForDescendants)用于更新添加到存储池的单个交易的后代,并且可以在存储池中具有子交易[比特币核心源代码。网址:https://github.com/bitcoin/bitcoin]。
如前所述,获胜矿工将区块骨架发送回验证节点。区块骨架由随机数、可逆布隆过滤器查找表(IBLT)和币库交易组成。基于此,验证者节点可以:
1.根据一组特定规则订购交易;
2.组装新挖掘的区块;
3.继续将区块存储在其自己的存储器中;
4.将骨架传播到其他新的全节点。
因此,验证节点知道新发布的交易。每个验证者节点可以独立地向DMP发送包含交易ID列表的删除消息。验证者只能发送对先前已验证交易(已启用check_validator_send)的删除请求。该信息存储在数据库VDB(验证者数据库)(Validator Database)中。根据该模型,存储池节点可以丢弃从未验证交易(已启用check_validator_rcv)的验证者接收的删除请求。该信息存储在数据库SDB(存储数据库)(Storage Database)中。所述两个check_validator_send和check_validator_rcv选项可以是硬编码的或独立配置的。所述删除消息使用验证者的私钥签名。消息必须包含随机数或时间戳,以避免传播可能影响共识协议的欺诈性副本。
图12显示了验证者节点vn(0≤n<N),该节点接收有关新挖掘的区块的更新。验证区块后,验证者发送已发布交易的删除请求到DMP。每个存储池节点sm(0≤m<M)跟踪SDB表上的存储请求和RDB表上的删除请求。如图12所示,每个存储池节点使用新的表RDB(删除数据库)(Removal Database)来跟踪每个已存储交易的删除请求。给定从存储池节点m<M的验证者n<N对交易ti的删除请求,则本地RDB(m)表将包含布尔rmn值。例如,如果N=100,并且每个存储池节点每10分钟存储10M交易3天,则RDB(m)的大小可以限制为:100·107·3·24·6=432GB。请注意,该数字代表了极不可能的最坏情况,即过去3天本地存储的所有交易都尚未得到确认,并且每个表条目都需要1个字节。至少小一个或两个数量级(例如,大约4GB)的表格大小可能代表一种更现实的情况。但是,由于存储池节点具有所需的高存储能力,因此我们不对本地表的最大大小施加任何限制。
让NMAX>N为可以向群集发送存储或删除消息的验证者的最大数量。根据所选的分布式体系结构,NMAX可能对应于网络中验证者的总数,也可能与特定DMP群集的大小成比例。DMP群集的大小由存储池节点的数量和/或可本地存储的交易总量给出。
我们引入了一些标准来确定是否应该删除集群内本地存储池节点sm中存储的交易ti
至少有N*<NMAX个验证者发送删除请求。验证者实际上可以促进N*,取决于check_validator_send和check_validator_rcv设置。如果设置了一个或两个选项,则可以施加N*≈N(近似值)。如果没有设置选项,则建议使用N*>N,以便达成尽可能高的共识。
ti取决于先前移除的交易tj。如果两个交易都存储在sm中,并且tj被安全移除,则ti也可以安全移除(如果达成了删除交易的共识,那么从属交易必须被视为无效,并被标记为已移除)。无需向其他存储池节点发送信号。
我们不强制DMP将交易链存储在单个存储池节点中,以防止特定的拒绝服务攻击。因此,由于链中各个交易的状态,存储池节点可能处于不一致的状态。只要需要与交易链相关的数据的比特币节点通过向DMP发出特定的查询请求了解到不一致性,就不会出现问题。例如,比特币节点向DMP请求交易ti。该交易取决于第二交易tj。在向DMP查询第二交易之后,节点发现tj不再被存储。因此,即使仍然存储在DMP的一些存储池节点中,节点也有责任考虑ti不可用。长期的不一致将通过永久修剪来解决。
如果达成共识,交易ti将被本地标记为已移除。但是,出于安全原因,交易可能不会被物理地删除。我们引入了两个标准来确定何时应从sm中物理地删除交易:
至少有N**≥N*个验证者发送了删除请求。N**的值应该足够高,以考虑修剪共识完全安全。
自接收到最后一个删除请求后经过了ΔTi>ΔT*的时间量,并且没有转发对ti的进一步数据请求。ΔT*的值应该足够高,以至于可以忽略重组事件的概率。根据6区块确认规则,交易在新挖掘的区块中发布大约1小时后,可以安全地认为已被网络接受。
然而,根据sm的存储限制,即使不满足上述标准,ti也可以被移除。交易可以按降序ΔTi排序,并选择永久删除。属于链并存储在sm中的交易必须立即删除。无需通知验证者关于交易链的修剪。需要与交易链相关的数据的比特币节点通过向DMP发出特定的查询请求来了解不一致性。
存储池节点可以收集已标记为已移除的交易的数据请求。接收单个交易的多个数据请求可能有不同的含义:
保留无用数据的拒绝服务攻击;
区块链重组以及将交易转回DMP的需要。
由于请求可能不合法,存储池节点不会因数据请求而采取任何操作。数据请求计数器可用于将已移除的交易标记为恢复的候选。这些候选仍可以被考虑进行物理修剪。在实施物理修剪的优先级策略的情况下,可以将较低的优先级分配给用于恢复的候选交易。
标记为已移除但仍在本地存储的交易只有在收到来自验证者的恢复消息时才能被恢复。如果发生链重组,则验证者有责任向DMP发出信号。存储池节点需要收集一定数量的唯一恢复消息,以使交易再次可用。我们建议许多消息作为N、N*和/或N**参数的函数。例如,恢复消息的最小数量可以等于N和N*之间的平均值。
表1总结了修剪协议使用的可配置参数。
表2:可配置参数。
参数 描述
N 负责验证单个交易的验证者集合。
N<sup>MAX</sup> 数据集群的验证者全集合。
N* 触发建议的可逆修剪所需的最小验证者数量。
N** 触发交易的物理修剪所需的最小验证者数量。
M 数据集群中的存储池节点集合。
ΔT* 触发交易的物理修剪的时间窗口。
管理交易的协议包括以下消息。
已接收(ti)。当接收到新的未验证的交易ti时,触发验证者的回调。
存储(ti,idi)。验证者存储有效交易ti和密钥idi的请求。
存储(idi)。验证者存储有效交易密钥idi的优化请求。
查询(idi)。通用节点对具有密钥idi的交易的请求。
数据(ti)。存储池节点对交易ti查询请求的回复。
有效性_请求(VALIDITY_REQ)(ti)。通用节点要求重新检查交易ti的有效性。
有效性_确认(VALIDITY_ACK)(ti)。验证者对交易ti有效性请求的回答。
此处显示的扩展需要以下附加消息。
移除(idi)。验证者请求移除idi标识的交易。
恢复(idi)。验证者请求在链重组后恢复idi标识的交易。
已移除(idi)。存储池节点对idi标识的已移除交易的查询请求的答复。如果信息仍然可用,则该消息可包含存储池节点为idi标识的交易接收的移除消息数。
图13示出了由idi根据验证者的请求标识的交易的完整状态图。根据从验证者接收的消息的类型(即存储、移除、恢复)和数量(例如,N、N*、N**),交易可以将状态更改为可用、已移除或物理地删除。无法恢复“物理地删除”的交易状态。但是,根据本地文件系统和操作系统提供的功能,数据仍然可以恢复。
应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。例如,应当理解,虽然交易可以转移比特币,但是用户可以改为使用本文所述的方法和系统来交换其他资源(例如信息、合同和代币)。代币根据与代币相关联的智能合约来表示资产或资源,使得代币的控制有能力控制资产或资源。智能合约本身可以存储在区块链外,也可以存储在一个或多个交易中。
在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(Comprising)”和“包括(Comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(Comprises)”意指“包括(Includes)或由......组成(Consists of)”,“包括(Comprising)”意指“包括(Including)或由......组成(Consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。
参考资料
An Integrated World.(n.d.).Retrieved from https://www.anintegratedworld.com/whats-in-a-block/
David Eppstein,M.T.(2011).What's the Difference?Efficient SetReconciliation without Prior Context.ACM.
maidsafe.(n.d.).Retrieved from github.com:https://github.com/maidsafe/Whitepapers
Michael T.Goodrich,M.M.(2011).Invertible Bloom LookupTables.Communication,Control,and Computing(Allerton),2011 49th AnnualAllerton Conference on.
NebulousLabs.(n.d.).Retrieved from github.com:https://github.com/NebulousLabs/Sia
O(1)Block Propagation.(n.d.).Retrieved from github.com:https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2
Wikipedia.(n.d.).Retrieved from https://en.wikipedia.org/wiki/Distributed_hash_table
Wilkinson et al.(2016,December 15).Retrieved from https://storj.io/storj.pdf
John R.Douceur.The Sybil Attack.First International Workshop on Peer-to-Peer Systems.Springer-Verlag,London,UK,2002
Bitcoin Core source code.URL:https://github.com/bitcoin/bitcoin

Claims (32)

1.一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:
存储多个交易,所述多个交易形成交易的分布式存储池的至少一部分,所述交易为等待挖掘到区块链的区块中的交易;和
接收来自所述区块链网络的验证节点的删除请求,所述删除请求识别已经包括在新挖掘的区块中的一个或多个交易,所述删除请求表明所述一个或多个交易应从所述分布式存储池中删除。
2.根据权利要求1所述的计算机实现的方法,还包括:
当接收到所述交易的第一门限数量的删除请求时,将所述交易标记为从所述分布式存储池中移除。
3.根据权利要求2所述的计算机实现的方法,还包括:
当接收到所述交易的第二门限数量的删除请求时,从所述分布式存储池中物理地移除所述交易。
4.根据权利要求3所述的计算机实现的方法,其中,所述第二门限大于所述第一门限。
5.根据权利要求3或4所述的计算机实现的方法,其中,所述第一和第二门限数量的删除请求需要来自所述区块链网络中门限数量的不同验证节点。
6.根据任一前述权利要求所述的计算机实施的方法,其中,仅在从接收到所述删除请求以来经过门限时间之后,才从所述分布式存储池中物理地移除所述交易,在此期间,未接收到所述交易的进一步数据请求。
7.根据权利要求6所述的计算机实现的方法,其中,在所述交易并入所述区块链之后,所述门限时间对应于并入所述区块链的至少1、2、3、4、5、6个或更多个区块,所述区块链为请求从所述分布式存储池删除的区块链。
8.根据任一前述权利要求所述的计算机实现的方法,其中,自接收到所述删除请求以来,按照递减的时间顺序从所述分布式存储池中物理地移除所述交易,在此期间,未接收到所述交易的进一步数据请求。
9.根据权利要求8所述的计算机实现的方法,还包括:
当所述交易依赖于先前移除的交易时,将所述交易标记为从所述分布式存储池移除。
10.根据任一前述权利要求所述的计算机实现的方法,其中,所述删除请求存储在数据库中。
11.根据任一前述权利要求所述的计算机实现的方法,其中,丢弃从验证者接收的所述删除请求,所述验证者为没有验证所述交易的验证者。
12.根据权利要求11所述的计算机实现的方法,其中,仅在启用检查验证者选项时才丢弃所述交易。
13.根据任一前述权利要求所述的计算机实现的方法,还包括:
监视已经标记为从所述分布式存储池中移除的交易的数据请求的数量。
14.根据任一前述权利要求所述的计算机实现的方法,还包括:
针对标记为从所述分布式存储池中移除的所述交易,在接收到所述交易门限数量的数据请求之后,将所述交易标记为恢复到所述分布式存储池的候选。
15.根据任一前述权利要求所述的计算机实现的方法,还包括:
当接收到所述交易的恢复请求时,将所述交易取消标记,从而表示为从所述分布式存储池移除。
16.根据任一前述权利要求所述的计算机实现的方法,还包括:
当接收到所述交易的门限数量的恢复请求时,将所述交易取消标记,从而表示为从所述分布式存储池移除。
17.根据权利要求16所述的计算机实现的方法,其中,所述门限数量的恢复请求来自所述区块链网络中某个门限数量的不同验证节点。
18.根据任一前述权利要求所述的计算机实现的方法,还包括:
响应于对已从所述分布式存储池中移除的交易的查询,发送指示所述交易已从所述分布式存储池移除的消息。
19.根据权利要求18所述的计算机实现的方法,其中,所述指示所述交易已从所述分布式存储池移除的消息还指示:针对所述已移除消息,接收到的删除消息的数量。
20.根据任一前述权利要求所述的计算机实现的方法,其中,所述交易包括关于所述分布式存储池的三个状态:可用;已移除;和物理上移除。
21.一种用于区块链网络的节点的计算机实现的方法,所述计算机实现的方法包括:
接收关于新挖掘的区块的数据,所述新挖掘的区块包括多个交易;和
向分布式存储池发送删除请求,以从所述分布式存储池中删除所述多个交易。
22.根据权利要求21所述的计算机实现的方法,其中,所述删除请求包含随机数和/或时间戳。
23.根据权利要求21或22的计算机实现的方法,其中,所述删除请求使用所述节点的私钥签名。
24.根据权利要求21至23中任一项所述的计算机实现的方法,其中,所述节点存储其已验证的交易的记录,并且只发送其先前已验证的交易的删除请求。
25.根据权利要求24所述的计算机实现的方法,其中,仅当启用检查验证者选项时,才针对所述节点先前已验证的交易发送删除请求。
26.根据权利要求21至25中的任一项所述的计算机实现的方法,还包括:
发送恢复请求以使所述交易在所述分布式存储池中再次可用。
27.根据权利要求26所述的计算机实现的方法,其中,所述恢复请求在区块链重组后发送。
28.根据任一前述权利要求所述的计算机实现的方法,其中,所述删除请求由以下一项或多项激活:
接收已挖掘的区块;
所述区块链重组;和
双重花费或其他形式的交易冲突。
29.根据任一前述权利要求所述的计算机实现的方法,其中,来自所述分布式存储池的交易修剪由以下一个或多个激活:
手动修剪;
交易到期;和
所述分布式存储池中的交易达到存储限制。
30.一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被执行时使一个或多个处理器执行权利要求1至29中任一项所述的方法。
31.一种电子设备,包括:
接口设备;
一个或多个处理器,连接到所述接口设备;
存储器,连接到所述一个或多个处理器,所述存储器存储了计算机可执行指令,所述计算机可执行指令在被执行时使所述一个或多个处理器执行权利要求1至29中任一项所述的方法。
32.一种区块链网络的节点,所述节点用于执行权利要求1至29中任一项所述的方法。
CN201880049013.4A 2017-07-24 2018-07-16 用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法 Pending CN110945548A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1711879.5A GB201711879D0 (en) 2017-07-24 2017-07-24 Computer-implemented system and method
GB1711879.5 2017-07-24
PCT/IB2018/055238 WO2019021107A1 (en) 2017-07-24 2018-07-16 COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR MANAGING A LARGE MEMORY GROUP DISTRIBUTED IN A BLOCK CHAIN NETWORK

Publications (1)

Publication Number Publication Date
CN110945548A true CN110945548A (zh) 2020-03-31

Family

ID=59771595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880049013.4A Pending CN110945548A (zh) 2017-07-24 2018-07-16 用于管理区块链网络中大型分布式存储池的计算机实现的系统和方法

Country Status (6)

Country Link
US (1) US20230334036A1 (zh)
EP (3) EP4383639A3 (zh)
JP (3) JP6999023B2 (zh)
CN (1) CN110945548A (zh)
GB (1) GB201711879D0 (zh)
WO (1) WO2019021107A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881491A (zh) * 2018-08-07 2018-11-23 长沙拓扑陆川新材料科技有限公司 一种用于挖掘区块链中的块的方法及系统
CN111612471A (zh) * 2020-06-08 2020-09-01 杭州复杂美科技有限公司 区块还原方法、设备和存储介质
CN111630545A (zh) * 2020-04-22 2020-09-04 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
CN112765278A (zh) * 2021-01-28 2021-05-07 西华大学 基于区块链的无线物联网系统
CN112988891A (zh) * 2021-03-11 2021-06-18 重庆文理学院 存储区块链账本的方法、装置、电子设备及存储介质
US20210264421A1 (en) * 2020-02-23 2021-08-26 Verint Systems Ltd. System and method for cryptocurrency networks
CN114390063A (zh) * 2022-02-25 2022-04-22 蚂蚁区块链科技(上海)有限公司 用于区块链网络的消息广播方法、区块链节点和区块链系统

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019106006A1 (en) * 2017-12-01 2019-06-06 Quant Network Ltd. Blockchain communications and ordering
EP3496020A1 (en) * 2017-12-08 2019-06-12 CoreLedger AG Method for carrying out transactions
CN111782725A (zh) * 2018-02-27 2020-10-16 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、系统、电子设备
CN108805569A (zh) 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN110868434B (zh) * 2018-08-27 2022-07-01 深圳物缘科技有限公司 一种多层分片架构的区块链共识方法及系统
EP3617926B1 (de) * 2018-08-31 2020-07-15 Siemens Aktiengesellschaft Blockbildungs-einrichtung und -verfahren, knoteneinrichtung und blockbestätigungs-verfahren
US20200160340A1 (en) * 2018-11-21 2020-05-21 Capital One Services, Llc Distributed fraud detection system within mesh networks
US11184446B2 (en) * 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
CN109636388B (zh) * 2018-12-07 2024-02-23 深圳市智税链科技有限公司 区块链网络中的数据处理方法、装置、介质及电子设备
EP3921997A4 (en) * 2019-02-04 2022-10-12 Navier, Inc. INTERPRETATION OF PACKET TRANSMISSIONS
CN111640012A (zh) * 2019-03-01 2020-09-08 中国银联股份有限公司 一种区块链交易追溯的方法及装置
GB2582978B (en) * 2019-04-12 2022-05-04 Nchain Holdings Ltd Methods and devices for propagating blocks in a blockchain network
CN111768202B (zh) * 2019-04-24 2024-06-18 北京京东尚科信息技术有限公司 一种支付验证方法、支付验证节点、全量节点及存储介质
US11482074B1 (en) * 2019-05-06 2022-10-25 Matthew Dickson Cryptocurrency transactional systems and methods
US11516001B2 (en) 2019-05-23 2022-11-29 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications
US11711202B2 (en) * 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
CN112115101B (zh) * 2019-06-20 2022-07-22 北京大学 一种云存储中数据的确定性删除方法及系统
GB2586865A (en) * 2019-09-06 2021-03-10 Nchain Holdings Ltd Methods and Devices for Tracking and Measuring Proof-of-Work Contributions in a Mining Pool
CN112565796A (zh) * 2019-09-25 2021-03-26 北京硬核聚视科技有限公司 一种视频内容去中心化存取方法和系统
GB2588138A (en) * 2019-10-09 2021-04-21 Nchain Holdings Ltd Methods and devices for secure symbiotic mining
CN110751475A (zh) * 2019-10-24 2020-02-04 杭州趣链科技有限公司 一种区块链交易的跨链方法及系统、设备和存储介质
AU2019320956B2 (en) * 2019-11-06 2021-11-25 Alipay (Hangzhou) Information Technology Co., Ltd. Data security of shared blockchain data storage based on error correction code
SG10201912999VA (en) * 2019-12-23 2020-09-29 Islamic Res And Training Institute Method and System for Transaction Validation in a Distributed Computing System
CN111597262B (zh) * 2020-05-14 2023-05-02 北京众享比特科技有限公司 一种区块链中的区块数据的管理方法和管理系统
CN111651521B (zh) * 2020-05-27 2023-10-17 山大地纬软件股份有限公司 一种电子合同区块链结构、电子合同签署装置及方法
CN111639939A (zh) * 2020-06-08 2020-09-08 杭州复杂美科技有限公司 区块还原方法、设备和存储介质
WO2022010300A1 (ko) * 2020-07-10 2022-01-13 주식회사 미디움 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법
CN112102078B (zh) * 2020-08-07 2024-05-21 柳州市蓝海数链科技有限公司 区块链共识计算方法、装置、计算机设备及存储介质
CN112100271B (zh) * 2020-09-08 2022-07-15 四川大学 一种基于工作量排名差异的eos共识机制效用可视化方法
EP4002786B1 (en) * 2020-11-11 2023-06-21 Deutsche Post AG Distributed ledger system
CN112565368B (zh) * 2020-11-26 2023-05-19 中国船舶集团有限公司系统工程研究院 基于区块链的海上装备自组网系统、方法和介质
GB2601540A (en) * 2020-12-04 2022-06-08 Nchain Holdings Ltd Methods and systems for synchronizing a streamed template to a solved block
WO2022177670A1 (en) * 2021-02-16 2022-08-25 Mastercard International Incorporated Method and system for generalized provenance solution for blockchain supply chain applications
CN112950211B (zh) * 2021-05-14 2021-07-30 腾讯科技(深圳)有限公司 一种交易验重方法、装置、设备以及介质
WO2022241571A1 (en) * 2021-05-21 2022-11-24 Zeu Technologies, Inc. System and method for the safe custody of private data using blockchain
GB2627298A (en) * 2023-02-20 2024-08-21 Nchain Licensing Ag Propagating blockchain messages
CN117407467B (zh) * 2023-12-15 2024-03-22 烟台大学 结合布隆过滤器与dht的区块链编码存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150356555A1 (en) * 2014-06-04 2015-12-10 Antti Pennanen System and method for executing financial transactions
GB201605123D0 (en) * 2016-03-24 2016-05-11 Mount Watatic Ltd Device, method and system for a distributed ledger
KR101694455B1 (ko) * 2016-03-14 2017-01-17 주식회사 스트리미 블록체인 기반의 디지털 가상화폐를 환전 또는 송금하기 위한 방법 및 장치

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH113260A (ja) * 1997-06-13 1999-01-06 Hitachi Ltd データベース管理方法
US7590236B1 (en) * 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
US7424499B2 (en) * 2005-01-21 2008-09-09 Microsoft Corporation Lazy timestamping in transaction time database
US9037556B2 (en) * 2012-12-03 2015-05-19 Vmware, Inc. Distributed, transactional key-value store
US8924664B2 (en) * 2012-12-13 2014-12-30 Infinidat Ltd. Logical object deletion
US9715353B2 (en) * 2014-09-16 2017-07-25 International Business Machines Corporation Data set management
US10891383B2 (en) * 2015-02-11 2021-01-12 British Telecommunications Public Limited Company Validating computer resource usage
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
JP6636058B2 (ja) * 2015-07-02 2020-01-29 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
JP6452156B2 (ja) 2015-09-03 2019-01-16 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
US10521780B1 (en) * 2015-12-16 2019-12-31 United Services Automobile Association (Usaa) Blockchain based transaction management
EP3394818A4 (en) * 2015-12-21 2019-08-14 Kochava Inc. AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS
WO2017109140A1 (en) * 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
JP6657972B2 (ja) * 2016-01-08 2020-03-04 日本電気株式会社 負荷分散システム、負荷分散装置、負荷分散方法、および、プログラム
US20170236120A1 (en) * 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
US20170357966A1 (en) * 2016-06-09 2017-12-14 Mastercard International Incorporated Method and system for use of a proprietary private blockchain
US10360191B2 (en) * 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
US20180130034A1 (en) * 2016-11-07 2018-05-10 LedgerDomain, LLC Extended blockchains for event tracking and management
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10257206B2 (en) * 2016-12-21 2019-04-09 International Business Machines Corporation Monitoring actions performed by a network of peer devices using a blockchain
GB201709518D0 (en) * 2017-06-15 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150356555A1 (en) * 2014-06-04 2015-12-10 Antti Pennanen System and method for executing financial transactions
KR101694455B1 (ko) * 2016-03-14 2017-01-17 주식회사 스트리미 블록체인 기반의 디지털 가상화폐를 환전 또는 송금하기 위한 방법 및 장치
GB201605123D0 (en) * 2016-03-24 2016-05-11 Mount Watatic Ltd Device, method and system for a distributed ledger

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881491A (zh) * 2018-08-07 2018-11-23 长沙拓扑陆川新材料科技有限公司 一种用于挖掘区块链中的块的方法及系统
US20210264421A1 (en) * 2020-02-23 2021-08-26 Verint Systems Ltd. System and method for cryptocurrency networks
US11941626B2 (en) * 2020-02-23 2024-03-26 Cognyte Technologies Israel Ltd. System and method for associating a cryptocurrency address to a user
CN111630545A (zh) * 2020-04-22 2020-09-04 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
CN111630545B (zh) * 2020-04-22 2022-05-27 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
US11455631B2 (en) 2020-04-22 2022-09-27 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
CN111612471A (zh) * 2020-06-08 2020-09-01 杭州复杂美科技有限公司 区块还原方法、设备和存储介质
CN112765278A (zh) * 2021-01-28 2021-05-07 西华大学 基于区块链的无线物联网系统
CN112988891A (zh) * 2021-03-11 2021-06-18 重庆文理学院 存储区块链账本的方法、装置、电子设备及存储介质
CN112988891B (zh) * 2021-03-11 2023-04-21 重庆文理学院 存储区块链账本的方法、装置、电子设备及存储介质
CN114390063A (zh) * 2022-02-25 2022-04-22 蚂蚁区块链科技(上海)有限公司 用于区块链网络的消息广播方法、区块链节点和区块链系统
CN114390063B (zh) * 2022-02-25 2023-09-29 蚂蚁区块链科技(上海)有限公司 用于区块链网络的消息广播方法、区块链节点和区块链系统

Also Published As

Publication number Publication date
EP3659086B1 (en) 2023-08-23
EP3659086A1 (en) 2020-06-03
JP2020528607A (ja) 2020-09-24
EP4383639A3 (en) 2024-07-24
US20230334036A1 (en) 2023-10-19
WO2019021107A1 (en) 2019-01-31
EP4383639A2 (en) 2024-06-12
JP7408619B2 (ja) 2024-01-05
EP4209980B1 (en) 2024-10-02
GB201711879D0 (en) 2017-09-06
EP4209980A1 (en) 2023-07-12
JP2024019632A (ja) 2024-02-09
JP2022028010A (ja) 2022-02-14
JP6999023B2 (ja) 2022-02-04

Similar Documents

Publication Publication Date Title
JP7408619B2 (ja) ブロックチェーンネットワークにおいて大規模分散メモリプールを管理するためのコンピュータ実装されたシステム及び方法
JP7518220B2 (ja) ブロックチェーン・ネットワークのノードに関する方法
Jesus et al. A survey of how to use blockchain to secure internet of things and the stalker attack
CN110771127B (zh) 用于区块链网络中一致分布式内存池的方法和系统
KR102062896B1 (ko) 네트워크 내의 분산 데이터베이스를 위한 방법 및 장치
JP2023515369A (ja) 分散型データベース
Pustišek et al. Blockchain: Technology and Applications for Industry 4.0, Smart Energy, and Smart Cities
Gencer On scalability of blockchain technologies
Liu et al. Mainstay: A hybrid protocol ensuring ledger temporality and security
Ben Mariem Vivisecting Blockchain P2P Networks
Tumas Multi-layer Security Analysis of the XRP Ledger

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