首页 / 币资讯

比特币签名验证(比特币的签名和验证)

发布时间:2023-05-24 05:30:57

本篇文章给大家谈谈比特币签名验证,以及比特币的签名和验证对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、比特币的数字签名是什么? 2、3、数字签名(ECDSA) 3、比特币的数字签名简介?

比特币的数字签名是什么?

比特币的数字签名,就是只有比特币转账的转出方生成培老的,一族中皮段防伪造的字符串。通过验证该数字串,一方面证明该交易是转出方发起的,另一方面证明交易信息在传输中没有被更改。

数字签名通过数字摘要技术把交易信息缩短成固定长度的字符串。举个栗子,牛牛发起一笔比特币转账,需要先将该交易进行数字摘要,缩短成一段字符串,然后用自己的私钥对摘要进行加密,兆差形成数字签名。完成后,牛牛需要将原文(交易信息)和数字签名一起广播给矿工,矿工用牛牛的公钥进行验证,如果验证成功,说明该笔交易确实是牛牛发出的,且信息未被更改。

同时,数字签名加密的私钥和解密的公钥不一致,采用非对称加密技术。看起来好复杂,其实转账只需要你输入私钥就瞬间完成啦!

3、数字签名(ECDSA)

比特币中使用的数字签名算法是椭圆曲线数字签名算法(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)

比特币的数字签名简介?

比特币中的数字签名,是交易中的发起方产生的,为了保证这笔交易侍蠢悉确实是由此人发起,并且数据在传输时没有被篡改。数字签名简单点来说,就是完整的交易信息,通过数老乎字摘要技术压缩成固定格式的字符串,然后通过非对称加密技术,生成一个私钥。将完整的交易信息和数字签名传送档誉给矿工,矿工用交易发起方的公钥对数字签名进行解密,解密成功,就将此交易数据写到区块中。

关于比特币签名验证和比特币的签名和验证的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com