CN111008402B - 区块链时间戳协定 - Google Patents
区块链时间戳协定 Download PDFInfo
- Publication number
- CN111008402B CN111008402B CN201910933073.9A CN201910933073A CN111008402B CN 111008402 B CN111008402 B CN 111008402B CN 201910933073 A CN201910933073 A CN 201910933073A CN 111008402 B CN111008402 B CN 111008402B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- timestamp
- node
- endorsement
- request
- 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
- 238000000034 method Methods 0.000 claims description 126
- 230000004044 response Effects 0.000 claims description 37
- 230000004048 modification Effects 0.000 claims description 15
- 238000012986 modification Methods 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000081511 Matthiola lunata Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/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/3297—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 time stamps, e.g. generation of time stamps
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例涉及区块链时间戳协定。示例操作可以包括以下中的一个或多个:从区块链网络中的客户端应用接收区块链请求;从区块链网络中的一个或多个背书节点接收区块链请求中包括的时间戳的有效性信息;基于从一个或多个背书节点接收到的有效性信息,修改区块链请求中包括的时间戳;基于经修改的时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对该组中的区块链请求进行排序;以及将经排序的区块链请求组存储在散列链接的数据区块链中的数据区块内。
Description
技术领域
本申请总体上涉及数据库存储系统,并且更特别地涉及诸如区块链的分散式数据库,在区块链中,区块链请求的时间戳信息在存储区块链请求之前被验证。
背景技术
集中式数据库存储并维护一个位置处的一个单个的数据库(例如,数据库服务器)中的数据。该位置通常是中央计算机,例如,服务器计算机、云服务中的计算机或大型计算机。被存储在集中式数据库中的信息通常从多个不同的点可访问。多个用户或客户端工作站可以例如基于客户端/服务器配置在集中式数据库上同时工作。由于其单个位置,尤其是出于安全性目的,集中式数据库易于管理、维护和控制。在集中式数据库内,因为所有数据的单个存储位置也意味着给定的数据集仅具有一个主记录,因此数据完整性被最大化并且数据冗余被最小化。这有助于尽可能准确和一致地维护数据并提高数据可靠性。
然而,集中式数据库存在明显的缺点。例如,集中式数据库具有单个故障点。特别地,如果不存在容错设置并且发生硬件故障,则数据库内的所有数据都将丢失,并且所有用户的工作都被中断。此外,集中式数据库高度依赖于网络连接性。因此,因特网连接越慢,每次访问数据库所需的时间量就越长。另一缺点是,当集中式数据库由于单个位置而经历高流量时会发生瓶颈。此外,由于数据库仅维护数据的一个副本,所以集中式数据库提供对数据的有限访问。因此,多个用户可能无法同时访问同一条数据,而不产生诸如覆写所存储的数据的问题。此外,由于中央数据库系统具有最小的甚至没有数据冗余,如果数据集意外丢失,则除了通过从备份磁盘存储装置手动操作之外,难以取回该数据集。
诸如区块链系统的分散式数据库提供了能够解决集中式数据库的缺点的存储系统。在区块链系统中,多个对等节点中的每一个将相同分类账的副本存储为分布式分类账,其通常被称为区块链。客户端与对等节点交互来获得对区块链的访问。对等节点可以由不同实体控制,该不同实体具有不同利益并因此不是彼此信任的实体。此外,在区块链中不存在中央权限。因此,为了以可信的方式将数据添加到分布式分类账或在分布式分类账上改变数据,必须出现对等节点的共识。共识提供了在互不信任的对等节点的区块链系统中实现信任的方法。
为了经由区块链进行交换或以其他方式存储数据,客户端可以向对等节点提交请求(例如,交易等)。请求应当按照其被提交的次序而被处理并被记录在区块链中,但由于节点的系统时钟可能不是完全彼此同步的并且节点之间存在网络延迟,因此不存在关于跨多个节点的时间达成一致的机制,从而难以确保公平的排序。此外,由于节点属于可能彼此不诚实表现的不同实体,因此每个节点可能通过将其自己的请求排得比其他节点的早,以试图获得优势/益处。
例如,在金融市场中,时间优先和价格优先是公平交易的原则。时间优先是在交易所处理卖单和买单的规则之一。这意味着当多个订单以相同价格针对同一股权被放置时,被放置较早的卖单/买单应与对应的卖单/买单匹配,并作为交易执行。如果卖单/买单的匹配由集中式系统处理,则系统可以顺序地处理每个订单,以遵循时间优先。但是,在分散式系统中,订单可以由多个系统并行处理,在此期间可能没有正确控制订单序列。无法确保正确的排序将导致不公平性,这是市场实践中不可接受的。
请求包括时间戳,时间戳指示请求由前端应用提交的时间。时间戳应当被用作在多个请求之间对请求进行排序的基础。在被适当地使用时,时间戳确保在多个交易与同一资源交互时给交易提供公平性。但是,区块链会受到欺诈。例如,应用节点可能被劫持或完全替换。这样的应用表现不诚实,并且放置早于真实时间戳的时间戳,使得请求可以比属于其他实体的应用所提交的请求更早地被排序。作为另一示例,对等节点可以故意忽略并延迟来自其他实体的请求的共识进行过程,使得那些请求将比其自己实体的请求更晚地被排序。因此,需要区块链内确保信任并防止区块链网络内的欺诈活动的时间管理机制。
发明内容
一个示例实施例可以提供计算系统,该计算系统包括以下中的一个或多个:网络接口,该网络接口被配置为从区块链网络中的客户端应用接收区块链请求,并且从区块链网络中的一个或多个背书(endorsing)节点接收区块链请求中包括的时间戳的有效性信息;以及处理器,该处理器被配置为以下中的一个或多个:基于从一个或多个背书节点接收到的有效性信息,修改区块链请求中包括的时间戳;基于该时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对该组中的区块链请求进行排序;以及将经排序的区块链请求组存储在散列链接的数据区块链之中的数据区块内。
另一示例实施例可以提供方法,该方法包括以下中的一个或多个:从区块链网络中的客户端应用接收区块链请求;从区块链网络中的一个或多个背书节点接收区块链请求中包括的时间戳的有效性信息;基于从一个或多个背书节点接收到的有效性信息,修改区块链请求中包括的时间戳;基于经修改的时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对该组中的区块链请求进行排序;以及将经排序的区块链请求组存储在散列链接的数据区块链中的数据区块内。
又一示例实施例可以提供包括指令的非瞬态计算机可读介质,该指令在由处理器读取时,使处理器执行以下中的一个或多个:从区块链网络中的客户端应用接收区块链请求;从区块链网络中的一个或多个背书节点接收区块链请求中包括的时间戳的有效性信息;基于从一个或多个背书节点接收到的有效性信息,修改区块链请求中包括的时间戳;基于经修改的时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对该组中的区块链请求进行排序;以及将经排序的区块链请求组存储在散列链接的数据区块链中的数据区块内。
又一示例实施例可以提供计算系统,该计算系统包括以下中的一个或多个:网络接口,该网络接口被配置为从区块链网络的多个背书节点接收区块链请求的背书,其中背书包括多个背书节点针对区块链请求提议的不同时间戳;以及处理器,该处理器被配置为以下中的一个或多个:基于多个背书节点的先前时间戳信息,将权重应用于由多个背书节点提议的不同时间戳;基于多个背书节点的经加权的时间戳,确定针对区块链请求的最终时间戳;以及基于最终确定的时间戳,将区块链请求布置在数据区块中。
又一示例实施例可以提供方法,该方法包括以下中的一个或多个:从区块链网络的多个背书节点接收区块链请求的多个背书,该多个背书包括由多个背书节点针对区块链请求提议的不同时间戳;基于多个背书节点的先前时间戳信息,将权重应用于由多个背书节点给定的不同时间戳;基于多个背书节点的经加权的时间戳,确定针对区块链请求的最终时间戳;以及基于最终确定的时间戳,将区块链请求布置在数据区块中。
附图说明
图1是图示根据示例实施例的用于时间戳协定的区块链网络的图。
图2A是图示根据示例实施例的用于资产共享场景的对等节点区块链架构配置的图。
图2B是图示根据示例实施例的对等节点区块链配置的图。
图3是图示根据示例实施例的许可区块链网络的图。
图4A是图示根据示例实施例的背书对等节点修改时间戳的过程的图。
图4B是图示根据示例实施例的客户端对等节点生成信誉值的过程的图。
图4C是图示根据示例实施例的排序节点确定最终时间戳的过程的图。
图5A是图示根据示例实施例的基于时间戳来将区块链交易背书的方法的图。
图5B是图示根据示例实施例的修改区块链交易的时间戳的方法的图。
图5C是图示根据示例实施例的基于有效性信息来修改交易的原始时间戳的方法的图。
图5D是图示根据示例实施例的基于经加权的时间戳来确定交易的最终时间戳的方法的图。
图5E是图示根据示例实施例的确定针对对等节点的信誉值的方法的图。
图5F是图示根据示例实施例的基于经加权的信誉来确定最终值的方法的图。
图6A是图示根据示例实施例的被配置为根据本文所描述的一个或多个操作来对区块链执行各种操作的物理基础设施的图。
图6B是图示根据示例实施例的签约方以及被配置为强制执行区块链上的智能合约条款的调解服务器之间的智能合约配置的图。
图6C是图示根据示例实施例的签约方以及被配置为强制执行区块链上的智能合约条款的调解服务器之间的智能合约配置的图。
图6D是图示根据示例实施例的另一示例的基于区块链的智能合约系统的图。
图7A是图示根据示例实施例的将新区块添加到区块链分类账的过程的图。
图7B是图示根据示例实施例的用于区块链的数据区块结构的内容的图。
图8是图示被配置为支持一个或多个示例实施例的示例计算机系统的图。
具体实施方式
容易理解,如本文附图中总体描述和图示的本发明的组件可以以各种不同的配置来布置和设计。因此,以下对如附图中所示的方法、装置、非瞬态计算机可读介质和系统中的至少一个的实施例的详细描述并非旨在限制所要求保护的本申请的范围,而仅仅是表示所选择的实施例。
贯穿本说明书描述的本发明的特征、结构或特性可以在一个或多个实施例中以任何合适的方式进行组合。例如,贯穿本说明书,短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合实施例描述的特定特征、结构或特性可以被包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言不一定都指代相同的实施例组,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式进行组合。
附加地,虽然可能已在实施例的描述中使用术语“消息”,但是本申请可以被应用于许多类型的网络数据,诸如,分组、帧、数据报等。术语“消息”还包括分组、帧、数据报及其任何等同物。此外,虽然在示例性实施例中可能描绘某些类型的消息和信令,但是它们不限于某个类型的消息,并且本申请不限于某个类型的信令。
示例实施例提供了提供区块链网络的方法、系统、非瞬态计算机可读介质、设备和/或网络,该区块链网络对区块链请求(例如,交易等)内的时间戳信息进行评估,以找到经伪造的时间戳。此外,区块链网络可以修改经伪造的时间戳信息并基于经校正的时间戳信息来存储交易。在一些实施例中,网络可以降低伪造时间戳的对等节点的信誉,使得该对等节点在提交新交易时和/或在对其他对等节点提交的交易进行背书时被网络高度仔细地检查。
分散式数据库是包括彼此通信的多个节点的分布式存储系统。区块链是分散式数据库的一个示例,区块链包括仅附加的不可变数据结构,其类似于能够维护互不信任方之间的记录的分布式分类账。不信任方在本文中被称为对等方或对等节点。每个对等方维护数据库记录的副本,并且在分布式对等方之间未达成共识的情况下,没有单个对等方可以修改数据库记录。例如,对等方可以执行共识协议,以验证区块链存储交易、将存储交易分组为区块、并在区块上构建散列链。该过程在必要时通过对存储交易进行排序来形成分类账,以保持一致性。在公共或免许可的区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链通常涉及本地加密货币并使用基于工作证明(PoW)的共识。另一方面,许可区块链数据库提供了可以使共享共同目标但彼此不完全信任的实体组之间的交互(例如,交换资金、商品、信息等的业务)安全的系统。
区块链对为分散式存储方案定制并被称为“智能合约”或“链代码”的任意可编程逻辑进行操作。在一些情况下,可以存在用于管理功能和参数的专用链代码,其被称为系统链代码。智能合约是受信任的分布式应用,其利用区块链数据库的防篡改属性和节点之间的底层协定,该底层协定被称为背书或背书策略。一般地,区块链交易通常必须在被交付区块链之前“被背书”,而未被背书的交易被忽略。典型的背书策略允许链代码以对于背书是必须的对等节点集的形式指定对于交易的背书方。当客户端将交易发送给背书策略中指定的对等方时,交易被执行来验证交易。在验证之后,交易进入排序阶段,其中共识协议被用来产生被分组为区块的经背书的交易的有序序列。
节点是区块链系统的通信实体。“节点”可以执行在以下意义上的逻辑功能:不同类型的多个节点可以在同一物理服务器上运行。节点在信任域中被分组,并且与以各种方式对其进行控制的逻辑实体相关联。节点可以包括不同类型,例如,向背书方(例如,对等方)提交交易调用并且将交易提议广播到排序服务(例如,排序节点)的客户端或提交客户端节点。另一类型的节点是可以接收客户端提交的交易、交付交易并维护区块链交易的分类账的状态和副本的对等节点。对等方也可以具有背书方的角色,但这不是必需的。排序服务节点或排序方是运行用于所有节点的通信服务的节点,并且该节点实现递送保证,例如,在交付交易和修改区块链的世界状态时向系统中的每个对等节点广播,世界状态是通常包括控制和设置信息的初始区块链交易的另一名称。
分类账是区块链的所有状态转换的有序、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书方节点、对等节点等)提交的链代码调用(即,交易)产生。交易可以使得资产密钥值对集作为一个或多个操作数(例如,创建、更新、删除等)被交付给分类账。分类账包括被用来在区块中存储不可变的有序记录的区块链(也称为链)。分类账还包括状态数据库,状态数据库维护区块链的当前状态。每个信道通常有一个分类账。每个对等节点为其是其中成员的每个信道维护分类账的副本。
链是被构造为散列链接的区块的交易日志,并且每个区块包括N个交易的序列,其中N等于或大于1。区块报头包括区块交易的散列,以及先前区块的报头的散列。以这种方式,分类账上的所有交易可以被排序并被加密地链接在一起。因此,不可能在不破坏散列链接的情况下篡改分类账数据。最近添加的区块链区块的散列表示链上的其之前的每个交易,从而可以确保所有对等节点处于一致且受信任的状态。链可以被存储在对等节点文件系统(即,本地、附接的存储装置、云等)上,从而高效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示链交易日志中包括的所有密钥的最新值。因为当前状态表示信道已知的最新密钥值,所以它有时被称为世界状态。链代码调用针对分类账的当前状态数据执行交易。为了使这些链代码交互高效,最新密钥值可以被存储在状态数据库中。状态数据库可以只是对链的交易日志的索引视图,因此它可以随时从链中被重新生成。在对等节点启动时且在接受交易之前,可以自动恢复(或根据需要生成)状态数据库。
当由诸如集中式数据库的单个系统处理交易或其他请求(过程、存储等)时,系统可以基于集中式系统何时接收到请求来顺序地处理每个订单,以遵守时间优先。然而,在并行处理系统中,请求可以由多个系统并行处理,在此期间订单序列可以改变。这样的并行性可能导致市场实践中不可接受的不公平性。为了确保公平性,应当基于应用接受订单的时间来对订单进行排序。
然而,在诸如区块链的分布式分类账技术(DLT)中,难以确保应用的时间戳的正确性,因为对等节点(即,客户端应用、对等方(背书方)和排序方等)并行地异步表现。此外,每个节点可以属于不同的组织。因此,时间戳可能被伪造或以其他方式错误地生成。例如,应用(客户端节点)可以在交易上放置任意不正确的时间戳,以在交易上具有更高的时间优先级。作为另一示例,背书方对等方可以延迟对来自其他对等方的交易提议的响应,以获得由与对等方相同的组织中的应用发布的交易的相对优势。
示例实施例通过提供区块链网络来克服这些缺点,该区块链网络对区块链请求(例如,交易等)内的时间戳信息进行评估以找到经伪造的时间戳。此外,区块链网络可以修改经伪造的时间戳信息并基于经校正的时间戳信息存储交易。在一些实施例中,网络可以降低伪造时间戳的对等节点的信誉,使得该对等节点在提交新交易时和/或在对由其他对等节点提交的交易进行背书时被网络高度仔细地检查。如本文所述,经伪造的时间戳可以是指有意地被添加到请求的不正确的时间戳,或者它可以包括已被有意延迟来创建太晚且因此不公平的实际时间戳的消息。
本文所描述和描绘的本公开的解决方案的一些益处包括对分布式分类账技术中的交易给出的定时(时间戳)的准确度的改进。在这样做时,即使诸如在区块链中,分类账具有不信任成员,系统也会创建次序的公平性。可以通过背书对等节点来监测和评估时间戳信息。如果背书节点确定时间戳值已被提交节点伪造,则背书节点可以将时间戳值改变为校正值。背书节点可以基于在背书节点和提交对等节点之间测量的网络延时来确定时间戳是否已被伪造。此外,背书节点可以基于网络延时来确定针对交易的提议时间戳,并将该值与从提交节点提供的时间戳进行比较。如果提议时间戳和提交时间戳相差超过阈值,则背书节点可以将时间戳值改变为提议时间戳。
区块链与传统数据库的不同之处在于区块链不是中央存储装置而是分散式的、不可变的且安全的存储装置,其中节点必须共享存储装置中记录的变化。区块链中固有的并且有助于实现区块链的一些属性包括但不限于:不可变的分类账、智能合约、安全性、隐私性、分散式、共识、背书、可访问性等,其在本文中被进一步描述。根据各个方面,使用区块链固有且唯一的、区块链的背书、共识和分布式属性来实现时间戳公平性。特别地,系统不仅仅依赖于背书对等节点的意见/确定。而是,当提交对等节点确定背书对等节点已向交易添加了不正确的时间戳时,提交对等节点可以接收经修改的时间戳并且生成针对背书对等节点的信誉值。这可以确保背书对等节点和提交对等节点之间的平衡。
此外,提交对等节点可以将包括在区块链内的交易传输到排序节点。排序节点可以对由提交节点提供的原始时间戳、由背书节点提交的经修改的时间戳、背书节点的信誉等进行评估,并且确定用于交易的最终时间戳。在一些实施例中,排序节点可以基于由背书对等节点和/或提交对等节点提供的时间戳的加权平均或加权组合来生成最终时间戳。最终时间戳可以用于使用数据区块中的交易组来对交易进行排序。
区块链平台采用多个共识机制。所提出的解决方案在诸如超分类账构造的共识机制等的共识机制之上被设计,其中区块链网络包括客户端应用、对等节点和排序服务节点。客户端应用是向区块链网络提交请求的前端服务。对等节点是管理分布式分类账的副本的节点。对等节点中的一些被称为背书节点(或背书对等方),其接收来自客户端应用的请求、验证请求、并将其背书返回给客户端应用。每个背书都是经数字签名的消息,其包括原始请求及其由背书节点验证的有效性、以及任何其他信息。排序服务节点是负责对区块链网络中的请求进行统一排序的特殊节点。客户端应用和对等方中的每一个属于作为区块链网络的参与方的组织(或实体)中的一个。
在超分类账构造的机制中,通过以下方式达成共识。首先,客户端应用向一个或多个背书节点发送请求并接收背书。背书策略针对每个类型的请求被预限定,以确定对于请求为有效,需要来自哪个组织的多少请求。因此,客户端应用从属于一个或多个组织的一个或多个背书对等方收集足够数目的背书。第二,在收集足够的背书之后,客户端应用将请求以及所收集的背书提交给排序服务。第三,排序服务节点接收来自多个客户端应用的请求、以统一的方式对其进行排序、并递送给对等节点。第四,然后每个对等节点接收请求并将其存储到其自己的分布式分类账的副本中。该机制确保请求在区块链网络中的对等方的所有副本中完全以相同的次序被排序。
在超分类账构造的原始共识机制中,背书对等方仅负责评估交易内容并导出所得到的读写集,而(多个)排序对等方负责以公平的方式对交易进行排序。所提出的想法扩展了当前的共识机制,使得关于交易到达时间的共识以分散式的方式进行。通过遵循区块链的分散式性质,它还考虑了以下可能性:每个背书对等方和提交对等方(例如,客户端应用等)可能不诚实表现。本文的系统改进了区块链内交易的时间先后顺序排序。
图1图示了根据示例实施例的用于区块链交易的时间戳协定的区块链网络100。参考图1,区块链网络100包括经由网络140(例如,因特网、私有网络等)进行通信的多个对等节点120-123和排序节点130。此处,对等节点120-123可以对应于不同的不信任实体,但是实施例不限于此。每个对等节点120-123可以能够充当用于提交在区块链上存储的交易的提交节点(客户端节点)。区块链可以被存储在分布式分类账中,分布式分类账在所有对等节点120-123之间复制。对等节点120-123中的每一个还可以能够充当背书节点。
在图1的示例中,客户端110向对等节点123提交交易请求,以在由区块链网络100管理的区块链内执行并存储。交易可以被转发给可以由一个或多个背书策略预限定的背书对等节点120和121。交易从对等节点123被提供给背书对等节点120和121,并且包括表示交易何时被提交给对等节点123的时间戳。然而,如果对等节点123失信地行动,则对等节点123可以减少时间戳(即,减少时间,等)来提高客户端交易的次序,使得它在时间上更早,从而提供击败与区块链上存储的相同物品或资产相关联的另一提交交易或在该另一提交交易之前出现的可能性。
因此,背书对等节点120和121中的每一个可以对由对等节点123添加的时间戳进行评估。例如,对等节点120-123可以各自包括监测线程,监测线程例行地测量相应对等节点120-123之间的网络延时值。因此,每个对等节点可以维护在相应对等节点与区块链网络中的其他对等节点之间的网络延时值的表。可以基于线程随机地、周期性地更新网络延时值,以随时间反映当前和更新的网络状况。基于背书对等节点(例如,对等节点120)与提交节点123之间的网络延时,背书对等节点可以确定针对客户端110何时将交易提交给提交对等节点123的、其自己的提议时间戳。换言之,背书对等节点可以基于当前网络延时状况来检查由提交对等节点123添加的时间戳是否准确。如果原始时间戳偏离提议时间戳,则背书对等节点可以确定原始时间戳无效、不正确、伪造、错误等。在任何情况下,背书对等节点可以修改时间戳、背书交易并将交易发送回提交对等节点123。该过程可以由针对每个交易的所有背书对等节点(例如,120和121)执行。
对等节点123可以检测时间戳是否已被背书对等节点120和/或121修改。在时间戳已被修改的情况下,对等节点123可以基于时间戳值的变化来确定针对背书对等节点120和121的信誉值。在一个背书对等节点失信地行动的情况下,其他对等节点可能具有与提交对等节点123提供的原始时间戳类似的时间戳值。但是,如果提交对等节点123失信地行动,则来自背书对等节点的所有时间戳值将被修改。因此,当最终交易提议被发送给排序节点130时,排序节点130可以容易地确定由提交对等节点123提供的时间戳是否应被给予更多权重或者由背书节点120和121提供的时间戳是否应被给予更多的权重。在一些情况下,排序节点可以给予每个时间戳一个权重并基于来自提交对等节点123和背书对等节点120和121的时间戳的加权组合来确定最终时间戳。此处,每个节点120、121和123可以被给予不同的相应权重。
在一些实施例中,当明确提交对等节点伪造了时间戳(即,提议时间戳与原始时间戳显著不同)时,背书对等节点可以拒绝背书交易。在这种情况下,交易可能没有被足够地背书,并且将不会被添加到区块链内的区块。
图2A图示了根据示例实施例的区块链架构配置200。参考图2A,区块链架构200可以包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例描绘)。这些节点参与许多活动,例如,区块链交易添加和验证过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略来背书交易,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可以发起区块链认证并且寻求写入区块链层216中存储的区块链不可变分类账,该分类账的副本也可以被存储在基础物理设施214上。区块链配置可以包括一个或多个应用224,一个或多个应用224链接到应用编程接口(API)222,以访问并执行所存储的程序/应用代码220(例如,链代码、智能合约等),程序/应用代码220可以根据参与方所寻求的定制配置而被创建,并且可以维护其自己的状态、控制其自己的资产并接收外部信息。这可以被部署为交易,并且经由附加到分布式分类账而被安装在所有区块链节点204-210上。
区块链基或平台212可以包括各种层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)以及可以用于接收和存储新交易并向正在寻求访问数据条目的审计方提供访问的基础物理计算机基础设施。区块链层216可以暴露提供对处理程序代码和接合物理基础设施214所必需的虚拟执行环境的访问的接口。加密信任服务218可以用于核实诸如资产交换交易的交易并保持信息私密。
图2A的区块链架构配置可以经由区块链平台212所暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储并传递数据,并且可以以具有被执行的条件或其他代码元素的智能合约和相关联的链代码的形式、由节点204-210来执行。作为非限制性示例,可以创建智能合约来执行提醒、更新和/或被改变、更新的其他通知等。智能合约本身可以用于标识与授权和访问要求以及分类账的使用相关联的规则。例如,读取集226可以由区块链层216中包括的一个或多个处理实体(例如,虚拟机)处理。写入集228可以包括密钥值的变化。物理基础设施214可以用于取回本文所述的任何数据或信息。
在链代码内,可以经由高级别应用和编程语言来创建智能合约,然后将其写入区块链中的区块。智能合约可以包括利用区块链(例如,区块链对等方的分布式网络)而被注册、存储和/或复制的可执行代码。交易是智能合约代码的执行,其可以响应于与智能合约相关联的条件被满足而被执行。智能合约的执行可以触发对数字区块链分类账的状态的(多个)受信任的修改。由智能合约执行引起的对区块链分类账的(多个)修改可以通过一个或多个共识协议在整个区块链对等方的分布式网络中被自动复制。
智能合约可以以密钥值对的格式将数据写入区块链。此外,智能合约代码可以读取被存储在区块链中的值并在应用操作中使用它们。智能合约代码可以将各种逻辑操作的输出写入区块链。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并被维护为私有。由智能合约使用/生成的临时数据由所供应的执行环境保存在存储器中,然后在区块链所需的数据被标识后被删除。
链代码可以包括具有附加特征的智能合约的代码解释。如本文所述,链代码可以是被部署在计算网络上的程序代码,其中链代码在共识过程期间由链验证器一起执行并验证。链代码接收散列并从区块链中取回与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识器的散列和从所存储的标识器模板数据创建的散列匹配,则链代码将授权密钥发送给所请求的服务。链代码可以将与加密细节相关联的数据写入区块链。
图2B图示了根据示例实施例的区块链的节点之间的交易流程250的示例。参考图2B,交易流程可以包括由应用客户端节点260向背书对等节点281发送的交易提议291。背书对等方281可以核实客户端签名并执行链代码函数来发起交易。输出可以包括链代码结果、被读取在链代码中的密钥/值版本集(读取集)以及被写入在链代码中的密钥/值集(写入集)。如果被批准,则将提议响应292连同背书签名一起发送回客户端260。客户端260将背书组装到交易有效负载293中并将其向排序服务节点284广播。排序服务节点284然后将经排序的交易作为区块递送到信道上的所有对等方281-283。在向区块链交付之前,每个对等方281-283可以验证交易。例如,对等方可以检查背书策略来确保正确指派的指定对等方已对结果进行签名并且针对交易有效负载293对签名进行了认证。
客户端节点260可以通过构造并向作为背书方的对等节点281发送请求来发起交易291。可以存在多于一个背书方,但为方便起见,此处示出了一个背书方。客户端260可以包括利用所支持的软件开发工具包(SDK)(例如,NODE、JAVA、PYTHON等)的应用,该应用利用可用的API来生成交易提议。交易提议291是调用链代码函数的请求,使得可以将数据读取和/或写入分类账(即,为资产写入新的密钥值对)。SDK可以用作填充程序,以将交易提议封装成适当的架构格式(例如,通过远程过程调用(RPC)的协议缓冲)并且获取客户端的加密凭证来产生用于交易提议的唯一签名。
作为响应,背书对等节点281可以核实:(a)交易提议良好地形成,(b)过去尚未提交交易(重放-攻击保护),(c)签名有效,(d)提交方(在该示例中为客户端260)被适当授权,以在该信道上执行提议的操作,并且(e)原始时间戳有效,或以其他方式将时间戳修改为正确。背书对等节点281可以将交易提议输入作为被调用的链代码函数的参量。然后针对当前状态数据库执行链代码,以产生包括响应值、读取集和写入集的交易结果。但是,此时没有对分类账进行更新。在292中,将值的集连同背书对等节点281的签名作为提议响应292传递回客户端260的SDK,该SDK对有效负载进行解析,以供应用使用。
作为响应,客户端260的应用检验/验证背书对等方签名并对提议响应进行比较,以确定提议响应是否相同。如果链代码仅查询分类账,则应用将检验查询响应并且通常将不会向排序节点服务284提交交易。如果客户端应用想要将交易提交给排序节点服务284来更新分类账,则应用确定指定的背书策略是否已在提交之前被满足(即,交易所需的所有对等节点是否都背书交易)。此处,客户端可以仅包括交易的多方中的一方。在这种情况下,每个客户端可以具有其自己的背书节点,并且每个背书节点都将需要背书交易。架构使得即使应用选择不检验响应或以其他方式转发未经背书的交易,背书策略仍将由对等方强制执行并在交付验证阶段被支持。
在成功检验之后,在步骤293中,客户端260将背书组装到交易中,并向排序节点284广播交易消息内的交易提议和响应。交易可以包含读取/写入集、背书对等方签名和信道ID以及本文描述的时间戳信息和信誉信息。排序节点284不需要检验交易的整个内容来执行其操作,相反,排序节点284可以简单地从网络中的所有信道接收交易、确定针对每个交易的最终时间戳、按信道对其在时间上排序并创建每个信道的交易区块。
交易区块从排序节点284被递送到信道上的所有对等节点281-283。区块内的交易294被验证以确保任何背书策略被满足并确保读取集变量的分类账状态自读取集由交易执行生成起没有变化。区块中的交易被标记为有效或无效。此外,在步骤295中,每个对等节点281-283将区块附加到信道的链,并且对于每个有效交易,向当前状态数据库交付写入集。事件被发出以通知客户端应用交易(调用)已被不可变地附加到链,以及通知交易是被验证还是被无效。
图3图示了许可区块链网络300的示例,许可区块链网络300的特征在于分布式、分散式的对等架构以及管理用户角色和许可的证书授权方318。在该示例中,区块链用户302可以向许可区块链网络310提交交易。在该示例中,交易可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过REST API等而被发布。受信任的商业网络可以提供对监管方系统314的访问,监管方系统314诸如审计方(例如,美国股票市场中的证券交易委员会)。同时,节点308的区块链网络运营方系统对成员许可进行管理,诸如,将监管方系统310登记为“审计方”并且将区块链用户302登记为“客户端”。审计方可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链代码。
区块链开发方系统316编写链代码和客户端侧应用。区块链开发方系统316可以通过REST接口将链代码直接部署到网络。为了在链代码中包括来自传统数据源330的凭证,开发方系统316可以使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点312连接到网络。在继续任何交易之前,对等节点312从证书授权方318取回用户的登记和交易证书。在一些情况下,区块链用户必须拥有这些数字证书,以在许可区块链网络310上进行交易。同时,尝试驱动链代码的用户可以被要求在传统数据源330上核实其凭证。为了确认用户的授权,链代码可以通过传统处理平台320,使用带外连接到该数据。
图4A图示了根据示例实施例的背书对等节点修改时间戳的过程400A。参考图4A,客户端对等节点A 410从客户端提交交易,以供对等节点B 420和对等节点C 430进行背书。作为响应,每个背书对等方(例如,对等节点A 420和对等节点B 430等)可以执行以下步骤来尝试背书交易提议txi。例如,每个对等方可以通过使用其他方式(例如,ICMP等)来测量相应对等方和对等节点A 410之间的网络延时(即,La-pj)。每个对等方可以在背书对等方接收到交易提议txi时记录时间戳rji。然后计算rji-ai作为客户端对等节点A 410与其自身之间的估计网络延时。此处,如果估计网络延时大于预先测量的网络延时,并且差异大于可接受的误差(即,rji-ai-La-pj>err),则相应的背书对等方可以确定对等节点A 410在交易上放置了伪造的时间戳。作为响应,背书对等方可以在422和432中基于提议的新时间戳来校正或修改时间戳,和/或可以在424和434中通过对其背书或者不背书来确定是否拒绝交易提议。
在图4A的示例中,背书对等节点B 420和背书对等节点C 430分别在424和434中各自确定背书交易。在背书交易之前,背书对等方可以确定所提议或经修改的时间戳。为了确定经修改的时间戳,背书对等方可以基于在接收到背书请求时创建的其自己的时间戳减去网络延时(即,pji=rji-La-pj)来估计对等节点A处的txi的正确时间戳。在执行链代码之后,对等方将所估计的时间戳(pji)附加到背书并将背书转发回客户端节点A 410。
根据各种实施例,因为每个背书方直接从生成交易的对等节点接收客户端应用的交易,所以每个背书方可以考虑网络延时,使得它可以(并且旨在)对客户端应用的时间戳的正确性进行评估。因此,为了准确,有必要考虑客户端应用和背书对等方之间的网络延时。另一方面,一些对等方可能是不公平的并试图延迟一些客户端应用的交易。排序方(如图4C所示)试图通过考虑背书对等方的信誉来避免这样的情况。在一些实施例中,网络延时可以由背书对等方本身确定。例如,可以实现新的网络延时监测器线程,其通过使用ICMP协议(即,ping)并将其存储在例如存储器中存储装置或文件中,定期测量网络的背书对等方与其他对等节点之间的网络延时。
在一些实施例中,每个背书对等方可以限定针对时间戳偏差的阈值。作为非限制性假设示例,阈值可以是10秒。在该示例中,背书对等方(i)可以在时间戳的偏差大于10秒时拒绝背书,以及(ii)以其他方式修复时间戳。实际上,(i)可以是可选的,并且对等方可以始终修复时间戳。但是,对等方具有(i)选项的原因可能是在对等方确定客户端应用正在放置伪造时间戳并且表现不公平时。
图4B图示了根据示例实施例的客户端节点A 410生成信誉值的过程400B,并且图4C图示了根据示例实施例的排序节点确定最终时间戳的过程400C。在该示例中,背书节点B420和背书节点C 430两者都背书由客户端节点A 410提交的、具有在相应节点处计算的经修改的时间戳的交易。作为响应,客户端节点A 410可以标识经修改的时间戳并生成针对背书节点中的每一个的信誉值。例如,客户端节点A 410可以确定背书对等方在背书(pji)中的所估计的时间戳和应用(app)时间戳(ai)不同,并且它们的差异(pji-ai)大于阈值。在这种情况下,客户端节点A 410可以针对背书对等方420和430生成负信誉412和414并将负信誉412和414附接到交易。同样地,当背书被错误地拒绝时,客户端节点410A可以附接对等方的负信誉。
包括对等方A、B和C的区块链网络的背书策略限定了交付每个交易需要多少背书。因此,如图4C所示,如果客户端节点A 410在即使排除任何拒绝的背书对等方时仍接收到足够的背书,则它仍然可以将交易提交给排序节点440。然后,排序节点440可以基于时间戳对交易进行排序,并生成具有经排序的交易的数据区块。此外,排序节点440可以将具有经排序的交易的区块递送到每个对等方(A、B和C等),以存储在分布式分类账上。然后,每个对等方将根据背书策略检查交易中的每一个是否具有足够的背书并将交易交付给分类账。
再次参考图4B,客户端节点A 410可以确定相应背书对等方A 420和B 430中的每一个的信誉,并将其发送给排序节点440,排序节点440可以使用对等方信誉来确定最终时间戳442。在一些实施例中,为了在对等方之间共享信誉,信誉可以被存储在分类账数据中,分类账数据将被自动传播到具有相同分类账的所有对等方。
客户端节点A 410可以通过比较客户端节点A 410关于txi(ai)的时间戳与诸如对等节点A 420和对等节点B 430的背书对等方的时间戳之间的差异来决定每个对等方的信誉。当时间戳差异大于所有对等方的平均值时,客户端节点A 410可以向对等方分配较低的信誉。在该示例中,当计算平均值时,客户端节点A 410可以忽略其时间戳差异与客户端节点A 410的时间戳相比大于可允许误差的对等方。
以下是由客户端节点A 410计算信誉的示例步骤。(这仅是一个示例并且其他方法是可能的)
令repj为peerj(对等方j)的信誉,其由0和1之间的数表示(即,1为最高)。令err为可允许误差。通过对等方pj(j=1...k)但是在移除所有pji之后获得pi-ave,作为关于txi的时间戳的平均值,其中(pji-ai)>err。在移除所有pji之后,获得s作为pj(j=1...k)的标准偏差,其中(pji-ai)>err。repj=1-(pji-pi-ave)/s,如果repi<0,则repi=0。
图4C图示了根据示例实施例的排序节点440基于组444之间交易的经修改的最终时间戳值来确定最终时间戳442并在组444中布置交易的过程400C。在图4C的示例中,排序节点440可以针对txi确定其自己的时间戳oi。在该示例中,排序节点440可以将其时间戳oi计算为客户端节点A 410的时间戳ai和背书对等方的时间戳(p1i,p2i,...)的加权平均值,其中根据每个对等方的信誉确定权重。可以存在多个类型的信誉,包括针对每个交易的peerj信誉(repj)以及累加的信誉(REPj)。排序节点440可以给出对从属于与具有不良信誉的对等方相同组织的客户端节点发送的交易的惩罚。惩罚可以被给定为应用的时间戳的小权重。
排序方可以根据oi对交易进行排序或以其他方式布置交易(具有较小oi的交易将被放置在队列中的较早位置)。在该示例中,排序节点440可以基于由客户端节点A 410提供的原始时间戳和由排序节点440创建的最终时间戳442之间的差异,将交易移出其原始次序并且移到新的经修改的次序(如框444所示)。排序节点440可以通过计算应用和对等方的时间戳的平均值来获得时间戳Oi。排序方也可以使用每个对等方的信誉作为权重,因此具有较低信誉的对等方的时间戳对平均值的影响较小。以下是计算时间戳Oi的示例步骤(这只是一个示例且其他方法是可能的)。通过对等方pj(j=1...k)获得pi-ave,作为关于txi的时间戳的平均值。令ni为将背书提供给txi的对等方的数目。Oi=pi-ave+(Σk j=1(pji–pi-ave)*repi*REPi)/ni.
图5A图示了根据示例实施例的基于时间戳来背书区块链交易的方法510。例如,方法510可以由区块链网络内的客户端应用执行。参考图5A,在511中,方法可以包括从客户端(也被称为客户端对等节点或客户端节点)接收区块链请求。例如,区块链请求可以包括将由区块链网络内的一个或多个对等节点进行背书的交易。在512中,方法可以包括基于客户端应用(或主存客户端应用的系统)与背书节点之间的网络路径来确定提交交易的客户端应用和执行方法的背书节点之间的网络延时。此处,可以由在背书对等节点上运行的监测线程来测量网络延时,监测线程周期性地或随机地测量背书节点与区块链网络中的其他对等节点之间的网络延时,并将延时值存储在背书对等节点的存储器内维护的表或文件中。
在513中,方法可以包括从区块链请求中提取时间戳。例如,时间戳可以被包括在区块链消息的报头或数据部分内,并且可以由提交交易以供背书的对等节点添加到消息中。在514中,方法可以包括基于客户端应用和背书节点之间的网络延时来确定所提取的时间戳是否无效。此外,在515中,方法可以包括:响应于确定时间戳有效,生成针对区块链请求的背书并且将背书传输到客户端应用。在一些实施例中,响应于确定时间戳无效,方法还可以包括拒绝背书区块链请求。在一些实施例中,方法还可以包括:模拟区块链请求,并且响应于确定时间戳有效且成功模拟区块链请求而生成背书。
根据各种实施例,确定所提取的时间戳是否无效可以包括:基于网络延时来估计针对区块链请求的时间戳,并且确定所提取的时间戳是否在所估计的时间戳的预限定阈值内。在一些实施例中,确定所提取的时间戳是否无效可以包括确定所提取的时间戳是否太早。
图5B图示了根据示例实施例的修改区块链交易的时间戳的方法520。例如,方法520可以由区块链网络内的背书对等节点来执行。参考图5B,在521中,方法可以包括从客户端系统上主存的客户端应用接收区块链请求。例如,区块链请求可以包括由被称为客户端节点的另一对等节点提交的交易。在522中,方法可以包括从区块链请求中提取时间戳。此处,时间戳可以由将交易提交给背书对等节点的客户端应用添加到交易中。
在523中,方法可以包括:基于由客户端应用在客户端应用和背书节点之间确定的网络延时,确定所提取的时间戳是否不正确。此外,响应于确定所提取的时间戳不正确,在524中,方法可以包括:确定针对区块链请求的正确时间戳,通过利用正确的时间戳替换所提取的时间戳来修改区块链请求,以及将具有经修改的时间戳的区块链请求发送到客户端应用。在一些实施例中,方法还可以包括:基于对等节点和背书节点之间的网络路径,确定客户端应用和背书节点之间的网络延时。在一些实施例中,确定所提取的时间戳是否不正确可以包括:基于网络延时来估计针对区块链请求的时间戳,并且确定所提取的时间戳是否在所估计的时间戳的预限定阈值内。在一些实施例中,修改可以包括利用所估计的时间戳替换所提取的时间戳。在一些实施例中,方法可以包括:确定所提取的时间戳是否不正确包括确定所提取的时间戳是否太早。
图5C图示了根据示例实施例的基于有效性信息修改交易的原始时间戳的方法530。例如,方法530可以由区块链网络的排序节点执行。参考图5C,在531中,方法可以包括从区块链网络中的客户端应用接收区块链请求。例如,请求可以包括由客户端节点提交并由一个或多个其他背书节点进行背书的交易。在532中,方法可以包括从区块链网络中的一个或多个背书节点接收区块链请求中包括的时间戳的有效性信息。例如,有效性信息可以包括由一个或多个背书对等节点提议的、针对区块链请求的不同提议时间戳。在一些实施例中,有效性信息还可以包括关于背书对等节点的信誉信息,以用于给定对于提议时间戳的权重。
在533中,方法可以包括:基于从一个或多个背书节点接收的有效性信息,修改区块链请求中包括的时间戳。修改可以包括生成针对交易的最终时间戳值,最终时间戳值不同于由将交易提交给区块链网络的客户端应用添加到交易的原始时间戳。例如,修改可以包括:响应于指示时间戳太早的有效性信息,向区块链请求中包括的时间戳添加附加的时间。
在534中,方法可以包括:基于经修改的时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对区块链请求组中的区块链请求进行排序。例如,可以基于时间戳值,将区块链交易排序或以其他方式插入到具有其他交易的队列中。此处,与原始时间戳相比,经修改的时间戳可以改变区块链交易在队列中被插入、布置或排序的定位。队列可以用于存储区块链交易组,该区块链交易将被存储在区块链的数据区块中。在535中,方法可以包括在散列链接的数据区块链中的数据区块内存储经排序的区块链请求组。在一些实施例中,方法还可以包括:将数据区块传输到对等节点和一个或多个其他对等节点,以存储在区块链中。
图5D图示了根据示例实施例的基于时间戳的加权平均来确定针对交易的最终时间戳的方法540。例如,方法540可以由区块链网络的排序节点执行。参考图5D,在541中,方法可以包括从区块链网络的多个背书节点接收区块链请求(例如,交易、存储请求等)的多个背书。根据各种实施例,多个背书可以包括由多个背书节点针对区块链请求提议的不同时间戳。例如,每个背书可以包括由背书对等节点提议的、指示由客户端对等节点上的客户端应用生成交易的时间点的提议时间戳。
在542中,方法可以包括:基于多个背书节点的先前时间戳信息,将权重应用于由多个背书节点给出的不同时间戳。可以基于由其他背书节点确定的区块链网络内的背书节点的准确度来确定权重。在一些实施例中,多个对等节点中的每个对等节点可以包括基于先前时间戳准确度的准确度值。在543中,方法可以包括基于多个对等节点的加权时间戳来确定针对区块链请求的最终时间戳,并且在544中,基于最终确定的时间戳,将区块链请求布置在数据区块中。在一些实施例中,布置可以包括:基于最终确定的时间戳,相对于队列中的区块链请求的时间戳,将区块链请求插入区块链请求的经排序的队列内。在一些实施例中,方法还可以包括将包括区块链请求的数据区块存储在散列链接的数据区块链内。
图5E图示了根据示例实施例的确定针对对等节点的信誉值的方法550。例如,方法550可以由将交易提交给区块链网络、客户端设备等的客户端应用(客户端节点)来执行。参考图5E,在551中,方法可以包括接收区块链请求,区块链请求包括由区块链网络内包括的一个或多个背书节点添加的时间戳。此处,时间戳可以是由至少一个背书对等节点添加到区块链请求的时间戳。时间戳可以是客户端节点生成交易的提议时间。在552中,方法可以包括:标识由一个或多个背书节点中的背书节点添加的时间戳是对由客户端应用提供的先前添加的时间戳的修改。即,客户端应用可以确定背书节点已改变了由客户端应用原始添加的时间戳。
在553中,方法可以包括:基于由背书节点添加的时间戳与由计算节点提供的先前添加的时间戳之间的差异,确定针对背书节点的信誉值。在一些实施例中,可以基于从先前的区块链请求确定的信誉值的累加来确定信誉值,该先前的区块链请求包括由背书节点添加的时间戳。在554中,方法还可以包括将所确定的背书节点的信誉值传输到区块链网络内的排序节点。在一些实施例中,方法还可以包括:基于先前添加的时间戳与由对等节点添加的时间戳之间的时间差异,确定由背书节点添加的时间戳具有太多的延迟。
在一些实施例中,553中的确定可以包括:响应于由背书节点添加的时间戳与先前添加的时间戳之间的差异大于来自区块链网络上的多个背书节点之间的平均差异,将较低的信誉值分配给背书节点。作为另一示例,553中的确定可以包括:响应于由背书节点添加的时间戳与先前添加的时间戳之间的差异小于区块链网络上的多个背书节点之间的平均差异,将较高的信誉值分配给背书节点。在一些实施例中,方法还包括忽略由背书节点添加的时间戳,并且使用先前添加的时间戳将区块链请求提交给排序节点。
图5F图示了根据示例实施例的基于加权信誉来确定最终值的方法560。例如,方法560可以由区块链网络的排序节点执行,该排序节点接收区块链交易和区块链交易的背书,并且对交易进行排序,以存储在区块链上的数据区块中。参考图5F,在561中,方法可以包括接收针对区块链的区块链请求。存储请求可以包括交易,交易包括由区块链网络的多个背书节点提议的多个不同值(例如,时间戳、财务、意见、医疗诊断等)。此处,每个背书对等节点可以提议要被应用于交易的值,该值不同于由提交(客户端)节点添加的原始值。例如,不同的时间戳可以表示由客户端向区块链网络提交存储请求的估计时间。但是,值不限于时间戳。
在562中,方法可以包括:使用基于多个背书节点的相应信誉的不同值的加权组合,确定针对区块链请求的最终值。例如,确定可以包括:将较高权重应用于由具有较高信誉的背书节点提议的值,并且将较低权重应用于由具有较低信誉的不同背书节点提议的不同值。在563中,方法可以包括:基于所确定的最终值,对区块链请求组内的区块链请求进行排序。在564中,方法可以包括:将经排序的存储请求组存储在散列链接的数据区块链之中的数据区块内。
图6A图示了根据示例实施例的、被配置为根据示例操作方法中的一个或多个对区块链执行各种操作的示例物理基础设施。参考图6A,示例配置600A包括具有区块链620和智能合约640的物理基础设施610,物理基础设施610可以执行示例实施例的任一个中包括的操作步骤612的任一个。步骤/操作612可以包括在一个或多个流程图和/或逻辑图中描述或描绘的步骤中的一个或多个步骤。这些步骤可以表示从驻留在计算机系统配置的物理基础设施610上的一个或多个智能合约640和/或区块链620写入或读取的输出或写入信息。数据可以从所执行的智能合约640和/或区块链620输出。物理基础设施610可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。在一些实施例中,可以执行也被称为链代码的智能合约640,以从区块链通知板中取回区块链资源信息。
图6B图示了根据示例实施例的、签约方以及被配置为强制执行区块链上的智能合约条款的调解服务器之间的示例智能合约配置。参考图6B,配置650B可以表示由智能合约640驱动的通信会话、资产转移会话或进程或过程,智能合约640明确地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约640的内容可能需要由智能合约交易的各方中的一个或多个实体652和656进行数字签名。智能合约执行的结果可以作为区块链交易被写入区块链。
图6C图示了根据示例实施例的、签约方以及被配置为强制执行区块链上的智能合约条款的调解服务器之间的示例智能合约配置。参考图6C,配置650可以表示由智能合约630驱动的通信会话、资产转移会话或进程或过程,智能合约630明确地标识一个或多个用户设备652和/或656。智能合约执行的执行、操作和结果可以由服务器654管理。智能合约630的内容可能需要由智能合约交易的各方中的一个或多个实体652和656进行数字签名。智能合约执行的结果可以作为区块链交易被写入区块链620。智能合约630驻留在区块链620上,区块链620可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上。
图6D图示了根据示例实施例的用于访问区块链的逻辑和数据的公共接口。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合约630或其他链代码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接到区块链对等方(即,服务器654)来执行区块链上的交易(调用、查询等)的公共接口。服务器654是区块链网络对等组件,其保存世界状态的副本和分布式分类账,从而允许客户端652和656查询关于世界状态的数据以及将交易提交到区块链网络中,其中根据智能合约630和背书策略,背书对等方将运行智能合约630。
图7A图示了根据示例实施例的新区块730被添加到分布式分类账720的过程700,以及图7B图示了根据示例实施例的用于区块链的区块结构730的内容。参考图7A,客户端(未示出)可以向区块链节点711、712和/或713提交交易。客户端可以是从任何源接收以在区块链上制定活动的指令。作为一个示例,客户端可以是充当请求方(例如,设备、个人或实体)、以提议针对区块链的交易的应用(基于SDK)。多个区块链对等方(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式分类账720的副本。
区块链网络中可以存在不同类型的区块链节点/对等方,包括背书对等方和交付对等方,背书对等方对由客户端提议的交易进行模拟和背书,交付对等方核实背书、验证交易并向分布式分类账720交付交易。在该示例中,区块链节点711、712和713可以执行背书方节点、交付方节点或两者的角色。
分布式分类账720包括将不可变的序列记录存储在区块中的区块链722以及维护区块链722的当前状态(密钥值)的状态数据库724(当前世界状态)。每个信道可以存在一个分布式分类账720且每个对等方针对它们是其成员的每个信道维护其自己的分布式分类账720的副本。区块链722是交易日志,其被构造为散列链接的区块,其中每个区块包含N个交易的序列。区块(例如,区块730)可以包括诸如图7B中所示的各种组件。可以通过在当前区块的区块报头中添加先前区块的报头的散列来生成区块的链接(由图7A中的箭头示出)。以这种方式,区块链722上的所有交易被排序并加密链接在一起,从而防止在不破坏散列链接的情况下篡改区块链数据。此外,由于链接,区块链722中的最新区块表示在其之前的每个交易。区块链722可以被存储在支持仅附加的区块链工作负载的对等文件系统(本地或附接存储)上。
区块链722和分布式分类账720的当前状态可以被存储在状态数据库724中。此处,当前状态数据表示区块链722的链交易日志中包括的所有密钥的最新值。链代码调用针对状态数据库724中的当前状态执行交易。为了使这些链代码交互极其高效,可以将所有密钥的最新值存储在状态数据库724中。状态数据库724可以包括到区块链722的交易日志中的索引视图,并且因此可以在任何时间从链中再生成。在交易被接受之前,状态数据库724可以在对等方启动时自动恢复(或在需要时生成)。
背书节点从客户端接收交易并基于模拟结果背书交易。背书节点保存模拟交易提议的智能合约。背书交易所需的节点取决于可以在链代码中指定的背书策略。背书策略的一个示例是“大部分背书对等方必须背书交易”。不同的信道可以具有不同的背书策略。经背书的交易由客户端应用转发给排序服务710。
排序服务710接受经背书的交易,将它们排序到区块中并将区块递送给交付对等方。例如,排序服务710可以在交易阈值已被达到、计时器超时或其他条件时发起新的区块。排序服务710可以基于本文描述的时间戳协定过程来进行操作,例如,基于来自区块链节点711-713等的时间戳的加权平均来计算针对每个交易的最终时间戳。在图7A的示例中,区块链节点712是已接收到新的数据区块730以在区块链722上存储的交付对等方。
排序服务710可以由排序方的集群组成。排序服务710不处理交易、智能合约或维护共享分类账。而是,排序服务710可以接受经背书的交易,确定针对交易的最终时间戳,并且基于最终时间戳来指定向分布式分类账720交付那些交易的次序。区块链网络的架构可以被设计成使得“排序”的特定实现(例如,Solo、Kafka、BFT等)成为可插入组件。
以一致的次序将交易写入分布式分类账720。建立交易的次序以确保当状态数据库724的更新被交付给网络时是有效的。与通过求解加密拼图或挖掘进行排序的加密货币区块链系统(例如,比特币等)不同,在该示例中,分布式分类账720的各方可以选择最适合该网络的排序机制,诸如,按时间先后顺序排序。
当排序服务710将新区块730初始化时,新区块730可以被广播到交付对等方(例如,区块链节点711、712和713)。作为响应,每个交付对等方通过检查来验证新区块730内的交易,以确保读取集和写入集仍然与状态数据库724中的当前世界状态匹配。具体地,交付对等方可以确定背书方模拟交易时存在的读取数据是否与状态数据库724中的当前世界状态相同。当交付对等方验证交易时,交易被写入分布式分类账720上的区块链722,并且利用来自读取写入集的写入数据来更新状态数据库724。如果交易失败,即,如果交付对等方发现读取写入集与状态数据库724中的当前世界状态不匹配,则被排序到区块中的交易仍将被包括在该区块中,但它将被标记为无效,且状态数据库724将不被更新。
参考图7B,被存储在分布式分类账720的区块链722上的区块730(也被称为数据区块)可以包括多个数据段,诸如区块报头732、区块数据734和区块元数据736。应当理解,各种描述的区块及其内容,诸如图7B中所示出的区块730及其内容,仅仅是出于示例的目的且不意味着限制示例实施例的范围。在一些情况下,区块报头732和区块元数据736均可以小于存储交易数据的区块数据734,但这不是必需的。区块730可以在区块数据734内存储N个(例如,100、500、1000、2000、3000等)交易的交易信息。根据各种实施例,每个交易可以包括区块数据内由排序节点710添加的最终时间戳信息735。最终时间戳信息735可以不用于由提交节点提供的原始时间戳值(或是对由提交节点提供的原始时间戳值的修改)。
区块730还可以在区块报头732内包括到先前区块(例如,在图7A中的区块链722上)的链接。特别地,区块报头732可以包括先前区块的报头的散列。区块报头732还可以包括唯一的区块编号、当前区块730的区块数据734的散列等。区块730的区块编号可以是唯一的,并且以从零开始递增/序列次序被分配。区块链中的第一区块可以被称为创世区块,创世区块包括关于区块链、其成员、存储在其中的数据等的信息。
区块数据734可以存储在区块730内记录的每个交易的交易信息。例如,被存储在区块数据734内的交易数据可以包括以下中的一个或多个:交易类型、版本、时间戳(例如,最终计算的时间戳等)、分布式分类账720的信道ID、交易ID、时期、有效负载可见性、链代码路径(部署tx)、链代码名称、链代码版本、输入(链代码和函数)、客户端(创建方)标识(例如,公钥和证书)、客户端签名、背书方身份、背书方签名、提议散列、链代码事件、响应状态、命名空间、读取集(由交易读取的密钥和版本的列表等)、写入集(密钥和值的列表等)、开始密钥、结束密钥、密钥列表、默克尔(Merkel)树查询摘要等。可以针对N个交易中的每一个存储交易数据。
根据各种实施例,区块730的区块数据734部分可以在最终时间戳信息735内存储关于区块链交易的时间戳的修改、更新、删除、添加或其他改变的信息。因此,对交易的时间戳信息的修改可以被存储在区块链(即,散列链接的区块链)内。
区块元数据736可以存储多个元数据字段(例如,作为字节数组等)。元数据字段可以包括区块创建时的签名、对最后配置区块的引用、标识区块内有效和无效交易的交易过滤器、对排序区块的排序服务持久的最后偏移等。签名、最后配置区块和排序方元数据可以由排序服务710添加。同时,区块的交付节点(例如,区块链节点712)可以基于背书策略、读取/写入集的验证等来添加有效性/无效性信息。交易过滤器可以包括大小等于区块数据734中的交易数目的字节数组以及标识交易是否有效/无效的验证代码。
以上实施例可以以硬件、由处理器执行的计算机程序、固件或以上的组合来实现。计算机程序可以体现在计算机可读介质(例如,存储介质)上。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪式存储器、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移除磁盘、光盘只读存储器(“CD-ROM”)或本领域已知的任何其他形式的存储介质中。
一个示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在备选方案中,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(“ASIC”)中。在备选方案中,处理器和存储介质可以作为分立组件驻留。例如,图8图示了可以表示或集成在上述组件中的任一个组件等中的示例计算机系统架构800。
图8不旨在对本文描述的本申请的实施例的使用范围或功能性提出任何限制。无论如何,计算节点800能够实现和/或执行上文阐述的任何功能性。例如,计算节点800可以执行关于图5A-图5F示出和描述的方法510-560中的任一个方法。
在计算节点800中,存在可利用许多其他通用或专用计算系统环境或配置进行操作的计算机系统/服务器802。可以适用于计算机系统/服务器802的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括上述系统或设备中的任一个的分布式云计算环境等。
可以在由计算机系统执行的计算机系统可执行指令(例如,程序模块)的一般上下文中描述计算机系统/服务器802。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器802可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图8所示,云计算节点800中的计算机系统/服务器802以通用计算设备的形式表现。计算机系统/服务器802的组件可以包括但不限于:一个或者多个处理器或者处理单元804,系统存储器806,连接不同系统组件(包括系统存储器806和处理单元804)的总线。
总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器802典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器802访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。在一个实施例中,系统存储器806实现其他附图中的流程图。系统存储器806可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统814可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线相连。存储器806可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块818的程序/实用工具816,可以存储在例如存储器806中,这样的程序模块818包括——但不限于——操作系统、一个或者多个应用、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块818通常执行本发明所描述的各种实施例中的功能和/或方法。
如本领域技术人员将理解的,本申请的各方面可以体现为系统、方法或计算机程序产品。因此,本申请的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或者将软件和硬件方面组合的实施例的形式,在本文中,将软件和硬件方面组合的实施例通常可以被称为“电路”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有体现在其上的计算机可读程序代码。
计算机系统/服务器802也可以与一个或多个外部设备820(例如键盘、指向设备、显示器822等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器802交互的设备通信,和/或与使得该计算机系统/服务器802能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口824进行。并且,计算机系统/服务器802还可以通过网络适配器826与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器826通过总线与计算机系统/服务器802的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器802使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
尽管在附图中图示并在前述详细描述中描述了系统、方法和非瞬态计算机可读介质中的至少一个的示例性实施例,但是应理解,本申请不限于所公开的实施例,但是能够进行由下面的权利要求所阐述和限定的许多重新布置、修改和替换。例如,各个附图的系统的能力可以由本文描述的或分布式架构中的模块或组件中的一个或多个执行,并且可以包括发射器、接收器或两者的对。例如,由单独模块执行的全部或部分功能性可以由这些模块中的一个或多个执行。此外,本文描述的功能性可以在各个时间并且与模块或组件内部或外部的各种事件相关地执行。此外,可以经由以下中的至少一个和/或经由多个协议在模块之间发送各个模块之间发送的信息:数据网络、因特网、语音网络、因特网协议网络、无线设备、有线设备。而且,可以直接和/或经由一个或多个其他模块发送或接收由任何模块发送或接收的消息。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、手机、平板计算设备、智能手机或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个示例。实际上,可以以与计算技术一致的本地化和分布式形式来实现本文公开的方法、系统和装置。
应当注意,本说明书中描述的一些系统特征已作为模块呈现,以更特别地强调它们的实现独立性。例如,模块可以被实现为包括定制的超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片的现成半导体、晶体管或其他分立组件的硬件电路。模块还可以在可编程硬件设备(例如,现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模块还可以至少部分地以软件实现,以用于由各种类型的处理器执行。所标识的可执行代码单元可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程或功能。然而,所标识的模块的可执行文件不需要在物理上被定位在一起,而是可以包括被存储在不同位置的不同指令,当不同指令在逻辑上连接在一起时,这些指令包括模块并实现模块的所述目的。此外,模块可以被存储在计算机可读介质上,计算机可读介质可以是例如硬盘驱动、闪式设备、随机存取存储器(RAM)、磁带或用于存储数据的任何其他这样的介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在若干不同的代码段上、不同的程序之中以及跨若干存储器设备。类似地,操作数据在本文中可以被标识并图示在模块内,并且可以以任何合适的形式体现并且被组织在任何合适类型的数据结构内。操作数据可以被收集为单个数据集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地仅作为系统或网络上的电子信号存在。
容易理解,如本文附图中整体描述和图示的,本申请的组件可以以各种不同的配置来布置和设计。因此,对实施例的详细描述不旨在限制所要求保护的本申请的范围,而是仅表示本申请的所选实施例。
本领域普通技术人员将容易理解,可以以不同次序的步骤和/或使用与所公开的配置不同的配置中的硬件元件来实践上述内容。因此,尽管已基于这些优选实施例描述了本申请,但是对于本领域技术人员显而易见的是,某些修改、变化和备选构造将是显而易见的。
虽然已描述了本申请的优选实施例,但是应理解,所描述的实施例仅是说明性的,并且当考虑其等价物和修改(例如,协议、硬件设备、软件平台等)的完整范围时,本申请的范围仅由所附权利要求限定。
Claims (71)
1.一种计算节点,包括:
网络接口,所述网络接口被配置为:从区块链网络中的客户端应用接收区块链请求,并且从所述区块链网络中的一个或多个背书节点接收所述区块链请求中包括的时间戳的有效性信息;以及
处理器,所述处理器被配置为:基于从所述一个或多个背书节点接收到的所述有效性信息,修改所述区块链请求中包括的所述时间戳;基于所述时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对所述组之中的所述区块链请求进行排序;以及将经排序的所述区块链请求组存储在散列链接的数据区块链之中的数据区块内。
2.根据权利要求1所述的计算节点,其中所述有效性信息包括由所述一个或多个背书节点提议的针对所述区块链请求的不同时间戳。
3.根据权利要求2所述的计算节点,其中所述有效性信息还包括要被应用于由所述一个或多个背书节点提议的所述不同时间戳的权重。
4.根据权利要求1所述的计算节点,其中所述处理器还被配置为将所述区块链请求组布置在队列中。
5.根据权利要求4所述的计算节点,其中所述处理器被配置为:基于经修改的所述时间戳,将所述区块链请求插入所述队列内的位置处。
6.根据权利要求1所述的计算节点,其中所述处理器被配置为:当所述有效性信息指示所述时间戳在时间上太早时,向所述区块链请求中包括的所述时间戳添加附加时间。
7.根据权利要求1所述的计算节点,其中所述处理器还被配置为:控制所述网络接口,以将所述数据区块传输到所述客户端应用以及所述一个或多个背书节点,以存储在区块链中。
8.一种方法,包括:
从区块链网络中的客户端应用接收区块链请求;
从所述区块链网络中的一个或多个背书节点接收所述区块链请求中包括的时间戳的有效性信息;
基于从所述一个或多个背书节点接收到的所述有效性信息,修改所述区块链请求中包括的所述时间戳;
基于经修改的所述时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对所述组之中的所述区块链请求进行排序;以及
将经排序的所述区块链请求组存储在散列链接的数据区块链之中的数据区块内。
9.根据权利要求8所述的方法,其中所述有效性信息包括由所述一个或多个背书节点提议的针对所述区块链请求的不同时间戳。
10.根据权利要求9所述的方法,其中所述有效性信息还包括要被应用于由所述一个或多个背书节点提议的所述不同时间戳的权重。
11.根据权利要求8所述的方法,还包括将所述区块链请求组布置在队列中。
12.根据权利要求11所述的方法,其中所述排序包括:基于经修改的所述时间戳,将所述区块链请求插入所述队列内的位置处。
13.根据权利要求8所述的方法,其中所述修改包括:响应于所述有效性信息指示所述时间戳在时间上太早,向所述区块链请求中包括的所述时间戳添加附加时间。
14.根据权利要求8所述的方法,还包括:将所述数据区块传输到所述客户端应用以及所述一个或多个背书节点,以存储在区块链中。
15.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括指令,所述指令在由处理器读取时,使所述处理器执行方法,所述方法包括:
从区块链网络中的客户端应用接收区块链请求;
从所述区块链网络中的一个或多个背书节点接收所述区块链请求中包括的时间戳的有效性信息;
基于从所述一个或多个背书节点接收到的所述有效性信息,修改所述区块链请求中包括的所述时间戳;
基于经修改的所述时间戳,相对于区块链请求组中的其他区块链请求的时间戳,对所述组之中的所述区块链请求进行排序;以及
将经排序的所述区块链请求组存储在散列链接的数据区块链之中的数据区块内。
16.一种计算节点,包括:
网络接口,所述网络接口被配置为从区块链网络的多个背书节点接收区块链请求的背书,其中所述背书包括由所述多个背书节点针对所述区块链请求提议的不同时间戳;以及
处理器,所述处理器被配置为:基于所述多个背书节点的先前时间戳信息,将权重应用于由所述多个背书节点提议的所述不同时间戳;基于所述多个背书节点的经加权的所述时间戳,确定针对所述区块链请求的最终时间戳;以及基于最终确定的所述时间戳,将所述区块链请求布置在数据区块中。
17.根据权利要求16所述的计算节点,其中所述多个背书节点之中的每个背书节点包括基于先前时间戳准确度的准确度值。
18.根据权利要求17所述的计算节点,其中针对所述多个背书节点的所述权重基于针对所述多个背书节点的相应准确度值而被确定。
19.根据权利要求16所述的计算节点,其中所述处理器被配置为:基于最终确定的所述时间戳,相对于区块链请求队列中的区块链请求的时间戳,将所述区块链请求插入经排序的所述队列内。
20.根据权利要求16所述的计算节点,其中所述处理器还被配置为:将包括所述区块链请求的所述数据区块存储在散列链接的数据区块链内。
21.一种方法,包括:
从区块链网络的多个背书节点接收区块链请求的多个背书,所述多个背书包括由所述多个背书节点针对所述区块链请求提议的不同时间戳;
基于所述多个背书节点的先前时间戳信息,将权重应用于由所述多个背书节点给定的所述不同时间戳;
基于所述多个背书节点的经加权的所述时间戳,确定针对所述区块链请求的最终时间戳;以及
基于最终确定的所述时间戳,将所述区块链请求布置在数据区块中。
22.根据权利要求21所述的方法,其中所述多个背书节点之中的每个背书节点包括基于先前时间戳准确度的准确度值。
23.根据权利要求22所述的方法,其中针对所述多个背书节点的所述权重基于针对所述多个背书节点的相应准确度值而被确定。
24.根据权利要求21所述的方法,其中所述布置包括:基于最终确定的所述时间戳,相对于区块链请求队列中的区块链请求的时间戳,将所述区块链请求插入经排序的所述队列内。
25.根据权利要求21所述的方法,还包括:将包括所述区块链请求的所述数据区块存储在散列链接的数据区块链中。
26.一种背书节点,包括:
网络接口,所述网络接口被配置为从客户端应用接收区块链请求;以及
处理器,所述处理器被配置为:基于所述客户端应用和所述背书节点之间的网络路径,确定所述客户端应用和所述背书节点之间的网络延时;从所述区块链请求中提取时间戳,其中所述时间戳能够被包括在区块链消息的报头或数据部分内;基于所述客户端应用和所述背书节点之间的所述网络延时,确定所提取的所述时间戳是否无效;以及响应于确定所述时间戳有效,生成针对所述区块链请求的背书并且控制所述网络接口将所述背书传输到所述客户端应用。
27.根据权利要求26所述的背书节点,其中所述处理器还被配置为:响应于确定所述时间戳无效,拒绝背书所述区块链请求。
28.根据权利要求26所述的背书节点,其中所述网络延时由监测线程确定,所述监测线程在所述背书节点上运行并且周期性地测量所述背书节点与区块链网络内的多个客户端应用中的每一个客户端应用之间的网络延时。
29.根据权利要求26所述的背书节点,其中所述网络延时从所述背书节点的存储器中存储装置被取回。
30.根据权利要求26所述的背书节点,其中所述处理器被配置为:基于所述网络延时来估计针对所述区块链请求的时间戳,并且确定所提取的所述时间戳是否在所估计的所述时间戳的预限定阈值内,以确定所提取的所述时间戳是否有效。
31.根据权利要求26所述的背书节点,其中所述处理器被配置为确定所提取的所述时间戳是否太早。
32.根据权利要求26所述的背书节点,其中所述处理器还被配置为:模拟所述区块链请求,并且响应于确定所述时间戳有效且所述区块链请求被成功模拟而生成所述背书。
33.一种背书节点的方法,包括:
从客户端应用接收区块链请求;
基于所述客户端应用和所述背书节点之间的网络路径,确定所述客户端应用和所述背书节点之间的网络延时;
从所述区块链请求中提取时间戳,其中所述时间戳能够被包括在区块链消息的报头或数据部分内;
基于所述客户端应用和所述背书节点之间的所述网络延时,确定所提取的所述时间戳是否无效;以及
响应于确定所述时间戳有效,生成针对所述区块链请求的背书并且将所述背书传输给所述客户端应用。
34.根据权利要求33所述的方法,还包括:响应于确定所述时间戳无效,拒绝背书所述区块链请求。
35.根据权利要求33所述的方法,其中所述网络延时由监测线程确定,所述监测线程在所述背书节点上运行并且周期性地测量所述背书节点与区块链网络内的多个客户端应用中的每一个客户端应用之间的网络延时。
36.根据权利要求33所述的方法,其中所述网络延时从所述背书节点的存储器中存储装置被取回。
37.根据权利要求33所述的方法,其中所述确定所提取的所述时间戳是否无效包括:基于所述网络延时来估计针对所述区块链请求的时间戳,并且确定所提取的所述时间戳是否在所估计的所述时间戳的预限定阈值内。
38.根据权利要求33所述的方法,其中所述确定所提取的所述时间戳是否无效包括:确定所提取的所述时间戳是否太早。
39.根据权利要求33所述的方法,还包括:模拟所述区块链请求,并且响应于所述时间戳被确定为有效且所述区块链请求被成功模拟而生成所述背书。
40.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括指令,所述指令在由处理器读取时,使所述处理器执行方法,所述方法包括:
从客户端应用接收区块链请求;
基于所述客户端应用和背书节点之间的网络路径,确定所述客户端应用和所述背书节点之间的网络延时;
从所述区块链请求中提取时间戳,其中所述时间戳能够被包括在区块链消息的报头或数据部分内;
基于所述客户端应用和所述背书节点之间的所述网络延时,确定所提取的所述时间戳是否无效;以及
响应于确定所述时间戳有效,生成针对所述区块链请求的背书并且将所述背书传输给所述客户端应用。
41.一种背书节点,包括:
网络接口,所述网络接口被配置为从客户端应用接收区块链请求;以及
处理器,所述处理器被配置为:从所述区块链请求中提取时间戳,其中所述时间戳能够被包括在区块链消息的报头或数据部分内;基于由所述背书节点在所述客户端应用和所述背书节点之间确定的网络延时,确定所提取的所述时间戳是否不正确;以及响应于确定所提取的所述时间戳不正确,确定针对所述区块链请求的正确时间戳;通过用所述正确时间戳替换所提取的所述时间戳来修改所述区块链请求;以及控制所述网络接口,以将具有所述正确时间戳的所述区块链请求传输给所述客户端应用。
42.根据权利要求41所述的背书节点,其中所述处理器还被配置为:基于对等节点和所述背书节点之间的网络路径,确定所述客户端应用与所述背书节点之间的所述网络延时。
43.根据权利要求41所述的背书节点,其中所述处理器被配置为:基于所述网络延时来估计针对所述区块链请求的时间戳,并且确定所提取的所述时间戳是否在所估计的所述时间戳的预限定阈值内,以确定所提取的所述时间戳是否不正确。
44.根据权利要求43所述的背书节点,其中所述处理器被配置为用所估计的所述时间戳替换所提取的所述时间戳。
45.根据权利要求41所述的背书节点,其中所述处理器被配置为确定所提取的所述时间戳是否太早。
46.一种计算节点,包括:
网络接口,所述网络接口被配置为接收区块链请求,所述区块链请求包括由区块链网络内包括的一个或多个背书节点添加的时间戳;以及
处理器,所述处理器被配置为:标识由来自所述一个或多个背书节点之中的背书节点添加的所述时间戳是对由所述计算节点提供的先前添加的时间戳的修改,并且基于由所述背书节点添加的所述时间戳和由所述计算节点提供的先前添加的所述时间戳之间的差异来确定针对所述背书节点的信誉值,
其中所述处理器还被配置为控制所述网络接口,以将所述背书节点的所确定的所述信誉值传输给所述区块链网络内的排序节点。
47.根据权利要求46所述的计算节点,其中所述处理器还被配置为:基于先前添加的所述时间戳与由所述背书节点添加的所述时间戳之间的时间差异,确定由所述背书节点添加的所述时间戳具有太多延迟。
48.根据权利要求46所述的计算节点,其中所述网络接口被配置为从所述背书节点接收针对先前提交的区块链请求的背书,并且所述背书包括对先前添加的所述时间戳的所述修改。
49.根据权利要求46所述的计算节点,其中所述处理器基于从先前区块链请求确定的信誉值的累加来确定所述信誉值,所述先前区块链请求包括由所述背书节点添加的时间戳。
50.根据权利要求46所述的计算节点,其中所述处理器被配置为:响应于确定由所述背书节点添加的所述时间戳与先前添加的所述时间戳之间的所述差异大于来自所述区块链网络上的多个背书节点之中的平均差异,将较低的信誉值分配给所述背书节点。
51.根据权利要求50所述的计算节点,其中所述处理器被配置为:响应于确定由所述背书节点添加的所述时间戳与先前添加的所述时间戳之间的所述差异小于来自所述区块链网络上的所述多个背书节点之中的所述平均差异,将较高的信誉值分配给所述背书节点。
52.根据权利要求46所述的计算节点,其中所述处理器还被配置为:不使用由所述背书节点添加的所述时间戳,并且用先前添加的所述时间戳将所述区块链请求提交给所述排序节点。
53.根据权利要求46所述的计算节点,其中所述区块链请求进一步包括由区块链网络的多个节点提议的多个不同值;以及
所述处理器进一步被配置为:基于所述多个节点的相应信誉来确定针对所述区块链请求的最终值;对区块链请求组内的具有所述最终值的所述区块链请求进行排序;以及将经排序的所述区块链请求组存储在散列链接的数据区块链的数据区块内。
54.根据权利要求53所述的计算节点,其中所述不同值各自表示由所述多个节点确定的所估计的区块数据值。
55.根据权利要求53所述的计算节点,其中所述处理器被配置为:将较高权重应用于由具有较高信誉的对等节点提议的值,并且将较低权重应用于由具有较低信誉的不同对等节点提议的不同值。
56.根据权利要求53所述的计算节点,其中每个信誉表示已由所述多个节点之中的相应节点的活动建立的信任级别。
57.根据权利要求53所述的计算节点,其中所述处理器被配置为:基于所述多个节点的所述相应信誉的加权平均来确定所述最终值。
58.一种计算节点的方法,包括:
接收区块链请求,所述区块链请求包括由区块链网络内包括的一个或多个背书节点添加的时间戳;
标识由来自所述一个或多个背书节点之中的背书节点添加的所述时间戳是对由所述计算节点提供的先前添加的时间戳的修改;
基于由所述背书节点添加的所述时间戳与由所述计算节点提供的先前添加的所述时间戳之间的差异,确定针对所述背书节点的信誉值;以及
将所述背书节点的所确定的所述信誉值传输给所述区块链网络内的排序节点。
59.根据权利要求58所述的方法,还包括:基于先前添加的所述时间戳与由所述背书节点添加的所述时间戳之间的时间差异,确定由所述背书节点添加的所述时间戳具有太多延迟。
60.根据权利要求58所述的方法,其中所述接收包括从所述背书节点接收针对先前提交的区块链请求的背书,并且所述背书包括对先前添加的所述时间戳的所述修改。
61.根据权利要求58所述的方法,其中所述信誉值基于从先前区块链请求确定的信誉值的累加而被确定,所述先前区块链请求包括由所述背书节点添加的时间戳。
62.根据权利要求58所述的方法,其中所述确定包括:响应于由所述背书节点添加的所述时间戳与先前添加的所述时间戳之间的所述差异大于来自所述区块链网络上的多个背书节点之中的平均差异,将较低的信誉值分配给所述背书节点。
63.根据权利要求62所述的方法,其中所述确定包括:响应于由所述背书节点添加的所述时间戳与先前添加的所述时间戳之间的所述差异小于来自所述区块链网络上的所述多个背书节点之中的所述平均差异,将较高的信誉值分配给所述背书节点。
64.根据权利要求58所述的方法,还包括:不使用由所述背书节点添加的所述时间戳,并且用先前添加的所述时间戳将所述区块链请求提交给所述排序节点。
65.根据权利要求58所述的方法,其中所述区块链请求进一步包括由区块链网络的多个节点提议的多个不同值,且所述方法进一步包括:
接收针对区块链的区块链请求;
基于所述多个节点的相应信誉,确定针对所述区块链请求的最终值;
对区块链请求组内的所述区块链请求进行排序;以及
将经排序的所述区块链请求组存储在散列链接的数据区块链之中的数据区块内。
66.根据权利要求65所述的方法,其中所述不同值各自表示由所述多个节点确定的所估计的区块数据值。
67.根据权利要求65所述的方法,其中所述确定包括:将较高权重应用于由具有较高信誉的对等节点提议的值,并且将较低权重应用于由具有较低信誉的不同对等节点提议的不同值。
68.根据权利要求65所述的方法,其中每个信誉表示已由所述多个节点之中的相应节点的活动建立的信任级别。
69.根据权利要求65所述的方法,其中所述确定包括:基于所述多个节点的所述相应信誉的加权平均来确定所述最终值。
70.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括指令,所述指令在由处理器读取时,使所述处理器执行方法,所述方法包括:
接收区块链请求,所述区块链请求包括由区块链网络内包括的一个或多个背书节点添加的时间戳;
标识由来自所述一个或多个背书节点之中的背书节点添加的所述时间戳是对由计算节点提供的先前添加的时间戳的修改;
基于由所述背书节点添加的所述时间戳与由所述计算节点提供的先前添加的所述时间戳之间的差异,确定针对所述背书节点的信誉值;以及
将所述背书节点的所确定的所述信誉值传输给所述区块链网络内的排序节点。
71.一种计算机系统,所述系统包括分别用于执行权利要求8至14、21至25、33至39、58至69中任一项所述的方法的步骤的模块。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/154,063 | 2018-10-08 | ||
US16/153,980 US10608829B1 (en) | 2018-10-08 | 2018-10-08 | Blockchain timestamp agreement |
US16/154,051 | 2018-10-08 | ||
US16/154,063 US11924360B2 (en) | 2018-10-08 | 2018-10-08 | Blockchain timestamp agreement |
US16/154,051 US10805094B2 (en) | 2018-10-08 | 2018-10-08 | Blockchain timestamp agreement |
US16/153,980 | 2018-10-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008402A CN111008402A (zh) | 2020-04-14 |
CN111008402B true CN111008402B (zh) | 2024-03-08 |
Family
ID=68172215
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910933073.9A Active CN111008402B (zh) | 2018-10-08 | 2019-09-29 | 区块链时间戳协定 |
CN201980065770.5A Active CN112868210B (zh) | 2018-10-08 | 2019-10-07 | 区块链时间戳协议 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980065770.5A Active CN112868210B (zh) | 2018-10-08 | 2019-10-07 | 区块链时间戳协议 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3864817B1 (zh) |
JP (1) | JP7352622B2 (zh) |
CN (2) | CN111008402B (zh) |
WO (1) | WO2020074456A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008402B (zh) * | 2018-10-08 | 2024-03-08 | 绿市广场有限公司 | 区块链时间戳协定 |
US11924360B2 (en) | 2018-10-08 | 2024-03-05 | Green Market Square Limited | Blockchain timestamp agreement |
CN112818409B (zh) * | 2020-07-03 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种区块生成方法及共识节点 |
CN112235251B (zh) * | 2020-09-21 | 2022-11-15 | 中国建设银行股份有限公司 | 一种区块链管理方法、装置、计算机设备及存储介质 |
CN112087373B (zh) * | 2020-09-21 | 2022-05-13 | 全通金信控股(广东)有限公司 | 一种消息发送方法及业务装置 |
CN113810453A (zh) * | 2020-12-28 | 2021-12-17 | 京东科技控股股份有限公司 | 基于共识区块链的时间戳标记方法和装置 |
CN112785307A (zh) * | 2021-01-28 | 2021-05-11 | 联想(北京)有限公司 | 一种请求消息处理方法及装置 |
CN113032413A (zh) * | 2021-03-10 | 2021-06-25 | 北京嘀嘀无限科技发展有限公司 | 数据采样方法、装置、电子设备、存储介质和程序产品 |
CN113807723B (zh) * | 2021-09-24 | 2023-11-03 | 重庆富民银行股份有限公司 | 用于知识图谱的风险识别方法 |
CN114401090A (zh) * | 2021-12-08 | 2022-04-26 | 杭州趣链科技有限公司 | 静态页面访问方法、系统、装置、设备及存储介质 |
US11789937B2 (en) * | 2022-01-28 | 2023-10-17 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for exchanging data between blockchain system and non-blockchain system |
CN117527832A (zh) * | 2024-01-03 | 2024-02-06 | 杭州趣链科技有限公司 | 一种区块链的交易排序方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451874A (zh) * | 2017-07-27 | 2017-12-08 | 武汉天喻信息产业股份有限公司 | 基于区块链的电子发票综合处理方法及系统 |
CN107846282A (zh) * | 2017-11-03 | 2018-03-27 | 法信公证云(厦门)科技有限公司 | 一种基于区块链技术的电子数据分布式保管方法及系统 |
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
CN112868210B (zh) * | 2018-10-08 | 2022-12-06 | 绿市广场有限公司 | 区块链时间戳协议 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934756B2 (en) * | 2000-11-01 | 2005-08-23 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
US7702909B2 (en) | 2003-12-22 | 2010-04-20 | Klimenty Vainstein | Method and system for validating timestamps |
CN100568828C (zh) * | 2005-12-28 | 2009-12-09 | 中兴通讯股份有限公司 | 一种在rtp中实时检测网络传输时延的方法 |
CN101355531A (zh) * | 2008-09-24 | 2009-01-28 | 华为技术有限公司 | 一种消息发送、接收的方法、装置和设备 |
CN101494613B (zh) * | 2009-02-24 | 2012-04-04 | 华为技术有限公司 | 时钟报文隧道传输的方法、网络节点和通信系统 |
US8135866B2 (en) * | 2010-01-22 | 2012-03-13 | Research In Motion Limited | System and method for detecting and processing stale messages |
US20120117385A1 (en) | 2010-11-09 | 2012-05-10 | International Business Machines Corporation | Method and apparatus for data encryption |
JP5757160B2 (ja) | 2011-05-31 | 2015-07-29 | 横河電機株式会社 | 制御バスシステム |
CA2879819C (en) * | 2012-06-18 | 2021-04-20 | Ologn Technologies Ag | Systems, methods and apparatuses for secure time management |
US10237259B2 (en) | 2016-02-29 | 2019-03-19 | Securekey Technologies Inc. | Systems and methods for distributed identity verification |
EP3491752A1 (en) | 2016-09-23 | 2019-06-05 | Apple Inc. | Network timing synchronization |
CN106452785B (zh) * | 2016-09-29 | 2019-05-17 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
CN107807951B (zh) * | 2017-09-18 | 2020-10-13 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
CN108390891A (zh) * | 2018-03-28 | 2018-08-10 | 电子科技大学天府协同创新中心 | 基于私有区块链的信息保护方法 |
-
2019
- 2019-09-29 CN CN201910933073.9A patent/CN111008402B/zh active Active
- 2019-10-07 CN CN201980065770.5A patent/CN112868210B/zh active Active
- 2019-10-07 WO PCT/EP2019/077111 patent/WO2020074456A1/en unknown
- 2019-10-07 EP EP19784049.9A patent/EP3864817B1/en active Active
- 2019-10-07 JP JP2021518767A patent/JP7352622B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451874A (zh) * | 2017-07-27 | 2017-12-08 | 武汉天喻信息产业股份有限公司 | 基于区块链的电子发票综合处理方法及系统 |
CN107846282A (zh) * | 2017-11-03 | 2018-03-27 | 法信公证云(厦门)科技有限公司 | 一种基于区块链技术的电子数据分布式保管方法及系统 |
CN108305170A (zh) * | 2018-03-07 | 2018-07-20 | 物数(上海)信息科技有限公司 | 基于区块链的外部服务访问方法、系统、设备及存储介质 |
CN112868210B (zh) * | 2018-10-08 | 2022-12-06 | 绿市广场有限公司 | 区块链时间戳协议 |
Also Published As
Publication number | Publication date |
---|---|
JP7352622B2 (ja) | 2023-09-28 |
CN111008402A (zh) | 2020-04-14 |
CN112868210B (zh) | 2022-12-06 |
WO2020074456A1 (en) | 2020-04-16 |
EP3864817A1 (en) | 2021-08-18 |
JP2022504353A (ja) | 2022-01-13 |
CN112868210A (zh) | 2021-05-28 |
EP3864817B1 (en) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588651B2 (en) | Blockchain timestamp agreement | |
CN111008402B (zh) | 区块链时间戳协定 | |
US10805094B2 (en) | Blockchain timestamp agreement | |
US11924360B2 (en) | Blockchain timestamp agreement | |
US11940971B2 (en) | Blockchain implementing reliability database | |
US11341121B2 (en) | Peer partitioning | |
US20200013025A1 (en) | Conditional deferred transactions for blockchain | |
US11693840B2 (en) | Database storing authenticated skill-based attributes | |
US20220138212A1 (en) | Blockchain implementing reliability database | |
US20220209948A1 (en) | Blockchain notification board storing blockchain resources | |
US11308073B2 (en) | Database node functional testing | |
US11669532B2 (en) | Blockchain implementing reliability database | |
US10922097B2 (en) | Collaborative model execution | |
US20200074470A1 (en) | Database configuration for asset transfers | |
CN111698198B (zh) | 秘密生成和份额分发 | |
US10831850B2 (en) | Secure URL shortening | |
CN112036876A (zh) | 基于元数据的背书 | |
US10942916B2 (en) | Fraud prevention via database referencing | |
US11088844B2 (en) | Preservation of privacy of inputs |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220308 Address after: British Virgin Islands Applicant after: Green City Plaza Co.,Ltd. Address before: New York grams of Armand Applicant before: International Business Machines Corp. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |