发明内容
本发明的主要目的在于提供一种区块链交易信息的溯源方法,旨在解决 相关技术中,区块链系统无法对交易信息准确溯源,无法排除人为通过节点 作恶,制造大量无用数据,浪费服务器网络资源和硬件资源的技术问题。
为实现上述目的,本发明提供的一种区块链交易信息的溯源方法,包括 如下步骤:
获取用户端的原始参数和目标节点的查验地址,并根据所述原始参数与 所述查验地址生成用户交易信息;
所述用户端对所述用户交易信息进行签名得到用户签名信息,并将所述 用户交易信息和所述用户签名信息传输至上链节点;
所述上链节点根据所述用户交易信息解析出所述查验地址;
判断所述查验地址与所述上链节点的地址是否一致;
当所述查验地址与所述上链节点的地址不一致时,则返回错误信息。
优选地,所述判断所述查验地址与所述上链节点的地址是否一致的步骤 之后,还包括如下步骤:
当所述查验地址与所述上链节点的地址一致时,对所述用户交易信息进 行合法性校验;
当所述用户交易信息未通过合法性校验时,则返回错误信息。
优选地,所述对所述用户原始交易信息进行合法性校验的步骤之后,还 包括如下步骤:
当所述用户交易信息通过合法性校验时,则对所述用户交易信息与所述 用户签名信息进行一致性校验;
当所述用户交易信息与所述用户签名信息未通过一致性校验时,则返回 错误信息。
优选地,所述对所述用户交易信息与所述用户签名信息进行一致性校验 的步骤之后,还包括:
当所述用户交易信息与所述用户签名信息通过一致性校验时,所述上链 节点对所述用户交易信息进行签名处理,以得到节点交易信息;
将所述节点交易信息传送至其他的任一节点,该节点对所述节点交易信 息进行溯源校验;
当所述节点交易信息未通过溯源校验时,则返回错误信息;
当所述节点交易信息通过溯源校验时,则判定所述节点交易信息来源于 所述上链节点,并将所述节点交易消息传输至另一节点。
优选地,所述将所述节点交易信息传送至其他的任一节点,该节点对所 述节点交易信息进行溯源校验的步骤之后,还包括:
当所述节点交易信息通过溯源校验时,对所述节点交易信息的来源,所 述上链节点进行贡献统计。
优选地,所述上链节点对所述用户交易信息进行签名处理,以得到节点 交易信息的步骤,具体包括:
根据所述用户交易信息与所述用户签名信息生成用户交易的哈希值;
所述上链节点对所述哈希值签名生成节点签名信息,并根据所述用户交 易信息、所述用户签名信息及所述节点签名信息生成所述节点交易信息。
优选地,所述该节点对所述节点交易信息进行溯源校验的步骤,具体包 括:
将所述节点交易信息还原为所述用户交易信息、所述用户签名信息及所 述节点签名信息;
根据所述用户交易信息与所述用户签名信息生成用户交易的哈希值;
通过所述哈希值与所述节点签名信息解析出所述上链节点的验证地址;
获取所述查验地址,并判断所述验证地址与所述查验地址是否一致。
优选地,所述当所述节点交易信息未通过溯源校验时,则返回错误信息 的步骤具体包括:
当所述验证地址与所述查验地址不一致时,则返回错误信息;
所述当所述节点交易信息通过溯源校验时,则判定所述节点交易信息来 源于所述上链节点,并将所述节点交易消息传输至另一节点的步骤具体包括:
当所述验证地址与所述查验地址一致时,则判定所述节点交易信息来源 于所述上链节点,并将所述节点交易消息传输至另一节点。
为解决上述技术问题,本发明还提供一种区块链交易信息的溯源系统, 其特征在于,包括:存储器、处理器、以及存储在所述存储器上并可在所述 处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现所述 的区块链交易信息的溯源方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,其特征 在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处 理器执行时实现所述的区块链交易信息的溯源方法的步骤。
本发明提供的一种区块链交易信息的溯源方法,包括如下步骤:判断所 述查验地址与所述上链节点的地址是否一致;当所述查验地址与所述上链节 点的地址不一致时,则返回错误信息。
通过查验地址与所述上链节点的地址对比,使得上链节点拒收与自身地 址不一致的交易信息。能够对交易信息进行溯源分析,防止人为将查验地址 修改或误输为非上链节点的地址,一定程度的排除人为通过节点作恶,制造 大量无用数据,浪费服务器网络资源和硬件资源的技术问题。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。
请参阅图1,为实现上述目的,本发明的第一实施例中,区块链交易信息 的溯源方法包括如下步骤:
S10,获取用户端的原始参数和目标节点的查验地址,并根据所述原始参 数与所述查验地址生成用户交易信息;
本实施例中,所述原始参数可以包括用户端的账户地址、转账金额以及 接收转账方的账户地址。所述目标节点即为用户端选定的上链节点,所述目 标节点的查验地址即为用户端选定的上链节点的地址。
S20,所述用户端对所述用户交易信息进行签名得到用户签名信息,并将 所述用户交易信息和所述用户签名信息传输至上链节点;
具体的,所述用户端通过用户端的私钥对所述用户交易信息进行签名, 以保证得到用户签名信息无法篡改。
S30,所述上链节点根据所述用户交易信息解析出所述查验地址;
S31,判断所述查验地址与所述上链节点的地址是否一致;
S33,当所述查验地址与所述上链节点的地址不一致时,则返回错误信息。
通过查验地址与所述上链节点的地址对比,使得上链节点拒收与自身地 址不一致的交易信息。能够对交易信息进行溯源分析,防止人为将查验地址 修改或误输为非上链节点的地址,一定程度的排除人为通过节点作恶,制造 大量无用数据,浪费服务器网络资源和硬件资源的技术问题。
第二实施例
请参阅图2,基于本发明第一实施例提供的一种区块链交易信息的溯源方 法100,本发明的第二实施例提供另一种区块链交易信息的溯源方法200,其 所述步骤S10~S33与第一实施例相同,在此不再一一赘述,其不同之处在于:
所述步骤S31之后,还包括如下步骤:
S40,当所述查验地址与所述上链节点的地址一致时,对所述用户交易信 息进行合法性校验;
所述步骤S40具体包括:
获取用户端(即交易发起方)的余额,判断获取用户端的余额是否小于 转账金额;
当用户端的余额小于转账金额时,判断用户交易信息未通过合法性校验;
和/或:
判断接收转账方的账户地址是否为合法地址;
当接收转账方的账户地址不为合法地址时,判断用户交易信息未通过合 法性校验;
当所述用户交易信息未通过合法性校验时,则返回错误信息。
S50,当所述用户交易信息通过合法性校验时,则对所述用户交易信息与 所述用户签名信息进行一致性校验;
所述步骤S50具体包括:
通过所述用户签名信息和所述用户交易信息解析出进行签名的用户端的 地址;
获取交易发起方的用户端的地址,判断两个地址是否一致;
当两个地址不一致时,判断所述用户交易信息与所述用户签名信息未通 过一致性校验;
当所述用户交易信息与所述用户签名信息未通过一致性校验时,则返回 错误信息。
通过对所述用户交易信息进行合法性校验,以及,对所述用户交易信息 与所述用户签名信息进行一致性校验,提升了用户交易信息的合法性,以及 用户交易信息与用户签名信息的一致性,防止人为的对用户交易信息的恶意 篡改。
第三实施例
请参阅图3,基于本发明第二实施例提供的一种区块链交易信息的溯源方 法200,本发明的第三实施例提供另一种区块链交易信息的溯源方法300,其 所述步骤S10~S50与第二实施例相同,在此不再一一赘述,其不同之处在于:
所述步骤S50之后,还包括:
S60,当所述用户交易信息与所述用户签名信息通过一致性校验时,所述 上链节点对所述用户交易信息进行签名处理,以得到节点交易信息;
S70,将所述节点交易信息传送至其他的任一节点,该节点对所述节点交 易信息进行溯源校验;
当所述节点交易信息未通过溯源校验时,则返回错误信息;
S80,当所述节点交易信息通过溯源校验时,则判定所述节点交易信息来 源于所述上链节点,并将所述节点交易消息传输至另一节点。
不妨定义,其他的任一节点组成一个交易信息池,用于存储和传输(广 播)来源于各个用户端的节点交易信息。以用户交易信息的作为Key,以所 述节点交易信息作为Value。
S90,当所述节点交易信息通过溯源校验时,对所述节点交易信息的来源, 所述上链节点进行贡献统计。
当所有节点都知道交易数据来源于哪一个节点。区块链系统就能够做到:
(1)若有任意节点作恶,其他节点都能够知道,同时也能检测出节点作 恶,因此其他节点就能将作恶节点剔除掉,拒绝其加入到区块链系统中;
(2)对于资源有限的链系统而言,能够通过限流的方式,维护整个系统 的稳定;
(3)可统计出每个节点对链系统的贡献。
(4)对于鼓励资源贡献的链而言,能够通过节点共享给与对应的奖励, 促进更多节点进行贡献。
进一步的,请参阅图4,所述步骤S60具体包括:
S601,根据所述用户交易信息与所述用户签名信息生成用户交易的哈希 值;
S602,所述上链节点对所述哈希值签名生成节点签名信息,并根据所述 用户交易信息、所述用户签名信息及所述节点签名信息生成所述节点交易信 息。
请参阅图5,所述步骤S70,具体包括:
S701,将所述节点交易信息还原为所述用户交易信息、所述用户签名信 息及所述节点签名信息;
S702,根据所述用户交易信息与所述用户签名信息生成用户交易的哈希 值;
S703,通过所述哈希值与所述节点签名信息解析出所述上链节点的验证 地址;
S704,获取所述查验地址,并判断所述验证地址与所述查验地址是否一 致。
进一步的优化:
所述当所述节点交易信息未通过溯源校验时,则返回错误信息的步骤具 体包括:
当所述验证地址与所述查验地址不一致时,则返回错误信息;
所述步骤S80具体包括:
当所述验证地址与所述查验地址一致时,则判定所述节点交易信息来源 于所述上链节点,并将所述节点交易消息传输至另一节点。
本实施例的技术方案,能够进一步的防止人为的通过上链节点篡改所述 节点交易信息的来源。具体陈述本实施例的技术方案的原理如下:
在第一实施例和第二实施例中的情况下,当所述用户端将用户交易信息 中的查验地址填成节点1的地址,但是,将用户交易信息发送给节点2时;
如果节点2作恶,节点2对查验地址和自己的地址不进行校验操作,或 者,进行虚假操作。
然后将节点交易信息发送给其他节点。因为节点之间是p2p的,所以交 易互相广播的,其他节点接收到交易,直接看节点交易信息中节点地为查验 地址,就会默认为这笔交易是来自于节点1的。但是,这个追溯是错误的, 因为真实的来源是来自于节点2的。
但是,本实施例的技术方案中,上链节点需要对用户交易信息进行签名 处理,以得到节点交易信息。
节点2想作恶。但是因为节点2只有自己的私钥,没有节点1的私钥。 节点2需要将交易同步给其他节点时,需要用自己的私钥签名交易。其他节 点接收到交易后,发现节点2签名解析出来的节点地址是节点2的地址(验 证地址),和用户交易信息中的节点1的地址(查验地址)是不匹配的,因 此就可以认为,此交易不是来自于节点1,就会将交易抛弃。
同时,用户交易信息中的查验地址是必须的。
假设没有用户交易信息的中查验地址。用户将交易发送到节点1,节点1 签名后,将交易同步给节点2。此刻节点2想作恶,直接将用户交易信息,自 己再签名一次,然后同步给其他节点。此时,其他节点可能就会接收到来自 于节点1的交易和来自于节点2的交易,其他节点就无法知晓,交易到底来 自于哪一个节点。
因此,用户交易信息中的查验地址,必须要,节点在进行p2p同步时, 也需要节点进行签名。
本发明还提供一种区块链交易信息的溯源系统。
请参阅图6,一种区块链交易信息的溯源系统,包括:存储器、处理器、 以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算 机程序被所述处理器执行时实现所述的区块链交易信息的溯源方法的步骤。
本发明还提供一种计算机可读存储介质。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程 序,所述计算机程序被处理器执行时实现所述的区块链交易信息的溯源方法 的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发 明各个实施例所述的方法。
在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施 例”、或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的 具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。 在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。 而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个 或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在 涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系 统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括 为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下, 由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物 品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是 利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。