时间戳处理方法及装置与流程

文档序号:11234401阅读:500来源:国知局
时间戳处理方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种时间戳处理方法及装置。



背景技术:

区块链是区块以链的方式组合在一起的供系统内的节点共享的交易数据库。具体的,把一段时间内生成的信息(包括数据或代码)打包成一个区块,盖上时间戳,与上一个区块衔接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后再在本页中写入新的信息,从而形成新的区块,首尾相连,最终形成了区块链。

在目前的区块链网络中,当节点向区块链网络发送消息时,可以在其发送的消息中携带一个时间戳,以表示该节点发送该消息的时刻,这样多个节点分别向区块链网络发送的消息将携带不同的时间戳,区块链网络中的其他节点将按照不同消息携带的时间戳的先后顺序来处理不同消息。

但是,有些节点为了让其他节点优先处理自己发送的消息,可能会任意的修改消息中携带的时间戳,例如将该时间戳对应的时间修改成小于实际发送该消息的时间,从而使得其他节点能够优先处理该消息,导致区块链网络中出现不公平的现象。



技术实现要素:

本发明实施例提供一种时间戳处理方法及装置,以避免节点随意修改消息中携带的时间戳。

本发明实施例的一个方面是提供一种时间戳处理方法,包括:

发送节点将所述发送节点的名字和公钥进行哈希运算得到第一哈希值;

所述发送节点将所述第一哈希值发送给时间确认器,以使所述时间确认器给所述第一哈希值添加第一时间戳,并采用所述时间确认器的私钥对所述第一哈希值和所述第一时间戳进行签名,得到第一签名信息;

所述发送节点将待发送的业务消息和所述第一哈希值进行哈希运算得到第二哈希值;

所述发送节点将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给所述时间确认器,以使所述时间确认器给所述待发送的业务消息、所述第一哈希值和所述第二哈希值添加第二时间戳,并采用所述时间确认器的私钥对所述待发送的业务消息、所述第一哈希值、所述第二哈希值和所述第二时间戳进行签名,得到第二签名信息,并将所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳和所述第二签名信息发送给区块链网络。

本发明实施例的另一个方面是提供一种时间戳处理装置,所述时间戳处理装置位于发送节点,包括:

运算模块,用于将所述发送节点的名字和公钥进行哈希运算得到第一哈希值;

发送模块,用于将所述第一哈希值发送给时间确认器,以使所述时间确认器给所述第一哈希值添加第一时间戳,并采用所述时间确认器的私钥对所述第一哈希值和所述第一时间戳进行签名,得到第一签名信息;

所述运算模块还用于将待发送的业务消息和所述第一哈希值进行哈希运算得到第二哈希值;

所述发送模块还用于将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给所述时间确认器,以使所述时间确认器给所述待发送的业务消息、所述第一哈希值和所述第二哈希值添加第二时间戳,并采用所述时间确认器的私钥对所述待发送的业务消息、所述第一哈希值、所述第二哈希值和所述第二时间戳进行签名,得到第二签名信息,并将所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳和所述第二签名信息发送给区块链网络。

本发明实施例提供的时间戳处理方法及装置,通过发送节点将待发送的业务消息发送给时间确认器,由时间确认器给该业务消息添加时间戳,避免了节点随意修改时间戳的现象,另外,发送节点将自己的名字和公钥进行哈希运算得到哈希值,并用该哈希值来标识该发送节点,以使区块链网络中的其他节点并不知道该发送节点的名字和公钥,避免该发送节点被攻击,提高了该发送节点的安全性。

附图说明

图1为本发明实施例提供的时间戳处理方法流程图;

图2为本发明另一实施例提供的时间戳处理方法流程图;

图3为本发明实施例提供的相邻区块的示意图;

图4为本发明实施例提供的时间戳处理装置的结构图;

图5为本发明另一实施例提供的时间戳处理装置的结构图。

具体实施方式

