首页 / 专利库 / 计算机网络 / 服务器 / 管理基于区块链的中心化账本系统

管理基于链的中心化账本系统

阅读:1016发布:2020-05-08

专利汇可以提供管理基于链的中心化账本系统专利检索,专利查询,专利分析的服务。并且本文公开了用于管理基于 区 块 链 的中心化账本系统的方法、系统和装置,包括编码在计算机存储介质上的 计算机程序 。所述方法之一包括:基于区块链的中心化账本系统中以区块链存储数据的账本 服务器 在一个时间点向可信时间服务器发送针对区块链的待加时间戳区块的时间戳 请求 ,所述可信时间服务器与可信时间机构相关联并且独立于所述基于区块链的中心化账本系统,所述区块链包括存储交易数据的多个区块;以及响应于确定从所述时间点起已经过去预定时间段、并且确定没有来自所述可信时间服务器的对所述时间戳请求的回复,忽略所述时间戳请求。,下面是管理基于链的中心化账本系统专利的具体信息内容。

1.一种计算机实现的用于管理基于链的中心化账本系统的方法,所述方法包括:
所述中心化账本系统中的计算设备在第一时间点向可信时间服务器发送针对所述中心化账本系统内的区块链中的第一待加时间戳区块的第一时间戳请求,所述可信时间服务器与可信时间机构相关联并且独立于所述中心化账本系统,所述区块链包括存储交易数据的多个区块;以及
响应于确定从所述第一时间点起已经过去预定时间段并且确定没有来自所述可信时间服务器的对所述第一时间戳请求的回复,所述计算设备忽略所述第一时间戳请求。
2.如权利要求1所述的方法,还包括:
响应于确定将在比所述第一时间点晚但在所述预定时间段过去之前的第二时间点生成在所述区块链中紧接在所述第一待加时间戳区块之后的第二区块、并且确定在所述第二时间点没有来自所述可信时间服务器的对所述第一时间戳请求的回复,所述计算设备延迟在所述区块链中生成所述第二区块。
3.如权利要求2所述的方法,还包括:
响应于确定从所述第一时间点起已经过去所述预定时间段、并且确定没有来自所述可信时间服务器的对所述第一时间戳请求的回复,所述计算设备恢复在所述区块链中生成所述第二区块。
4.如前述任一权利要求所述的方法,其中,忽略所述第一时间戳请求包括:
响应于在所述预定时间段之后接收到来自所述可信时间服务器的对所述第一时间戳请求的回复,忽略所述回复。
5.如前述任一权利要求所述的方法,其中,所述计算设备被配置为以预定触发时间段周期性地向所述可信时间服务器发送针对所述区块链中的待加时间戳区块的时间戳请求。
6.如权利要求5所述的方法,其中,所述预定触发时间段与所述中心化账本系统的时间戳服务的相应成本相关联。
7.如权利要求5或6所述的方法,其中,所述预定触发时间段由与所述中心化账本系统相关联的用户预先确定。
8.如前述任一权利要求所述的方法,其中,针对所述区块链中的所述第一待加时间戳区块的所述第一时间戳请求包括所述区块链中的所述第一待加时间戳区块的哈希值。
9.如前述任一权利要求所述的方法,还包括:
所述计算设备向所述可信时间服务器发送针对所述区块链中的第二待加时间戳区块的第二时间戳请求;
所述计算设备接收在所述预定时间段内来自所述可信时间服务器的针对所述第二待加时间戳区块的第二时间戳和关联签名;以及
所述计算设备将针对所述第二待加时间戳区块的所述第二时间戳和所述关联签名的信息存储在所述区块链中。
10.如权利要求9所述的方法,其中,将针对所述第二待加时间戳区块的所述第二时间戳和所述关联签名的信息存储在所述区块链中,包括:
将针对所述第二待加时间戳区块的所述第二时间戳和所述关联签名和/或所述第二时间戳和所述关联签名的哈希值存储在第三区块中,所述第三区块在所述区块链中紧接在所述第二待加时间戳区块之后,所述第三区块存储所述第二待加时间戳区块的哈希值。
11.如权利要求10所述的方法,其中,所述第三区块的区块体,除针对所述第二待加时间戳区块的所述第二时间戳和所述关联签名和/或所述第二时间戳和所述关联签名的哈希值之外,不包括其他交易数据。
12.一种用于管理基于区块链的中心化账本系统的系统,所述系统包括:
一个或多个处理器;和
耦接到所述一个或多个处理器并且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行权利要求1至11中任一项所述的方法。
13.一种用于管理基于区块链的中心化账本系统的装置,所述装置包括用于执行权利要求1至11中的任一项所述的方法的多个模块。

说明书全文

管理基于链的中心化账本系统

技术领域

[0001] 本文涉及管理基于区块链的中心化账本系统。

背景技术

[0002] 账本通常用于记录交易的历史,例如组织中的经济和金融活动。例如在关系数据库中创建的自定义审计表或审计跟踪的具有类似账本功能的应用程序已被构建,以维护应用程序的数据的准确历史记录。然而,构建此类应用程序非常耗时,并且容易出现人为错误。而且,由于关系数据库不是固有不可篡改的,因此对数据的任何更改都很难跟踪和验证。
[0003] 分布式账本(DLS),也可以被称为共识网络和/或区块链网络,使参与实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络类型的示例可以包括公有区块链网络、私有区块链网络和联盟区块链网络。在将交易添加到区块链网络之前,区块链网络执行共识处理来验证每个交易,这可能是耗时、低效且复杂的。
[0004] 因此,期望开发一种能够在提供交易的不可篡改性、可靠性、可信赖性和可验证性的同时有效且安全地管理交易的账本系统。发明内容
[0005] 本文描述了用于管理基于区块链的中心化账本的技术。这些技术通常涉及基于区块链的中心化账本系统(例如,通用可审计账本服务系统),该系统采用区块链的数据结构来利用存储在区块链上的数据的不可篡改性、可靠性和可信赖性。中心化账本系统可以从独立于中心化账本系统的可信时间服务器(例如,第三方全球公认的时间授权)获得可信时间戳信息。中心化账本系统可以利用可信计时服务器提供的时间戳信息上建立的信任,并将可信时间戳信息集成到中心化账本系统中,以用于存储在区块链上的数据,这可以进一步增强存储的数据的可信度、可审计性和合法性。
[0006] 本文所述的这些技术可以进一步避免将来自可信时间服务器的可信时间戳信息集成到基于区块链的中心化账本系统中的潜在险。例如,所描述的技术可以解决由网络流量阻塞或黑客入侵引起的潜在问题,这些潜在问题可以导致从可信时间服务器获得可信时间戳信息的延迟(或甚至无法进行)和/或在区块链中生成区块的正常处理的延迟(或干扰)。
[0007] 本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
[0008] 本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当由所述一个或多个处理器执行时,所述指令将导致所述一个或多个处理器按照本文提供的方法的实施例执行操作。
[0009] 应该了解,根据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
[0010] 以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。

