(28DW-S8-Day5) 区块链如何防伪
上一篇学习的是"为何要记账"、"以谁为准"两个核心问题。具体涉及到手续费、打包费、挖矿、工作量证明、挖矿难度控制等点。
今天学习如何防伪。
如何防伪:身份认证
如何保证比特币的交易记录是真实的,是由比特币持有者发出的而不是其他人伪造。也就是身份认证。
传统认证方式
人脸识别
指纹识别
签名
电子签名
传统方式都可以进行电子拷贝,其他人就可以加到自己伪造的记录中,因此在比特币中不可用。所以就有了电子签名这种防伪技术。具体实现:
比特币用户注册时,系统生成一个随机数。
随机数--(生成)-->私钥--(生成)-->公钥--(生成)-->地址
私钥、公钥、地址的关系
私钥,用来对交易记录数据进行加密,也就是用来签名。自己私有的、保密的,必须保存好,代表自己对比特币的所有权,类似于保险箱钥匙。如果私钥丢了,你的比特币就丢了。不能让别人知道。
公钥,用来对加密后的记录数据进行解密,也就是用来验证签名。是由私钥算出来的,是公开的。但是公钥不能反算出私钥。
地址,由公钥生成出来,比公钥短,且可以在某些场合规避对公钥的暴露。
非对称加密:加密解密的钥匙不一样的加密算法。
防伪过程
(1) 交易发起者 A
将自己的交易记录通过 hash 得到摘要(by SHA256 算法)。
摘要基于私钥进行加密形成密文。
(2) A 广播消息:交易记录+公钥+密文
(3) 其他人比如 B 收到这个广播消息后,进行验证:
交易记录 hash 得到摘要 1 (by SHA256 算法)
用公钥对密文解密得到摘要 2
对比摘要 1 和摘要 2 的一致性
参考文献
中本聪的白皮书:《比特币:一种点对点的电子现金系统》
李永乐:《比特币和区块链的原理》视频
版权声明: 本文为 InfoQ 作者【mtfelix】的原创文章。
原文链接:【http://xie.infoq.cn/article/8be2482d6ebb98e94bcdbf681】。文章转载请联系作者。
评论 (1 条评论)