图1为本发明实施例提供的时间戳处理方法流程图。本发明实施例针对有些节点为了让其他节点优先处理自己发送的消息,可能会任意的修改消息中携带的时间戳,例如将该时间戳对应的时间修改成小于实际发送该消息的时间,从而使得其他节点能够优先处理该消息,导致区块链网络中出现不公平的现象,提供了时间戳处理方法,该方法具体步骤如下:

步骤s101、发送节点将所述发送节点的名字和公钥进行哈希运算得到第一哈希值。

在本实施例中,将向区块链网络发送某个业务信息的节点记为发送节点,当区块链网络中某一发送节点想向区块链网络发送某个业务信息时,该发送节点将自己的名字和公钥进行哈希运算得到第一哈希值,例如,该发送节点的名字是alice,该发送节点的公钥是key_pwb,该发送节点对alice和key_pwb进行哈希运算得到第一哈希值h_name。

步骤s102、所述发送节点将所述第一哈希值发送给时间确认器,以使所述时间确认器给所述第一哈希值添加第一时间戳,并采用所述时间确认器的私钥对所述第一哈希值和所述第一时间戳进行签名,得到第一签名信息。

该发送节点将第一哈希值h_name发送给时间确认器,在本实施例中,区块链网络中广泛分布着时间确认器,为了保障各节点到达时间确认器的路径传输时间的公平性,多个时间确认器均匀分布在区块链网络中,且这些时间确认器的公钥和私钥是一致的。

当某一时间确认器接收到该发送节点发送的第一哈希值h_name时,该时间确认器给第一哈希值h_name添加第一时间戳,该第一时间戳可以是该时间确认器接收到第一哈希值h_name时该时间确认器本地的计时时刻,另外,该时间确认器还采用自己的私钥对第一哈希值h_name和第一时间戳进行签名,得到第一签名信息,并将第一签名信息广播给区块链网络中的各个节点。

步骤s103、所述发送节点将待发送的业务消息和所述第一哈希值进行哈希运算得到第二哈希值。

当该发送节点接收到第一签名信息后,将签名后的第一哈希值h_name和第一时间戳记录在本地,该发送节点可以将第一哈希值h_name作为自己的标识信息,即第一哈希值h_name可用来代替该发送节点的名字和公钥,即区块链网络中的其他节点并不知道第一哈希值h_name代表的是alice,也不知道该发送节点的公钥是key_pwb,只知道第一哈希值h_name代表该发送节点。

当该发送节点需要发送某条业务消息时,将待发送的业务消息和第一哈希值h_name进行哈希运算得到第二哈希值h_001。

步骤s104、所述发送节点将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给所述时间确认器,以使所述时间确认器给所述待发送的业务消息、所述第一哈希值和所述第二哈希值添加第二时间戳,并采用所述时间确认器的私钥对所述待发送的业务消息、所述第一哈希值、所述第二哈希值和所述第二时间戳进行签名,得到第二签名信息,并将所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳和所述第二签名信息发送给区块链网络。

该发送节点将待发送的业务消息、第一哈希值h_name和第二哈希值h_001一起发送给时间确认器,时间确认器接收到该发送节点发送的业务消息、第一哈希值h_name和第二哈希值h_001时,给业务消息、第一哈希值h_name和第二哈希值h_001添加第二时间戳,并采用该时间确认器自己的私钥对业务消息、第一哈希值h_name、第二哈希值h_001和第二时间戳进行签名,得到第二签名信息,进一步的,该时间确认器将签名之前的信息和签名之后的信息广播给区块链网络中的各个节点,其中,签名之前的信息包括:业务消息、第一哈希值h_name、第二哈希值h_001和第二时间戳,签名之后的信息为第二签名信息。

本发明实施例通过发送节点将待发送的业务消息发送给时间确认器,由时间确认器给该业务消息添加时间戳,避免了节点随意修改时间戳的现象,另外,发送节点将自己的名字和公钥进行哈希运算得到哈希值,并用该哈希值来标识该发送节点,以使区块链网络中的其他节点并不知道该发送节点的名字和公钥,避免该发送节点被攻击,提高了该发送节点的安全性。

