System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及区块链,尤其涉及一种交易验证方法、设备及存储介质。
技术介绍
1、在区块链验证交易场景中,客户端采用国密sm2数字签名算法对交易信息进行签名后,将获得的签名值发送至区块链,区块链需要验证客户端对交易产生的签名值,从而确定交易的所属权。
2、由于sm2数字签名算法依赖公钥验证交易与数字签名的合法性,因此,客户端向区块链发送签名值时,同时将公钥发送至区块链。这样会带来额外的用于传输和存储公钥的资源开销,在交易量庞大的场景下,传输并存储签名公钥占用的传输资源和存储资源较多。
技术实现思路
1、本申请实施例提供了一种交易验证方法、设备及存储介质,用于降低传输并存储签名公钥占用的传输资源和存储资源。
2、一方面,本申请实施例提供了一种交易验证方法,应用于区块链系统,该方法包括以下步骤:
3、接收客户端发送的携带交易地址的待验证交易,所述待验证交易包括:交易内容、目标签名和签名随机数;
4、基于所述签名随机数和已知基点的坐标生成验证参数;以及,基于所述验证参数和所述目标签名,恢复加密公钥;
5、基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证;并在签名验证通过时,对所述加密公钥进行编码,获得参考地址;
6、若所述参考地址与所述交易地址一致,则确定所述待验证交易验证通过。
7、可选地,所述基于所述验证参数和所述目标签名,恢复加密公钥,包括:
8、基于所述目标签名的签名横坐标和
9、基于所述目标签名的签名横坐标、所述公钥验证因子和所述验证参数,恢复所述加密公钥。
10、可选地,所述基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证,包括:
11、基于所述加密公钥和所述交易内容,生成消息摘要;
12、基于所述消息摘要和所述目标签名的签名横坐标,生成第一验证横坐标;以及,将所述验证参数的横坐标,作为第二验证横坐标;
13、若所述第一验证横坐标与所述第二验证横坐标一致,则签名验证通过;
14、若所述第一验证横坐标与所述第二验证横坐标不一致,则签名验证不通过。
15、可选地,所述基于所述加密公钥和所述交易内容,生成消息摘要,包括:
16、基于公开参数、所述已知基点的坐标和所述加密公钥,生成验证绑定信息;
17、将所述交易内容与所述验证绑定信息进行级联操作,获得交易确认因子;
18、采用消息摘要算法,将所述交易确认因子转化为所述消息摘要。
19、一方面,本申请实施例提供了一种交易验证方法,应用于客户端,该方法包括以下步骤:
20、响应于目标账户的交易请求,生成待验证交易,所述待验证交易包括:交易内容、目标签名和签名随机数;
21、将携带交易地址的所述待验证交易发送至区块链系统,以使所述区块链系统基于所述签名随机数和已知基点的坐标,生成验证参数;以及,基于所述验证参数和所述目标签名,恢复加密公钥;基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证;在签名验证通过时,对所述加密公钥进行编码,获得参考地址;若所述参考地址与所述交易地址一致,则确定所述待验证交易验证通过。
22、可选地,所述响应于目标账户的交易请求,生成待验证交易,包括:
23、响应于目标账户的交易请求,基于所述目标账户的原始私钥、所述目标账户的原始公钥以及所述签名随机数,对所述交易内容进行签名,获得目标签名;
24、基于所述交易内容、所述目标签名和所述签名随机数,获得所述待验证交易。
25、可选地,所述交易地址为合约地址,且所述交易地址是对所述原始公钥编码获得的。
26、可选地,所述基于所述目标账户的原始私钥、所述目标账户的原始公钥以及所述签名随机数,对所述交易内容进行签名,获得目标签名,包括:
27、基于所述签名随机数和所述已知基点的坐标,生成验证参数;
28、基于公开参数、所述已知基点的坐标和所述原始公钥,生成加密因子;
29、将所述交易内容与所述加密因子进行级联操作,并对级联操作的结果进行哈希运算,获得目标哈希值;
30、基于所述验证参数的横坐标以及所述目标哈希值,确定签名横坐标;以及,基于所述原始私钥、所述签名随机数和所述签名横坐标,确定签名纵坐标;
31、基于所述签名横坐标和所述签名纵坐标,确定所述目标签名。
32、一方面,本申请实施例提供了一种交易验证装置,应用于区块链系统,该交易验证装置包括:
33、接收模块,用于接收客户端发送的携带交易地址的待验证交易,所述待验证交易包括:交易内容、目标签名和签名随机数;
34、公钥恢复模块,用于基于所述签名随机数和已知基点的坐标生成验证参数;以及,基于所述验证参数和所述目标签名,恢复加密公钥;
35、签名验证模块,用于基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证;并在签名验证通过时,对所述加密公钥进行编码,获得参考地址;
36、地址验证模块,用于若所述参考地址与所述交易地址一致,则确定所述待验证交易验证通过。
37、可选地,所述公钥恢复模块具体用于:
38、基于所述目标签名的签名横坐标和所述目标签名的签名横坐标,生成公钥验证因子;
39、基于所述目标签名的签名横坐标、所述公钥验证因子和所述验证参数,恢复所述加密公钥。
40、可选地,所述签名验证模块具体用于:
41、基于所述加密公钥和所述交易内容,生成消息摘要;
42、基于所述消息摘要和所述目标签名的签名横坐标,生成第一验证横坐标;以及,将所述验证参数的横坐标,作为第二验证横坐标;
43、若所述第一验证横坐标与所述第二验证横坐标一致,则签名验证通过;
44、若所述第一验证横坐标与所述第二验证横坐标不一致,则签名验证不通过。
45、可选地,所述签名验证模块具体用于:
46、基于公开参数、所述已知基点的坐标和所述加密公钥,生成验证绑定信息;
47、将所述交易内容与所述验证绑定信息进行级联操作,获得交易确认因子;
48、采用消息摘要算法,将所述交易确认因子转化为所述消息摘要。
49、一方面,本申请实施例提供了一种交易验证装置,应用于客户端,该交易验证装置包括:
50、生成模块,用于响应于目标账户的交易请求,生成待验证交易,所述待验证交易包括:交易内容、目标签名和签名随机数;
51、发送模块,用于将携带交易地址的所述待验证交易发送至区块链系统,以使所述区块链系统基于所述签名随机数和已知基点的坐标,生成验证参数;以及,基于所述验证参数和所述目标签名,恢复加密公钥;基于所述加密公钥和所述本文档来自技高网...
【技术保护点】
1.一种交易验证方法,应用于区块链系统,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述验证参数和所述目标签名,恢复加密公钥,包括:
3.如权利要求1所述的方法,其特征在于,所述基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证,包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述加密公钥和所述交易内容,生成消息摘要,包括:
5.一种交易验证方法,应用于客户端,其特征在于,包括:
6.如权利要求5所述的方法,其特征在于,所述响应于目标账户的交易请求,生成待验证交易,包括:
7.如权利要求6所述的方法,其特征在于,所述交易地址为合约地址,且所述交易地址是对所述原始公钥编码获得的。
8.如权利要求6所述的方法,其特征在于,所述基于所述目标账户的原始私钥、所述目标账户的原始公钥以及所述签名随机数,对所述交易内容进行签名,获得目标签名,包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行
10.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~8任一所述方法的步骤。
...【技术特征摘要】
1.一种交易验证方法,应用于区块链系统,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述基于所述验证参数和所述目标签名,恢复加密公钥,包括:
3.如权利要求1所述的方法,其特征在于,所述基于所述加密公钥和所述交易内容,对所述目标签名进行签名验证,包括:
4.如权利要求3所述的方法,其特征在于,所述基于所述加密公钥和所述交易内容,生成消息摘要,包括:
5.一种交易验证方法,应用于客户端,其特征在于,包括:
6.如权利要求5所述的方法,其特征在于,所述响应于目标账户的交易请求,生成待验证交易,包括:
7.如权利要求6所述的方...
【专利技术属性】
技术研发人员:李昊轩,王朝阳,贺双洪,廖飞强,王章,陈宇杰,鄢新义,马晨,黄飞,李辉忠,张开翔,范瑞彬,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。