区块链记账方法、装置、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链记账方法、装置、计算机设备和存储介质。
背景技术
目前,区块链技术越来越多地应用在电子交易、签订合同、新闻传播等领域。区块链技术的特点在于通过共识机制和分布式计算,实现信息的去中心化,并保证了信息的不可篡改性。
然而,实现区块链技术的重要一环,是由大量服务器节点针对同一个信息进行记账,服务器节点在进行记账时,需要通过特定的加密算法,并根据密钥计算信息的如哈希值(Hash)等的加密密码,一次加密计算通常需要耗费大量时间。例如,在电子交易场景中,实现一个电子交易,需要多次的记账操作的确认,才能完成整个记账操作,导致交易延迟。当大量交易产生时,则还存在严重的交易延迟的情况。
因此,现有技术的区块链记账方法存在着记账效率较低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高记账效率的区块链记账方法、装置、计算机设备和存储介质。
一种区块链记账方法,包括:
获取业务信息;
确定所述业务信息对应的通证账户;
获取所述通证账户的利益相关通证账户;
确定所述通证账户的和所述利益相关通证账户的记账节点;
发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
在一个实施例中,所述通证账户包括第一通证账户和第二通证账户,所述业务信息为所述第一通证账户与所述第二通证账户之间的业务信息,所述获取所述通证账户的利益相关通证账户,包括:
获取所述第一通证账户的第一利益相关通证账户,以及,获取所述第二通证账户的第二利益相关通证账户;
所述确定所述通证账户的和所述利益相关通证账户的记账节点,包括:
确定所述第一利益相关通证账户的记账节点为第一记账节点,以及,确定所述第二利益相关通证账户的记账节点为第二记账节点;
所述发送所述业务信息至所述记账节点,包括:
发送所述业务信息至所述第一记账节点,以及,发送所述业务信息至所述第二记账节点。
在一个实施例中,所述获取所述通证账户的利益相关通证账户,包括:
获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
在一个实施例中,还包括:
获取所述第一通证账户与所述第二通证账户之间的业务操作;
采用所述第一通证账户对应的私钥,对所述业务操作进行加密签名,得到第一签名信息;
采用所述第一通证账户对应的公钥,对所述第一签名信息进行验证;
当验证成功时,采用所述第二通证账户对应的私钥,对所述业务操作进行加密签名,得到第二签名信息;
生成第一业务信息和第二业务信息;所述第一业务信息包括所述业务操作、所述第一签名信息和所述第一账户的公钥;所述第二业务信息包括所述业务操作、所述第二签名信息和所述第二账户的公钥;
将所述第一业务信息和所述第二业务信息组成所述业务信息。
在一个实施例中,还包括:
在进行篡改校验时,采用所述第一账户的私钥对所述业务操作进行加密签名,得到第三签名信息,和/或,采用所述第二账户的私钥对所述业务操作进行加密签名,得到第四签名信息;
将所述第三签名信息与所述第一签名信息进行比较,和/或,将所述第四签名信息与所述第二签名信息进行比较;
当所述第三签名信息与所述第一签名信息不一致,或者,当所述第四签名信息与所述第二签名信息不一致,判定当前存在信息篡改。
在一个实施例中,所述通证账户具有第一链高度,还包括:
接收客户端对所述通证账户的订阅请求;所述客户端存储有所述通证账户的第二链高度;
发送所述通证账户的第一链高度至所述客户端;所述客户端用于在所述通证账户的第二链高度与接收的第一链高度不一致时,反馈数据同步请求;
接收所述客户端的数据同步请求,并与所述客户端进行所述通证账户的数据同步处理。
一种区块链记账装置,包括:
信息获取模块,用于获取业务信息;
账户确定模块,用于确定所述业务信息对应的通证账户;
利益相关账户获取模块,用于获取所述通证账户的利益相关通证账户;
节点确定模块,用于确定所述通证账户的和所述利益相关通证账户的记账节点;
发送模块,用于发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
一个实施例中,所述利益相关账户获取模块,包括:
链操作获取子模块,用于获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
父子账户确定子模块,用于根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
拥有账户确定子模块,用于根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
参与关系确定子模块,用于根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取业务信息;
确定所述业务信息对应的通证账户;
获取所述通证账户的利益相关通证账户;
确定所述通证账户的和所述利益相关通证账户的记账节点;
发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取业务信息;
确定所述业务信息对应的通证账户;
获取所述通证账户的利益相关通证账户;
确定所述通证账户的和所述利益相关通证账户的记账节点;
发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
上述区块链记账方法、装置、计算机设备和存储介质,通过确定业务信息对应的通证账户,以及通证账户的利益相关通证账户,发送业务信息至通证账户和利益相关通证账户对应的记账节点,由此,只需要通证账户和利益相关通证账户对应的记账节点进行记账操作,避免与通证账户无关的记账节点进行记账操作,缩短了记账操作所耗费的时间,提升了记账效率。
附图说明
图1本实施例的一种区块链记账方法的应用环境图;
图2是一个实施例的一种区块链记账方法的流程示意图;
图3是一种利益相关通证账户的结构示意图;
图4是本实施例的一种双链结构的示意图;
图5是本实施例的一种Token记录数据的示意图;
图6是本实施例的一种操作校验流程的示意图;
图7是本实施例的一种同步记录write流程的示意图;
图8是本实施例的一种区块链系统订阅read的示意图;
图9是本实施例的一种区块链记账整体流程的示意图;
图10是一个实施例的一种区块链记账装置的结构框图;
图11是一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链记账方法,可以应用于如图1所示的应用环境中。其中,在一个区块链系统100中,可以包括有多个服务器节点102,多个服务器节点102之间通过网络进行通信。每个服务器节点均可以进行记账操作。
在一个实施例中,如图2所示,提供了一种区块链记账方法,以该方法应用于图1中的区块链系统100为例进行说明,包括以下步骤:
步骤S201,获取业务信息。
其中,业务信息可以为某个用户账户向另一个用户账户进行交易操作、信息传递操作、信息修改操作等操作的信息。例如,一个业务信息,可以为“账户A向账户B支付100元”。
具体实现中,当产生一个电子交易操作,可以产生一个业务信息。例如,某个用户通过其账户A向账户B支付100元,则产生了一个业务信息“账户A向账户B支付100元”。区块链系统100可以获取到该业务信息,以便后续确定该业务信息对应的通证账户。
步骤S202,获取所述业务信息对应的通证账户。
其中,通证账户也称为Token,用于作为某个账户对区块链上的某类资源具有索取权的凭证。通证账户具体可以包括某个账户所经历的一系列业务信息。例如,某个通证账户包括“账户A向账户B支付100元”、“账户A接收账户C的50元”、“账户A向账户D支付500元”。根据通证账户,可以推算出账户A当前的状态。例如,推算出账户A的余额。
具体实现中,根据业务信息,可以确定对应的通证账户。例如,根据业务信息“账户A向账户B支付100元”,可以确定针对账户A的通证账户和账户B的通证账户进行记账操作。
步骤S203,获取所述通证账户的利益相关通证账户。
具体实现中,一个通证账户Token可以具有利益相关的其他通证账户Token。
例如,如果一个通证账户Token_A与另一个通证账户Token_B之间存在fork操作(分叉操作),通证账户Token_A与通证账户Token_B之间形成父子关系,通证账户Token_A为父Token,Token_B则为子Token。父Token可以包含有子Token的全部信息。
又例如,如果一个通证账户Token_A与另一个通证账户Token_B之间存在hold操作(拥有操作),通证账户Token_A与通证账户Token_B之间形成拥有关系,通证账户Token_A为拥有Token,Token_B则为被拥有Token。拥有Token可以包含有被拥有Token的全部信息。
又例如,如果一个通证账户Token_A与另一个通证账户Token_B之间存在join操作(参与操作),通证账户Token_A与通证账户Token_B之间形成参与关系,通证账户Token_A为参与Token,Token_B则为被参与Token。参与Token可以包含有被参与Token的全部信息。
当通证账户之间存在有父子关系、拥有关系、参与关系等关系时,即通证账户之间为利益相关的通证账户。
在本实施例中,可以根据通证账户对应的账户链操作信息,确定通证账户的利益相关通证账户。例如,根据分叉操作信息,可以确定通证账户的父子关系通证账户,作为利益相关通证账户。
图3是一种利益相关通证账户的结构示意图。从图中可见,当Token之间存在fork操作记录,可以确定Token之间形成父子关系的Token。Token之间存在hold操作,Token之间形成拥有关系的Token。
步骤S204,确定所述通证账户的和所述利益相关通证账户的记账节点。
需要说明的是,在实际应用中,通证账户和利益相关通证账户,可能由不同的服务器节点进行记账。
具体实现中,可以根据通证账户与记账节点之间的映射关系表,确定通证账户的记账节点,以及,确定利益相关通证账户的记账节点。
步骤S205,发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户进行记账操作。
具体实现中,可以将业务信息发送至多个记账节点,由该多个记账节点根据业务信息,对其存储的通证账户和利益相关通证账户进行记账操作。
根据本申请提供的区块链记账方法,通过确定业务信息对应的通证账户,以及通证账户的利益相关通证账户,发送业务信息至通证账户和利益相关通证账户对应的记账节点,由此,只需要通证账户和利益相关通证账户对应的记账节点进行记账操作,避免与通证账户无关的记账节点进行记账操作,缩短了记账操作所耗费的时间,提升了记账效率。
在另一个实施例中,所述通证账户包括第一通证账户和第二通证账户,所述业务信息为所述第一通证账户与所述第二通证账户之间的业务信息,所述步骤S203,包括:
获取所述第一通证账户的第一利益相关通证账户,以及,获取所述第二通证账户的第二利益相关通证账户;
所述步骤S204,包括:
确定所述第一利益相关通证账户的记账节点为第一记账节点,以及,确定所述第二利益相关通证账户的记账节点为第二记账节点;
所述步骤S205,包括:
发送所述业务信息至所述第一记账节点,以及,发送所述业务信息至所述第二记账节点。
具体实现中,通证账户可以包括有第一通证账户和第二通证账户。其中,第一账户和第二账户分别具有的利益相关通证账户,为了区分说明,分别命名为第一利益相关通证郑虎和第二利益相关通证账户,相应地,对应的记账节点分别命名为第一记账节点和第二记账节点。
在确定第一记账节点和第二记账节点之后,可以将业务信息发送至第一记账节点和第二记账节点,由第一记账节点根据业务信息对第一通证账户及第一利益相关通证账户进行记账操作,由第二记账节点根据业务信息对第二通证账户及第二利益相关通证账户进行记账操作。
根据本申请提供的区块链记账方法,根据第一通证账户和第二通证账户之间的业务信息,同时针对两个通证账户及其利益相关通证账户进行记账操作,从而形成一个双链结构,提升了区块链的信息稳定性和信息可复制性。
图4是本实施例的一种双链结构的示意图。从图中可见,通证账户A向通证账户B进行了一个电子交易时,通证账户A的和通证账户B及其利益相关通证账户均进行记账操作,形成稳定的双链结构。
在另一个实施例中,所述方法还包括:
获取所述第一通证账户与所述第二通证账户之间的业务操作;
采用所述第一通证账户对应的私钥,对所述业务操作进行加密签名,得到第一签名信息;
采用所述第一通证账户对应的公钥,对所述第一签名信息进行验证;
当验证成功时,采用所述第二通证账户对应的私钥,对所述业务操作进行加密签名,得到第二签名信息;
生成第一业务信息和第二业务信息;所述第一业务信息包括所述业务操作、所述第一签名信息和所述第一账户的公钥;所述第二业务信息包括所述业务操作、所述第二签名信息和所述第二账户的公钥;
将所述第一业务信息和所述第二业务信息组成所述业务信息。
具体实现中,区块链系统100在进行记账操作之前,需要通过密钥对业务信息进行校验。其中,每个通证账户可以具有一对密钥,包括公钥和私钥。
首先,可以获取第一通证账户对应的私钥,对第一通证账户和第二通证账户之间的业务操作进行加密签名,得到签名信息,作为第一签名信息。
然后,获取第一账户的私钥所对应的公钥,对第一签名信息进行签名验证。当验证成功时,采用第二账户的私钥,对业务操作进行加密签名,得到签名信息,作为第二签名信息。
最后,生成第一业务信息和第二业务信息。其中,第一业务信息,可以包括业务操作、第一签名信息和第一账户的公钥。第二业务信息,可以包括业务操作、第二签名信息和第二账户的公钥。得到的第一业务信息和第二业务信息,作为上述的业务信息。
其中,为了对业务信息进行扩展,可以在核心的通证账户中记录基本数据,而通过扩展数据表记录扩展数据。图5是本实施例的一种Token记录数据的示意图。在通证账户Token中记录Token的key值,链高度、操作类型、时间戳、Token的txid等数据。在扩展数据表中,根据Token的txid,可以查询到对应的扩展数据,例如,TokenA链、TokenB链、交易金额、消息、加密签名、公钥等详细的扩展数据。
图6是本实施例的一种操作校验流程的示意图。从图中可见,账户A向账户B进行一个业务操作后,针对于通证账户Token_A,采用对应的私钥,对该业务操作进行加密签名,得到第一签名信息。针对于通证账户Token_B,获取通证账户Token_A对应的公钥,采用该公钥对第一签名信息进行验证。若验证失败则结束校验流程;当验证成功时,则采用通证账户Token_B的私钥对业务操作进行加密签名,得到第二签名信息。最后,生成第一业务信息和第二业务信息。其中,第一业务信息包含业务操作、第一签名信息和第一账户的公钥。第二业务信息包含业务操作、第二签名信息和第二账户的公钥。
在另一个实施例中,所述方法还包括:
在进行篡改校验时,采用所述第一账户的私钥对所述业务操作进行加密签名,得到第三签名信息,和/或,采用所述第二账户的私钥对所述业务操作进行加密签名,得到第四签名信息;将所述第三签名信息与所述第一签名信息进行比较,和/或,将所述第四签名信息与所述第二签名信息进行比较;当所述第三签名信息与所述第一签名信息不一致,或者,当所述第四签名信息与所述第二签名信息不一致,判定当前存在信息篡改。
具体实现中,可以基于签名信息进行篡改校验。首先,采用第一账户和/或第二账户的私钥对业务操作进行加密签名,得到与第一账户的私钥对应的第三签名信息,和/或,得到与第二账户的私钥对应的第四签名信息。然后,将第三签名信息与第一签名信息进行比较,和/或,将第四签名信息与第二签名信息进行比较。若第三签名信息与第一签名信息不一致,判定信息被篡改;或者,当第四签名信息与第二签名信息不一致,判定信息被篡改。
根据本实施例,通过采用公钥和私钥对信息再次进行加密签名,并将加密签名进行比较校验,根据校验结果判断是否存在信息被篡改的情况。
其中,密钥的管理和区块链系统可以分离。在一个P2P网络中,私钥可以由客户端生成,并存储在客户端上。公钥则可以存储在一个公钥服务器上。
在另一个实施例中,所述步骤S203,包括:
获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
具体实现中,当账户A向账户B进行了业务操作,生成了双方的业务信息,从而形成双链结构。然后,分别对双方通证账户及其利益相关通证账户进行同步(write)。
图7是本实施例的一种同步记录write流程的示意图。
从图中可见,开始同步之后,首先可以针对当前的通证账户Token,判断是否存在有父子关系通证账户。具体地,可以判断当前的Token是否有对应的分叉操作信息(fork)。若是,表明当前的Token存在有对应的父Token,由父Token同步业务信息,并且将当前的Token更新为父Token,返回至判断是否存在有父子关系通证账户的步骤。
如果当前的通证账户Token不存在有父子关系通证账户,则进一步判断是否存在有拥有关系通证账户。具体地,可以判断当前的Token是否有对应的拥有操作信息(hold)。若是,表明当前的Token存在有对应的拥有Token,由拥有Token同步业务信息,并且将当前的Token更新为拥有Token,返回至判断是否存在有父子关系通证账户的步骤。
如果当前的通证账户Token不存在有拥有关系通证账户,则进一步判断是否存在有参与关系通证账户。具体地,可以判断当前的Token是否有对应的参与操作信息(join)。若是,表明当前的Token存在有对应的参与Token,由参与Token同步业务信息,并且将当前的Token更新为参与Token,返回至判断是否存在有父子关系通证账户的步骤。
如果当前的通证账户Token不存在参与关系通证账户,则同步流程结束。
需要说明的是,本领域技术人员可以根据实际需要,调整对父子关系、拥有关系、参与关系的判断顺序,上述示例仅用作说明一种实现方式。
通过上述的同步流程,实现了通证账户Token的利用相关通证账户进行业务信息的同步。
在另一个实施例中,所述通证账户具有第一链高度,所述方法还包括:
接收客户端对所述通证账户的订阅请求;所述客户端存储有所述通证账户的第二链高度;
发送所述通证账户的第一链高度至所述客户端;所述客户端用于在所述通证账户的第二链高度与接收的第一链高度不一致时,反馈数据同步请求;
接收所述客户端的数据同步请求,并与所述客户端进行所述通证账户的数据同步处理。
具体实现中,本实施例的区块链系统100可以采用订阅发布的设计模式,客户端可以订阅(read)某个通证账户的业务信息,区块链系统100可以根据客户端的订阅请求,发布一个或多个通证账户的业务信息。通证账户中可以记录有通证账户的第一链高度,客户端则记录有通证账户的第二链高度,客户端可以接收第一链高度,在第一链高度与预存的第二链高度不一致时,客户端可以与区块链系统100进行通证账户的数据同步。
图8是本实施例的一种区块链系统订阅read的示意图。从图中可见,区块链系统的服务端可以作为发布者,多个客户端作为订阅者。客户端订阅某个通证账户的业务信息,通过通证账户的链高度,判断是否需要与区块链系统进行数据同步。在进行数据同步时,可以通过P2P方式进行数据同步。
为了便于本领域技术人员深入理解本实施例,图9是本实施例的一种区块链记账整体流程的示意图。从图中可见,首先,账户A对账户B进行电子交易、信息传递等的业务操作。然后,对账户A和账户B双方的通证账户Token的进行校验。若校验成功,则生成相应的业务信息。双方的Token则可以根据业务信息进行同步记录(write)。客户端可以订阅(read)某个Token的业务信息,并根据所订阅的Token的链高度与客户端本地的Token的链高度的一致性,与区块链系统进行数据同步。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种区块链记账装置,包括:信息获取模块1001,通证链获取模块1002,节点确定模块1003和信息发送模块1004,其中:
信息获取模块1001,用于获取业务信息;
账户确定模块1002,用于确定所述业务信息对应的通证账户;
利益相关账户获取模块1003,用于获取所述通证账户的利益相关通证账户
节点确定模块1004,用于确定所述通证账户的和所述利益相关通证账户的记账节点;
信息发送模块1005,用于发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
在一个实施例中,所述通证账户包括第一通证账户和第二通证账户,所述业务信息为所述第一通证账户与所述第二通证账户之间的业务信息,所述利益相关账户获取模块,具体用于:
获取所述第一通证账户的第一利益相关通证账户,以及,获取所述第二通证账户的第二利益相关通证账户;
所述节点确定模块,具体用于:
确定所述第一利益相关通证账户的记账节点为第一记账节点,以及,确定所述第二利益相关通证账户的记账节点为第二记账节点;
所述发送模块,具体用于:
发送所述业务信息至所述第一记账节点,以及,发送所述业务信息至所述第二记账节点。
在一个实施例中,所述利益相关账户获取模块1003,包括:
链操作获取子模块,用于获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
父子账户确定子模块,用于根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
拥有账户确定子模块,用于根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
参与关系确定子模块,用于根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
在一个实施例中,还包括:
业务操作获取模块,用于获取所述第一通证账户与所述第二通证账户之间的业务操作;
第一签名模块,用于采用所述第一通证账户对应的私钥,对所述业务操作进行加密签名,得到第一签名信息;
验证模块,用于采用所述第一通证账户对应的公钥,对所述第一签名信息进行验证;
第二签名模块,用于当验证成功时,采用所述第二通证账户对应的私钥,对所述业务操作进行加密签名,得到第二签名信息;
业务信息生成模块,用于生成第一业务信息和第二业务信息;所述第一业务信息包括所述业务操作、所述第一签名信息和所述第一账户的公钥;所述第二业务信息包括所述业务操作、所述第二签名信息和所述第二账户的公钥;
将所述第一业务信息和所述第二业务信息组成所述业务信息。
在一个实施例中,还包括:
校验签名模块,用于在进行篡改校验时,采用所述第一账户的私钥对所述业务操作进行加密签名,得到第三签名信息,和/或,采用所述第二账户的私钥对所述业务操作进行加密签名,得到第四签名信息;
签名比较模块,用于将所述第三签名信息与所述第一签名信息进行比较,和/或,将所述第四签名信息与所述第二签名信息进行比较;
篡改判定模块,用于当所述第三签名信息与所述第一签名信息不一致,或者,当所述第四签名信息与所述第二签名信息不一致,判定当前存在信息篡改。
在一个实施例中,所述通证账户具有第一链高度,还包括:
订阅请求模块,用于接收客户端对所述通证账户的订阅请求;所述客户端存储有所述通证账户的第二链高度;
链高度发送模块,用于发送所述通证账户的第一链高度至所述客户端;所述客户端用于在所述通证账户的第二链高度与接收的第一链高度不一致时,反馈数据同步请求;
同步模块,用于接收所述客户端的数据同步请求,并与所述客户端进行所述通证账户的数据同步处理。
关于区块链记账装置的具体限定可以参见上文中对于区块链记账方法的限定,在此不再赘述。上述区块链记账装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块链数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链记账方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取业务信息;
确定所述业务信息对应的通证账户;
获取所述通证账户的利益相关通证账户;
确定所述通证账户的和所述利益相关通证账户的记账节点;
发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
该处理器执行计算机程序时还实现以下步骤:
获取所述第一通证账户的第一利益相关通证账户,以及,获取所述第二通证账户的第二利益相关通证账户;
所述确定所述通证账户的和所述利益相关通证账户的记账节点,包括:
确定所述第一利益相关通证账户的记账节点为第一记账节点,以及,确定所述第二利益相关通证账户的记账节点为第二记账节点;
所述发送所述业务信息至所述记账节点,包括:
发送所述业务信息至所述第一记账节点,以及,发送所述业务信息至所述第二记账节点。
该处理器执行计算机程序时还实现以下步骤:
获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
该处理器执行计算机程序时还实现以下步骤:
获取所述第一通证账户与所述第二通证账户之间的业务操作;
采用所述第一通证账户对应的私钥,对所述业务操作进行加密签名,得到第一签名信息;
采用所述第一通证账户对应的公钥,对所述第一签名信息进行验证;
当验证成功时,采用所述第二通证账户对应的私钥,对所述业务操作进行加密签名,得到第二签名信息;
生成第一业务信息和第二业务信息;所述第一业务信息包括所述业务操作、所述第一签名信息和所述第一账户的公钥;所述第二业务信息包括所述业务操作、所述第二签名信息和所述第二账户的公钥;
将所述第一业务信息和所述第二业务信息组成所述业务信息。
该处理器执行计算机程序时还实现以下步骤:
在进行篡改校验时,采用所述第一账户的私钥对所述业务操作进行加密签名,得到第三签名信息,和/或,采用所述第二账户的私钥对所述业务操作进行加密签名,得到第四签名信息;
将所述第三签名信息与所述第一签名信息进行比较,和/或,将所述第四签名信息与所述第二签名信息进行比较;
当所述第三签名信息与所述第一签名信息不一致,或者,当所述第四签名信息与所述第二签名信息不一致,判定当前存在信息篡改。
该处理器执行计算机程序时还实现以下步骤:
接收客户端对所述通证账户的订阅请求;所述客户端存储有所述通证账户的第二链高度;
发送所述通证账户的第一链高度至所述客户端;所述客户端用于在所述通证账户的第二链高度与接收的第一链高度不一致时,反馈数据同步请求;
接收所述客户端的数据同步请求,并与所述客户端进行所述通证账户的数据同步处理。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取业务信息;
确定所述业务信息对应的通证账户;
获取所述通证账户的利益相关通证账户;
确定所述通证账户的和所述利益相关通证账户的记账节点;
发送所述业务信息至所述记账节点;所述记账节点用于根据所述业务信息对所述通证账户和所述利益相关通证账户进行记账操作。
计算机程序被处理器执行时还实现以下步骤:
获取所述第一通证账户的第一利益相关通证账户,以及,获取所述第二通证账户的第二利益相关通证账户;
所述确定所述通证账户的和所述利益相关通证账户的记账节点,包括:
确定所述第一利益相关通证账户的记账节点为第一记账节点,以及,确定所述第二利益相关通证账户的记账节点为第二记账节点;
所述发送所述业务信息至所述记账节点,包括:
发送所述业务信息至所述第一记账节点,以及,发送所述业务信息至所述第二记账节点。
计算机程序被处理器执行时还实现以下步骤:
获取所述通证账户对应的账户链操作信息;所述账户链操作信息包括分叉操作信息、拥有操作信息和/或参与操作信息;
根据所述分叉操作信息,确定所述通证账户的父子关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述拥有操作信息,确定所述通证账户的拥有关系通证账户,作为所述通证账户的利益相关通证账户;和/或
根据所述参与操作信息,确定所述通证账户的参与关系通证账户,作为所述通证账户的利益相关通证账户。
计算机程序被处理器执行时还实现以下步骤:
获取所述第一通证账户与所述第二通证账户之间的业务操作;
采用所述第一通证账户对应的私钥,对所述业务操作进行加密签名,得到第一签名信息;
采用所述第一通证账户对应的公钥,对所述第一签名信息进行验证;
当验证成功时,采用所述第二通证账户对应的私钥,对所述业务操作进行加密签名,得到第二签名信息;
生成第一业务信息和第二业务信息;所述第一业务信息包括所述业务操作、所述第一签名信息和所述第一账户的公钥;所述第二业务信息包括所述业务操作、所述第二签名信息和所述第二账户的公钥;
将所述第一业务信息和所述第二业务信息组成所述业务信息。
计算机程序被处理器执行时还实现以下步骤:
在进行篡改校验时,采用所述第一账户的私钥对所述业务操作进行加密签名,得到第三签名信息,和/或,采用所述第二账户的私钥对所述业务操作进行加密签名,得到第四签名信息;
将所述第三签名信息与所述第一签名信息进行比较,和/或,将所述第四签名信息与所述第二签名信息进行比较;
当所述第三签名信息与所述第一签名信息不一致,或者,当所述第四签名信息与所述第二签名信息不一致,判定当前存在信息篡改。
计算机程序被处理器执行时还实现以下步骤:
接收客户端对所述通证账户的订阅请求;所述客户端存储有所述通证账户的第二链高度;
发送所述通证账户的第一链高度至所述客户端;所述客户端用于在所述通证账户的第二链高度与接收的第一链高度不一致时,反馈数据同步请求;
接收所述客户端的数据同步请求,并与所述客户端进行所述通证账户的数据同步处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。