摘要:
1.秘密密匙生成:每个比特币的地址都有一个长长的数字秘密密匙,用来创建数字签名。生成私钥的算法通常基于随机数生成器。2.生成公钥:使用私钥用公钥算法(基于椭圆曲线的算法)生成公钥。...
1.秘密密匙生成:每个比特币的地址都有一个长长的数字秘密密匙,用来创建数字签名。生成私钥的算法通常基于随机数生成器。
2.生成公钥:使用私钥用公钥算法(基于椭圆曲线的算法)生成公钥。公开密匙实际上表示由秘密密匙控制的比特币地址,但不用于加密和解密,主要用于验证签名。
3.创建数字签名:
散列:事务的输出(即事务的所有细节)通过散列函数(如SHA256)产生固定长度的散列值。
签名:用私钥在哈希值上签名。这个过程包括椭圆曲线上的点运算和模块运算,生成由两个部分组成的数字签名r和s。这两个值的生成过程确保只有私钥的所有者才能生成有效签名。
4.电子签名验证:
哈希和签名:任何接收到交易的节点对交易进行相同的哈希操作,然后使用公钥验证收到的签名。验证过程也是基于椭圆曲线上的点运算和模块运算。
验证结果:如果验证过程正确执行,并且公钥能够正确解密哈希值对应的r值和s值,那么证明签名是有效的,并且签名是由对应的私钥所有者完成的。