图2为本发明另一实施例提供的时间戳处理方法流程图。在上述实施例的基础上,本实施例提供的时间戳处理方法具体步骤如下:

步骤s201、所述发送节点从所述区块链网络中的种子节点获取时间确认器的地址列表和公钥,所述地址列表包括至少一个时间确认器的地址信息。

当该发送节点作为一个新节点加入区块链网络时,该新节点先与区块链网络中的种子节点进行通信,可选的,该新节点选择通信的种子节点是区块链网络中距离该新节点最近、通信时间最短的一个种子节点,该种子节点将该区块链网络中的多个时间确认器的地址列表和时间确认器的公钥,其中,该地址列表包括至少一个时间确认器的地址信息。另外,当有时间确认器增加或删除时,时间确认器需要同步增加或删除的信息给全网所有的种子节点,种子节点再同步该信息给全网所有的节点,以使全网所有的节点获知哪些时间确认器增加、哪些时间确认器被删除。

步骤s202、所述发送节点对所述地址列表中的至少一个时间确认器的地址信息进行优先级排序。

当该新节点接收到种子节点发送的地址列表后,对该地址列表中的至少一个时间确认器的地址信息进行优先级排序,一种排序的方法是:该新节点根据自己的ip地址和网络路由情况,将该地址列表中的至少一个时间确认器的地址信息,按照每个时间确认器距离该新节点的远近、该新节点与每个时间确认器通信所需的时间等进行排序,例如,距离该新节点最近的、通信所需时间最短的时间确认器的优先级最高,相应的,该时间确认器的地址信息在该地址列表中排在第一位。然后,该新节点将排序后的地址列表保存在本地。

在本实施例中,发送节点可以选择该地址列表排在第一位的地址信息对应的时间确认器,即该发送节点可以选择优先级最高的时间确认器,从而将上述实施例所述的第一哈希值发送给该优先级最高的时间确认器,以及将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给该优先级最高的时间确认器。

步骤s203、发送节点将所述发送节点的名字和公钥进行哈希运算得到第一哈希值。

步骤s203与步骤s101一致,具体过程此处不再赘述。

步骤s204、所述发送节点将所述第一哈希值发送给时间确认器,以使所述时间确认器给所述第一哈希值添加第一时间戳,并采用所述时间确认器的私钥对所述第一哈希值和所述第一时间戳进行签名,得到第一签名信息。

所述时间确认器是所述地址列表中优先级最大的地址信息对应的时间确认器。

步骤s204与步骤s102一致,具体过程此处不再赘述。

步骤s205、所述发送节点将待发送的业务消息和所述第一哈希值进行哈希运算得到第二哈希值。

步骤s205与步骤s103一致,具体过程此处不再赘述。

步骤s206、所述发送节点将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给所述时间确认器,以使所述时间确认器给所述待发送的业务消息、所述第一哈希值和所述第二哈希值添加第二时间戳,并采用所述时间确认器的私钥对所述待发送的业务消息、所述第一哈希值、所述第二哈希值和所述第二时间戳进行签名,得到第二签名信息,并将所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳和所述第二签名信息发送给区块链网络。

步骤s206与步骤s104一致,具体过程此处不再赘述。

步骤s207、所述发送节点根据所述公钥对所述第二签名信息进行验证,以验证所述第二时间戳是否被篡改。

具体的,发送节点或区块链网络中的其他节点,可以采用时间确认器的公钥对时间确认器发送的第二签名信息进行验证,例如,发送节点采用时间确认器的公钥对第二签名信息进行解密,得到解密后的业务消息、第一哈希值、第二哈希值、第二时间戳,进一步比较解密后的业务消息、第一哈希值、第二哈希值、第二时间戳是否与该时间确认器直接发出来的所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳一致,如果一致,说明验证通过,如果不一致,说明验证不通过,该第二时间戳可能被篡改。

