CN111630549B - 管理账本系统中的交易请求 - Google Patents
管理账本系统中的交易请求 Download PDFInfo
- Publication number
- CN111630549B CN111630549B CN202080001177.7A CN202080001177A CN111630549B CN 111630549 B CN111630549 B CN 111630549B CN 202080001177 A CN202080001177 A CN 202080001177A CN 111630549 B CN111630549 B CN 111630549B
- Authority
- CN
- China
- Prior art keywords
- transaction
- request
- ledger
- index
- storage
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/42—Confirmation, e.g. check or permission by the legal debtor of payment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Abstract
本文公开了用于管理账本系统中的交易请求的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法之一包括:计算系统接收多个交易请求,所述多个交易请求中的每个交易请求包括相应交易的内容信息和所述相应交易的认证信息;所述计算系统将所述多个交易请求中的每个交易请求存储在请求流中;所述计算系统获得所述请求流中的所述多个交易请求中的交易请求的存储信息;以及所述计算系统将所述交易请求的所述存储信息存储在索引流的索引中,并将与所述交易请求相对应的交易的认证信息存储在存储流的存储元中,所述存储元与所述索引相对应,所述索引流与所述存储流相关联。
Description
技术领域
本文涉及管理账本系统中的交易请求。
背景技术
账本通常用于记录交易历史,例如组织中的经济和金融活动。已构建了具有类似账本功能的应用,例如在关系数据库中创建的自定义审计表或审计轨迹,以维护应用数据的准确历史记录。然而,构建此类应用是耗时的,并且容易出现人为错误。而且,由于关系数据库不是固有不变的,因此对数据的任何更改都难以追踪和验证。
分布式账本系统(DLS),也可以被称为共识网络和/或区块链网络,使得参与实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的类型示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。区块链网络执行共识处理来验证每个交易,然后再将交易添加到区块链网络中,这可能是耗时的、效率低并且复杂的。
因此,期望开发一种能够有效且安全地管理来自客户端设备的交易请求和/或交易的账本系统,并提供验证存储在账本系统中的交易请求和/或交易的不变性、可靠性、可信性和可追溯性的更有效的方法。
发明内容
所描述的主题的实施例可以包括单独或组合的一个或多个特征。
例如,在一个实施例中,一种计算机实现的方法包括:计算系统接收多个交易请求,所述多个交易请求中的每个交易请求包括相应交易的内容信息和所述相应交易的认证信息;所述计算系统将所述多个交易请求中的每个交易请求存储在请求流中;所述计算系统获得请求流中的多个交易请求中的交易请求的存储信息;以及所述计算系统将交易请求的存储信息存储在索引流的索引中,并将与交易请求相对应的交易的认证信息存储在存储流的存储元(storage element)中,所述存储元与所述索引相对应,所述索引流与所述存储流相关联。
在一些实施例中,可以使用设备、系统、方法或计算机可读介质或者设备、系统、方法和计算机可读介质的任何组合来实现这些一般和特定实施例中的一个或多个。前述和其他描述的实施例可以各自可选地包括一个或多个以下实施例:
在一些实施例中,所述方法还包括向客户端设备返回与交易请求相对应的索引的索引标识。
在一些实施例中,交易请求的存储信息包括:交易请求在请求流中的位置。
在一些实施例中,所述方法还包括:从客户端设备接收针对交易请求的搜索请求,所述搜索请求包括与所述交易请求相对应的索引的索引标识;以及基于与索引标识相对应的索引,在请求流中搜索交易请求。
在一些实施例中,所述方法还包括根据索引流中的索引,检索存储在请求流中的交易的内容信息。
在一些实施例中,交易请求的存储信息包括请求流在多个请求流中的标识,并且交易请求在请求流中的位置包括:交易请求在请求流中的偏移量,以及交易请求的大小。
在一些实施例中,索引流包括多个索引,多个索引中的每个索引包括请求流中的多个交易请求中的相应一个交易请求的存储信息。存储流包括多个存储元,并且多个存储元中的每一个包括请求流中的多个交易请求中的相应一个交易请求的认证信息。多个存储元在存储流中的顺序与多个索引在索引流中的顺序相同。
在一些实施例中,多个存储元在存储流中的顺序与多个交易请求中的相应交易请求在请求流中的顺序不同。
在一些实施例中,存储元与索引相对应包括:存储元与索引具有一对一映射,以及存储元和索引与同一交易请求相对应。
在一些实施例中,所述方法还包括:从多个索引流中选择索引流以及从多个存储流中选择存储流,其中,所述多个索引流中的每个索引流与所述多个存储流中的不同的相应存储流相关联。
在一些实施例中,索引的索引标识包括索引流在多个索引流中的标识和索引在索引流中的标识。
在一些实施例中,所述方法还包括在区块链中生成区块,该区块包括存储流中的一系列顺序存储元,该一系列顺序存储元对应于多个第二交易请求,该一系列顺序存储元对应于索引流中的一系列顺序索引。
在一些实施例中,该区块不包括与多个第二交易请求相对应的交易的内容信息。
例如,在另一实施例中,一种计算机实现的方法包括:由账本代理接收多个第一交易请求,该多个第一交易请求中的每个交易请求包括相应交易的内容信息和相应交易的认证信息;由账本代理将多个第一交易请求中的多个第二交易请求中的每一个存储在多个请求流中的对应请求流中,多个第二交易请求的数量不大于多个第一交易请求的数量;由账本代理向账本服务器发送针对存储在多个请求流中的请求流中的交易请求的存储请求,该存储请求包括请求流中的交易请求的存储信息以及与交易请求相对应的交易的认证信息;由账本代理从账本服务器接收与针对交易请求的存储请求相对应的索引信息,该索引信息指示由账本服务器存储的存储信息的位置;以及由账本代理向客户端设备发送对交易请求的响应,该响应包括与交易请求相对应的索引信息。
在一些实施例中,可以使用设备、系统、方法或计算机可读介质或者设备、系统、方法和计算机可读介质的任何组合来实现这些一般和特定实施例中的一个或多个。前述和其他描述的实施例可以各自可选地包括一个或多个以下实施例:
在一些实施例中,索引信息包括索引在索引流中的索引标识,该索引包括交易请求的存储信息。
在一些实施例中,索引对应于与索引流相关联的存储流中的存储元,该存储元存储交易的认证信息。
在一些实施例中,所述方法还包括:确定与多个第一交易请求中的每个相对应的交易的认证信息是否有效;以及执行以下中的至少一项:响应于确定与多个第一交易请求中的第一交易请求相对应的认证信息有效,将第一交易请求存储在多个请求流中的对应请求流中,或响应于确定与多个第一交易请求中的第二交易请求相对应的认证信息无效,确定不存储第二交易请求并向提供第二交易请求的第二客户端设备返回错误消息。
在一些实施例中,相应交易的认证信息包括:相应交易的哈希值和由私钥对相应交易加密的签名(例如,对相应交易的哈希值的签名),并且确定相应交易的认证信息是否有效包括:基于相应交易的认证信息,计算与私钥相对应的公钥。
在一些实施例中,针对交易请求的存储请求包括由账本代理基于交易的认证信息计算出的公钥。
在一些实施例中,交易的认证信息包括交易的哈希值,所述方法还包括:在从账本服务器接收到索引信息之后,生成交易的服务器签名(例如,对交易的哈希值的服务器签名),并向客户端设备发送包括服务器签名和索引信息的响应。
在一些实施例中,所述方法还包括:由账本代理向账本服务器发送针对存储在多个请求流中的第二请求流中的第二交易请求的第二存储请求;由账本代理确定尚未从账本服务器接收到针对第二交易请求的索引信息,以及由账本代理向提供第二交易请求的第二客户端设备发送错误消息。
在一些实施例中,确定尚未接收到针对第二交易请求的索引信息包括:确定在发送所述存储请求之后已经过去了预定时间段并且没有来自账本服务器的回复。
在一些实施例中,确定尚未接收到针对第二交易请求的索引信息包括:确定来自账本服务器的回复指示账本服务器未能存储第二交易请求的存储信息和/或第二交易请求中的认证信息。
在一些实施例中,第二存储请求包括由账本代理基于第二交易请求中的认证信息计算的公钥,并且确定尚未接收到针对第二交易请求的索引信息包括:确定来自账本服务器的回复指示公钥未被授权访问对应于第二交易请求的第二索引流和第二存储流。
在一些实施例中,所述方法还包括:账本代理在第二请求流中将第二交易请求标记为垃圾。
在一些实施例中,所述方法还包括:同时向一个或多个账本服务器发送针对存储在多个请求流中的多个第三交易请求的存储请求。
在一些实施例中,所述方法还包括:基于交易请求的信息从多个账本服务器中选择账本服务器。
在一些实施例中,交易请求的存储信息包括:请求流在多个请求流中的标识以及交易请求在请求流中的位置。
在一些实施例中,索引信息包括:索引流在多个索引流中的标识和索引在索引流中的标识。
例如,在一个实施例中,一种计算机实现的方法包括:由账本服务器接收针对存储在请求流中的交易请求的存储请求,所述存储请求包括请求流中的交易请求的存储信息和与该交易请求相对应的交易的认证信息;由账本服务器将交易请求的存储信息存储在索引流的索引中,并且由账本服务器将交易请求的认证信息存储在存储流的存储元中,该存储流与索引流相关联,索引与存储元相对应;以及由账本服务器返回针对交易请求的索引的索引标识。
在一些实施例中,可以使用设备、系统、方法或计算机可读介质或者设备、系统、方法和计算机可读介质的任何组合来实现这些一般和特定实施例中的一个或多个。前述和其他描述的实施例可以各自可选地包括一个或多个以下实施例:
在一些实施例中,存储请求包括基于交易的认证信息计算的公钥。所述方法还包括:账本服务器验证存储请求中的公钥是否被授权访问索引流和存储流。
在一些实施例中,存储交易请求的存储信息和交易的认证信息是响应于验证了公钥被授权而进行的。
在一些实施例中,所述方法还包括:由账本服务器将公钥以及交易的认证信息一起存储在存储流的存储元中。
在一些实施例中,验证存储请求中的公钥是否被授权访问索引流和存储流包括:验证存储请求中的公钥是否与关联于索引流和存储流的经认证的公钥匹配。
在一些实施例中,所述方法还包括:由账本服务器验证与第二交易请求相对应的第二存储请求中的第二公钥是否被授权访问与第二交易请求相对应的第二索引流和第二存储流;以及响应于验证得出第二公钥无效,由账本服务器返回错误消息。
在一些实施例中,所述方法包括:由账本服务器接收针对存储在请求流中的多个交易请求的多个存储请求,每个存储请求包括请求流中的各个交易请求的存储信息以及与各个交易请求相对应的交易的认证信息;以及由账本服务器将多个交易请求的存储信息存储在索引流中的多个索引中,并将与多个交易请求相对应的交易的认证信息存储在存储流中的多个存储元中,其中,多个索引在索引流中的存储顺序与多个存储元在存储流中的存储顺序相同。
在一些实施例中,多个交易请求在请求流中的存储顺序与多个存储元在存储流中的存储顺序不同。
在一些实施例中,存储元在存储流中具有唯一的存储标识,并且索引在索引流中具有唯一的索引标识,并且该唯一的存储标识与该唯一的索引标识相同。
在一些实施例中,可以同时进行将交易请求的存储信息存储在索引流的索引中以及将交易的认证信息存储在存储流的存储元中。
在一些实施例中,账本服务器与多个账本相关联,每个账本包括对应的索引流和与对应的索引流相关联的对应的存储流。索引的索引标识包括:多个账本的各个索引流中的索引流的标识,以及存储在索引流中的索引的唯一标识。
在一些实施例中,所述方法还包括:由账本服务器基于存储请求从多个账本中选择包括索引流和存储流的账本。
在一些实施例中,所述方法还包括:由账本服务器根据索引流中的索引从请求流中检索交易的内容信息,该交易请求包括存储在请求流中的交易的内容信息和交易的认证信息。
在一些实施例中,交易请求的存储信息包括:请求流在多个请求流中的标识以及交易请求在请求流中的位置。
在一些实施例中,交易的内容信息包括:交易的报头,其包括交易的本地时间戳和哈希值;以及交易的主体,其包括交易的有效载荷信息,交易的有效载荷信息包括转账参与者、转账金额、转账时间或转账地点中的至少一个,并且交易的认证信息包括交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。内容信息还可以包括元数据信息。
应当理解的是,根据本文的方法可包括本文描述的实施例的任何组合。也就是说,根据本文的方法不限于本文具体描述的实施例的组合,还包括所提供的实施例的任何组合。
以下在附图和描述中阐述了本文的一个或多个实施例的细节。根据说明书和附图以及权利要求,本文的其他实施例和优点将显现。
附图说明
图1是示出可用于执行本文实施例的环境的示例的示图。
图2是示出根据本文实施例的架构的示例的示图。
图3是示出根据本文实施例的在账本系统中实现可信时间戳服务的环境的示例的示图。
图4A是示出根据本文实施例的用于在与单个客户端相关联的单个账本服务器中实现可信时间戳服务的账本系统的示例的示图。
图4B是示出根据本文实施例的用于由联合账本服务器向多个客户端提供可信时间戳服务的账本系统的示例的示图。
图5是示出根据本文实施例的用于管理交易请求的账本系统的示例的示图。
图6是示出可以根据本文实施例执行的处理的示例的流程图。
图7A是示出可以根据本文实施例由账本系统执行的处理的示例的流程图。
图7B是示出可以根据本文实施例由账本代理执行的处理的示例的流程图。
图7C是示出可以根据本文实施例由账本服务器执行的处理的示例的流程图。
图8A描绘了根据本文实施例的装置的模块的示例。
图8B描绘了根据本文实施例的另一装置的模块的示例。
图8C描绘了根据本文实施例的另一装置的模块的示例。
在各个附图中相同的附图标记和名称表示相似的元件。
具体实施方式
本文描述了用于管理账本系统中的交易请求的技术。这些技术通常涉及账本系统,该账本系统可以是采用区块链数据结构和/或类似区块链数据结构的基于区块链的中心化账本系统,以利用存储在账本系统中的数据的不可变性、可靠性、可信性、可追溯性和可验证性。在一些实施例中,账本系统也可以是没有区块链的账本系统。
在一些实施例中,账本系统可以将数据存储为一系列数据记录(也称为记录),例如交易和/或交易请求。例如,账本系统可以将交易和/或交易请求存储在区块链数据结构的一系列区块中。在一些实施例中,账本系统可以将交易和/或交易请求存储在与区块链中的区块分开的一个或多个数据流(例如,称为请求流)中。在一些实施例中,账本系统可以包括其他数据流(例如,被称为索引流和/或存储流)以存储交易和/或交易请求的/存储信息、认证信息或者其他元数据。在一些实施例中,数据流可以被实现为可以存储一系列数据记录的阵列、链表或另一数据结构。例如,账本系统可以首先将例如从客户端设备接收的传入交易请求存储在一个或多个请求流中,并获得请求流中的交易请求的存储信息。然后,账本系统可以将请求流中的交易请求的存储信息存储在索引流的一个或多个索引中。在一些实施例中,账本系统可以将交易请求的认证信息存储在与索引流相关联的存储流的一个或多个存储元(storage element)中。当新存储元和/或新索引的数量达到预定阈值或经过了预定时间段时,账本系统可以生成区块链的新区块,以将新存储元和/或新索引存储在区块链中。因此,账本系统可以将存储交易请求和存储与所存储的交易请求相关联的存储元和索引分开进行。在一些实施例中,账本系统可以将存储交易请求和生成用于存储存储元/索引的区块分开进行。还可以将索引的索引信息提供给客户端设备以进行记录和进一步查询。
本文中描述的技术产生了若干技术效果。在一些实施例中,所描述的技术可以增强存储在账本系统中的数据的安全性,并且提高在账本系统中存储数据(例如,交易请求)的可靠性。例如,通过将存储交易请求与存储索引和存储元以及生成区块分开进行,即使未生成索引、存储元或区块,也可以将交易请求及时存储在账本系统中。例如,当账本系统的账本服务器由于例如电力不足而停止工作并且不能存储与交易请求相对应的索引和存储元,和/或无法生成区块时,交易请求将不会丢失,而可以永久存储在相应的请求流中。在一些实施例中,交易请求的存储可以不受存储元和索引的存储和/或区块生成的任何错误或报错的影响,并且允许账本系统的快速恢复和增强的鲁棒性。
在一些实施例中,账本系统可以提高数据存储的效率和灵活性。账本系统可以包括账本代理以及一个或多个账本服务器。账本代理和账本服务器可以用于独立执行相应功能,以提高效率并减少干扰。例如,账本代理可以与客户端设备通信并从客户端设备接收交易请求。账本代理可以与多个请求流进行通信,并同时(或并行)将交易请求存储在多个请求流中,以提高存储速度。在获得所存储的交易请求的存储信息之后,账本代理可以同时(或并行)将针对所存储的交易请求的存储请求发送到一个或多个相应的账本服务器。每个账本服务器可以与多个账本相关联。每个账本可以包括用于将交易请求的存储信息存储为索引的相应索引流以及用于将交易请求的认证信息存储为存储元的相应存储流。账本服务器然后可以生成区块,该区块将与交易请求相对应的存储元和/或索引存储在区块链中。在一些实施例中,通过分开地使用账本代理将交易请求存储在请求流中以及使用账本服务器将存储信息存储在索引流中及将认证信息存储在存储流中,账本系统的效率和灵活性可以得到改善。
在一些实施例中,账本系统可以改善系统性能和/或降低实施成本。例如,账本系统可以将对应的功能分配给账本代理和账本服务器,并策略性地将适当的硬件和/或软件资源分配给账本代理和账本服务器,以执行其自身的功能,从而在使用合理的硬件和/或软件资源的同时提高总体系统性能。在一些实施例中,因为账本代理不需要生成索引或区块,或者不涉及密集或复杂的计算,所以可以使用专用于高效数据存储(例如,具有快速I/O和大吞吐量)的硬件和/或软件资源来实现账本代理,以将数据(例如,来自客户端设备的交易请求)存储到数据流中,而不是使用专用于快速计算的硬件和/或软件资源。另一方面,账本服务器可以使用具有相对较大算力的硬件和/或软件资源来实现。因此,可以在无需对硬件和/或软件资源的存储和算力都提出要求的情况下提高账本系统的整体性能。总体而言,账本系统可以提高对客户端设备的响应速度,并提高用户体验的质量。
在一些实施例中,账本系统还可以提高生成用于交易请求的区块的效率和容量。账本服务器生成的区块不需要包括交易本身的内容,因为内容已存储在请求流中。区块可能仅需要包括存储元,该存储元包括与交易请求相对应的认证信息。可选地但非必需地,该区块可以存储与存储元相对应的索引。以这种方式,可以显著减小区块的尺寸,这不仅可以提高区块的生成速度,而且可以减少区块所需的存储空间。
在一些实施例中,账本系统可以简化对存储的交易请求的管理。可以通过存储交易请求的存储信息(例如,请求流中的交易请求的位置信息)的索引的索引信息来识别每个所存储的交易请求。存储元对应于针对交易请求的索引。每个索引与存储元一对一映射,该存储元存储同一交易请求的认证信息。存储元在存储流中的唯一存储标识可以与索引在索引流中的唯一索引标识相同。索引信息可以包括索引在索引流中的唯一标识和索引流在与账本服务器相关联的多个索引流中的标识。账本服务器可以将针对交易请求的索引信息提供给账本代理。账本代理可以将索引信息提供给提供交易请求的客户端设备。账本服务器可以生成存储存储元的区块。因此,账本系统可以使用索引信息来识别索引、存储元、所存储的交易请求和区块。客户端设备可以使用索引信息来查询和检索所存储的交易请求。因此,账本系统可以提高管理存储的交易请求的简便性。在一些实施例中,在客户端设备与账本系统之间仅通信针对所存储的交易请求的索引信息,而无需所存储的交易请求的详细信息(例如,内容信息、认证信息);可以提高存储的交易请求的安全性。
在一些实施例中,账本系统可以适应底层数据流的配置的变化,并提高存储交易请求的灵活性。例如,每个所存储的交易请求可以通过存储交易请求的存储信息的索引的索引信息来识别。索引信息可以包括索引在索引流中的唯一标识和索引流在与账本服务器相关联的多个索引流中的标识。存储信息可以包括交易请求在相应请求流中的位置。在一些实施例中,该位置可以包括交易请求的开始逻辑或物理地址、交易请求在相应请求流中的偏移量,以及交易请求的结束逻辑或物理地址或者交易请求的大小。在一些实施例中,存储信息还可以包括请求流在多个请求流中的标识。在一些情况下,账本系统可能会更改请求流的配置,并且交易请求在请求流中的位置可能会改变。因此,交易请求的存储信息也可以被改变并且索引可以被更新。但是,索引的索引信息不需要改变。因此,基于索引信息,可以识别更新的索引(从而识别改变的存储信息)。因此,仍可以在不改变索引信息的情况下识别和检索所存储的交易请求。
在一些实施例中,账本系统可以改善所存储的交易请求的认证、有效性、可信性和安全性。例如,对于每个传入交易请求,账本代理可以例如通过基于认证信息计算公钥来确定与该交易请求相对应的交易的认证信息是否有效。公钥可以对应于用于生成认证信息中包括的交易的客户端签名(例如,对交易的哈希值的客户端签名)的私钥。如果认证信息有效,则账本代理可以将交易请求存储在相应的请求流中。如果认证信息无效,则账本代理可以确定不存储交易请求。以这种方式,账本系统可以确保任何存储的交易请求都是有效的或经过认证的,而不是伪造的或被修改的。另外,账本代理不需要存储未认证的交易请求,并且账本服务器不需要为未认证的交易请求生成索引和存储元,从而节省了账本系统的存储和计算资源。
在一些实施例中,账本代理可以将计算出的公钥包括在对账本服务器的存储请求中。账本服务器可以例如通过确定所计算的公钥是否与关联于相应账本的经认证的公钥匹配,来验证所计算的公钥是否被授权访问具有索引流和存储流的相应账本。如果确定计算出的公钥被授权,则账本服务器继续将存储请求存储在用于交易请求的对应账本中,例如,将认证信息和计算出的公钥存储在存储流的存储元中以及将交易请求的存储信息存储在索引流的索引中。
在一些情况下,账本代理可以使用用于存储的交易请求的经授权的公钥来生成服务器签名,并将服务器签名与针对所存储的交易请求的索引信息一起提供给客户端设备。服务器签名可以指示账本系统承认交易请求的接收和/或存储。因此,账本系统不能否认存储了交易请求。如果确定计算出的公钥是未授权的,则账本服务器可以拒绝存储针对交易请求的存储请求,并向账本代理返回错误消息。因此,账本服务器可以向提供交易请求的客户端设备发送错误消息,并且可以在相应的请求流中将所存储的交易请求标记为垃圾。因此,账本系统可以避免存储来自客户端设备的任何伪造的交易请求或被黑客修改或入侵的任何交易请求、任何不当交易请求或未授权的交易请求。因此,账本系统可以进一步提高所存储的交易请求、所存储的索引以及用于交易请求的存储元的认证、有效性、可信性和安全性。
在一些实施例中,账本系统可以提高操作稳定性、效率以及管理交易请求的流畅性。账本系统可以提供容错能力,并且对异常情况(例如网络流量拥塞、电源中断、系统故障或未授权的交易请求)具有鲁棒性。例如,如果账本代理确定尚未获得针对交易请求的索引信息,则账本代理可以向客户端设备发送错误消息和/或在相应的请求流中将交易请求标记为垃圾。在一些情况下,账本代理通过确定在发送存储请求之后已经过去了预定时间段并且没有来自账本服务器的回复,来确定没有接收到针对交易请求的索引信息。例如,可能存在网络流量拥塞,这导致账本服务器接收存储请求和/或账本代理从账本服务器接收索引信息的延迟。账本服务器可能会断电,并且账本服务器可能会拒绝来自账本代理的任何传入存储请求,并且可能会向账本代理返回消息,以通知:该账本服务器已经一段时间未工作。在一些情况下,账本代理通过确定来自账本服务器的回复指示账本服务器未能将交易请求的存储信息和/或认证信息存储在交易请求中,来确定尚未接收到索引信息。例如,交易请求可能没有对应的账本。在一些情况下,账本代理通过确定来自账本服务器的回复指示公钥未被授权访问对应于该交易请求的账本,来确定尚未收到针对交易请求的索引信息。例如,交易请求可能被黑客伪造。因此,通过配置账本代理和账本服务器以应对风险并最小化或减轻风险的影响,账本系统可以提高操作稳定性、效率和流畅度。
在一些实施例中,账本系统可以是基于区块链的中心化账本系统,该系统可以提供具有时间关键型审计(具有不可否认性和防篡改性)的密码学可验证状态独立数据账本存储。在一些实施例中,账本系统可以基于具有可信度和中立性的中心化背书的云平台提供账本服务。账本系统可以通过利用区块链系统的高可信度以及中心化系统的高性能和低延迟来提供高可靠性和高性能的可审计流账本服务,以处理具有审计要求、可追溯性和追踪性的各种类型的数据和日志。
在一些实施例中,账本系统可以包括中央可信机构,该中央可信机构提供存储在区块链数据结构的区块中的透明、不可变且密码学可验证的数据。在一些实施例中,所存储的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。由于中央可信机构的存在,账本系统无需执行共识处理即可建立信任,从而可以节省大量时间和成本。在一些实施例中,与典型的基于区块链的分布式或去中心化账本系统相比,账本系统可以更高效。在一些实施例中,账本系统可以提供具有增强的信任、效率和存储性能的基于云的存储服务。
在一些实施例中,账本系统可以增强账本系统中存储的数据的可信度、可审计性和合法性。例如,账本系统可以与可信时间服务器对接,并将可信时间服务器的可信时间戳信息提供给账本系统的客户端。可信时间服务器独立于账本系统。可信时间服务器可以与提供准确时间服务的第三方可信时间机构相关联,并且可以被公众、审计实体(例如公司、机构或组织)和/或法人实体(例如法院或政府)在全球范围内承认或信任。随着可信时间服务器提供的时间戳信息的可信性被承认,将可信时间服务器的时间戳信息集成到账本系统中以用于存储的数据可以进一步增强存储在账本系统中的数据的可信度、可审计性和合法性。
在一些实施例中,账本系统赋予账本系统的当事方或参与者对应的权利。例如,账本系统的客户端可以具有为在账本系统中存储交易数据提供签名的权利,以使得客户端不可否认交易数据。在一些实施例中,账本系统具有为承认交易数据的存储提供签名的权利,使得账本系统不能否认存储了交易数据。在一些实施例中,可信时间服务器具有为用于存储在账本系统上的交易数据的可信时间戳信息提供签名的权利,使得可信时间服务器不能否认可信时间戳信息。在一些实施例中,三个当事方(客户端、账本系统和可信时间服务器)的三种对应的权利彼此独立。这三种权利的集成以及它们对应的不可否认性和防篡改性可以进一步提高存储在账本系统中的交易数据的可信度和可审计性。
在一些实施例中,账本系统可以增强存储在账本系统中的交易数据的有序性和真实性。例如,账本系统可以向可信时间服务器发送针对存储在账本系统中的交易数据的可信时间戳请求,并且可信时间服务器可以提供例如时间戳和关联签名的可信时间戳信息,例如,以认证交易数据的时间或对其背书。账本系统可以将可信时间戳信息例如作为交易存储在账本系统中。
在一些实施例中,账本系统可以将数据存储为一系列数据记录(也称为记录),例如交易或区块。在一些实施例中,一系列记录可以链接或锚定在一起,以防止未经授权更改所存储的数据。例如,记录可以存储记录紧前的前一记录的唯一标识(例如,对应的哈希值),使得前一记录的任何改变将导致唯一标识的改变,从而导致与存储在记录中的唯一标识的不匹配。这种类似区块链的数据结构提供了用于验证存储在账本系统中的记录的可信性的方案。例如,可以通过检查记录之前的所有记录是否都可以向后可信地追溯到原始记录或初始记录(例如,账本系统中的创始交易或区块链中的创始区块)来验证记录的可信性。
为本文的实施例提供进一步的背景,如上所述,分布式账本系统(DLS),也可以称为共识网络(例如,由点对点(Peer-to-Peer)节点组成)和区块链网络,使参与实体能够安全且不可篡改地进行交易并存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文中使用区块链通常是指DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包括链中其紧前的前一区块的哈希值链接到该前一区块。每个区块还包括本地时间戳(例如,由生成该区块的计算设备或管理区块链的计算系统提供),其自身的哈希值,以及一个或多个交易。例如,区块可以包括区块头和区块主体。区块头可以包括本地时间戳、其自身的哈希值以及前一区块的哈希值。区块主体可以包括有效载荷信息,例如一个或多个交易(或交易数据)。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。默克尔树是一种数据结构,其中树的叶子节点处的数据被哈希处理,并且在树的每个分支中的所有哈希值在分支的根部级联(concatenate)。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定声称是存储在树中的交易的哈希值是否与树的结构一致,可以快速验证该哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。
通常,联盟区块链网络在参与的实体间是私有的。在联盟区块链网络中,共识过程由可被称为共识节点的授权的节点集控制,一个或多个共识节点由相应的实体(例如金融机构、保险公司)操作。例如,十(10)个实体(例如金融机构、保险公司)构成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。在一些示例中,在联盟区块链网络中,提供全局区块链作为跨所有节点复制的区块链。也就是说,所有的共识节点相对于全局区块链而言处于完全共识状态。为了达成共识(例如,同意向区块链添加一个区块),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(PBFT)共识,这将在下面进一步详细描述。
在一些实施例中,中心化账本系统也可以采用区块链的数据结构,以利用存储在区块链上的数据的不可篡改性、可靠性和可信赖性。在一些实施例中,这种中心化账本系统可以被称为基于区块链的中心化账本系统或通用可审计账本服务系统。在一些实施例中,基于区块链的中心化账本系统可以包括中央可信机构,该中央可信机构提供存储在区块链数据结构的区块中的透明、不可变且密码学可验证的数据。存储的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。由于中央可信机构的存在,基于区块链的中心化账本系统无需执行共识处理即可建立信任。在一些实施例中,与典型的基于区块链的分布式或去中心化账本系统相比,基于区块链的中心化账本系统可以更有效率。在一些实施例中,基于区块链的中心化账本系统可以为基于云的存储服务提供增强的信任度、效率和存储性能。
在一些实施例中,中心化账本系统可以是区块链网络的节点。例如,中心化账本系统可以是区块链网络中的非共识节点,并且可以为区块链网络中的共识节点或其他非共识节点或区块链网络外部的实体提供高度可靠且高性能的可审计流账本服务。
图1是示出了可用于执行本文实施例的环境100的示例的示图。在一些示例中,环境100使能实体能够参与至联盟区块链网络102中。环境100包括计算系统106、108和网络110。在一些示例中,网络120包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路访问网络120。在一些示例中,网络110使得与联盟区块链网络102通信,及在联盟区块链网络102之内通信成为可能。通常,网络110代表一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者计算系统106、108中的每个可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算系统106、108可以各自包括允许作为节点参与联盟区块链网络102的任何适当的计算设备。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备和智能电话。在一些示例中,计算系统106、108承载用于与联盟区块链网络102交互的一个或多个由计算机实现的服务。例如,计算系统106可以承载第一实体(例如用户A)的由计算机实现的服务,例如第一实体用来管理其与一个或多个其他实体(例如其他用户)的交易的交易管理系统。计算系统108可以承载第二实体(例如用户B)的由计算机实现的服务,例如第二实体用来管理其与一个或多个其他实体(例如其他用户)的交易的交易管理系统。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是示出根据本文实施例的架构200的示例的示图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如用户、企业)参与被提供为包括多个节点214的点对点网络的区块链网络212,其中至少一些节点在区块链216中不可篡改地记录信息。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的挖矿节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216”和216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多参与者之间的交易的交易数据。交易数据被用作存储在区块链中的数据的示例。交易的示例可以包括但不限于有价物(例如资产、产品、服务、货币)的交换。在一些实施例中,在账本系统中执行的一个或多个操作可以作为交易数据存储在区块链中。例如,交易数据可以包括对存储在区块链中的数据的一种或多种操作或操纵,从外部资源获得的信息(例如,时间戳信息)或任何适当的数据(例如,文档、图片、视频、音频)可以存储在区块链中。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度的哈希值(也以作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行工作以将区块添加到区块链。此类节点称为共识节点。上面介绍的PBFT用作共识协议的非限制示例。共识节点执行共识协议以向区块链添加交易,并且更新区块链网络的整体状态。
更详细而言,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)为止。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数值(nonce value)和时间戳。
通常,PBFT提供容忍拜占庭错误(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过在PBFT中假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的被操纵的消息)来实现。在PBFT中,以包括主共识节点和备共识节点的序列提供共识节点。主共识节点被周期性地改变。通过由区块链网络内的所有共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点接收的,并验证在传输期间消息未被修改。
在PBFT中,共识协议是在所有共识节点始于相同状态的情况下分多个阶段提供的。首先,客户端向主共识节点发送用以调用服务操作(例如,在区块链网络内执行交易)的请求。对接收到请求做出响应,主共识节点将请求组播到备共识节点。备共识节点执行该请求,并且每个节点都向客户端发送回复。客户端等待直到接收到阈值数量的应答。在一些示例中,客户端等待直到接收f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序上达成一致,并且该记录或者被接受或者被拒绝。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密的示例包括但不局限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3是示出根据本文实施例的环境300的示例的示图。环境300在账本系统310中实现可信时间戳服务。仅出于说明目的,将基于区块链的中心化账本系统描述为账本系统310的示例。基于区块链的中心化账本系统310采用区块链的数据结构,以利用存储在区块链上的数据的不可变性、可靠性和可信性。中心化账本系统310还可以集成来自独立于中心化账本系统310的可信时间服务器350的可信时间戳信息,以用于存储在区块链上的数据,这可以显著增强存储的数据的可信度、可审计性和合法性。
在一些实施例中,中心化账本系统310可以是包括通过网络互连的一个或多个计算机的云计算系统。中心化账本系统310可以包括任何适当的计算设备。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备及智能电话。
在一些示例中,中心化账本系统310包括一个或多个账本服务器320-1至320-n(在本文中统称为“320”)。每个账本服务器320可以承载一个或多个计算机实现的服务,用于与例如,客户端1或客户端m的至少一个客户端进行交互。客户端可以是个人、公司、组织、金融机构、保险公司或任何其他类型的实体。在一些情况下,客户端可以与一个或多个账本服务器相关联。在一些情况下,账本服务器可以与一个或多个客户端相关联。
账本服务器320可以承载交易管理系统以为例如客户端1或客户端m的客户端提供账本服务,并且客户端可以使用例如客户端设备340-1或340-m(在本文中统称为“340”)的一个或多个关联设备来访问交易管理系统以使用账本服务。客户端设备340可以包括任何适当的计算设备。
账本服务器320提供的账本服务可以使客户端能够将其数据存储在透明、不可变和密码学可验证的区块链数据结构中,例如区块链中。例如320-1或320-n的每个账本服务器可以维护对应的区块链,例如322-1至322-n(在本文中统称为“322”)。在一些实施例中,每个账本服务器320可以执行与区块链网络中的区块链网络节点(例如,图1的计算系统106或108或者图2的计算系统202、204或206)的功能相似的功能。例如,每个账本服务器320可以生成区块并将这些区块添加到区块链322。在一些实施例中,每个账本服务器320可以充当中央可信机构,并且不需要与其他节点(例如,其他客户端设备或其他账本服务器)执行共识处理即可建立信任。例如,每个账本服务器320可以执行与区块链网络的非共识节点的功能相似的功能。在一些实施例中,每个账本服务器320可以是创建和/或管理区块链322的单个节点。
在一些实施例中,每个客户端可以与对应的区块链相关联。在一些实施例中,一个或多个客户端可以与同一区块链相关联。在一些实施例中,一个区块链可以与一个或多个客户端相关联。
在一些示例中,客户1是个人、公司或组织。与客户端1相关联的客户端设备340-1可以与账本服务器320-1交互以获得中心化账本系统310的账本服务。例如,客户端设备340-1可以通过账本服务器320-1访问区块链322-1以读取和存储与客户端1相关联的交易数据。客户端设备340-1可以包括例如被编码以执行本文所述方法的任何合适的计算机、模块、服务器或计算元件。在一些实施例中,客户端设备340-1可以包括用户设备,例如个人计算机、智能电话、平板电脑或其他手持设备。
在一些示例中,客户端m是具有多个个人用户的保险公司或例如银行的金融机构。与客户端m相关联的客户端设备340-m可以与账本服务器320-m交互,以向客户端m的个人用户提供中心化账本系统310的账本服务。例如,客户端设备340-m可以通过账本服务器320-m访问区块链322-m以读取和存储与客户端m相关联的交易数据。在一些情况下,客户端m的用户可以通过客户端设备340-m请求中心化账本系统310的账本服务。
存储在区块链中的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。每个区块链以数据不可变且不能更改或删除的方式存储数据。使用加密可以使得能够验证没有对存储的数据进行意外修改。因此,记录在区块链上的数据是可靠且可信的。
区块链可以包括一个或多个区块。区块链中的每个区块通过包括链中其紧前的前一区块的哈希值链接到该前一区块。每个区块还包括本地时间戳、其自身的哈希值以及一个或多个交易或者交易数据。例如,区块可以包括区块头和区块体。区块头可以包括本地时间戳、其自身的哈希值以及前一区块的哈希值。区块体可以包括有效载荷信息,例如一个或多个交易或者交易数据。本地时间戳指示区块被生成和/或添加到区块链的时间点或实例。本地时间戳可由账本服务器320、中心化账本系统310或与中心化账本系统310关联的中央可信机构内部提供。
在一些实施例中,账本服务器320顺序地接收与客户端相关联的一系列交易,然后将交易存储在区块链的区块中。在一些实施例中,账本服务器320可以例如从一个或多个客户端设备340接收一个或多个交易。接收到的交易可以被存储在数据缓冲器中。账本服务器320可以生成存储交易的区块,例如,包括受让人和转让人的账户、交易金额或其他类型的交易信息。
在一些实施例中,账本服务器320可以将交易存储在流、阵列或另一数据结构(称为交易存储流)中。例如,可以根据交易的发生时间将交易顺序地存储在交易存储流中。每个交易可以例如根据其发生时间在交易存储流中具有相应的交易标识。账本服务器320可以生成区块以包括多个交易或针对交易的多个哈希值。在一些实施例中,可以根据相应交易的发生时间而不是根据哈希值来存储交易或针对交易的哈希值。在一些实施例中,针对交易的哈希值可以是交易的哈希值或交易的对应交易标识的哈希值。区块可以包括其紧前的前一区块的哈希值,使得区块彼此锚定以形成区块链(或区块存储流)。以这种方式,区块不存储交易的细节。交易的细节可以被存储在账本服务器320中的交易存储流中或中心化账本系统310中的单独的存储库中。
账本服务器320还可以向客户端提供可信时间戳服务。在一些实施例中,账本服务器320可以请求来自可信时间服务器350的可信时间戳,以用于存储在账本服务器320中的数据,这可以增强所存储的数据的可信度、可审计性和合法性。可信时间服务器350独立于中心化账本系统310。可信时间服务器350可以与提供准确(或真实)时间服务的第三方可信时间机构相关联,并且可以例如被公众、审计实体(例如公司、机构或组织)和/或法律实体(例如法院或政府)在全球范围内承认或信任。可信时间服务器350提供的可信时间戳信息可以无需公证和/或司法鉴定即被承认或视为合法。例如,可信时间服务器350可以是提供UTC(世界标准时间)/GMT(格林威治标准时间)时间服务的UTC/GMT服务器。可信时间服务器350还可以是为国家或地区提供标准时间的可信机构的时间服务器。
中心化账本系统310可以通过网络,例如图1的网络110,与可信时间服务器350通信。响应于从例如账本服务器320的客户端接收到时间戳请求,可信时间服务器350可以生成指示接收到时间戳请求时的时间点的时间戳。可信时间服务器350可以生成用于认证时间戳和时间戳请求(例如,时间戳请求的文本或图像副本)的签名。例如,可信时间服务器350可以使用其私钥来签名,从而对时间戳和时间戳请求进行密码学加密。可信时间服务器350可以生成包括时间戳和关联签名的数字时间戳证书,并且向客户端发送包括时间戳证书的时间戳信息。可信时间服务器350可以以例如每个时间戳请求$1的费用提供可信时间戳服务。
在一些实施例中,账本服务器320可以向可信时间服务器350发送时间戳请求以认证区块链中的区块的时间。时间戳请求可以包括区块的信息,例如,区块的哈希值。时间服务器350可以生成包括用于区块的时间戳和关联签名或者时间戳和关联签名的哈希值的时间戳信息并发送该时间戳信息。在从可信时间服务器350接收到时间戳信息之后,账本服务器320可以将时间戳信息或时间戳信息的哈希值存储到区块链中该区块紧后的后一区块中。在一些实施例中,时间戳信息可以作为交易存储在后续区块中。存储时间戳信息的区块可以被称为带时间戳的区块。带时间戳的区块可以是仅包括时间戳信息的区块,或者还包括除了时间戳信息之外的其他交易的区块。区块链中带有时间戳的区块可以在区块链中彼此被锚定或链接。
在一些实施例中,账本服务器320可以以预定触发时间段向可信时间服务器350周期性地发送针对区块链中待加时间戳区块的时间戳请求。例如,账本服务器320可以包括计时器,该计时器对发送第一时间戳请求之后的时间进行计时。当计时器计数到预定触发时间段时,账本服务器320可以被触发以紧接在第一时间戳请求之后发送第二时间戳请求。中心化账本系统310或账本服务器320可以提供具有对应于不同触发时间段的不同费用的时间戳服务。触发时间段可以由与区块链或账本服务器320相关联的客户端(或用户)预先确定。例如,客户端可以选择与对应的费用和对应的触发时间段相对应的时间戳服务。
在一些实施例中,账本服务器320可以不是周期性地向可信时间服务器350发送时间戳请求。例如,账本服务器320可以根据需要或基于由账本服务器320生成的区块的数量来发送时间戳请求。例如,账本服务器320可以在从客户端接收到指令时或者在最近已经将预定数量的区块添加到区块链322时发送区块的时间戳请求。
在一些实施例中,账本服务器320可以以区块生成的预定时间段周期性地生成区块。预定触发时间段可以与区块生成时间段相同或不同。预定触发时间段可以比区块生成的时间段更长,使得例如由于从可信时间服务器350获得时间戳的费用,并不是每个区块都带有时间戳。在一些实施例中,账本服务器320可以不是周期性地生成区块。例如,账本服务器320可以根据需要或基于账本服务器320接收到的交易的数量来生成区块。例如,账本服务器320可以在接收到预定数量的交易时生成新的区块。
在一些实施例中,账本服务器320可以包括被配置为与可信时间服务器350通信的一个或多个应用编程接口(API)。API可以包括一组子例程定义、通信协议以及用于构建软件的工具,并且可以定义由程序(模块、库)提供的功能,并允许从该功能的确切实施方式中进行抽象。软件组件通过API彼此交互。在一些实施例中,账本服务器320可以包括可以实现以下功能的一个或多个API:接收待加时间戳的区块的哈希值作为时间戳请求的输入,向可信时间服务器350发送时间戳请求,以及接收可信时间服务器350发送的可信时间戳信息,例如,数字时间戳证书或者时间戳和关联签名。
账本服务器320可以包括被配置为和与客户端相关联的客户端设备340通信的一个或多个API。一个或多个API可以实现诸如以下的功能:从客户端设备340接收针对时间戳服务的请求,列出具有不同费用和不同触发时间段的不同时间戳服务,从客户端设备340接收对时间戳服务的选择,以及向客户端设备340发送或显示相应费用以及相应触发时间段。在一些实施例中,一个或多个API还可以实现诸如以下的功能:接收用于验证或审计存储在与客户端相关联的区块链上的交易的请求,并向客户端设备340发送验证或审计结果。如在图4A和图4B中进一步详细讨论的,一个或多个API还可以实现诸如以下的其他功能:从客户端设备340接收交易或交易数据以及客户端签名,并发送账本签名,该账本签名指示承认接收或存储了交易或交易数据和/或客户端签名。
在一些实施例中,中心化账本系统310包括中心化服务器330。中心化服务器330可以与中心化账本系统310中的多个账本服务器320通信。在一些实施例中,账本服务器320通过中心化服务器330与客户端设备340通信。例如,中心化服务器330可以从客户端设备340接收数据,并且将数据发送给对应于(或分配给)客户端设备340的账本服务器320。
在一些实施例中,中心化服务器330可以维护用于中心化账本系统310的标准时间服务器,并且可以向账本服务器320提供内部时间戳(和/或关联签名)。例如,当账本服务器320生成新区块时,账本服务器320可以从中心化服务器330获得内部时间戳(和/或关联签名),并将内部时间戳(和/或关联签名)存储在新区块中。
在一些实施例中,每个账本服务器320通过中心化服务器330与可信时间服务器350通信。例如,账本服务器320可以向中心化服务器330发送原始时间戳请求,并且中心化服务器330可以向可信时间服务器350发送原始时间戳请求或与时间戳请求关联的中心化服务器时间戳请求,例如通过中心化服务器330中的中心化API。中心化服务器330可以向账本服务器320提供从可信时间服务器350获得的可信时间戳信息。在一些其他实施例中,如上所述,每个账本服务器320可以直接与可信时间服务器350通信,而无需中心化服务器330。
图4A是示出根据本文实施例的用于在与单个客户端相关联的单个账本服务器中实现可信时间戳服务的例如基于区块链的中心化账本系统400的账本系统的示例的示图。基于区块链的中心化账本系统400可以包括专用于向与客户端设备410相关联的单个客户端提供账本服务的单个账本服务器420。基于区块链的中心化账本系统400可以是图3的中心化账本系统310的示例。例如,账本服务器420可以是图3的账本服务器320-1的示例。客户端设备410可以是图3的客户端设备340-1的示例。在基于区块链的中心化账本系统400中,客户端使用客户端设备410访问账本服务器420提供的账本服务。账本服务器420还可以通过与可信时间服务器430通信来向客户端提供可信时间戳服务,该可信时间服务器430可以是例如图3的可信时间服务器350。
账本服务器420可以将账本服务和可信时间戳服务唯一地提供给客户端。账本服务器420可以将与客户端相关联的交易数据存储在唯一地用于客户端并且与中心化账本系统400中的其他客户端独立(或分开)的区块链中。账本服务器420可以请求并存储可信时间戳信息,该可信时间戳信息唯一地用于存储在账本服务器420中的区块链中的与客户端相关联的交易数据。客户端可以具有将交易存储在区块链中的管理权限。在一些情况下,客户端可以向第三方提供第二账本权限,该权限允许第三方将交易存储在与客户端相关联的区块链中。
在一些实施例中,当与客户端相关联的交易(或交易数据)被存储在账本服务器420中时,客户端可以使用客户端设备410向账本服务器420发送客户端签名。客户端签名可以指示客户端承认交易已经完成和/或将被存储在账本服务器420中。因此,客户无法否认交易。
在一些实施例中,在接收到交易(或交易数据)和/或将交易(或交易数据)存储在账本服务器420中(例如,在区块链中)之后,账本服务器420可以向客户端设备410发送账本签名。账本签名可以指示账本服务器420承认交易的接收和/或存储。因此,账本服务器420不能否认交易的存储。
在一些实施例中,账本服务器420可以向可信时间服务器430发送针对与客户端相关联并且存储在账本服务器420中的交易的时间戳请求。可信时间服务器430可以将用于交易的时间戳和关联签名提供给账本服务器420。时间戳签名可以包括交易的信息。因此,可信时间服务器430不能否认其对交易时间的背书以及用于交易的时间戳是可信的。
在一些实施例中,三个当事方(客户端、账本服务器和可信时间服务器)的三种对应的权利彼此独立,这可以增强存储在中心化账本系统中的交易数据的可信度和可审计性。
图4B是示出根据本文实施例的用于通过联合账本服务器向多个客户端提供可信时间戳服务的例如基于区块链的中心化账本系统450的账本系统的示例的示图。基于区块链的中心化账本系统450可以包括用于向客户端1至客户端n的多个客户端提供账本服务的单个联合账本服务器470。基于区块链的中心化账本系统450可以是图3的中心化账本系统310的另一示例。例如,联合账本服务器470可以是图3的账本服务器320的示例。客户端1至客户端n中的每个客户端可以与对应的客户端设备460-1至460-n相关联。在一些实施例中,客户端设备460-1至460-n可以是图3的客户端设备340-1或340-m的示例。在基于区块链的中心化账本系统450中,每个客户端可以使用其对应的客户端设备460来访问账本服务器420提供的账本服务。例如,客户端可以包括例如客户银行的多个金融机构。
每个客户端可以使用其关联的客户端设备将交易(或交易数据)存储在与其他客户端共享的联合区块链中。类似于图4A,每个客户端可以向账本服务器470发送对应的客户端签名,并且账本服务器470可以将相应的账本签名返回给客户端。账本服务器470可以向可信时间服务器430发送针对存储在联合区块链中的交易的时间戳请求,并且接收并存储针对联合区块链中的交易的时间戳信息。
图5是示出根据本文实施例的用于管理交易请求的账本系统500的示例的示图。在一些实施例中,账本系统500可以是基于区块链的账本系统,例如图1的联盟区块链网络102或图2的联盟区块链网络212,或图3的基于区块链的中心化账本系统310、图4A的基于区块链的中心化账本系统400或图4B的基于区块链的中心化账本系统450。在一些实施例中,账本系统500也可以是不具有区块链的账本系统。
账本系统500存储一系列记录。每个记录可以包括交易请求、交易、与账本系统中的交易请求或交易相关联的信息或区块链的区块中的一个或多个。账本系统500可以被配置为分开地将交易请求(例如,来自客户端设备的请求)存储在请求流中并将与交易请求相关联的信息存储在相应的账本中。账本系统500还可被配置为生成将与交易请求相关联的信息和/或存储信息存储在区块链中的区块。账本系统500可以被配置为将存储交易请求和/或存储信息与生成区块分开进行。以这种方式,将交易请求存储在请求流中不受将存储信息存储在账本中和/或在区块链中生成区块影响。每个交易请求可以被永久地存储(例如,通过持久化到磁盘中而不是被缓存在存储器中),使得当账本系统500的其他组件无法工作时,交易请求不会丢失。
在一些实施例中,账本系统500包括账本代理502。账本代理502可以被包括在中心化账本服务器中,例如图3中的中心化账本服务器330中。账本代理502还可以在外部耦接到中心化账本服务器并与中心化账本服务器通信。账本代理502被配置为与客户端设备(例如,图3的客户端设备340、图4A的客户端设备410或图4B的客户端设备460)通信并从客户端设备接收交易请求(TxRequest)501。每个客户端设备可以与一个客户端关联。每个客户端可以与账本系统500中的至少一个账户相关联。
每个交易请求501可以包括相应交易的内容信息和相应交易的认证信息。交易的内容信息可以包括交易的报头和主体。在一些实施例中,交易的报头可以包括本地时间戳和交易的哈希值。在一些实施例中,交易的主体可以包括交易的有效载荷信息,其可以包括转账参与者、转账金额、转账时间或转账地点中的至少一个。内容信息还可以包括元数据或其他信息。交易的认证信息可以包括交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。注意,交易的客户端签名可以包括签署在全部或部分交易上的签名或签署在全部或部分交易的哈希值上的签名。客户端签名可以是关于图4A或图4B描述的客户端签名。在一些实施例中,客户端签名可以是通过私钥对交易的哈希值进行加密的签名,该私钥例如被存储在提供交易请求的客户端设备中。
账本代理502可以将交易请求501存储在多个请求流510-1、...、510-x(在本文中统称为“510”)之一中。请求流510可以被包括在账本系统500中。在一些实施例中,请求流510可以在外部耦接到账本系统500,并且与账本系统500(例如,账本代理502)通信。请求流510可以被存储在存储库中。在一些情况下,一个请求流可以对应于一个客户端账户。在一些情况下,一个请求流可以对应于来自同一地理区域的客户端。请求流还可以使用任何其他合适的实现方式存储交易请求。在接收到交易请求501时,账本代理502可以在多个请求流510中选择相应请求流510以存储交易请求501。该选择可以基于与交易请求501相关联的信息,例如客户端账户或区域。账本代理502可以同时(或并行或通过多个线程)将交易请求501存储在请求流510中。
在一些情况下,账本代理502将从客户端设备接收到的每个交易请求存储在请求流510中。在一些其他情况下,账本代理502在将交易请求存储在请求流510中之前验证每个交易请求的认证。例如,账本代理502可以确定交易请求中的认证信息是否有效。
在一些情况下,认证信息可以包括与交易请求相对应的交易的哈希值和交易的客户端签名。在一些实施例中,客户端签名是由私钥对交易的哈希值加密的签名。账本代理502可以通过基于认证信息,例如基于由私钥签名的明文和密文,计算与私钥相对应的公钥,来确定认证信息是否有效。如果账本代理502可以基于该计算获得公钥,则账本代理502可以确定认证信息是有效的。如果账本代理502不能从该计算中获得公钥,则账本代理502可以确定认证信息无效。响应于确定交易请求中的认证信息是无效的,账本代理502可以确定不将交易请求存储在任何请求流510中,并且可以向提供交易请求的客户端设备返回指示交易请求未被认证的错误消息。响应于确定交易请求中的认证信息是有效的,账本代理502可以将交易请求存储在相应的请求流510中。以这种方式,账本系统500可以确保任何存储的交易请求都是有效的或经过认证的,而不是伪造的或被修改的。另外,账本代理502不需要存储未认证的交易请求,并且账本服务器不需要为未认证的交易请求生成索引和存储元(如下所述),从而节省了账本系统的存储和计算资源。
在一些实施例中,请求流510可以被实现为阵列、链表或可以存储一系列数据记录的另一数据结构。请求流510可以包括多个数据元(dataelement)。数据元的数量可以是固定的,也可以例如在接收到传入交易请求时动态地改变。如图5所示,可以将交易请求存储在请求流510的数据元中。在一些实施例中,请求流510的数据元可以为空或无效,或者可以被标记为垃圾。
每个请求流可以在多个请求流510中具有相应标识,例如1、...、X。每个请求流可以存储多个交易请求,例如,交易请求1、交易请求2、...、交易请求m。多个交易请求被按顺序存储在请求流中。每个交易请求在请求流中的位置可以包括例如交易请求在请求流中的开始逻辑地址(或物理地址)或偏移量以及结束逻辑地址(或物理地址)或交易请求的大小。在存储了交易请求之后,请求流510可以将交易请求的存储信息返回给账本代理502。存储信息包括该请求流在多个请求流中的标识以及交易请求在请求流中的位置。
在接收到存储在相应请求流510中的交易请求501的存储信息之后,账本代理502可以将针对交易请求501的存储请求503发送到多个账本服务器520-1、520-2、...、520-P(在本文中统称为“520”)中的相应账本服务器中。存储请求503可以包括相应请求流中的交易请求的存储信息和与该交易请求相对应的交易的认证信息。存储信息可以包括请求流的标识(stream_id)、交易请求在请求流中的位置,例如交易请求的偏移量和大小。存储请求503还可以包括基于交易的认证信息计算出的公钥。
账本服务器520可以是图3的账本服务器320,图4A的账本服务器420或图4B的账本服务器470。每个账本服务器520可以与多个账本530-1、...、530-y(在本文中统称为“530”)相关联。例如,账本服务器520可以管理多个账本530或与之通信。每个账本530可以与客户端或客户端账户相关联。客户端可以与多个账本530相关联。账本530可以存储关于与客户端或客户端账户相关联的交易或交易请求的信息。
账本代理502可以基于交易请求的信息或相应请求流中的交易请求的存储信息,从多个账本服务器520中选择相应的账本服务器。例如,如果交易请求与客户端账户相关联,则账本代理502可以选择与关联于该客户端账户的相应账本530进行通信的相应账本服务器520。相应账本服务器520还可以基于交易请求的信息或存储信息从多个账本530中选择相应账本530。
在一些情况下,账本代理502可以将针对存储在请求流510中的多个交易请求501的多个存储请求503同时发送到一个或多个相应账本服务器520。例如,账本代理502同时向账本服务器发送与第一交易请求相对应的第一存储请求和与第二交易请求相对应的第二存储请求。账本服务器可以在第一存储请求之前接收第二存储请求,并且可以在第一存储请求之前存储第二存储请求。
账本530-1、...、530-y各自可以包括相应的存储流532-1、...、532-y(在本文中统称为“532”)和相应的索引流534-1、...、534-y(在本文中统称为“534”)。在一些实施例中,存储流532或索引流542可以被实现为阵列、链表或可以存储一系列数据记录的另一数据结构。存储流532可以包括多个存储元。存储流532中的存储元的数量可以是固定的或可以动态地变化。索引流542可以包括多个索引。索引流542中的索引的数量可以是固定的或可以动态地变化。索引流542中的索引在存储流532中具有相应存储元。例如,在从账本代理502接收到存储请求503之后,账本服务器520可以将存储请求503中的存储信息存储在相应账本530的索引流534的索引中,并将存储请求503中的相应交易的认证信息存储在相应账本530的存储流532的存储元中。将交易请求的存储信息存储在索引流534的索引中可以与将交易的认证信息存储在存储流532的存储元中同时进行。
在每个账本530中,存储流532可以按存储顺序来有序存储多个存储元,例如,存储交易1(Storage Tx1)、存储交易2、...、存储交易n。每个存储元在存储流532中具有唯一的存储标识,例如1、2、...、n。索引流534可以按存储顺序有序存储多个索引,例如,索引1、索引2、...、索引n。每个索引在索引流534中具有唯一的索引标识,例如1、2、...、n。在一些实施例中,存储元的唯一存储标识与对应于该存储元的索引的唯一索引标识相同。例如,如图5所示,索引1对应于存储交易1,并且存储交易1的唯一存储标识1与索引1的唯一索引标识1相同。因此,基于索引流534中索引的唯一索引标识,可以在存储流532中识别存储元。当索引存储相应交易请求的存储信息时,基于索引流534中索引的唯一索引标识,可以在索引流534中识别索引,并且可以从索引流534中获得存储信息。因此,可以基于存储信息从相应请求流中检索相应的交易请求。因此,索引的唯一索引标识也对应于相应请求流中的相应交易请求的存储信息。存储元与索引一对一映射,并且存储元和索引对应于同一交易请求。
在一些实施例中,存储元在存储流532中存储元的存储顺序与索引在索引流534中的存储顺序相同。在一些情况下,索引在索引流534中的存储顺序与对应于该索引的交易请求在相应请求流510中的存储顺序相同。在一些情况下,索引在索引流534中的存储顺序与交易请求在相应请求流510中的存储顺序不同。例如,如图5所示,在请求流510-1中,交易请求1被存储在交易请求2之前。账本代理502同时将交易请求1和交易请求2的存储请求发送到账本服务器520-1。由于诸如网络流量的延迟,账本服务器520-1早于交易请求1的存储请求接收到交易请求2的存储请求,并将交易请求2的存储信息存储在索引流534-1的索引1中,并将交易请求2的认证信息存储在存储流532-1的存储交易1中,并且将交易请求1的存储信息存储在索引流534-1的索引2中,并将交易请求1的认证信息存储在存储流532-1的存储交易2中。因此,交易请求1和交易请求2在请求流510-1中的存储顺序与相应索引,索引2和索引1,在索引流534-1中的存储顺序不同。
在从账本代理502接收到针对存储在请求流中的交易请求的存储请求之后,账本服务器520可以基于与交易请求相关联的信息从多个账本530中选择相应的账本530(据此选择相应的索引流和相应的存储流)。存储请求可以包括例如由账本代理502基于交易请求中的认证信息而计算出的公钥。账本服务器520可以验证存储请求中的公钥是否被授权访问账本530。在一些实施例中,存储请求不包括公钥,例如,账本代理502不基于交易请求中的认证信息来计算公钥。账本服务器520自身可以基于存储请求中的认证信息来计算公钥。如果账本服务器520不能获得公钥,则账本服务器520可以确定交易请求中的认证信息是无效的。因此,账本服务器520可以确定不存储该存储请求。账本服务器520可以向账本代理502返回错误消息,并且该错误消息可以指示未存储该存储请求、认证信息无效和/或存储在请求流中的交易请求是未认证的。如果账本服务器520可以获得公钥,则账本服务器520可以确定交易请求中的认证信息是有效的。账本服务器可以进一步验证所计算的公钥是否被授权访问账本530。
账本530可以与例如存储在账本530和/或账本服务器520中的经认证的公钥相关联。例如,账本530与客户端账户相关联。客户端设备发送与该客户端账户相关联的交易请求。客户端设备可以存储与经认证的公钥相对应的私钥,并使用该私钥为相应的交易生成签名。账本代理502可以基于交易请求中包括的签名来计算公钥,并向账本服务器520发送包括公钥的存储请求。账本服务器520可以通过确定存储请求中的公钥是否与关联于账本530的经认证的公钥匹配来验证存储请求中的公钥是否被授权访问账本530。
如果账本服务器520确定存储请求中的公钥与经认证的公钥不匹配,则账本服务器520可以验证该公钥未被授权访问账本530。因此,账本服务器520可以确定不将存储请求存储在账本530中。账本服务器520可以向账本代理502返回错误消息,并且该错误消息可以指示未存储该存储请求、计算出的公钥无效和/或存储在请求流中的交易请求是未认证的。响应于接收到针对存储请求的错误消息,账本代理502可以在请求流中将存储的交易请求标记为垃圾,例如,如图5的请求流510-1所示。在一些实施例中,账本代理502可以回收用于被标记为垃圾的所存储的交易请求的存储空间。账本代理502还可以向提供交易请求的客户端设备返回错误消息,并且该错误消息可以指示存储交易请求失败和/或交易请求是未认证的。
如果账本服务器520确定存储请求中的公钥与关联于账本530的经认证的公钥匹配,则账本服务器520验证存储请求中的公钥被授权访问账本530。因此,账本服务器520可以将存储信息存储在账本530的索引流的索引中,并且将认证信息以及可选地将公钥存储在账本530的存储流的存储元中。因此,账本系统500可以避免存储来自客户端设备的任何伪造交易请求或被黑客修改或入侵的任何交易请求、任何不当交易请求或未授权的交易请求。
在成功存储了包括存储信息和认证信息和/或计算出的公钥的存储请求之后,账本服务器520可以向账本代理502发送与针对交易请求的存储请求相对应的索引信息。索引信息指示由账本服务器520存储的存储信息的位置。索引信息可以包括存储交易请求的存储信息的索引在索引流534中的唯一标识,以及索引流在多个索引流534中的标识。
在接收到与针对交易请求的存储请求相对应的索引信息之后,账本代理502可以将针对交易请求的响应发送至提供交易请求的客户端设备。该响应可以包括与交易请求相对应的索引信息。在一些情况下,账本代理502可以例如通过使用存储在账本代理502中的公钥来生成交易的服务器签名(例如,对交易的哈希值的服务器签名)。服务器签名可以是图4A或图4B中的账本签名。服务器签名可以指示账本系统500(例如,账本代理502)承认交易请求的接收和/或存储。账本代理502发送的响应可以包括服务器签名以及索引信息。因此,账本系统500不能否认存储了交易请求,这可以提高所存储的交易请求、所存储的索引以及用于交易请求的存储元的认证、有效性、可信性和安全性。
客户端设备可以使用与交易请求相对应的索引信息来搜索历史存储的交易请求。例如,账本代理502可以从客户端设备接收搜索请求,该搜索请求包括与交易请求相对应的索引信息。账本代理502可以向相应账本服务器520发送搜索请求。账本服务器520可以识别与索引信息相对应的索引,并获得交易请求的存储信息。然后,账本服务器520或账本代理502可以基于存储在索引中的存储信息来搜索交易请求,并从对应的请求流中检索交易请求(交易请求的内容信息和/或认证信息)。账本代理502然后可以将检索到的交易请求提供给客户端设备。
在一些实施例中,作为结果,每个所存储的交易请求可以通过存储交易请求的存储信息的索引的索引信息来识别。每个索引与存储元一对一映射,该存储元存储同一交易请求的认证信息。如下所述,每个区块可以作为一系列存储元进行存储。因此,账本系统500可以使用索引信息来识别索引、存储元、所存储的交易请求和区块。客户端设备可以使用索引信息来查询和检索所存储的交易请求。因此,账本系统500可以提高管理存储的交易请求的简便性。在一些实施例中,在客户端设备与账本系统500之间仅通信针对所存储的交易请求的索引信息,而无需所存储的交易请求的详细信息(例如,内容信息、认证信息);可以提高存储的交易请求的安全性。
此外,账本系统500可以适应底层数据流的配置的变化,并提高存储交易请求的灵活性。例如,账本系统500可能会更改请求流510的配置,并且交易请求在请求流510中的存储位置可能会改变。因此,交易请求的存储信息也可以被改变并且索引可以被更新。然而,索引的索引信息不需要改变。因此,基于索引信息,可以识别更新的索引(从而识别改变的存储信息)。因此,仍可以在不改变索引信息的情况下识别和检索所存储的交易请求。
在一些情况下,在将针对存储在请求流510中的交易请求的存储请求发送到账本服务器520之后,账本代理502确定尚未从账本服务器接收到针对交易请求的索引信息。响应于确定尚未接收到索引信息,账本代理502可以向提供交易请求的客户端设备发送错误消息。账本代理502还可以在请求流510中将交易请求标记为垃圾。
在一些情况下,账本代理502通过确定在发送存储请求之后已经过去了预定时间段并且没有来自账本服务器520的回复,来确定尚未接收到针对交易请求的索引信息。例如,可能存在网络流量拥塞,这导致账本服务器520接收存储请求和/或账本代理502从账本服务器520接收索引信息的延迟。或者账本服务器520可能断电。账本服务器520可以拒绝来自账本代理502的任何传入存储请求。账本服务器520还可以向账本代理502返回消息,以通知:账本服务器520在一时间段内没有工作。
在一些情况下,账本代理502通过确定来自账本服务器520的回复指示账本服务器未能将交易请求的存储信息和/或认证信息存储在交易请求中,来确定尚未接收到索引信息。例如,交易请求可能没有对应的账本。
在一些情况下,账本代理502通过确定来自账本服务器520的回复指示公钥未被授权访问对应于该交易请求的账本(因此,未被授权访问索引流和存储流),来确定尚未接收到针对交易请求的索引信息。例如,交易请求可能被黑客伪造。
因此,账本系统500可以提供容错能力,并且对异常情况(例如网络流量拥塞、电源中断、系统故障和/或未授权的交易请求)具有鲁棒性。通过配置账本代理502和账本服务器520以应对风险并最小化或减轻风险的影响,账本系统500可以提高操作稳定性、效率和流畅度。
在一些实施例中,账本服务器520在区块链中生成用于将交易信息存储在账本系统500(例如,基于区块链的账本系统)中的区块。在一些实施例中,每个区块可以包括与账本服务器520相对应的账本530的存储流532中的一系列顺序存储元。一系列顺序存储元对应于账本530的索引流534中的一系列顺序索引。在一些实施例中,区块还可以包括索引流中的一系列顺序索引。一系列顺序索引包括存储在至少一个相应请求流510中的多个交易请求的存储信息。一系列顺序存储元中的每个存储元包括相应交易请求的认证信息,并且每个存储元对应于包括相应交易请求的存储信息的索引。相应交易请求包括相应交易的内容信息和相应交易的认证信息,并被存储在相应请求流510中。在一些情况下,区块不存储相应交易的内容信息,因为内容信息已存储在请求流中。区块可能仅需要包括存储元,该存储元包括与交易请求相对应的认证信息。可选地但非必需地,区块可以存储与存储元相对应的索引。以这种方式,可以显著减小区块的大小,这不仅可以提高区块的生成速度,而且可以减少区块所需的存储空间。因此,账本系统500可以提高生成用于交易请求的区块的效率和容量。
账本服务器520可以类似于图3的账本服务器320。在一些实施例中,账本服务器520可以以区块生成的预定时间段周期性地生成区块。在一些实施例中,账本服务器520可以不是周期性地生成区块。例如,账本服务器520可以根据需要或基于存储在存储流532中的存储元的数量来生成区块。例如,账本服务器520可以在生成新区块紧前的前一区块之后,在存储流532存储了预定数量的新存储元和/或索引时生成新区块。账本服务器520生成区块可以独立于账本服务器存储存储请求,和/或独立于账本代理502在相应的请求流510中存储交易请求。类似于图3的账本服务器320,账本服务器520可以管理区块和/或区块链,例如,从可信时间服务器(例如,图3的可信时间服务器350)获得时间戳信息,以用于区块中的存储元。
如上所述,账本系统500可以将存储交易请求501和存储与存储的交易请求相关联的存储元及索引分开进行,并且可以将存储交易请求与生成存储存储元/索引的区块分开进行。通过将存储交易请求与存储索引和存储元及生成区块分开进行,即使未生成索引、存储元或区块,也可以将交易请求及时存储在账本系统500中。例如,当账本系统500的账本服务器520由于例如电力不足而停止工作并且不能存储与交易请求相对应的索引和存储元,和/或无法生成区块时,交易请求将不会丢失,而可以永久存储在相应的请求流510中。在一些实施例中,交易请求的存储可以不受存储元和索引的存储和/或区块生成的任何错误或报错的影响,并且可以允许账本系统的快速恢复和增强的鲁棒性。
并且,通过分开地使用账本代理502将交易请求存储在请求流510中以及使用账本服务器520将存储信息存储在索引流534中以及将认证信息存储在存储流532中,账本系统500的效率和灵活性可以得到改善。此外,账本系统500可以策略性地将适当的硬件和/或软件资源分配给账本代理502和账本服务器520,以执行它们自身的功能,从而在使用合理的硬件和/或软件资源的同时提高总体系统性能。在一些实施例中,因为账本代理502不需要生成索引或区块,或者不涉及密集或复杂的计算,所以可以使用专用于高效数据存储(例如,具有快速I/O和大吞吐量)的硬件和/或软件资源来实现账本代理502,以将数据(例如,来自客户端设备的交易请求)存储到请求流510中,而不是使用专用于快速计算的硬件和/或软件资源。另一方面,账本服务器520可以使用具有相对较大算力的硬件和/或软件资源来实现。因此,可以在无需对硬件和/或软件资源的存储和算力都提出要求的情况下提高账本系统500的整体性能。总体而言,账本系统500可以提高对客户端设备的响应速度,并提高用户体验的质量。
图6是示出可根据本文实施例执行的处理600的示例的流程图。处理600示出了用于在具有账本代理和账本服务器的账本系统中管理来自账本系统中的客户端设备的交易请求的操作的示例。账本系统可以是图5的账本系统500。账本代理可以是图5的账本代理502。账本服务器可以是图5的账本服务器520。客户端设备可以是图3的客户端设备340、图4A的客户端设备410或图4B的客户端设备460。
在602,客户端设备向账本代理发送交易请求。交易请求可以包括交易的内容信息和交易的认证信息。交易的内容信息可以包括例如具有交易的本地时间戳和哈希值的报头,以及具有交易的有效载荷信息的主体。交易可以包括例如一个或多个有价物(例如,资产、产品、服务、货币)的交换。在一些实施例中,对存储在区块链中的数据(例如,文档、图像、视频、音频)的操纵、或者任何适当的操作可以在账本系统中执行并存储在区块链中。例如,对于表示在两个转账参与者之间转移资产的交易,交易的有效载荷信息可以包括转账参与者、转账金额、转账时间、转账地点或与交易有关的其他信息中的至少一个。交易的认证信息可以包括例如交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。客户端签名可以例如由客户端设备使用与使用客户端设备的客户端相关联的私钥来生成。
在604,账本代理接收从客户端设备发送的交易请求。在606,在接收到交易请求之后,账本代理例如通过基于交易的认证信息计算与私钥相对应的公钥,来确定交易请求中的认证信息是否有效。如果账本代理可以从计算中获得公钥,则账本代理可以确定认证信息有效;如果账本代理不能从计算中获得公钥,则账本代理可以确定认证信息无效。
在608,响应于确定认证信息有效,账本代理将交易请求存储在请求流中,例如图5的请求流530中。账本代理可以与多个请求流相关联。在一些实施例中,账本代理可以将传入交易请求同时存储在多个请求流中。在一些实施例中,账本代理可以基于交易请求或客户端设备的信息来选择请求流。请求流可以存储多个交易请求。
在609,在将交易请求存储在请求流中之后,账本代理可以获得交易请求的存储信息。存储信息可包括交易请求在请求流中的位置。该位置可以包括例如交易请求在请求流中的起始地址或偏移量以及交易请求的大小。在一些实施例中,存储信息还可以包括该请求流在多个请求流中的标识。
在610,账本代理向账本服务器发送针对交易请求的存储请求。存储请求可以包括交易请求的存储信息、交易请求中的认证信息、以及由账本代理基于认证信息计算出的公钥。账本代理可以与多个账本服务器通信。每个账本服务器可以与一个或多个账本相关联,例如,图5的账本530。每个账本可以包括相应的索引流,例如,图5的索引流534,以及相应的存储流,例如,图5的存储流532。在一些实施例中,账本代理可以同时向一个或多个账本服务器发送针对多个存储的交易请求的存储请求。在一些实施例中,账本代理可以基于交易请求或客户端设备的信息在多个账本服务器中选择账本服务器。
在612,账本服务器从账本代理接收存储请求。在614,账本服务器验证存储请求中的公钥是否被授权访问相应账本。在一些实施例中,账本服务器可以基于交易请求或客户端设备的信息从与账本服务器相关联的多个账本中选择相应账本。账本服务器可以例如通过确定存储请求中的公钥是否与例如与存储在账本服务器中的相应账本相关联的经认证的公钥匹配来执行验证。如果存储请求中的公钥与经认证的公钥匹配,则账本服务器可以验证得出存储请求中的公钥被授权访问相应账本。如果存储请求中的公钥与经认证的公钥不匹配,则账本服务器可以验证得出存储请求中的公钥未被授权访问相应账本。
响应于验证存储请求中的公钥未被授权访问相应账本,账本服务器向账本代理发送错误消息。在616,账本代理从账本服务器接收错误消息。在618,账本服务器确定尚未接收到针对交易请求的索引标识。在620,账本服务器发送错误消息,该错误消息指示交易请求未存储和/或交易请求未认证。可选地,在624,账本服务器可以将存储在请求流中的交易请求标记为垃圾。在622,客户端设备接收错误消息。客户端设备可以向账本代理发送新交易请求。
返回参考步骤606,响应于确定交易请求中的认证信息无效,账本代理可以确定不将交易请求存储在请求流中。处理600可以转到步骤620,其中账本代理还发送错误消息,该错误消息指示交易请求未存储和/或认证信息无效。
返回参考步骤614,响应于验证存储请求中的公钥被授权访问相应账本,在626,账本服务器将交易请求的存储信息存储在相应账本的索引流的索引中,并且将交易请求中的认证信息存储在相应账本的存储流的存储元中。索引对应于存储元,并且索引流与存储流相关联。索引流可以包括多个索引,并且存储流可以包括多个存储元。存储元在存储流中的顺序与索引在索引流中的顺序相同。与索引相对应的存储元可以包括与索引一一对应的存储元。存储元和索引对应于同一交易请求。存储元可以在存储流中具有唯一的存储标识,索引可以在索引流中具有唯一的索引标识,并且该唯一的存储标识与该唯一的索引标识相同。账本服务器可以在将交易请求的存储信息存储在索引流的索引中的同时,将交易的认证信息存储在存储流的存储元中。
在628,账本服务器向账本代理发送索引的索引标识。索引标识指示存储在账本中的存储请求的位置。索引标识可以包括例如索引流在多个索引流中的标识以及索引在索引流中的唯一标识。
在630,账本代理从账本服务器接收针对交易请求的索引的索引标识。在从账本服务器接收到索引标识之后,账本代理可以在交易请求的认证信息中生成交易的服务器签名(例如,对交易的哈希值的服务器签名)。
在632,账本代理向客户端设备发送响应。该响应可以包括例如针对交易请求的索引的索引标识以及可选地包括服务器签名。
在634,客户端设备接收包括针对交易请求的索引的索引标识的响应。客户端设备可以确定交易请求已经成功地存储在账本系统中,并且索引的索引标识对应于账本系统中的交易请求的存储信息。即,客户端设备可以使用索引的索引标识来检索所存储的交易请求。
在636,客户端设备发送包括索引的索引标识的搜索请求。在638,账本代理接收搜索请求,并基于搜索请求和/或客户端设备的信息向账本服务器发送搜索请求。在640,账本服务器接收搜索请求。在642,账本服务器基于索引标识来识别索引。索引存储相应请求流中的交易请求的存储信息。在644,账本服务器基于索引(或存储信息)搜索交易请求。存储信息包括相应请求流在多个请求流中的标识以及交易请求在相应请求流中的位置。账本服务器可以根据存储信息找到交易请求,并从相应的请求流中检索交易请求。在646,账本服务器发送包括检索到的交易请求的回复。在648,账本代理从账本服务器接收回复并向客户端设备发送该回复。在650,客户端设备接收包括与搜索请求中的索引标识相对应的检索到的交易请求的回复。
图7A是示出可以根据本文实施例由账本系统执行的用于管理交易请求的处理700的示例的流程图。为了方便起见,该账本系统描述为位于一个或多个位置并根据本文被适当编程的一个或多个计算机组成的计算系统。账本系统可以是图5的账本系统500或图6的账本系统。账本系统可以是基于区块链的账本系统,例如图1的联盟区块链网络102或图2的联盟区块链网络212,或图3的基于区块链的中心化账本系统310,或者是不具有区块链的账本系统。
在702,账本系统接收多个交易请求。每个交易请求包括相应交易的内容信息和相应交易的认证信息。交易的内容信息可以包括具有交易的本地时间戳和哈希值的报头,以及具有交易的有效载荷信息的主体,交易的有效载荷信息包括转账参与者、转账金额、转账时间或转账地点中的至少一个。交易的认证信息可以包括交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。可以由客户端设备使用与使用客户端设备的客户端相关联的私钥来生成客户端签名。可以从一个或多个客户端设备发送多个交易请求。
在704,将多个交易请求中的每一个存储在请求流中。请求流可以是图5的请求流510。多个交易请求可以有序存储在请求流中。每个存储的交易请求可以具有相应的存储信息。存储信息可包括交易请求在请求流中的位置。交易请求在请求流中的位置可以包括交易请求在请求流中的偏移量和交易请求的大小。在一些实施例中,账本系统将交易请求存储在多个请求流中。存储信息还可以包括请求流在多个请求流中的标识。
在706,获得存储在请求流中的交易请求的存储信息和交易请求中的认证信息。
在708,将交易请求的存储信息存储在索引流的索引中,并将认证信息存储在存储流的存储元中。索引流可以是图5的索引流534。存储流可以是图5的存储流532。索引流与存储流相关联。在一些情况下,索引流是从多个索引流中选择的,并且存储流是从多个存储流中选择的。多个索引流中的每个索引流与多个存储流中的不同的相应存储流相关联。
该存储元对应于索引。索引流可以包括多个索引,并且多个索引中的每一个可以包括请求流中的多个交易请求中的相应一个交易请求的存储信息。存储流可以包括多个存储元,并且多个存储元中的每一个可以包括请求流中的多个交易请求中的相应一个交易请求的认证信息。存储元与索引相对应可以包括存储元与索引一对一映射,以及存储元和索引与同一交易请求相对应。多个存储元在存储流中的顺序与多个索引在索引流中的顺序相同。在一些情况下,多个存储元在存储流中的顺序与多个交易请求中的相应交易请求在请求流中的顺序不同。
在710,将与交易请求相对应的索引的索引标识返回给提供交易请求的客户端设备。索引的索引标识可以包括索引在索引流中的标识和索引流在多个索引流中的标识。
在712,从客户端设备接收搜索请求。搜索请求包括索引标识。索引标识对应于存储交易请求的存储信息的索引。
在714,基于与索引标识相对应的索引搜索存储在请求流中的交易请求。交易请求可以被识别,并可以根据索引流中的索引来检索与存储在请求流中的交易请求相对应的交易的内容信息。
在一些实施方式中,在区块链中生成区块。该区块可以包括存储流中的一系列顺序存储元。一系列顺序存储元可以对应于多个交易请求。一系列顺序存储元可以对应于索引流中的一系列顺序索引。该区块不包括与多个交易请求相对应的交易的内容信息。
图7B是示出可以根据本文实施例由账本系统的账本代理执行的用于管理交易请求的处理730的示例的流程图。为了方便起见,该账本系统描述为位于一个或多个位置并根据本文被适当编程的一个或多个计算机组成的计算系统。账本系统可以是图5的账本系统500或图6的账本系统。账本代理可以是图5的账本代理502或图6的账本代理。
在732,账本代理接收多个第一交易请求。多个第一交易请求中的每一个包括相应交易的内容信息和相应交易的认证信息。可以从一个或多个客户端设备接收多个第一交易请求。
在734,账本代理将多个第一交易请求中的多个第二交易请求中的每一个存储在多个请求流的对应请求流中。多个第二交易请求的数量不大于多个第一交易请求的数量。
在一些实施例中,账本代理确定多个第一交易请求中的每一个交易请求的相应交易的认证信息是否有效。相应交易的认证信息可以包括相应交易的哈希值和由私钥对相应交易加密的签名(例如,对相应交易的哈希值的签名)。在一些实施例中,账本代理可以通过基于相应交易的认证信息计算与私钥相对应的公钥来确定相应交易的认证信息是否有效。如果从计算中获得了公钥,则账本代理可以确定认证信息有效。如果没有从计算中获得公钥,则账本代理可以确定认证信息无效。
响应于确定与多个第一交易请求中的第一交易请求相对应的认证信息有效,账本代理可以将第一交易请求存储在多个请求流中的相应请求流中。响应于确定与多个第一交易请求中的第二交易请求相对应的认证信息无效,账本代理可以确定不存储第二交易请求并向提供第二交易请求的第二客户端设备返回错误消息。因此,所存储的多个第二交易请求的数量可以小于或等于所接收的多个第一交易请求的数量。
在736,账本代理向账本服务器发送针对存储在多个请求流中的请求流中的交易请求的存储请求。账本服务器可以是图5的账本服务器520或图6的账本服务器。存储请求包括请求流中的交易请求的存储信息以及与该交易请求相对应的交易的认证信息以及可选地包括计算出的公钥。交易请求的存储信息可以包括请求流在多个请求流中的标识以及交易请求在请求流中的位置。账本代理可以基于交易请求的信息从多个账本服务器中选择账本服务器。账本代理可以同时向多个账本服务器发送针对存储在多个请求流中的交易请求的存储请求。
在738,账本代理接收来自账本服务器的与针对交易请求的存储请求相对应的索引信息。索引信息指示由账本服务器存储的存储信息的位置。索引信息可以包括索引流中的索引的索引标识,并且索引可以包括交易请求的存储信息。索引可以对应于与索引流相关联的存储流中的存储元,并且该存储元可以存储交易的认证信息。在一些实施例中,索引信息还可以包括索引流在与账本服务器相关联的多个索引流中的标识。
在740,账本代理向提供交易请求的客户端设备发送对交易请求的响应。该响应包括与交易请求相对应的索引信息。
在一些实施例中,交易的认证信息包括交易的哈希值。在从账本服务器接收到索引信息之后,账本代理可以生成交易的服务器签名(例如,对交易的哈希值的服务器签名),并向客户端设备发送包括服务器签名和索引信息的响应。
在一些实施例中,账本代理向账本服务器发送针对存储在多个请求流中的第二请求流中的第二交易请求的第二存储请求。账本代理可以确定账本代理是否已接收到来自账本服务器的针对第二交易请求的索引信息。如果账本代理确定尚未接收到针对第二交易请求的索引信息,则账本代理可以向提供第二交易请求的第二客户端设备发送错误消息。账本代理还可以在第二请求流中将第二交易请求标记为垃圾。
在一些实施例中,账本代理可以通过确定在发送所述存储请求之后已经过去了预定时间段并且没有来自账本服务器的回复,来确定没有接收到针对第二交易请求的索引信息。
在一些实施例下,账本代理可以通过确定来自账本服务器的回复指示账本服务器未能存储第二交易请求的存储信息和/或第二交易请求中的认证信息,来确定尚未接收到针对第二交易请求的索引信息。
在一些实施例中,第二存储请求包括由账本代理基于第二交易请求中的认证信息计算的公钥,并且账本代理可以通过确定来自账本服务器的回复指示公钥未被授权访问对应于第二交易请求的第二索引流和第二存储流来确定尚未接收到针对第二交易请求的索引信息。
图7C是示出可以根据本文实施例由账本系统的账本服务器执行的用于管理交易请求的处理750的示例的流程图。为了方便起见,该账本系统描述为位于一个或多个位置并根据本文被适当编程的一个或多个计算机组成的计算系统。账本系统可以是图5的账本系统500或图6的账本系统。账本服务器可以是图5的账本服务器520或图6的账本服务器。
在752,账本服务器接收针对存储在请求流中的交易请求的存储请求。存储请求可以由账本系统的账本代理发送。账本代理可以是图5的账本代理502或图6的账本代理。
存储请求包括请求流中的交易请求的存储信息和与该交易请求相对应的交易的认证信息。交易请求的存储信息可以包括请求流在多个请求流中的标识以及交易请求在请求流中的位置。交易请求包括交易的认证信息和交易的内容信息。在一些实施例中,交易的内容信息包括:交易的报头,其包括交易的本地时间戳和哈希值;以及交易的主体,其包括交易的有效载荷信息,交易的有效载荷信息包括转账参与者、转账金额、转账时间或转账地点中的至少一个。内容信息还可以包括元数据信息。交易的认证信息可以包括交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。
在754,账本服务器将交易请求的存储信息存储在索引流的索引中。在756,账本服务器将交易请求的认证信息存储在存储流的存储元中。存储流与索引流相关联,并且存储元与索引相对应。可以同时进行将交易请求的存储信息存储在索引流的索引中以及将交易的认证信息存储在存储流的存储元中。
在一些实施例中,存储请求包括基于交易的认证信息计算的公钥。在存储该存储请求之前,账本服务器可以例如通过验证存储请求中的公钥是否与关联于索引流和存储流的经认证的公钥匹配,来验证存储请求中的公钥是否被授权访问索引流和与存储流。如果存储请求中的公钥与经认证的公钥匹配,则账本服务器验证得出存储请求中的公钥被授权访问索引流和存储流。如果存储请求中的公钥与经认证的公钥不匹配,则账本服务器验证得出存储请求中的公钥未被授权访问索引流和存储流。
响应于验证公钥未被授权,账本服务器可以向账本代理返回错误消息。响应于验证公钥被授权,账本服务器将交易请求的存储信息存储在索引流的索引中,并将交易的认证信息存储在存储流的存储元中。可以将与经认证的公钥匹配的公钥与交易的认证信息一起存储在存储流的存储元中。
在758,账本服务器返回针对交易请求的索引的索引标识。索引的索引标识可以包括:索引流在多个索引流中的标识和存储在索引流中的索引的唯一标识。在一些实施例中,账本服务器可以根据索引流的索引从请求流中检索交易的内容信息。例如,账本服务器可以从客户端设备或账本代理接收包括索引的索引标识的搜索请求。账本服务器可以基于索引标识获得索引,并基于索引中的交易请求的存储信息识别请求流中的交易请求。
在一些实施例中,账本服务器接收针对存储在请求流中的多个交易请求的多个存储请求。账本服务器可以将多个交易请求的存储信息存储在索引流的多个索引中,并将与多个交易请求相对应的多个交易的认证信息存储在存储流中的多个存储元中。在一些实施例中,存储元在存储流中具有唯一的存储标识,并且索引在索引流中具有唯一的索引标识,并且该唯一的存储标识与该唯一的索引标识相同。多个索引在索引流中的存储顺序与多个存储元在存储流中的存储顺序相同。多个交易请求在请求流中的存储顺序可以与多个存储元在存储流中的存储顺序不同。
在一些实施例中,账本服务器与多个账本相关联,并且每个账本包括对应的索引流和与对应的索引流相关联的对应的存储流。账本服务器可以基于存储请求从多个账本中选择包括索引流和存储流的账本。
图8A描绘了根据本文实施例的装置800的模块的示例。装置800可以是账本系统的实施例的示例,该账本系统被配置为将交易请求存储在账本系统中。装置800可以对应于上述实施例,并且装置800包括以下:接收模块802,用于通过账本系统中的计算系统接收多个交易请求,所述多个交易请求中的每个交易请求包括相应交易的内容信息和相应交易的认证信息;第一存储模块804,用于由计算系统将多个交易请求中的每个交易请求存储在请求流中;获得模块806,用于由计算系统获得请求流中多个交易请求中的交易请求的存储信息;以及第二存储模块808,用于由计算系统将交易请求的存储信息存储在索引流的索引中,并将与交易请求相对应的交易的认证信息存储在存储流的存储元中,所述存储元与所述索引对应,所述索引流与所述存储流相关联。
在一些实施例中,装置800还包括返回模块810,该返回模块810向客户端设备返回与交易请求对应的索引的索引标识。
在一些实施例中,交易请求的存储信息包括交易请求在请求流中的位置。
在一些实施例中,接收模块802从客户端设备接收针对交易请求的搜索请求,该搜索请求包括与交易请求相对应的索引的索引标识。装置800还可以包括搜索模块812,用于基于与索引标识相对应的索引在请求流中搜索交易请求。
在一些实施例中,装置800还包括检索模块,用于根据索引流中的索引,检索存储在请求流中的交易内容信息。
在一些实施例中,交易请求的存储信息包括请求流在多个请求流中的标识,并且交易请求在请求流中的位置包括:交易请求在请求流中的偏移量,以及交易请求的大小。
在一些实施例中,索引流包括多个索引,多个索引中的每个索引包括请求流中的多个交易请求中的相应一个交易请求的存储信息。该存储流包括多个存储元,多个存储元中的每个存储元包括请求流中的多个交易请求中的相应一个交易请求的认证信息,并且多个存储元在存储流中的顺序与多个索引在索引流中的顺序相同。
在一些实施例中,多个存储元在存储流中的顺序与多个交易请求中的相应交易请求在请求流中的顺序不同。
在一些实施例中,存储元与索引相对应包括存储元与索引一对一映射,以及存储元和索引与同一交易请求相对应。
在一些实施例中,装置800还包括选择模块,用于从多个索引流中选择索引流,并从多个存储流中选择存储流。多个索引流中的每个索引流与多个存储流中的不同的相应存储流相关联。
在一些实施例中,索引的索引标识包括:索引流在多个索引流中的标识和索引在索引流中的标识。
在一些实施例中,装置800还包括生成模块,用于在区块链中生成区块,该区块包括存储流中的一系列顺序存储元,该一系列顺序存储元对应于多个第二交易请求,该一系列顺序存储元对应于索引流中的一系列顺序索引。
在一些实施例中,该区块不包括与多个第二交易请求相对应的交易的内容信息。
图8B描绘了根据本文实施例的另一装置830的模块的示例。装置830可以是账本系统中的账本代理的实施例的示例,该账本代理被配置为将交易请求存储在账本系统中。设备830可以对应于上述实施例,并且设备830包括以下:第一接收模块832,用于通过账本系统中的账本代理接收多个第一交易请求,该多个第一交易请求中的每个交易请求包括相应交易的内容信息和相应交易的认证信息;存储模块834,用于通过账本代理将多个第一交易请求中的多个第二交易请求中的每一个存储在多个请求流中的对应请求流中,多个第二交易请求的数量不大于多个第一交易请求的数量;第一发送模块836,用于通过账本代理向账本系统中的账本服务器发送针对存储在多个请求流中的请求流中的交易请求的存储请求,该存储请求包括请求流中的交易请求的存储信息以及与交易请求相对应的交易的认证信息;第二接收模块838,用于通过账本代理从账本服务器接收与针对交易请求的存储请求相对应的索引信息,该索引信息指示账本服务器存储的存储信息的位置;第二发送模块840,用于通过账本代理向客户端设备发送对交易请求的响应,该响应包括与交易请求相对应的索引信息。
在一些实施例中,索引信息包括索引在索引流中的索引标识,该索引包括交易请求的存储信息。
在一些实施例中,索引对应于与索引流相关联的存储流中的存储元,该存储元存储交易的认证信息。
在一些实施例中,装置830还包括确定模块,用于确定多个第一交易请求中的每个交易请求的相应交易的认证信息是否有效。
在一些实施例中,装置830还包括执行模块,用于执行以下中的至少一项:响应于确定与多个第一交易请求中的第一交易请求相对应的认证信息有效,将第一交易请求存储在多个请求流中的对应请求流中,或响应于确定与多个第一交易请求中的第二交易请求相对应的认证信息无效,确定不存储第二交易请求并向提供第二交易请求的第二客户端设备返回错误消息。
在一些实施例中,相应交易的认证信息包括:相应交易的哈希值和由私钥对相应交易加密的签名(例如,对相应交易的哈希值的签名),并且确定模块确定相应交易的认证信息是否有效包括:基于相应交易的认证信息,计算与私钥相对应的公钥。
在一些实施例中,针对交易请求的存储请求包括由账本代理基于交易的认证信息计算出的公钥。
在一些实施例中,交易的认证信息包括交易的哈希值,并且装置830进一步包括生成模块,用于在从账本服务器接收到索引信息之后,生成交易的服务器签名(例如,对交易的哈希值的服务器签名),以及第二发送模块,用于向客户端设备发送包括服务器签名和索引信息的响应。
在一些实施例中,第一发送模块836通过账本代理向账本服务器发送针对存储在多个请求流中的第二请求流中的第二交易请求的第二存储请求。确定模块通过账本代理确定尚未从账本服务器接收到针对第二交易请求的索引信息,以及第二发送模块840通过账本代理向提供第二交易请求的第二客户端设备发送错误消息。
在一些实施例中,确定模块通过确定在发送所述存储请求之后已经过去了预定时间段并且没有来自账本服务器的回复,来确定尚未接收到针对第二交易请求的索引信息。
在一些实施例中,确定模块通过确定来自账本服务器的回复指示账本服务器未能存储第二交易请求的存储信息和/或第二交易请求中的认证信息,来确定尚未接收到针对第二交易请求的索引信息。
在一些实施例中,第二存储请求包括由账本代理基于第二交易请求中的认证信息计算的公钥,并且确定模块通过确定来自账本服务器的回复指示公钥未被授权访问对应于第二交易请求的第二索引流和第二存储流来确定尚未接收到针对第二交易请求的索引信息。
在一些实施例中,装置830还包括标记模块,用于通过账本代理在第二请求流中将第二交易请求标记为垃圾。
在一些实施例中,第一发送模块836同时向一个或多个账本服务器发送针对存储在多个请求流中的多个第三交易请求的存储请求。
在一些实施例中,装置830还包括选择模块,用于基于交易请求的信息从多个账本服务器中选择账本服务器。
在一些实施例中,交易请求的存储信息包括:请求流在多个请求流中的标识以及交易请求在请求流中的位置。
在一些实施例中,索引信息包括:索引流在多个索引流中的标识和索引在索引流中的标识。
图8C描绘了根据本文实施例的另一装置850的模块的示例。装置850可以是账本系统中的账本服务器的实施例的示例,该账本服务器被配置为将交易请求存储在账本系统中。装置850可以对应于上述实施例,装置830包括以下:接收模块852,用于通过账本服务器接收针对存储在请求流中的交易请求的存储请求,所述存储请求包括请求流中的交易请求的存储信息和与该交易请求相对应的交易的认证信息;存储模块854,用于通过账本服务器将交易请求的存储信息存储在索引流的索引中,并且通过账本服务器将交易请求的认证信息存储在存储流的存储元中,该存储流与索引流相关联,索引与存储元相对应;以及返回模块856,用于通过账本服务器返回针对交易请求的索引的索引标识。
在一些实施例中,存储请求包括基于交易的认证信息计算的公钥。
在一些实施例中,装置850还包括验证模块858,用于通过账本服务器验证存储请求中的公钥是否被授权访问索引流和存储流。
在一些实施例中,存储交易请求的存储信息和交易的认证信息是响应于验证了公钥被授权而进行的。
在一些实施例中,存储模块854通过账本服务器将公钥以及交易的认证信息一起存储在存储流的存储元中。
在一些实施例中,验证模块858验证存储请求中的公钥是否与关联于索引流和存储流的经认证的公钥匹配,来验证存储请求中的公钥是否被授权访问索引流和存储流。
在一些实施例中,验证模块858通过账本服务器验证与第二交易请求相对应的第二存储请求中的第二公钥是否被授权访问与第二交易请求相对应的第二索引流和第二存储流。响应于验证得出第二公钥无效,返回模块856通过账本服务器返回错误消息。
在一些实施例中,接收模块852通过账本服务器接收针对存储在请求流中的多个交易请求的多个存储请求,每个存储请求包括请求流中的各个交易请求的存储信息以及与各个交易请求相对应的交易的认证信息。
在一些实施例中,存储模块854通过账本服务器将多个交易请求的存储信息存储在索引流中的多个索引中,并将与多个交易请求相对应的交易的认证信息存储在存储流中的多个存储元中,多个索引在索引流中的存储顺序与多个存储元在存储流中的存储顺序相同。
在一些实施例中,多个交易请求在请求流中的存储顺序与多个存储元在存储流中的存储顺序不同。
在一些实施例中,存储元在存储流中具有唯一的存储标识,并且索引在索引流中具有唯一的索引标识,并且该唯一的存储标识与该唯一的索引标识相同。
在一些实施例中,可以同时进行将交易请求的存储信息存储在索引流的索引中以及将交易的认证信息存储在存储流的存储元中。
在一些实施例中,账本服务器与多个账本相关联,每个账本包括对应的索引流和与对应的索引流相关联的对应的存储流。索引的索引标识包括:多个账本的各个索引流中的索引流的标识,以及存储在索引流中的索引的唯一标识。
在一些实施例中,装置850还包括选择模块,用于通过账本服务器基于存储请求从多个账本中选择包括索引流和存储流的账本。
在一些实施例中,装置850还包括检索模块,用于通过账本服务器根据索引流中的索引从请求流中检索交易的内容信息,该交易请求包括存储在请求流中的交易的内容信息和交易的认证信息。
在一些实施例中,交易请求的存储信息包括:请求流在多个请求流中的标识以及交易请求在请求流中的位置。
在一些实施例中,交易的内容信息包括:交易的报头,其包括交易的本地时间戳和哈希值;以及交易的主体,其包括交易的有效载荷信息,交易的有效载荷信息包括转账参与者、转账金额、转账时间或转账地点中的至少一个,并且交易的认证信息包括交易的哈希值和交易的客户端签名(例如,对交易的哈希值的客户端签名)。内容信息还可以包括元数据信息。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来现,或者可以通过使用具有特定功能的产品来实现。典型的实施例设备是计算机(该计算机可以是个人计算机)、膝上型计算机、蜂窝电话、相机电话、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每一个模块的功能和角色的实施过程,可以参照前一方法中相对应步骤的实施过程。为简单起见,这里省略了细节。
由于装置实施例基本上与方法实施例相对应,因此对于相关部件,可以参照方法实施例中的相关描述。前一描述的装置实施仅是示例。被描述为单独部分的模块可以是或可以不是物理上分离的,并且显示为模块的部分可以是或可以不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员在无需付出创造性努力的情况下就能理解和实现本申请的实施例。
再次参见图8A、图8B或图8C,它可以被解释为示出了账本实现装置的内部功能模块和结构。账本实现装置可以是账本系统的示例,该账本系统被配置为在账本系统、账本系统中的账本代理或账本系统中的账本服务器中存储交易请求。本质上,执行主体可以是电子设备,该电子设备包括:一个或多个处理器;被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,所述一个或多个计算机可读存储器耦接至所述一个或多个处理器且其上存储有编程指令,所述编程指令可以由所述一个或多个处理器执行以执行本文所描述的算法、方法、函数、处理、流程和程序。本文还提供了耦接至一个或多个处理器并且其上存储有指令的一个或多个非暂时性计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
本申请还提供一种用于实现本文提供的方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当该指令由一个或多个处理器执行时,该指令促使一个或多个处理器执行根据本文提供的方法的实施例的操作。
本文中描述的主题、以及动作和操作的实施例可以被实现在数字电子电路中、有形体现的计算机软件或固件中、包括在本文公开的结构及其结构等同物的计算机硬件中,其或者被实现在它们中的一个或多个的组合中。本文描述的主题的实施例可以被实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上用于由数据处理装置执行,或者以控制数据处理装置的操作。例如,计算机程序载体可以包括其上编码或存储有指令的一个或多个计算机可读存储介质。载体可以是有形的非暂态计算机可读介质,例如,磁盘、磁光盘或者光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或者其它媒体类型。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成为对信息进行编码用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或者串行访问存储器设备或者它们中的一个或多个的组合,或者是机器可读存储设备、机器可读存储基板、随机或者传送访问存储器设备或者他们中的一个或多个的组合的一部分。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;它可以配置为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互连的一个或多个位置上的一个或多个计算机。
计算机程序可以但是没有必需对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件中;或者多个协调文件中,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器通过示例的方式既包括通用微处理器和专用微处理器,又包括任何种类的数字计算机的任意一个或多个处理器。通常,处理器将从耦接至处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令以及数据。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,通过示例的方式包括可编程处理器、计算机或者多个处理器或计算机。数据处理装置可包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。过程或者逻辑流程也可以由例如FPGA、ASIC、GPU的专用逻辑电路执行,或者由专用逻辑电路和一个或多个编程计算机的组合执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接为从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以例如是磁盘、磁光盘或者光盘、固态驱动器或者任何其它类型的非暂态计算机可读介质。但是,计算机不是必须具有这样的设备。因而,计算机可以耦接到一个或多个存储设备,例如位于本地和/或远程的一个或多个存储器。例如,计算机可以包括一个或多个本地存储器,该一个或多个本地存储器是计算机的集成组件;或者计算机可以耦接到位于云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)、闪存驱动器的便携式存储设备,这里仅举几例。
组件可以通过直接或经由一个或多个中间组件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果组件中的一个部件被集成到另一个中,则组件也可以被彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)“耦接到”处理器。
为了提供与用户的交互,本文描述的主题的实施例能够被实现在计算机上或者被配置为与计算机通信,该计算机具有:诸如LCD(液晶显示器)监视器的显示设备,用于向用户显示信息,以及输入设备,用户能够通过该输入设备向计算机提供输入,例如,键盘和例如鼠标、轨迹球或者触摸板的指针设备。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息传送应用程序的智能电话)轮流发送文本消息或其他形式的消息来并且从用户接收响应消息来与用户交互。
本文使用与系统,装置和计算机程序组件有关的术语“被配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在操作中使得系统执行该操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意指一个或多个程序包括指令,所述指令在由数据处理系统执行时,使得装置执行该操作或者动作。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施例细节,但是这些细节不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初被如此请求保护,但是在一些情况下,可以从请求保护的组合中删除来自该组合的一个或多个特征,并且权利要求书可以涉及子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理会是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为在所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以被一起集成在单个软件产品中或打包成多个软件产品。
已描述了主题的特定实施方式。其他实施方式在以下权利要求书的范围内。例如,权利要求中记载的动作可以不同的顺序执行并且仍然实现所期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。
Claims (15)
1.一种计算机实现的方法,所述方法包括:
账本代理接收多个第一交易请求,所述多个第一交易请求中的每个交易请求包括相应交易的内容信息和所述相应交易的认证信息;
所述账本代理将所述多个第一交易请求中的多个第二交易请求中的每个交易请求存储在多个请求流中的对应请求流中,所述多个第二交易请求的数量不大于所述多个第一交易请求的数量,其中,所述多个请求流为用于存储交易请求的多个数据流;
所述账本代理向账本服务器发送针对存储在所述多个请求流之中的请求流中的交易请求的存储请求,所述存储请求包括所述请求流中的所述交易请求的存储信息和与所述交易请求相对应的交易的认证信息;
所述账本代理从所述账本服务器接收与针对所述交易请求的所述存储请求相对应的索引信息,所述索引信息指示所述账本服务器存储的所述存储信息的位置;以及
所述账本代理向客户端设备发送对所述交易请求的响应,所述响应包括与所述交易请求相对应的所述索引信息。
2.如权利要求1所述的计算机实现的方法,其中,所述索引信息包括所述索引在索引流中的索引标识,所述索引包括所述交易请求的所述存储信息,其中,所述索引流为包括多个索引的数据流。
3.如权利要求2所述的计算机实现的方法,其中,所述索引对应于与所述索引流相关联的存储流中的存储元,所述存储元存储所述交易的所述认证信息,其中,所述存储流为包括多个存储元的数据流。
4.如权利要求1所述的计算机实现的方法,还包括:
确定与所述多个第一交易请求中的每个交易请求相对应的所述交易的所述认证信息是否有效;以及
执行以下中的至少一项:
响应于确定与所述多个第一交易请求中的第一交易请求相对应的认证信息有效,将所述第一交易请求存储在所述多个请求流中的对应请求流中,或
响应于确定与所述多个第一交易请求中的第二交易请求相对应的认证信息无效,确定不存储所述第二交易请求并向提供所述第二交易请求的第二客户端设备返回错误消息。
5.如权利要求4所述的计算机实现的方法,其中,所述相应交易的所述认证信息包括:所述相应交易的哈希值和由私钥对所述相应交易加密的签名,并且
确定所述相应交易的所述认证信息是否有效包括:基于所述相应交易的所述认证信息,计算与所述私钥相对应的公钥。
6.如权利要求5所述的计算机实现的方法,其中,针对所述交易请求的所述存储请求包括由所述账本代理基于所述交易的所述认证信息计算出的公钥。
7.如权利要求1所述的计算机实现的方法,其中,所述交易的所述认证信息包括所述交易的哈希值,
所述方法还包括:
在从所述账本服务器接收到所述索引信息之后,生成对所述交易的所述哈希值的服务器签名,以及
向所述客户端设备发送包括所述服务器签名和所述索引信息的所述响应。
8.如权利要求1所述的计算机实现的方法,还包括:
所述账本代理向所述账本服务器发送针对存储在所述多个请求流中的第二请求流中的第二交易请求的第二存储请求;
所述账本代理确定尚未从所述账本服务器接收到针对所述第二交易请求的索引信息,以及
所述账本代理向提供所述第二交易请求的第二客户端设备发送错误消息。
9.如权利要求8所述的计算机实现的方法,其中,确定尚未接收到针对所述第二交易请求的索引信息包括:
确定在发送所述存储请求之后已经过去了预定时间段并且没有来自所述账本服务器的回复。
10.如权利要求8所述的计算机实现的方法,其中,确定尚未接收到针对所述第二交易请求的索引信息包括:
确定来自所述账本服务器的回复指示所述账本服务器未能存储所述第二交易请求的存储信息和/或所述第二交易请求中的认证信息。
11.如权利要求8所述的计算机实现的方法,其中,所述第二存储请求包括由所述账本代理基于所述第二交易请求中的认证信息计算的公钥,并且
确定尚未接收到针对所述第二交易请求的索引信息包括:
确定来自所述账本服务器的回复指示所述公钥未被授权访问对应于所述第二交易请求的第二索引流和第二存储流,其中,所述第二索引流为包括多个索引的第二数据流,所述第二存储流为包括多个存储元的第二数据流。
12.如权利要求9所述的计算机实现的方法,还包括:
所述账本代理在所述第二请求流中将所述第二交易请求标记为垃圾。
13.如权利要求1所述的计算机实现的方法,还包括:
同时向一个或多个账本服务器发送针对存储在所述多个请求流中的多个第三交易请求的存储请求。
14.一种用于管理账本系统中的交易请求的系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行如权利要求1至13中任一项所述的方法。
15.一种用于管理账本系统中的交易请求的装置,所述装置包括用于执行权利要求1至13中任一项所述的方法的多个模块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/086204 WO2020143855A2 (en) | 2020-04-22 | 2020-04-22 | Managing transaction requests in ledger systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111630549A CN111630549A (zh) | 2020-09-04 |
CN111630549B true CN111630549B (zh) | 2022-05-27 |
Family
ID=71522305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080001177.7A Active CN111630549B (zh) | 2020-04-22 | 2020-04-22 | 管理账本系统中的交易请求 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11455297B2 (zh) |
EP (1) | EP3841549B1 (zh) |
CN (1) | CN111630549B (zh) |
SG (1) | SG11202103218YA (zh) |
WO (1) | WO2020143855A2 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020145966A1 (en) * | 2019-01-09 | 2020-07-16 | Hewlett-Packard Development Company, L.P. | Documented workflows |
Family Cites Families (193)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
US6587945B1 (en) | 1998-12-28 | 2003-07-01 | Koninklijke Philips Electronics N.V. | Transmitting reviews with digital signatures |
US6823456B1 (en) | 1999-08-25 | 2004-11-23 | International Business Machines Corporation | System and method for providing trusted services via trusted server agents |
US20020107811A1 (en) | 2000-01-07 | 2002-08-08 | Sandeep Jain | Use of time-stamps and digital signatures |
US6732101B1 (en) | 2000-06-15 | 2004-05-04 | Zix Corporation | Secure message forwarding system detecting user's preferences including security preferences |
US7146009B2 (en) | 2002-02-05 | 2006-12-05 | Surety, Llc | Secure electronic messaging system requiring key retrieval for deriving decryption keys |
US7697920B1 (en) | 2006-05-05 | 2010-04-13 | Boojum Mobile | System and method for providing authentication and authorization utilizing a personal wireless communication device |
CN1642077B (zh) | 2004-01-13 | 2011-07-06 | 国际商业机器公司 | 可信数字时间戳的生成和验证的方法及系统 |
US7958349B2 (en) | 2007-08-30 | 2011-06-07 | Red Hat, Inc. | Method for revoking a digital signature |
US9785708B2 (en) | 2008-06-18 | 2017-10-10 | Gracenote, Inc. | Scalable, adaptable, and manageable system for multimedia identification |
US8468320B1 (en) | 2008-06-30 | 2013-06-18 | Symantec Operating Corporation | Scalability of data deduplication through the use of a locality table |
US8392709B1 (en) | 2009-04-28 | 2013-03-05 | Adobe Systems Incorporated | System and method for a single request—single response protocol with mutual replay attack protection |
CN101945548A (zh) | 2009-07-09 | 2011-01-12 | 鸿富锦精密工业(深圳)有限公司 | 支撑结构及采用该支撑结构的电子装置 |
US8843645B2 (en) | 2010-06-24 | 2014-09-23 | Citrix Systems, Inc. | Systems and methods for detecting incomplete requests, TCP timeouts and application timeouts |
US9294479B1 (en) | 2010-12-01 | 2016-03-22 | Google Inc. | Client-side authentication |
WO2013054701A1 (ja) | 2011-10-14 | 2013-04-18 | 株式会社日立製作所 | データの真正性保証方法、管理計算機及び記憶媒体 |
US10467594B2 (en) | 2012-08-03 | 2019-11-05 | Label Independent, Inc. | Systems and methods for designing, developing, and sharing assays |
US20140095887A1 (en) | 2012-09-29 | 2014-04-03 | Alex Nayshtut | Method and apparatus for maintaining trusted time at a client computing device |
US10382512B2 (en) | 2013-03-14 | 2019-08-13 | Microsoft Technology Licensing, Llc | Distributed fragment timestamp synchronization |
WO2014201059A1 (en) | 2013-06-10 | 2014-12-18 | Certimix, Llc | Secure storing and offline transfering of digitally transferable assets |
US9553982B2 (en) | 2013-07-06 | 2017-01-24 | Newvoicemedia, Ltd. | System and methods for tamper proof interaction recording and timestamping |
US9338013B2 (en) | 2013-12-30 | 2016-05-10 | Palantir Technologies Inc. | Verifiable redactable audit log |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US9614682B2 (en) | 2014-04-11 | 2017-04-04 | Guardtime IP Holdings, Ltd. | System and method for sequential data signatures |
WO2015183497A1 (en) | 2014-05-06 | 2015-12-03 | Case Wallet, Inc. | Cryptocurrency virtual wallet system and method |
US20160203477A1 (en) * | 2015-01-14 | 2016-07-14 | Modernity Financial Holdings, Ltd. | Cryptographic security for electronic transactions |
WO2016149468A1 (en) | 2015-03-18 | 2016-09-22 | Proscia Inc. | Computing technologies for image operations |
KR101680540B1 (ko) | 2015-06-18 | 2016-11-30 | 주식회사 코인플러그 | 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법 |
JP6636058B2 (ja) | 2015-07-02 | 2020-01-29 | ナスダック, インコーポレイテッドNasdaq, Inc. | 分散トランザクションデータベースにおける出所保証のシステムおよび方法 |
US10425428B2 (en) | 2015-08-20 | 2019-09-24 | Guardtime Sa | Verification lineage tracking and transfer control of data sets |
US10230678B2 (en) | 2015-08-20 | 2019-03-12 | International Business Machines Corporation | Storing messages of a message queue |
US10785033B2 (en) | 2015-09-04 | 2020-09-22 | Nec Corporation | Method for storing an object on a plurality of storage nodes |
US10805393B2 (en) | 2015-12-02 | 2020-10-13 | Olea Networks, Inc. | System and method for data management structure using auditable delta records in a distributed environment |
US10523441B2 (en) | 2015-12-15 | 2019-12-31 | Visa International Service Association | Authentication of access request of a device and protecting confidential information |
US10447719B2 (en) | 2015-12-30 | 2019-10-15 | Centrl, Inc. | Security breach reporting and incident management system |
US20170200244A1 (en) | 2016-01-07 | 2017-07-13 | Adobe Systems Incorporated | Systems and Techniques for Integrating Electronic Signature Platforms with Social Messaging Applications for Authenticated Electronic Documents |
US10680833B2 (en) | 2016-02-26 | 2020-06-09 | Apple Inc. | Obtaining and using time information on a secure element (SE) |
US10630490B2 (en) | 2016-02-26 | 2020-04-21 | Apple Inc. | Obtaining and using time information on a secure element (SE) |
US10523447B2 (en) | 2016-02-26 | 2019-12-31 | Apple Inc. | Obtaining and using time information on a secure element (SE) |
JP6648555B2 (ja) | 2016-02-29 | 2020-02-14 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
US10810508B1 (en) | 2016-03-22 | 2020-10-20 | EMC IP Holding Company LLC | Methods and apparatus for classifying and discovering historical and future operational states based on Boolean and numerical sensor data |
US10438197B2 (en) * | 2016-04-13 | 2019-10-08 | Paypal, Inc. | Public ledger authentication system |
KR101780636B1 (ko) | 2016-05-16 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
US10305694B2 (en) | 2016-05-27 | 2019-05-28 | Mastercard International Incorporated | Method and system for efficient distribution of configuration data utilizing permissioned blockchain technology |
CN107438003B (zh) | 2016-05-27 | 2022-08-09 | 索尼公司 | 电子设备、用于电子设备的方法和信息处理系统 |
US20170373859A1 (en) | 2016-06-23 | 2017-12-28 | Praxik, Llc | Cryptographic Signature System and Related Systems and Methods |
US10108954B2 (en) | 2016-06-24 | 2018-10-23 | PokitDok, Inc. | System and method for cryptographically verified data driven contracts |
WO2018020943A1 (ja) | 2016-07-28 | 2018-02-01 | 日本電気株式会社 | 番号ポータビリティ情報管理システム |
WO2018031551A1 (en) | 2016-08-08 | 2018-02-15 | The Dun & Bradstreet Corporation | Trusted platform and integrated bop applications for networking bop components |
CN106296200A (zh) | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 基于区块链技术的分布式光伏电力交易平台 |
DE102016215914A1 (de) | 2016-08-24 | 2018-03-01 | Siemens Aktiengesellschaft | Absichern einer Gerätenutzungsinformation eines Gerätes |
CN106375317A (zh) | 2016-08-31 | 2017-02-01 | 北京明朝万达科技股份有限公司 | 一种基于区块链的大数据安全认证方法和系统 |
US10581847B1 (en) | 2016-09-27 | 2020-03-03 | Amazon Technologies, Inc. | Blockchain-backed device and user provisioning |
US10339014B2 (en) | 2016-09-28 | 2019-07-02 | Mcafee, Llc | Query optimized distributed ledger system |
US10587628B2 (en) | 2016-09-29 | 2020-03-10 | Microsoft Technology Licensing, Llc | Verifiable outsourced ledgers |
WO2018066362A1 (ja) | 2016-10-04 | 2018-04-12 | 日本電気株式会社 | 組込sim管理システム、ノード装置、組込sim管理方法、プログラム、情報登録者装置 |
AU2017340266B2 (en) | 2016-10-06 | 2020-06-18 | Mastercard International Incorporated | Method and system for identity and credential protection and verification via blockchain |
CN106504091B (zh) | 2016-10-27 | 2018-06-29 | 深圳壹账通智能科技有限公司 | 区块链上交易的方法及装置 |
EP3552343B1 (en) | 2016-12-08 | 2022-03-23 | Telefonaktiebolaget LM Ericsson (PUBL) | Method and apparatus for creating a finite blockchain |
US10686590B2 (en) | 2016-12-23 | 2020-06-16 | Joseph Santilli | Methods and systems for crowdsourcing an outcome to an issue |
US10476665B1 (en) | 2016-12-28 | 2019-11-12 | Wells Fargo Bank, N.A. | Cryptographic algorithm status transition |
FR3061330B1 (fr) | 2016-12-28 | 2019-05-24 | Bull Sas | Systeme et procede pour la creation et la gestion d'autorisations decentralisees pour des objets connectes |
US10447480B2 (en) | 2016-12-30 | 2019-10-15 | Guardtime Sa | Event verification receipt system and methods |
CN106982203B (zh) | 2017-01-06 | 2020-05-22 | 中国银联股份有限公司 | 基于区块链技术的鲁棒的atm网络系统及其信息处理方法 |
US20180218779A1 (en) | 2017-02-01 | 2018-08-02 | OpenClinica LLC | Verification of clinical data |
WO2018161007A1 (en) | 2017-03-03 | 2018-09-07 | Mastercard International Incorporated | Method and system for storage and transfer of verified data via blockhain |
US20200394652A1 (en) | 2017-03-08 | 2020-12-17 | Ip Oversight Corporation | A method for creating commodity assets from unrefined commodity reserves utilizing blockchain and distributed ledger technology |
US10579368B2 (en) | 2017-03-10 | 2020-03-03 | Salesforce.Com, Inc. | Blockchain version control systems |
WO2018175666A1 (en) * | 2017-03-21 | 2018-09-27 | Dappsters, LLC | Blockchain systems and methods |
EP3379447B1 (de) | 2017-03-22 | 2022-04-27 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum manipulationssicheren speichern von informationen bezüglich objektbezogener massnahmen |
WO2018178750A1 (en) | 2017-03-31 | 2018-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for enabling a reliable flight recorder system in unmanned traffic management systems |
US10102526B1 (en) | 2017-03-31 | 2018-10-16 | Vijay K. Madisetti | Method and system for blockchain-based combined identity, ownership, integrity and custody management |
US10419209B1 (en) | 2017-04-26 | 2019-09-17 | Wells Fargo Bank, N.A. | Parallel assurance of blockchain signatures |
US10509891B2 (en) | 2017-05-03 | 2019-12-17 | Cisco Technology, Inc. | Method and system for content and service sharing |
US20180330342A1 (en) * | 2017-05-11 | 2018-11-15 | Gyan Prakash | Digital asset account management |
CN107451175B (zh) | 2017-05-23 | 2020-01-31 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
WO2019213781A1 (en) * | 2018-05-10 | 2019-11-14 | NXM Technologies Inc. | Security management for networked client devices using a distributed ledger service |
US11429960B2 (en) * | 2017-05-24 | 2022-08-30 | Nxm Labs, Inc. | Network configuration management for networked client devices using a distributed ledger service |
WO2018222202A1 (en) | 2017-06-02 | 2018-12-06 | Hewlett-Packard Development Company, L.P. | Digital composition hashing |
EP3416334B1 (en) | 2017-06-15 | 2020-01-15 | Accenture Global Solutions Limited | Portable biometric identity on a distributed data storage layer |
US20180374094A1 (en) | 2017-06-22 | 2018-12-27 | Mastercard International Incorporated | Method and system for indexing consumer enrollment using blockchain |
CN110770774A (zh) * | 2017-06-23 | 2020-02-07 | 维萨国际服务协会 | 数据存储中的验证和加密方案 |
KR101989450B1 (ko) | 2017-06-23 | 2019-09-30 | 홍석현 | 블록체인 기반의 공개 분산 데이터베이스에서 데이터에 대한 보안을 유지하는 방법 및 이를 이용한 블록체인 관리 서버 |
EP3425845A1 (de) | 2017-07-05 | 2019-01-09 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum erzeugen eines kryptographischen zeitstempels für ein digitales dokument auf mehrheitsbasis |
CN107612695A (zh) | 2017-07-31 | 2018-01-19 | 深圳市科迈爱康科技有限公司 | 基于区块链的知识管理方法、终端及服务器 |
CN107480990B (zh) | 2017-08-01 | 2021-02-26 | 中国联合网络通信集团有限公司 | 区块链记账方法及装置 |
US10728036B2 (en) | 2017-09-05 | 2020-07-28 | PeerNova, Inc. | Cryptographically linking related events processed across multiple processing systems |
CN111466096B (zh) | 2017-09-08 | 2021-12-31 | 尤利杰公司 | 提供不可变记录的系统和方法 |
US20190095585A1 (en) | 2017-09-27 | 2019-03-28 | International Business Machines Corporation | Blockchain based proactive chromosomal determination |
US11556521B2 (en) | 2017-09-29 | 2023-01-17 | Oracle International Corporation | System and method for providing an interface for a blockchain cloud service |
WO2019070853A1 (en) | 2017-10-04 | 2019-04-11 | The Dun & Bradstreet Corporation | SYSTEM AND METHOD FOR IDENTITY RESOLUTION ON A SET OF DISPARATE NETWORKS OF IMMUNE DISTRIBUTED REGISTERS |
US11121870B2 (en) | 2017-10-12 | 2021-09-14 | Mastercard International Incorporated | Method and system for interacting public and private blockchains with controlled participation |
JP6987594B2 (ja) | 2017-10-16 | 2022-01-05 | 株式会社日立製作所 | アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置 |
US10581591B1 (en) | 2017-10-17 | 2020-03-03 | Matthew Branton | Probabilistic secondary token issuance on a blockchain based on burning of a primary token of the blockchain |
US11210653B2 (en) | 2017-10-26 | 2021-12-28 | Mastercard International Incorporated | Method and system for prevention of fraudulent gift cards via blockchain |
US10762431B2 (en) | 2017-10-30 | 2020-09-01 | The Aerospace Corporation | Low probability transitions and boundary crossing into disallowed states for a more optimal solution |
US20190130416A1 (en) | 2017-11-01 | 2019-05-02 | Wesley John Boudville | Blockchain, notary and linket for mobile users |
US11075744B2 (en) | 2017-11-20 | 2021-07-27 | Acronis International Gmbh | Blockchain-based media content authentication methods and systems |
US11055419B2 (en) | 2017-12-01 | 2021-07-06 | Alan Health and Science | Decentralized data authentication system for creation of integrated lifetime health records |
WO2019117651A1 (ko) * | 2017-12-13 | 2019-06-20 | 서강대학교 산학협력단 | 블록체인 기반 IoT 환경에서의 다중 검색을 지원하는 데이터 구조체를 이용한 검색 방법 및 그 방법에 따른 장치 |
US11468444B2 (en) | 2017-12-18 | 2022-10-11 | Mastercard International Incorporated | Method and system for bypassing merchant systems to increase data security in conveyance of credentials |
US10250708B1 (en) | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
US11412383B2 (en) | 2018-01-03 | 2022-08-09 | Helium Systems , Inc. | Systems and methods for providing and using a decentralized wireless network |
US10574453B2 (en) | 2018-01-10 | 2020-02-25 | Ranjit Notani | System and computer program product for certified confidential data collaboration using blockchains |
SG11202006493XA (en) | 2018-01-26 | 2020-08-28 | DFINITY Stiftung | System architecture and method of processing data therein |
EP4287104A3 (en) | 2018-01-29 | 2024-01-17 | Panasonic Intellectual Property Corporation of America | Control method, controller, data structure, and electric power transaction system |
CN110097359A (zh) | 2018-01-29 | 2019-08-06 | 阿里巴巴集团控股有限公司 | 生成智能合约的方法及装置 |
CN108418795B (zh) | 2018-01-30 | 2019-05-28 | 百度在线网络技术(北京)有限公司 | 跨区块链的数据访问方法、装置、系统及计算机可读介质 |
US20190238316A1 (en) | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing intelligent consensus, smart consensus, and weighted consensus models for distributed ledger technologies in a cloud based computing environment |
TW201935299A (zh) | 2018-02-12 | 2019-09-01 | 林俊良 | 用於處理金融資產之策略模型腳本之區塊鏈系統、節點伺服器及其方法 |
US10554412B2 (en) | 2018-03-06 | 2020-02-04 | Robust Analytics, Inc. | Method and network to implement decentralized validation and authentication mechanisms to prevent ADS-B cyber-attacks |
US20190303932A1 (en) | 2018-03-28 | 2019-10-03 | NEC Laboratories Europe GmbH | Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts |
US20190303920A1 (en) | 2018-04-02 | 2019-10-03 | American Express Travel Related Services Company, Inc. | Transaction process using blockchain token smart contracts |
CN108512652B (zh) | 2018-04-02 | 2021-04-09 | 陆雷钦 | 基于时间证明的去中心化共识方法、系统及区块链系统 |
US10320569B1 (en) | 2018-04-05 | 2019-06-11 | HOTYB, Inc. | Systems and methods for authenticating a digitally signed assertion using verified evaluators |
US11223631B2 (en) | 2018-04-06 | 2022-01-11 | Hewlett Packard Enterprise Development Lp | Secure compliance protocols |
US11673722B2 (en) | 2018-04-23 | 2023-06-13 | Mastercard International Incorporated | Method and system for secure courier transport and data storage via blockchain |
CN110377239B (zh) * | 2018-04-27 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 数据签名方法、装置、服务器、系统及存储介质 |
CN108830710B (zh) * | 2018-05-02 | 2021-02-05 | 大国创新智能科技(东莞)有限公司 | 区块链交易平台及实现方法 |
CN111869187A (zh) * | 2018-05-07 | 2020-10-30 | 康维达无线有限责任公司 | Iot服务层系统与分布式分类账系统之间的互通 |
US10692086B2 (en) | 2018-05-07 | 2020-06-23 | Accenture Global Solutions Limited | Distributed ledger based identity and origins of supply chain application enabling financial inclusion and sustainability |
CN108665946B (zh) | 2018-05-08 | 2023-01-17 | 创新先进技术有限公司 | 一种业务数据的访问方法和装置 |
US11257081B2 (en) * | 2018-05-08 | 2022-02-22 | Oracle International Corporation | Integrating a blockchain ledger with an application external to the blockchain ledger |
US11005646B2 (en) | 2018-05-23 | 2021-05-11 | International Business Machines Corporation | Blockchain stochastic timer transaction synchronization |
CN108768630B (zh) | 2018-05-25 | 2021-02-12 | 全链通有限公司 | 区块链节点的加密通信方法和系统 |
US20190370504A1 (en) | 2018-05-30 | 2019-12-05 | Leo Edwardsson | Digital value tokens created and securely transferred by proof of electrical power generation |
US11323530B2 (en) | 2018-06-06 | 2022-05-03 | International Business Machines Corporation | Proxy agents and proxy ledgers on a blockchain |
WO2019236637A1 (en) * | 2018-06-06 | 2019-12-12 | Argosoperem Llc | Blockchain structure for an intellectual property exchange including a pointer to an oracle and user interface therefor |
US11120006B2 (en) | 2018-06-21 | 2021-09-14 | Amazon Technologies, Inc. | Ordering transaction requests in a distributed database according to an independently assigned sequence |
US10887081B2 (en) | 2018-06-28 | 2021-01-05 | International Business Machines Corporation | Audit trail configuration in a blockchain |
CN108881253B (zh) | 2018-06-29 | 2020-11-06 | 全链通有限公司 | 区块链实名参与方法和系统 |
US10691648B2 (en) | 2018-07-03 | 2020-06-23 | International Business Machines Corporation | Controlling volatility via blockchain |
CN108959228A (zh) * | 2018-07-13 | 2018-12-07 | 众安信息技术服务有限公司 | 基于区块链创建、检索、编辑数据的方法及可读存储介质 |
CN108964905A (zh) | 2018-07-18 | 2018-12-07 | 胡祥义 | 一种安全高效的区块链实现方法 |
US20200026834A1 (en) | 2018-07-23 | 2020-01-23 | One Kosmos Inc. | Blockchain identity safe and authentication system |
US10936732B2 (en) | 2018-07-29 | 2021-03-02 | Guardtime Sa | System and method for registering multi-party consent |
US20200037158A1 (en) | 2018-07-30 | 2020-01-30 | Hewlett Packard Enterprise Development Lp | Systems and methods for using smart contract and light and sound emitting assets provisioned with distributed ledger addresses to identify and locate assets |
CN109145188A (zh) * | 2018-08-03 | 2019-01-04 | 上海点融信息科技有限责任公司 | 用于搜索区块链数据的方法、设备及计算机可读存储介质 |
GB2576160B (en) | 2018-08-06 | 2023-01-04 | Univ Of Wolverhampton | Distributed ledger system |
CN109034805B (zh) | 2018-08-09 | 2022-09-02 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的时间戳签名验证方法 |
CN109086626B (zh) | 2018-08-09 | 2021-07-09 | 全链通有限公司 | 区块链网络的记账方法和系统 |
CN109190331B (zh) * | 2018-08-20 | 2020-10-16 | 电信科学技术第五研究所有限公司 | 一种基于区块链的航天测控网数据交易方法 |
WO2020041747A1 (en) | 2018-08-23 | 2020-02-27 | Averon Us, Inc. | Methods, apparatuses, and computer program products for frictionless electronic signature management |
US10819523B2 (en) | 2018-08-30 | 2020-10-27 | International Business Machines Corporation | Guarantee of ledger immutability |
US10833845B2 (en) | 2018-08-30 | 2020-11-10 | International Business Machines Corporation | Guarantee of ledger immutability |
US11521202B2 (en) * | 2018-08-30 | 2022-12-06 | International Business Machines Corporation | Distributed computing and storage network implementing high integrity, high bandwidth, low latency, secure processing |
US10764070B2 (en) | 2018-08-30 | 2020-09-01 | International Business Machines Corporation | High precision timestamps in blockchain |
US11140177B2 (en) * | 2018-08-31 | 2021-10-05 | Cisco Technology, Inc. | Distributed data authentication and validation using blockchain |
US20200074410A1 (en) | 2018-09-05 | 2020-03-05 | The Boeing Company | Aircraft Certification System Based On A Distributed Public Ledger |
US20200082349A1 (en) | 2018-09-07 | 2020-03-12 | Adp, Llc | Blockchain Timeclock System |
US10511447B1 (en) | 2018-09-26 | 2019-12-17 | Guardtime Sa | System and method for generating one-time data signatures |
CN109472696B (zh) | 2018-09-29 | 2021-07-23 | 腾讯科技(深圳)有限公司 | 资产交易方法、装置、存储介质及计算机设备 |
US11924360B2 (en) | 2018-10-08 | 2024-03-05 | Green Market Square Limited | Blockchain timestamp agreement |
US10805094B2 (en) | 2018-10-08 | 2020-10-13 | International Business Machines Corporation | Blockchain timestamp agreement |
US10608829B1 (en) | 2018-10-08 | 2020-03-31 | International Business Machines Corporation | Blockchain timestamp agreement |
US11153098B2 (en) | 2018-10-09 | 2021-10-19 | Ares Technologies, Inc. | Systems, devices, and methods for recording a digitally signed assertion using an authorization token |
US20200119906A1 (en) | 2018-10-15 | 2020-04-16 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for information isolation using a distributed ledger accessible by a cloud based computing environment |
US10951396B2 (en) | 2018-10-22 | 2021-03-16 | Nutanix, Inc. | Tamper-proof management of audit logs |
KR102444425B1 (ko) | 2018-10-23 | 2022-09-16 | 삼성에스디에스 주식회사 | 블록체인 트랜잭션에 대하여 배치 프로세싱을 수행하는 장치 및 그 방법 |
CN109450638B (zh) * | 2018-10-23 | 2021-11-02 | 国科赛思(北京)科技有限公司 | 基于区块链的电子元器件数据管理系统及方法 |
US20200136831A1 (en) | 2018-10-31 | 2020-04-30 | Ca, Inc. | Api and domain specific language for 1 to many, state-based, granular, terms and conditions acceptance |
CN112492006B (zh) | 2018-10-31 | 2023-12-05 | 创新先进技术有限公司 | 一种基于区块链的节点管理方法和装置 |
CN110352445B (zh) | 2018-11-27 | 2023-08-22 | 创新先进技术有限公司 | 使用智能合约执行多方交易 |
US11777748B2 (en) | 2018-11-28 | 2023-10-03 | International Business Machines Corporation | Trusted timestamping |
CN109559227A (zh) | 2018-11-29 | 2019-04-02 | 咪咕文化科技有限公司 | 一种跨区块链网络的交易方法、装置及存储介质 |
US11323475B2 (en) | 2018-12-29 | 2022-05-03 | Advanced New Technologies Co., Ltd. | System and method for detecting replay attack |
CN109726597B (zh) | 2018-12-29 | 2020-12-08 | 杭州趣链科技有限公司 | 基于区块链的可信时间戳系统 |
EP3574461A4 (en) | 2018-12-29 | 2020-01-22 | Alibaba Group Holding Limited | SYSTEM AND METHOD FOR DETECTING A PLAYBACK |
TWM578836U (zh) | 2019-01-03 | 2019-06-01 | 臺灣銀行股份有限公司 | 跨行帳號的金融授權系統 |
CN109815748B (zh) | 2019-01-24 | 2020-12-18 | 黄冈 | 一种基于区块链的中心数据源监察方法 |
US20200242597A1 (en) | 2019-01-29 | 2020-07-30 | Alessandro Baretta | Auditing system using a trusted and cryptographically secure database |
CN109921909B (zh) | 2019-02-15 | 2021-12-21 | 北京工业大学 | 基于贡献证明的区块链共识方法及装置 |
US10902419B2 (en) | 2019-02-22 | 2021-01-26 | Omnichain Solutions Inc. | Blockchain-based system for efficient storage and retrieval of disparate supply-side transaction information |
CN110188096B (zh) | 2019-04-18 | 2021-08-17 | 创新先进技术有限公司 | 一种数据记录的索引创建方法、装置及设备 |
CN110598463B (zh) | 2019-04-19 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 基于区块链的信息处理方法、装置和计算机可读存储介质 |
US11444776B2 (en) | 2019-05-01 | 2022-09-13 | Kelce S. Wilson | Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing |
CN110263035B (zh) | 2019-05-31 | 2023-10-27 | 创新先进技术有限公司 | 基于区块链的数据存储、查询方法及装置和电子设备 |
KR20200139034A (ko) | 2019-06-03 | 2020-12-11 | 삼성에스디에스 주식회사 | 블록체인 기반 컴퓨팅 시스템 및 그 시스템의 트랜잭션 관리 방법 |
CN110505065B (zh) | 2019-08-21 | 2021-07-20 | 腾讯科技(深圳)有限公司 | 一种可信时间戳添加方法、装置和存储介质 |
CN111602166B (zh) | 2019-08-30 | 2023-08-22 | 创新先进技术有限公司 | 在区块链上提供可遍历键值数据存储的方法和设备 |
CN111183446B (zh) | 2019-09-02 | 2023-06-30 | 创新先进技术有限公司 | 管理基于区块链的中心化账本系统 |
CN111226248B (zh) | 2019-09-02 | 2024-03-26 | 创新先进技术有限公司 | 管理基于区块链的中心化账本系统 |
WO2021042247A1 (en) | 2019-09-02 | 2021-03-11 | Advanced New Technologies Co., Ltd. | Managing blockchain-based centralized ledger systems |
WO2019228561A2 (en) | 2019-09-02 | 2019-12-05 | Alibaba Group Holding Limited | Managing blockchain-based centralized ledger systems |
EP3889869B1 (en) | 2019-09-02 | 2023-03-01 | Advanced New Technologies Co., Ltd. | Managing blockchain-based centralized ledger systems |
CN110543788A (zh) * | 2019-09-11 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、计算机可读存储介质和计算机设备 |
WO2019228573A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
KR20210040569A (ko) | 2019-10-04 | 2021-04-14 | 삼성에스디에스 주식회사 | 블록체인 기반 데이터 관리 시스템 및 그 방법 |
CN110727712B (zh) | 2019-10-15 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
WO2020035091A2 (en) | 2019-11-13 | 2020-02-20 | Alipay (Hangzhou) Information Technology Co., Ltd. | Managing trust points in ledger systems |
CN110992027B (zh) | 2019-11-29 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 在区块链中实现隐私保护的高效交易方法及装置 |
US20210273812A1 (en) | 2020-03-02 | 2021-09-02 | The Trustees Of Dartmouth College | Data system with information provenance |
SG11202103074PA (en) | 2020-04-22 | 2021-04-29 | Alipay Hangzhou Inf Tech Co Ltd | Managing transaction requests in ledger systems |
-
2020
- 2020-04-22 EP EP20738789.5A patent/EP3841549B1/en active Active
- 2020-04-22 SG SG11202103218YA patent/SG11202103218YA/en unknown
- 2020-04-22 CN CN202080001177.7A patent/CN111630549B/zh active Active
- 2020-04-22 WO PCT/CN2020/086204 patent/WO2020143855A2/en unknown
-
2021
- 2021-03-30 US US17/218,003 patent/US11455297B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3841549A2 (en) | 2021-06-30 |
WO2020143855A2 (en) | 2020-07-16 |
EP3841549B1 (en) | 2022-10-26 |
US11455297B2 (en) | 2022-09-27 |
WO2020143855A3 (en) | 2021-02-25 |
US20210334268A1 (en) | 2021-10-28 |
EP3841549A4 (en) | 2021-10-06 |
SG11202103218YA (en) | 2021-04-29 |
CN111630549A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111183446B (zh) | 管理基于区块链的中心化账本系统 | |
CN111656386B (zh) | 管理账本系统中的交易请求 | |
CN111226248B (zh) | 管理基于区块链的中心化账本系统 | |
CN111837359B (zh) | 管理基于区块链的中心化账本系统 | |
CN111183427B (zh) | 管理基于区块链的中心化账本系统 | |
CN111108526B (zh) | 管理基于区块链的中心化账本系统 | |
CN111406398B (zh) | 管理账本系统中的可信点 | |
CN111630545B (zh) | 管理账本系统中的交易请求 | |
CN111630549B (zh) | 管理账本系统中的交易请求 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037014 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |