2023-05-30 16:02:00来源:互联网
下载成为新用户,专享前3天赚取最高30%的年收益率
本篇文章给大家谈谈比特币签名验证,以及比特币的签名和验证对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
比特币的数字签名,就是只有比特币转账的转出方生成培老的,一族中皮段防伪造的字符串。通过验证该数字串,一方面证明该交易是转出方发起的,另一方面证明交易信息在传输中没有被更改。
数字签名通过数字摘要技术把交易信息缩短成固定长度的字符串。举个栗子,牛牛发起一笔比特币转账,需要先将该交易进行数字摘要,缩短成一段字符串,然后用自己的私钥对摘要进行加密,兆差形成数字签名。完成后,牛牛需要将原文(交易信息)和数字签名一起广播给矿工,矿工用牛牛的公钥进行验证,如果验证成功,说明该笔交易确实是牛牛发出的,且信息未被更改。
同时,数字签名加密的私钥和解密的公钥不一致,采用非对称加密技术。看起来好复杂,其实转账只需要你输入私钥就瞬间完成啦!

比特币中使用的数字签名算法是椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm)或ECDSA。 ECDSA是用于基于椭圆曲线私钥/公钥对的数字签名的算法,如椭圆曲线章节[elliptic_curve]所述。 ECDSA用于脚本函数OP_CHECKSIG,OP_CHECKSIGVERIFY,OP_CHECKMULTISIG和OP_CHECKMULTISIGVERIFY。每当你锁定脚本中看到这些时,解锁脚本都必须包含一个ECDSA签名。
数字签名在比特币中有三种慎拿高用途:
● 第一,签名证明私钥的所有者,即资金所有者,已经授权支出这些资金。
● 第二,授权证明是不可否认的(不可否认性)。
● 第三,签名证明交易(或交易的具体部分)在签字之后没有也不能被任何人修改。
创建数字签名
在比特币的ECDSA算法的实现中,被签名的“消息”是交易,或更确切地说是交易中特定数据子集的哈希值(参见签名哈希类型(SIGHASH))。
签名密钥是用户的私钥,结果是签名:
((Sig = F{sig}(F{hash}(m), dA)))
这里的:
● dA 是签名私钥
● m 是交易(或其部分)
● F hash 是散列函数
● F sig 是签名算法
● Sig 是结果签名
ECDSA数学运算的更多细节可以在ECDSA Math章节中找到。
函数F sig 产生由两个值组成的签名Sig,通常称宽尺为R和S:
Sig = (R, S)
签名序列化(DER)
解锁脚本序列化之后:
3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e381301
包含敏嫌以下9个元素:
● 0x30表示DER序列的开始
● 0x45 - 序列的长度(69字节)
● 0x02 - 一个整数值
● 0x21 - 整数的长度(33字节)
● R-00884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb
● 0x02 - 接下来是一个整数
● 0x20 - 整数的长度(32字节)
● S-4b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813
● 后缀(0x01)指示使用的哈希的类型(SIGHASH_ALL)
比特币中的数字签名,是交易中的发起方产生的,为了保证这笔交易侍蠢悉确实是由此人发起,并且数据在传输时没有被篡改。数字签名简单点来说,就是完整的交易信息,通过数老乎字摘要技术压缩成固定格式的字符串,然后通过非对称加密技术,生成一个私钥。将完整的交易信息和数字签名传送档誉给矿工,矿工用交易发起方的公钥对数字签名进行解密,解密成功,就将此交易数据写到区块中。
关于比特币签名验证和比特币的签名和验证的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
芝麻开门安卓下载:立即前往芝麻开门IOS下载:立即前往
注册领取新手礼包!交易手续费返现:20%!
免责声明:文章图片应用自网络,如有侵权请联系删除