比特币交易过程
当比特币中发生一笔交易时,它的执行过程是怎样的呢?首先引入一个概念:
公钥和私钥
- 公钥是公开的,大家都可以看到,私钥是保密的,只有持有人拥有。
- 公钥和私钥是成对存在的。
- 公钥加密的数据只能用对应的私钥解密。
- 私钥加密的数据(一般把它叫做签名)只能用对应的公钥解密(一般叫做验证)。
当用户A向用户B发起一笔交易,A会做如下几个事情:
- 将交易数据TX和B的公钥做一个哈希计算,得到哈希值V
V=hash(TX+B.publickey)
- A用私钥对V进行签名
sig=signature(V+A.privatekey)
- A将签名信息附加到交易数据的尾部,通过P2P网络将交易信息广播出去。
其它节点收到交易信息会有如下几个步骤:
- 用A的公钥对交易签名做验证,如果验证通过,根据公钥私钥的特性,则可以证明该笔交易确实是有A发起的,同时解出哈希值V。
V=Verify(sig+A.publickey)
- 将交易信息TX和B的公钥做哈希运算,得到哈希值V2
V2=hash(TX+B.publickey)
- 判断V是否等于V2,如果相等则说明交易数据TX是完整的,在传输过程中没有发生篡改和数据丢失。
至此,交易进入区块打包环节。
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。