比特币的签名算法是ECDSA(椭圆曲线数字签名算法)。ECDSA是一种基于椭圆曲线密码学的数字签名算法,是一种在比特币等加密货币上验证交易有效性的非对称加密技术。
在比特币中,ECDSA使用的是secp256k1曲线这种特殊的椭圆曲线,方程是y2 × 3 × 7。在ECDSA签名过程中,发送者使用自己的私钥对消息进行散列,然后使用公钥对散列结果进行签名。收信方可以使用发信方的公钥来验证其签名是否有效。
比特币的ECDSA签名有以下两个步骤。
1.产生随机数:发送者产生一个范围从1到2^256的随机整数r。
2.签名的计算:发送者使用自己的私钥和消息的哈希值(即消息的SHA256哈希值)来计算签名s。签名公式是s (r d q) % q, d是发信人的私钥,q是椭圆曲线的生成源。
收件人可以按照以下步骤验证签名:
1.使用发信方的公钥计算哈希值:收信方使用发信方的公钥对消息进行哈希,得到256位的哈希值。
2.检查签名的有效性:收信方将计算出的哈希值与发信方计算出的哈希值进行比较。如果双方相同,签名有效;否则,签名无效。
比特币中的ECDSA签名算法是基于椭圆曲线密码学的数字签名技术,用于验证交易的有效性。