附图说明

[0011] 图1是示出可用于执行本文的实施例的环境的示例的图。
[0012] 图2是示出根据本文的实施例的架构的示例的图。
[0013] 图3是示出根据本文实施例实现基于区块链的中心化账本系统中的可信时间戳服务的环境的示例的图。
[0014] 图4A是示出根据本文实施例用于在与单个客户端相关联的单个账本服务器中实现可信时间戳服务的基于区块链的中心化账本系统的示例的图。
[0015] 图4B是示出根据本文实施例用于由联合账本服务器向多个客户端提供可信时间戳服务的基于区块链的中心化账本系统的示例的图。
[0016] 图5是示出根据本文的实施例的将针对交易数据的可信时间戳信息集成到基于区块链的中心化账本系统中的处理的示例的图。
[0017] 图6是示出了可以根据本文实施例执行的处理的示例的流程图
[0018] 图7描绘了根据本文实施例的装置的模块的示例。
[0019] 在各个附图中,相同的附图标记和名称表示相同的元件。

具体实施方式

[0020] 本文描述了用于管理基于区块链的中心化账本系统的技术。这些技术通常涉及基于区块链的中心化账本系统(例如,通用可审计账本服务系统),该系统采用区块链的数据结构来利用存储在区块链上的数据的不可篡改性、可靠性和可信赖性。中心化账本系统可以从独立于中心化账本系统的可信时间服务器(例如,第三方全球公认的时间授权)获得可信时间戳信息。中心化账本系统可以利用可信计时服务器提供的时间戳信息上建立的信任,并将可信时间戳信息集成到中心化账本系统中,以用于存储在区块链上的数据,这可以进一步增强存储的数据的可信度、可审计性和合法性。
[0021] 本文所述的这些技术可以进一步避免将来自可信时间服务器的可信时间戳信息集成到基于区块链的中心化账本系统中的潜在风险。例如,所描述的技术可以解决由网络流量阻塞或黑客入侵引起的潜在问题,这些潜在问题可以导致从可信时间服务器获得可信时间戳信息的延迟(或甚至无法进行)和/或在区块链中生成区块的正常处理的延迟(或干扰)。
[0022] 本文中描述的技术产生若干技术效果。在一些实施例中,基于区块链的中心化账本系统可以是基于中心化的账本系统,其可以提供具有时间关键审计(具有不可否认性和防篡改性)的密码学可验证的与状态无关的数据账本存储。在一些实施例中,基于区块链的中心化账本系统可以基于平台提供账本服务,该云平台的特征在于具有可信度和中立性的中心化背书。基于区块链的中心化账本系统可以通过利用区块链系统的高信誉度和中心化系统的高性能和低延迟来提供高度可靠和高性能的可审计的流账本服务,以处理具有审计要求、可追溯性和跟踪的各种类型的数据和日志。
[0023] 在一些实施例中,基于区块链的中心化账本系统可以包括中央可信机构,该中央可信机构提供存储在区块链数据结构的区块中的透明、不可篡改和可密码验证的数据。在一些实施例中,所存储的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。由于中央可信机构的存在,基于区块链的中心化账本系统无需执行共识处理来建立信任,这可以节省大量时间和成本。在一些实施例中,与典型的基于区块链的分布式或去中心化账本系统相比,基于区块链的中心化账本系统可以更高效。在一些实施例中,基于区块链的中心化账本系统可以提供具有增强的信任、效率和存储性能的基于云的存储服务。
[0024] 在一些实施例中,基于区块链的中心化账本系统可以增强区块链上存储的数据的可信度、可审计性和合法性。例如,中心化账本系统可以与可信时间服务器交互,并将来自可信时间服务器的可信时间戳信息提供给基于区块链的中心化账本系统的客户端。该可信时间服务器独立于中心化账本系统。该可信时间服务器可以与提供准确时间服务并在例如全球范围内被公众、审计实体(例如公司、机构或组织)和/或司法实体(例如法院或政府)承认或信任的第三方可信时间机构相关联。随着可信时间服务器提供的时间戳信息的可信度得到承认,将来自可信时间服务器的时间戳信息集成到中心化账本系统中以用于存储在区块链上的数据,可以进一步增强存储在中心化账本系统中的数据的可信度、可审计性和合法性。
[0025] 在一些实施例中,基于区块链的中心化账本系统表征了基于区块链的中心化账本系统的当事方或参与者的相应权利。例如,基于区块链的中心化账本系统的客户端可以具有提供用于在中心化账本系统中的区块链上存储交易数据的签名的权利,以使得客户端不能否认交易数据。在一些实施例中,中心化账本系统具有提供用于承认存储交易数据的签名的权利,使得中心化账本系统不能否认存储交易数据。在一些实施例中,可信时间服务器具有为存储在中心化账本系统上的交易数据提供可信时间戳信息的签名的权利,使得可信时间服务器不能否认可信时间戳信息。在一些实施例中,三方(客户端、账本系统和可信时间服务器)的三个相应权利彼此独立,这可以进一步增强存储在中心化账本系统中的交易数据的可信度和可审计性。
[0026] 在一些实施例中,基于区块链的中心化账本系统可以提供存储在区块链上的交易数据的增强的有序性和真实性。例如,基于区块链的中心化账本系统可以向可信时间服务器发送针对存储在区块链上的交易数据的可信时间戳的请求,并且可信时间服务器可以提供可信时间戳信息,例如时间戳和关联签名,以便例如验证或背书存储在区块链上的交易数据的时间。中心化账本系统可以将可信时间戳信息(例如,作为交易)存储在区块链中。可信时间戳信息可以用于验证存储在区块链上的交易数据的有序性和真实性,进而可以提供存储在区块链上的交易数据的增强的可信度、可审计性和合法性。
[0027] 在一些实施例中,基于区块链的中心化账本系统可以避免将来自可信时间服务器的可信时间戳信息集成到基于区块链的中心化账本系统中的潜在风险。例如,从可信时间服务器获得可信时间戳信息可能会受到基于区块链的中心化账本系统和可信时间服务器之间的网络连接的影响。在某些情况下,由于例如不良的通信通道、网络流量阻塞、黑客入侵或其他网络状况而导致的数据包丢失或延迟,可能导致从可信时间服务器发送的可信时间戳信息的延迟或丢失。在一些实施例中,基于区块链的中心化账本系统可以具有超时方案以避免僵持、减少等待时间和/或减轻对基于区块链的中心化账本系统的正常操作的干扰。例如,在一些实施例中,中心化账本系统中的账本服务器可以向可信时间服务器(例如,周期性地)发送针对区块链中生成的最新区块的时间戳请求。所述时间戳请求可以包括最新区块的信息,例如最新区块的哈希值。账本服务器可以设置计时器,以对发送时间戳请求之后的时间进行计数。如果账本服务器在发送时间戳请求之后的预定时间段内接收到来自可信时间服务器的可信时间戳信息,则账本服务器可以将可信时间戳信息(例如,作为交易)存储在区块链中紧接在最新区块之后的区块中。如果在已经过去预定时间段之后账本服务器未接收到来自可信时间服务器的任何回复,则账本服务器可以忽略该时间戳请求。这样,如果在获得时间戳信息中存在稽延过久(例如,由于网络流量阻塞或黑客入侵),则账本服务器可以及时忽略时间戳请求,并维护区块链中生成区块的正常处理。账本服务器还可以维护周期性地向可信时间服务器发送时间戳请求的正常处理,例如,通过等待周期触发时间到来以发送下一个时间戳请求。
[0028] 为了提供本文的实施例的进一步的上下文,并且如上所述,分布式账本系统(DLS),也可以被称为共识网络(例如,由点对点节点组成)和区块链网络,使得参与实体能够安全地并且不可篡改地进行交易,并存储数据。尽管术语区块链通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文中使用的区块链通常是指DLS。
[0029] 区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包括在链中紧邻其之前的前一个区块的哈希值而被链接到该前一个区块。每个区块还包括本地时间戳(例如,由生成该区块的计算设备或管理区块链的计算系统提供),其自身的哈希值以及一个或多个交易。例如,区块可以包括区块头和区块体。区块头可以包括本地时间戳、其自身的哈希值以及前一区块的哈希值。区块体可以包括有效载荷信息,例如一个或多个交易(或交易数据)。已经被区块链网络中的节点验证的交易经哈希处理并被编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处连接。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。
[0030] 区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可以作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。
[0031] 通常,联盟区块链网络在参与实体当中是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,该授权节点集可以被称为共识节点,一个或多个共识节点由相应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。在一些示例中,在联盟区块链网络内,提供全局区块链作为跨所有节点复制的区块链。也就是说,相对于全局区块链,所有的共识节点处于完全共识状态。为了达成共识(例如,同意将区块添加到区块链),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实施实用拜占庭容错(PBFT)共识,下面将进一步详细描述。
[0032] 在一些实施例中,中心化账本系统还可以采用区块链的数据结构,以利用存储在区块链上的数据的不可篡改性、可靠性和可信赖性。在一些实施例中,这样的中心化账本系统可以被称为基于区块链的中心化账本系统或通用的可审计账本服务系统。在一些实施例中,基于区块链的中心化账本系统可以包括中央可信机构,该中央可信机构提供存储在区块链数据结构的区块中的透明、不可篡改和可密码验证的数据。所存储的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。由于中央可信机构的存在,基于区块链的中心化账本系统无需执行共识处理来建立信任。在一些实施例中,与典型的基于区块链的分布式或去中心化账本系统相比,基于区块链的中心化账本系统可以更高效。在一些实施例中,基于区块链的中心化账本系统可以提供具有增强的信任度、效率和存储性能的基于云的存储服务。
[0033] 在一些实施例中,中心化账本系统可以是区块链网络的节点。例如,中心化账本系统可以是区块链网络中的非共识节点,并且可以为区块链网络中的共识节点或其他非共识节点或区块链网络外部的实体提供高度可靠且高性能的可审计流水账本服务。
[0034] 图1是示出了可以用于执行本文实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算设备106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网站、用户设备(例如,计算设备)和后端系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信或能够在联盟区块链网络102内部通信。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是云计算系统(未示出)的节点,或者每个计算设备106、108可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
[0035] 在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算系统。计算系统的示例包括(但不限于)服务器、台式计算机、笔记本电脑平板电脑和智能手机。在一些示例中,计算设备106、108承载用于与联盟区块链网络102交互的一个或多个计算机实施的服务。例如,计算设备106可以承载第一实体(例如,用户A)的计算机实施的、例如交易管理系统的服务,例如,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算设备108可以承载第二实体(例如,用户B)的计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),并且计算设备106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
[0036] 图2是示出根据本文实施例的架构200的示例的图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
[0037] 在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且作为区块链网络中的相应节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使得相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或经过区块链网络212进行通信。
[0038] 节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的挖矿节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204和206存储区块链216的相应的完整副本216'、216”和216”'。
[0039] 区块链(例如,图2的区块链216)由区块的链组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以被存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括(但不限于)有价物(例如,资产、产品、服务、货币)的交换。交易数据被不可篡改地存储在区块链中。也就是说,交易数据不能改变。
[0040] 在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的过程。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括(但不限于)输出256位哈希值的安全哈希算法(SHA)-256。
[0041] 多个交易的交易数据被哈希处理并被存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并被存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
[0042] 经过共识协议将区块添加到区块链。区块链网络内的多个节点参与共识协议,并从事工作以将区块添加到区块链中。这种节点被称为共识节点。上面介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
[0043] 更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即,添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)和时间戳。
[0044] 通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过在PBFT中假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)而实现。在PBFT中,以包括主共识节点和备共识节点的序列提供共识节点。主共识节点被周期性地改变,通过区块链网络内的所有共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点(peer node)接收的,并验证在传输期间消息未被修改
[0045] 在PBFT中,共识协议是在所有共识节点以相同的状态开始的情况下分多个阶段提供的。首先,客户端向主共识节点发送调用服务操作(例如,在区块链网络内执行交易)的请求。响应于接收到请求,主共识节点将请求多播到备共识节点。备共识节点执行请求,并且各自向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待直到接收到f+1个回复,其中f是区块链网络内可以容忍的错误共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,并且该记录或被接受或被拒绝。
[0046] 在一些区块链网络中,实施密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能够看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥对于多个节点可用,因此每个节点都可以对交易数据进行加密/解密。
[0047] 非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来加密数据,并且加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密的数据发送给参与者B。参与者B可以使用其私钥来解密该加密的数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
[0048] 非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,则参与者B可以确认该消息确实来自参与者A,且未被篡改。
[0049] 图3是示出根据本文实施例的环境300的示例的图。环境300实现了基于区块链的中心化账本系统310中的可信时间戳服务。基于区块链的中心化账本系统310采用区块链的数据结构,以利用存储在区块链上的数据的不可篡改性、可靠性和可信赖性。中心化账本系统310还可以集成来自可信时间服务器350的可信时间戳信息,对于存储在区块链上的数据,该可信时间服务器独立于中心化账本系统310,这可以大大增强所存储的数据的可信度、可审计性和合法性。
[0050] 在一些实施例中,中心化账本系统310可以是一种云计算系统,包括通过网络互连的一个或多个计算机。中心化账本系统310可以包括任何适当的计算设备。计算设备的示例包括(但不限于)服务器、台式计算机、笔记本电脑、平板计算设备和智能手机。
[0051] 在一些示例中,中心化账本系统310包括一个或多个账本服务器320-1至320-n(在本文中统称为“320”)。每个账本服务器320可以承载一个或多个计算机实现的服务,用于与例如,客户端1或客户端m的至少一个客户端进行交互。客户端可以是个人、公司、组织、金融机构、保险公司或任何其他类型的实体。在一些情况下,客户端可以与一个或多个账本服务器相关联。在一些情况下,账本服务器可以与一个或多个客户端相关联。
[0052] 账本服务器320可以承载交易管理系统,以便为例如客户端1或客户端m的客户端提供账本服务,并且客户端可以使用例如客户端设备340-1或340-m(在本文中统称为“340”)的一个或多个相关联的设备来访问交易管理系统,以使用账本服务。客户端设备340可以包括任何适当的计算设备。
[0053] 由账本服务器320提供的账本服务可以使客户端能够将其数据存储在透明、不可篡改和可密码验证的区块链数据结构,例如区块链中。每个账本服务器,例如320-1或320-n,可以维护对应的区块链,例如322-1至322-n(在本文中统称为“322”)。在一些实施例中,每个账本服务器320可以执行与区块链网络中的区块链网络节点(例如,图1的计算设备106或108或图2的计算设备202、204或206)的功能相似的功能。例如,每个账本服务器320可以生成区块并将这些区块添加到区块链322。在一些实施例中,每个账本服务器320可以充当中央可信机构,并且不需要通过执行与其他节点(例如,其他客户端设备或其他传统服务器)的共识处理来建立信任。例如,每个账本服务器320可以执行与区块链网络的非共识节点相似的功能。在一些实施例中,每个账本服务器320可以是创建和/或管理区块链322的单个节点。
[0054] 在一些实施例中,每个客户端可以与对应的区块链相关联。在一些实施例中,一个或多个客户端可以与同一区块链相关联。在一些实施例中,区块链可以与一个或多个客户端相关联。
[0055] 在一些示例中,客户端1是个人、公司或组织。与客户端1相关联的客户端设备340-1可以与账本服务器320-1交互以获得中心化账本系统310的账本服务。例如,客户端设备
340-1可以访问区块链322-1以经过账本服务器320-1读取和存储与客户端1相关联的交易数据。客户端设备340-1可以包括例如被编程为执行本文描述的方法的任何合适的计算机、模块、服务器或计算元件。在一些实施例中,客户端设备340-1可以包括诸如个人计算机、智能电话、平板电脑或其他手持设备的用户设备。
[0056] 在一些示例中,客户端m是具有多个个体用户的保险公司或例如行的金融机构。与客户端m相关联的客户端设备340-m可以与账本服务器320-n交互,以向客户端m的个体用户提供中心化账本系统310的账本服务。例如,客户端设备340-m可以访问区块链322-n以经过账本服务器320-n读取和存储与客户端m相关联的交易数据。在一些情况下,客户端m的用户可以经过客户端设备340-m请求中心化账本系统310的账本服务。
[0057] 区块链中存储的数据可以是日志格式,例如不仅包括交易日志,还包括其他交易数据和区块数据。每个区块链以数据不可篡改且无法更改或删除的方式存储数据。使用加密可以验证要存储的数据没有被意外修改。因此,记录在区块链上的数据是可靠且可信赖的。
[0058] 区块链可以包含一个或多个区块。区块链中的每个区块都通过包含链中紧接在其之前的前一个区块的哈希值而被链接到链中该前一个区块。每个区块还包括本地时间戳、其自身的哈希值以及一个或多个交易或交易数据。例如,区块可以包括区块头和区块体。区块头可以包括本地时间戳、其自身的哈希值以及前一区块的哈希值。区块体可以包括有效载荷信息,例如一个或多个交易或交易数据。本地时间戳指示该区块被生成和/或被添加到区块链时的时间点或实例。本地时间戳可以由账本服务器320、中心化账本系统310或与中心化账本系统310相关联的中央可信机构内部地提供。
[0059] 在一些实施例中,账本服务器320按顺序接收与客户端相关联的一系列交易,然后将交易存储在区块链的区块中。在一些实施例中,账本服务器320可以例如从一个或多个客户端设备340接收一个或多个交易。接收到的交易可以被存储在数据缓冲器中。账本服务器320可以生成存储交易的区块,例如,包括受让人和转让人的账户、交易金额或其他类型的交易信息。
[0060] 在一些实施例中,账本服务器320可以将交易存储在流、阵列或另一数据结构(被称为交易存储流)中。例如,可以根据交易的发生时间将交易顺序地存储在交易存储流中。每个交易可以例如根据其发生时间在交易存储流中具有相应的交易标识。账本服务器320可以生成区块以包括用于交易的多个哈希值。在一些实施例中,可以根据相应交易的发生时间而不是根据哈希值来存储交易的哈希值。在一些实施例中,交易的哈希值可以是交易的哈希值或交易的对应交易标识的哈希值。一个区块可以包含紧邻在其之前的前一个区块的哈希,以使得这些区块与彼此锚定以形成区块链(或区块存储流)。以这种方式,区块不存储交易的细节。交易的细节可以被存储在账本服务器320中的交易存储流中或中心化账本系统310中的单独存储库中。
[0061] 账本服务器320还可以向客户端提供可信时间戳服务。在一些实施例中,账本服务器320可以针对存储在账本服务器320中的数据从可信时间服务器350请求可信时间戳,这可以增强所存储的数据的可信度、可审计性和合法性。可信时间服务器350独立于中心化账本系统310。可信时间服务器350可以与提供准确时间服务并在例如全球范围内被公众、审计实体(例如公司、机构或组织)和/或法律实体(例如法院或政府)承认或信任的第三方可信时间机构相关联。由可信时间服务器350提供的可信时间戳信息可以被承认或认为是合法的,而无需经过公证和/或司法鉴定。例如,可信时间服务器350可以是提供UTC/GMT时间服务的UTC(世界标准时间)/GMT(格林威治标准时间)服务器。可信时间服务器350也可以是为国家或地区提供标准时间的可信机构的时间服务器。
[0062] 中心化账本系统310可以经过例如图1的网络110的网络与可信时间服务器350通信。响应于从客户端(例如,账本服务器320)接收到时间戳请求,可信时间服务器350可以生成指示在接收到时间戳请求时的时间点的时间戳。可信时间服务器350可以生成用于认证时间戳和时间戳请求(例如,时间戳请求的文本或图像副本)的签名。例如,可信时间服务器350可以使用其私钥进行签名,从而对时间戳和时间戳请求进行密码学加密。可信时间服务器350可以生成包括时间戳和关联签名的数字时间戳证书,并且将包括时间戳证书的时间戳信息发送给客户。可信时间服务器350可以向可信时间戳服务提供成本,例如每个时间戳请求1美元。
[0063] 在一些实施例中,账本服务器320将用于认证区块链中的区块的时间的时间戳请求发送至可信时间服务器350。时间戳请求可以包括区块的信息,例如,区块的哈希值。可信时间服务器350可以生成并发送包括该区块的时间戳和关联签名的时间戳信息或时间戳和关联签名的哈希值。在从可信时间服务器350接收到时间戳信息之后,账本服务器320可以将时间戳信息或时间戳信息的哈希值存储到区块链中紧接在该区块之后的后续区块中。在一些实施例中,时间戳信息可以被作为交易存储在后续区块中。存储时间戳信息的区块可以被称为具有时间戳的区块。具有时间戳的区块可以是仅包括时间戳信息的区块,或者是除了时间戳信息之外还包括其他交易的区块。区块链中具有时间戳的区块可以在区块链中与彼此锚定或链接。
[0064] 在一些实施例中,账本服务器320可以以预定触发时间段向可信时间服务器350周期性地发送针对区块链中待加时间戳区块的时间戳请求。例如,账本服务器320可以包括计时器,该计时器对发送第一时间戳请求之后的时间进行计数。当计时器计数了预定触发时间段时,账本服务器320可以被触发以发送紧接在第一时间戳请求之后的第二时间戳请求。中心化账本系统310或账本服务器320可以提供具有与不同的触发时间段相对应的不同成本的时间戳服务。触发时间段可以由与区块链或账本服务器320相关联的客户端(或用户)预先确定。例如,客户端可以选择与各自的成本和各自的触发时间段相对应的时间戳服务。
[0065] 在一些实施例中,账本服务器320可以不是周期性地向可信时间服务器350发送时间戳请求。例如,账本服务器320可以根据需要或基于由账本服务器320生成的区块的数量来发送时间戳请求。例如,账本服务器320可以在从客户端接收到指令时或者在最近已经将预定数量的区块添加到区块链322时发送区块的时间戳请求。
[0066] 在一些实施例中,账本服务器320可以在区块生成的预定时间段周期性地生成区块。预定触发时间段可以与区块生成的时间段相同或不同。预定触发时间段可以比区块生成的时间段长,使得例如由于从可信时间服务器350获得时间戳的成本,并不是每个区块都被加时间戳。在一些实施例中,账本服务器320可以不是周期性地生成区块。例如,账本服务器320可以根据需要或基于账本服务器320接收到的交易数量来生成区块。例如,账本服务器320可以在接收到预定数量的交易时生成新的区块。
[0067] 在一些实施例中,账本服务器320可以包括被配置为与可信时间服务器350通信的一个或多个应用程序编程接口(API)。API可以包括一组子例程定义、通信协议以及用于构建软件的工具,并且可以定义由程序(模块、库)提供的功能,并可以从该功能的确切实现方式中进行抽象。软件组件经过API相互交互。在一些实施例中,账本服务器320可以包括可以实现以下功能的一个或多个API:接收待加时间戳区块的哈希值作为时间戳请求的输入、向可信时间服务器350发送时间戳请求,以及接收由可信时间服务器350发送的可信时间戳信息,例如数字时间戳证书或时间戳及关联签名。
[0068] 账本服务器320可以包括被配置为与和客户端相关联的客户端设备340通信的一个或多个API。该一个或多个API可以实现诸如以下功能:从客户端设备340接收对时间戳服务的请求、列出具有不同成本和不同触发时间段的不同时间戳服务、从客户端设备340接收时间戳服务中的选择、以及向客户端设备340发送或显示具有相应触发时间段的相应成本。在一些实施例中,该一个或多个API还可以实现例如以下的功能:接收用于验证或审计存储在与客户端相关联的区块链上的交易的请求,并向客户端设备340发送验证或审计结果。如在图4A和图4B中进一步详细讨论的,一个或多个API还可以实现例如以下的其他功能:从客户端设备340接收交易或交易数据和客户端签名,并发送指示确认交易或交易数据和/或客户端签名的接收或存储的账本签名。
[0069] 在一些实施例中,中心化账本系统310包括中心化服务器330。中心化服务器330可以与中心化账本系统310中的多个账本服务器320通信。在一些实施例中,账本服务器320经过中心化服务器330与客户端设备340通信。例如,中心化服务器330可以从中心化设备340接收数据,并且将数据发送到(或分配给)与客户端设备340对应的账本服务器320。
[0070] 在一些实施例中,中心化服务器330可以维护用于中心化账本系统310的标准时间服务器,并且可以向账本服务器320提供内部时间戳(和/或关联签名)。例如,当账本服务器320生成新区块时,账本服务器320可以从中心化服务器330获得内部时间戳(和/或关联签名),并将内部时间戳(和/或关联签名)存储在新区块中。
[0071] 在一些实施例中,每个账本服务器320经过中心化服务器330与可信时间服务器350通信。例如,账本服务器320可以向中心化服务器330发送初始时间戳请求,并且中心化服务器330可以例如经过中心化服务器330中的中心化API将初始时间戳请求或与该时间戳请求相关联的中心化服务器时间戳请求发送至可信时间服务器350。中心化服务器330可以将从可信时间服务器350获得的可信时间戳信息提供给账本服务器320。在一些其他实施例中,如上所述,每个账本服务器320可以直接与可信时间服务器350通信,而无需中心化服务器330。
[0072] 图4A是示出了根据本文实施例的用于在与单个客户端相关联的单个账本服务器中实现可信时间戳服务的基于区块链的中心化账本系统400的示例的图。基于区块链的中心化账本系统400可以包括专用于向与客户端设备410相关联的单个客户端提供账本服务的单个账本服务器420。基于区块链的中心化账本系统400可以是图3的中心化账本系统310的示例。例如,账本服务器420可以是图3的账本服务器320-1的示例。客户端设备410可以是图3的客户端设备340-1的示例。客户端使用客户端设备410访问基于区块链的中心化账本系统400中的账本服务器420提供的账本服务。账本服务器420还可以通过与可信时间服务器430通信来向客户端提供可信时间戳服务,该可信时间服务器430可以是例如图3的可信时间服务器350。
[0073] 账本服务器420可以将账本服务和可信时间戳服务唯一地提供给客户端。账本服务器420可以将与客户端相关联的交易数据存储在唯一地用于该客户端并且与中心化账本系统400中的其他客户端独立(或分开)的区块链中。账本服务器420可以请求并存储唯一地用于与存储在账本3务器420中的区块链中的客户端相关联的交易数据的可信时间戳信息。客户端可以具有将交易存储在区块链中的管理权限。在一些情况下,客户端可以向第三方提供允许第三方将交易存储在与客户端相关联的区块链中的第二账本权限。
[0074] 在一些实施例中,当与客户端相关联的交易(或交易数据)被存储在账本服务器420中时,客户端可以使用客户端设备410向账本服务器420发送客户端签名。客户端签名可以指示客户承认交易已经完成和/或将被存储在账本服务器420中。因此,客户无法否认交易。
[0075] 在一些实施例中,在账本服务器420中(例如,在区块链中)接收和/或存储交易(或交易数据)之后,账本服务器420可以向客户端设备410发送账本签名。账本签名可以指示账本服务器420确认交易的接收和/或存储。因此,账本服务器420不能否认存储了交易。
[0076] 在一些实施例中,账本服务器420可以向可信时间服务器430发送针对与客户端相关联并存储在账本服务器420中的交易的时间戳请求。可信时间服务器430可以将用于交易的时间戳和关联签名提供给账本服务器420。时间戳签名可以包括交易的信息。因此,可信时间服务器430不能否认其对交易时间的背书并且交易的时间戳是值得信赖的。
[0077] 在一些实施例中,三方(客户端、账本系统和可信时间服务器)的三个相应权利彼此独立,这可以增强存储在中心化账本系统中的交易数据的可信度和可审计性。
[0078] 图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提供的账本服务。例如,客户端可以包括多个例如客户银行的金融机构。
[0079] 每个客户端都可以使用其相关联的客户端设备将交易(或交易数据)存储在与其他客户端共享的联合区块链中。类似于图4A,每个客户端可以向账本服务器470发送对应的客户端签名,并且账本服务器470可以将对应的账本签名返回给客户端。账本服务器470可以向可信时间服务器430发送针对存储在联合区块链中的交易的时间戳请求,并接收交易的时间戳信息且将其存储在联合区块链中。
[0080] 图5是示出根据本文的实施例的将针对交易数据的可信时间戳信息集成到基于区块链的中心化账本系统中的处理500的示例的图。基于区块链的中心化账本系统可以是图3的中心化账本系统310。中心化账本系统可以包括账本服务器520,例如图3的账本服务器320。账本服务器520可以将交易数据存储在区块链530中。中心化账本系统可以从可信时间服务器510接收针对所存储的交易数据的可信时间戳信息。可信时间服务器510与可信时间机构相关联,并且独立于中心化账本系统。可信时间服务器510可以是图3的可信时间服务器350或图4A-4B的可信时间服务器430的的示例。
[0081] 区块链530包括多个区块,例如,区块m至区块n+2。每个区块具有区块标识,例如,m、m+1、m+2、m+3、…、n、n+1、n+2,并且例如根据时间顺序被按顺序添加至区块链530中。区块链530中的每个区块可以通过包括区块链530中紧接在其之前的先前区块的哈希值被链接到该先前区块。例如,区块m+1可以包括先前区块m的哈希值。在一些示例中,区块m可以是第一区块,即区块链530的创世区块。在一些实施例中,每个区块还包括内部时间戳、其自身的哈希值以及一个或多个交易或交易数据。内部时间戳指示该区块被生成和/或被添加到区块链时的时间点。内部时间戳可以由账本服务器、中心化账本系统或与中心化账本系统相关联的中央可信机构内部地提供。
[0082] 在一些实施例中,账本服务器520可以以触发时间段周期性地向可信时间服务器510发送针对区块链530中的区块的时间戳请求。该触发时间段可以与区块生成的时间段相同或不同。在一些实施例中,该触发时间段可以比区块生成的时间段长,使得例如由于从可信时间服务器510获得时间戳的成本,并不是每个区块都被加时间戳。
[0083] 在一些实施例中,当区块的时间戳请求被发送时,所述区块可以是在区块链530中生成的最新区块。时间戳请求可以包括最新区块的哈希值或用于唯一标识最新区块的其他信息。例如,当账本服务器520被触发以发送时间戳请求i时,区块链530中的区块m是最新区块。账本服务器520可以生成区块m的哈希值,并向可信时间服务器510发送包括区块m的哈希值的时间戳请求i。
[0084] 账本服务器520可以包括计时器,该计时器对发送例如针对区块m的时间戳请求i的第一时间戳请求之后的时间进行计数。当计时器计数到触发时间段时,账本服务器520可以被触发以向可信时间服务器510发送例如时间戳请求i+1的第二时间戳请求。时间戳请求i+1可以包括在区块链530中生成的最新区块的哈希值,例如当账本服务器520被触发以发送时间戳请求i+1时生成的区块n的哈希值。
[0085] 在某些情况下,网络问题,例如流量阻塞或黑客入侵可以导致从可信时间服务器510获得可信时间戳信息的延迟(或甚至无法进行)。账本服务器520可以实施超时处理,以解决或减少网络问题对基于区块链的中心化账本系统的正常操作的影响。在一些实施例中,账本服务器520可以设置容忍时间段,以在发送时间戳请求之后等待来自可信时间服务器510的回复。容忍时间段可以等于或短于触发时间段。账本服务器520可以设置计时器,以对发送时间戳请求之后的时间进行计数。如果账本服务器520在容忍时间段内没有从可信时间服务器510接收任何对时间戳请求的回复,则账本服务器520可以忽略该时间戳请求。
例如,如图5所示,响应于确定在发送针对区块m的时间戳请求i之后的容忍时间段内账本服务器520未从可信时间服务器510接收对时间戳请求i的任何回复,账本服务器520可以忽略该时间戳请求i。如果账本服务器520在容忍时间段之后接收到来自可信时间服务器510的对时间戳请求i的回复,则账本服务器520可以忽略该回复。账本服务器520可以等待直到下一个触发时间发送时间戳请求i+1。以这种方式,账本服务器520可以避免等待回复中的过度延迟甚至僵持,这可以通过生成用于存储交易信息的区块来帮助解决网络问题的影响或使其最小化并维护正常账本服务。
[0086] 如果账本服务器520在发送时间戳请求之后的容忍时间段内从可信时间服务器510接收区块的时间戳信息,则账本服务器520可以将时间戳信息存储到区块链530中紧接在所述区块之后的下一区块中。例如,如图5所示,在发送针对区块n的时间戳请求i+1之后,账本服务器520在容忍时间段内接收针对区块n的时间戳和关联签名。作为响应,账本服务器520将时间戳和关联签名的信息(例如,时间戳和关联签名和/或时间戳和关联签名的哈希值)存储在区块链530中紧接在区块n之后的区块n+1中。在一些实施例中,时间戳和关联签名的信息可以作为交易存储在区块n+1中。在某些情况下,区块n+1包括除区块n的时间戳和关联签名的信息以外的其他交易数据。在某些情况下,区块n+1是专存储区块n的时间戳和关联签名的信息的区块。
[0087] 在一些实施例中,账本服务器520可以不是周期性地生成区块。例如,账本服务器520可以根据需要或基于账本服务器520接收的交易数量来生成区块。例如,账本服务器520可以在接收预定数量的交易时生成新区块。
[0088] 在一些实施例中,账本服务器520可以不是周期性地向可信时间服务器发送时间戳请求。例如,账本服务器520可以根据需要或基于账本服务器520生成的区块数量发送时间戳请求。例如,账本服务器520可以在从客户端接收指令时或者在预定数量的区块最近已经被添加到区块链时发送区块的时间戳请求。
[0089] 在一些实施例中,账本服务器520的超时处理可以考虑区块生成和/或时间戳请求的非周期性。例如,在一些实施例中,账本服务器520在第一时间点发送针对区块链530中的最新区块的时间戳请求,例如,针对区块m的时间戳请求i。如果账本服务器520确定紧接在例如区块m的最新区块之后的区块,例如将在比第一时间点晚但在容忍时间段过去之前的第二时间点生成区块m+1,并且确定在第二时间点没有来自可信时间服务器510的回复,则账本服务器520可以推迟在区块链530中生成紧接在最新区块(例如,区块m+1)之后的区块。如果账本服务器520进一步确定已经过去容忍时间段并且没有来自可信时间服务器510的回复,则账本服务器520可以恢复以在区块链530中生成紧接最新区块例如区块m+1之后的区块。以这种方式,账本服务器520可以维护在区块链530中生成区块的正常处理,以避免在从可信时间服务器510接收回复中的稽延过久。
[0090] 图6是示出可以根据本文实施例执行的用于实现时间戳服务的处理600的示例的流程图。为了方便起见,处理600将被描述为由位于一个或多个位置并且根据本文被适当地编程的一个或多个计算机的系统执行。例如,基于区块链的中心化账本系统中的账本服务器可以执行处理600。中心化账本系统可以是图3的中心化账本系统310的示例。账本服务器可以是图3的账本服务器320、图4A的账本服务器420、图4B的账本服务器470或图5的账本服务器520的示例。
[0091] 在602,向可信时间服务器发送针对中心化账本系统的账本服务器中的区块链的待加时间戳区块的时间戳请求。可信时间服务器与可信时间机构相关联,并且独立于中心化账本系统。可信时间服务器可以是例如图3的可信时间服务器350、图4A-4B的可信时间服务器430、或者图5的可信时间服务器510。区块链可以是例如图3的区块链322或图5的区块链530。所述待加时间戳区块可以是区块链中生成的最新区块。所述时间戳请求可以包括待加时间戳区块的哈希值或唯一标识待加时间戳区块的其他类型的信息。
[0092] 在一些实施例中,账本服务器可以根据需要或基于账本服务器生成的区块的数量不时地向可信时间服务器发送时间戳请求。在一些实施例中,账本服务器可以以预定触发时间段周期性地向可信时间服务器发送针对区块链中待加时间戳区块的时间戳请求。预定触发时间段可以与用于中心化账本系统的时间戳服务的对应成本相关联。预定触发时间段可以由与中心化账本系统相关联的客户端(或用户)预先确定。
[0093] 在604,确定是否在预定容忍时间段内接收到来自时间服务器的回复。在一些实施例中,账本服务器可以设置容忍时间段。容忍时间段可以等于或短于触发时间段。
[0094] 在606,如果在预定容忍时间段内接收回复,则将回复信息存储在区块链中。所述回复可以包括待加时间戳区块的时间戳和关联签名。账本服务器可以在第二区块中存储时间戳和关联签名和/或时间戳和关联签名的哈希值,所述第二区块在区块链中紧接在待加时间戳区块之后。在一些实施例中,第二区块的区块体,除了待加时间戳区块的时间戳和关联签名和/或时间戳和关联签名的哈希值,不包含其他交易数据。在一些其他实施例中,第二区块的区块体包括在账本服务器向可信时间服务器发送待加时间戳区块的时间戳请求之后由账本服务器接收的交易的交易数据。
[0095] 在608,如果在预定容忍时间段内未接收到来自时间服务器的回复,则该时间戳请求被忽略。例如,如果在预定容忍时间段之后接收到来自时间服务器的对时间戳请求的回复,则账本服务器可以忽略该回复。
[0096] 在一些实施例中,如果账本服务器确定区块链中紧接在待加时间戳区块之后的第二区块将在时间戳请求被发送之后但在预定容忍时间段过去之前生成,并且确定没有来自时间服务器的针对时间戳请求的回复,则账本服务器可以推迟在区块链中生成第二区块。如果在已经过去了预定容忍时间段之后,仍然没有接收到来自时间服务器的对时间戳请求的回复,则账本服务器可以恢复在区块链中生成第二区块。
[0097] 图7描绘了根据本文的实施例的装置700的模块的示例。装置700可以是基于区块链的中心化账本系统的实施例的示例,其被配置为为中心化账本系统中存储的交易数据提供账本服务和/或可信时间戳服务。装置700可以对应于上述实施例,装置700包括:发送模块702,在第一时间点向可信时间服务器发送针对区块链中的第一待加时间戳区块的第一时间戳请求,所述可信时间服务器与可信时间机构相关联并且独立于中心化账本系统,所述区块链包括存储交易数据的多个区块;确定模块704,确定从所述第一时间点起已经过去预定时间段,并且确定没有收到来自所述可信时间服务器的对所述第一时间戳请求的回复;忽略模块706,响应于所述确定而忽略所述第一时间戳请求。
[0098] 在可选实施例中,忽略模块706,可以响应于在预定时间段之后接收到来自时间服务器的对第一时间戳请求的回复,忽略该回复。
[0099] 在可选实施例中,对区块链中的第一待加时间戳区块的第一时间戳请求可以包括区块链中的第一待加时间戳区块的哈希值。
[0100] 在可选实施例中,发送模块702被配置为以预定触发时间段周期性地向时间服务器发送针对区块链中待加时间戳区块的时间戳请求。预定触发时间段可以与中心化账本系统的时间戳服务的相应成本相关联。预定触发时间段可以由与中心化账本系统相关联的客户端(或用户)预先确定。
[0101] 在可选实施例中,装置700还可以包括接收模块708,在向时间服务器发送针对区块链中的第二待加时间戳区块的第二时间戳请求之后,在预定时间段内接收到来自时间服务器的区块链中的第二待加时间戳区块的时间戳和关联签名;存储模块710,存储区块链中的第二待加时间戳区块的时间戳和关联签名的信息。
[0102] 在可选实施例中,将第二待加时间戳区块的时间戳和关联签名和/或所述时间戳和关联签名的哈希值存储在第三区块中,第三区块在区块链中紧接在第二待加时间戳区块之后,第三区块存储第二待加时间戳区块的哈希值。
[0103] 在可选实施例中,第三区块的区块体,除了第二待加时间戳区块的时间戳和关联签名和/或时间戳和关联签名的哈希值,不包含其他交易数据。
[0104] 在可选实施例中,装置700还包括第二确定模块,用于确定将在比第一时间点晚但在预定时间段过去之前的第二时间点生成在区块链中紧接在第一待加时间戳区块之后的第二区块,并且确定在第二时间点没有来自时间服务器的对第一时间戳请求的回复。
[0105] 在可选实施例中,装置700可以进一步包括延迟模块,用于响应于第二确定模块的确定而延迟在区块链中生成第二区块。
[0106] 在可选实施例中,装置700还可以包括恢复模块,用于响应于从第一时间点起已经过去预定时间段、并且确定没有来自时间服务器的对第一时间戳请求的回复,恢复在区块链中生成第二区块。
[0107] 在先前实施中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
[0108] 对于装置中每个模块的功能和色的实施例过程,可以参考前一方法中相应步骤的实施例过程。为了简单起见,这里省略了细节。
[0109] 由于装置实施例基本上与方法实施例相对应,因此对于相关部分,可以参考方法实施例中的相关描述。前述装置实施例仅仅是示例。被描述为单独部分的模块可以是或可以不是物理上分离的,并且显示为模块的部分可以是或可以不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员在无需付出创造性努的情况下就能理解和实现本申请的实施例。
[0110] 再次参见图7,它可以被解释为示出了基于区块链的中心化账本实现装置的内部功能模块和结构。基于区块链的中心化账本实现装置可以是中心化账本系统的一个实例,该中心化账本系统被配置为针对中心化账本系统中存储的交易数据提供账本服务和可信时间戳服务。本质上,执行主体可以是电子设备,该电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接至所述一个或多个处理器且其上存储有程序指令的,所述程序指令能由所述一个或多个处理器执行以执行本文描述的算法、方法、函数、处理、流程和进程
[0111] 所描述的主题的实施方案可以包括单独或组合的一个或多个特征。例如,在第一实施例中,方法包括:计算设备在第一时间点向可信时间服务器发送针对区块链中的第一待加时间戳区块的第一时间戳请求,所述计算设备位于在区块链中存储数据的中心化账本系统中,所述可信时间服务器与可信时间机构相关联并且独立于中心化账本系统,所述区块链包括存储交易数据的多个区块;以及响应于确定从所述第一时间点起已经过去预定时间段并且确定没有来自可信时间服务器的对第一时间戳请求的回复,计算设备忽略第一时间戳请求。
[0112] 前述和其他描述的实施例可以各自可选地包括以下特征中的一个或多个:
[0113] 第一特征,可与以下任一特征组合,指定该方法进一步包括:确定将在比第一时间点晚但在预定时间段过去之前的第二时间点生成在区块链中紧接在第一待加时间戳区块之后的第二区块,并且确定在第二时间点没有来自时间服务器的对第一时间戳请求的回复,并作为响应,延迟在区块链中生成第二区块。
[0114] 第二特征,可以与先前或以下任一特征组合,指定该方法还包括:响应于确定从所述第一时间点起已经过去所述预定时间段并且确定没有来自所述时间服务器的对所述第一时间戳请求的回复,恢复在所述区块链中生成第二区块。
[0115] 第三特征,可以与先前或以下任一特征组合,指定忽略所述第一时间戳请求包括:响应于在预定时间段之后接收到来自时间服务器的对第一时间戳请求的回复,忽略所述回复。
[0116] 第四特征,可以与先前或以下任一特征组合,指定所述方法进一步包括:以预定触发时间段周期性地向时间服务器发送针对区块链中的待加时间戳区块的时间戳请求。
[0117] 第五特征,可与先前或以下任一特征组合,指定所述预定触发时间段与中心化账本系统的时间戳服务的相应成本相关联。
[0118] 第六特征,可与先前或以下任一特征组合,指定所述预定触发时间段是由与中心化账本系统相关联的用户预先确定的。
[0119] 第七特征,可与先前或以下任一特征组合,指定针对区块链中的第一待加时间戳区块的第一时间戳请求包括区块链中的第一待加时间戳区块的哈希值。
[0120] 第八特征,可与先前或以下任一特征组合,指定所述方法进一步包括:发送针对区块链中的第二待加时间戳区块的第二时间戳请求;在预定时间段内,从可信时间服务器接收第二待加时间戳区块的第二时间戳和关联签名;第二待加时间戳区块的第二时间戳和关联签名的信息存储在区块链中。
[0121] 第九特征,可与先前或以下任一特征组合,指定将第二待加时间戳区块的第二时间戳和关联签名的信息存储在区块链中,包括:将所述第二待加时间戳区块的第二时间戳和关联签名和/或所述第二时间戳和关联签名的哈希值存储在第三区块中,所述第三区块在区块链中紧接在所述第二待加时间戳区块之后,所述第三区块存储所述第二待加时间戳区块的哈希值。
[0122] 第十特征,可与先前或以下任一特征组合,指定第三区块的区块体,除第二待加时间戳区块的第二时间戳和关联签名和/或第二时间戳和关联签名的哈希值,不包括其他交易数据。
[0123] 本文中描述的主题、动作和操作的实施例可以在数字电子电路中、有形体现的计算机软件或固件中、包括本文中公开的结构及其结构等同物的计算机硬件中,或者它们中的一个或多个的组合中实现。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理的操作。例如,计算机程序载体可以包括具有编码在其上或存储在其上的指令的一个或多个计算机可读存储介质。载体可以是有形的非暂态计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器随机存取存储器(RAM)、只读存储器(ROM)或其他介质类型。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成为对信息进行编码用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
[0124] 计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释语言、说明或程序性语言;它可以被配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可以包括由数据通信网络互连的在一个或多个位置的一台或多台计算机。
[0125] 计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
[0126] 举例来说,用于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从耦接到处理器的非暂态计算机可读介质接收用于执行的计算机程序的指令并且接收数据。
[0127] 术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。数据处理装置可以包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统操作系统、或者它们中的一个或多个的组合的代码。
[0128] 本文中描述的处理和逻辑流程可以由一台或多台计算机或处理器执行一个或多个计算机程序进行,以通过对输入数据进行运算并生成输出来执行操作。过程和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
[0129] 适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可以包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
[0130] 通常,计算机还将包括或可操作地耦接为从一个或多个存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。然而,计算机不需要具有这样的设备。因此,计算机可以耦接到本地和/或远程的例如一个或多个存储器的一个或多个存储设备。例如,计算机可以包括作为计算机的集成组件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一个设备中,例如移动电话,个人数字助理(PDA),移动音频或视频播放器,游戏控制台,全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
[0131] 组件可以通过诸如直接地连接、或经由一个或多个中间组件彼此电学连接或光学连接可通信地连接而彼此“耦接”。如果其中一个组件被集成到另一个组件中,组件也可以彼此“耦接”。例如,集成到处理器中的存储组件(例如,L2高速缓存组件)“耦接到”处理器。
[0132] 为了提供与用户的交互,本文中所描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标轨迹球触摸板等的指针设备。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从用户设备上的web浏览器收到的请求,向web浏览器发送web页面,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)发送文本消息或其他形式的消息并作为回应接收来自用户的响应消息来与用户交互。
[0133] 本文使用与系统,装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
[0134] 尽管本文包含许多具体实施例细节,但这些不应被解释为对由权利要求书本身限定的请求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以被描述为以某些组合起作用并且甚至最初被如此请求保护,但是在一些情况下,可以从请求保护的组合中删除来自该组合的一个或多个特征,并且权利要求书可以涉及子组合或子组合的变体。
[0135] 类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求书中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或序列顺序执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而是应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
[0136] 已经描述了主题的特定实施例。其他实施例在以下权利要求书的范围内。例如,权利要求书中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或序列顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