分类
Uncategorized

如何验证比特币中的压缩签名?十六进制长138

我正在使用bicoinjs消息npm模块进行签名验证。
我知道在十六进制中长度为138的签名很少。
当我试图验证这样一个签名时,它抛出了一个错误:
错误:签名长度无效
如何验证压缩签名?
我认为ruby中有一个lib,比特币ruby 0.0.20,可以验证它,但我不知道ruby。
比特核
比特币
节点.js
红宝石
分享
改进这个问题
跟随
8月7日7:10编辑
葛罗芬戴尔
43822金徽章77银徽章1515铜徽章
8月6日20点59分被问到
舒巴姆查多卡尔
11366青铜徽章
添加评论
2个答案
0
如果您有比特币核心软件,您应该能够使用CLI使用verifymessage命令验证签名。一些钱包软件也有这个功能。
分享
改进这个答案
跟随
回复时间:8月11日18:03
萨钦迈耶
16988青铜徽章
添加评论
0
没有压缩签名。比特币对签名使用两种不同的格式(编码):
事务签名使用ASN.1der编码,该编码的长度根据曲线而变化,在Satoshi发布时很常见,并添加了一个’sighash’字节。一般来说,对于secp256k1,DER(ECDSA Sig)通常是72-70字节,有时但很少少,但现代比特币需要“low-S”签名,这将最大值减少到71。一个69字节(138个十六进制)的签名(不包括sighash)会在大约3/512(大约百分之零点五)的时间内出现;这种长度包括sighash将是非常罕见的。
消息签名使用P1363编码,也称为“plain”、“PKCS11”或“CVC”,对于secp256k1,它总是正好是64个字节,并且添加一个恢复字节,总共是65个字节(总是)。它还向签名数据添加前缀,这会更改值,但不会更改签名的格式。
参见示例:
为什么签名总是65(1+32+32)字节长?
ECDSA r,s编码为签名
签名消息和签名事务的区别
虽然我还没有看过,但我希望名为bitcoinjs message的库可能会处理消息而不是事务的签名,任何69字节的签名都不能是消息签名。
分享
改进这个答案
跟随
回复时间:8月12日5:40
戴夫汤普森085
311银徽章55铜徽章
实际上,ruby中有一个比特币ruby库。此库生成138长度的消息签名Shubham Chadokar 8月12日11:08
1
比特币消息签名不能是“138长度”。在整个宇宙的生命中从来没有。一种叫做“比特币红宝石”(bitcoin ruby)的东西可能会处理事务,而事务是比特币的原始、核心、主要功能和用途——消息非常罕见,几乎毫无用处dave_thompson_085 20年8月14日7:59
添加评论

时光素材-香车美女  (1095)blockchainBTC比特币区块链www.qkl91.com

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注