本实施例通过节点对时间确认器发送的签名信息进行验证,以验证时间确认器添加的时间戳是否被篡改过,保证区块链网络中任何一个节点广播到网络的任何一条消息都有准确的不可修改的时间戳,提高了时间戳的真实性。

此外,在上述实施例的基础上,区块链网络中全网采用延迟的记账方法,也就是每次记账的内容必须为前两次记账的时间的信息或交易,并且严格按照具有签名的时间戳的时间的先后排序来排列,确保了所有交易的唯一性,避免混乱。如图3所示,区块n+2的内容为区块n与区块n+1时间间隔内的交易信息,例如交易1、交易2、声明用户、交易3所涉及到的信息。

图4为本发明实施例提供的时间戳处理装置的结构图。本发明实施例提供的时间戳处理装置可以执行时间戳处理方法实施例提供的处理流程,该时间戳处理装置位于上述实施例所述的发送节点中,如图4所示,时间戳处理装置40包括:运算模块41和发送模块42,其中,运算模块41用于将所述发送节点的名字和公钥进行哈希运算得到第一哈希值;发送模块42用于将所述第一哈希值发送给时间确认器,以使所述时间确认器给所述第一哈希值添加第一时间戳,并采用所述时间确认器的私钥对所述第一哈希值和所述第一时间戳进行签名,得到第一签名信息;运算模块41还用于将待发送的业务消息和所述第一哈希值进行哈希运算得到第二哈希值;发送模块42还用于将所述待发送的业务消息、所述第一哈希值和所述第二哈希值发送给所述时间确认器,以使所述时间确认器给所述待发送的业务消息、所述第一哈希值和所述第二哈希值添加第二时间戳,并采用所述时间确认器的私钥对所述待发送的业务消息、所述第一哈希值、所述第二哈希值和所述第二时间戳进行签名,得到第二签名信息,并将所述待发送的业务消息、所述第一哈希值、所述第二哈希值、所述第二时间戳和所述第二签名信息发送给区块链网络。

本发明实施例提供的时间戳处理装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过发送节点将待发送的业务消息发送给时间确认器,由时间确认器给该业务消息添加时间戳,避免了节点随意修改时间戳的现象,另外,发送节点将自己的名字和公钥进行哈希运算得到哈希值,并用该哈希值来标识该发送节点,以使区块链网络中的其他节点并不知道该发送节点的名字和公钥,避免该发送节点被攻击,提高了该发送节点的安全性。

图5为本发明另一实施例提供的时间戳处理装置的结构图。在上述实施例的基础上,时间戳处理装置40还包括:获取模块43、排序模块44和验证模块45,其中,获取模块43用于从所述区块链网络中的种子节点获取时间确认器的地址列表和公钥,所述地址列表包括至少一个时间确认器的地址信息。排序模块44用于对所述地址列表中的至少一个时间确认器的地址信息进行优先级排序。可选的,所述时间确认器是所述地址列表中优先级最大的地址信息对应的时间确认器。

验证模块45用于根据所述公钥对所述第二签名信息进行验证,以验证所述第二时间戳是否被篡改。

本发明实施例提供的时间戳处理装置可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过节点对时间确认器发送的签名信息进行验证,以验证时间确认器添加的时间戳是否被篡改过,保证区块链网络中任何一个节点广播到网络的任何一条消息都有准确的不可修改的时间戳,提高了时间戳的真实性。

综上所述,本发明实施例通过发送节点将待发送的业务消息发送给时间确认器,由时间确认器给该业务消息添加时间戳,避免了节点随意修改时间戳的现象,另外,发送节点将自己的名字和公钥进行哈希运算得到哈希值,并用该哈希值来标识该发送节点,以使区块链网络中的其他节点并不知道该发送节点的名字和公钥,避免该发送节点被攻击,提高了该发送节点的安全性;通过节点对时间确认器发送的签名信息进行验证,以验证时间确认器添加的时间戳是否被篡改过,保证区块链网络中任何一个节点广播到网络的任何一条消息都有准确的不可修改的时间戳,提高了时间戳的真实性。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1