码迷,mamicode.com
首页 > 其他好文 > 详细

区块链【4】如何证明你发的消息是你发的?

时间:2020-04-02 10:34:08      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:bsp   mic   计算   为什么   info   区块链   生成   公司   个人   

大家好,通过前几期的介绍,我们知道了比特币是一种电子记账系统,由于它的所有记录都是公开而且匿名的,于是比特币就面临这样几个问题:它如何去解决伪造记录、篡改记录、双重支付的问题?今天我们先来研究一下伪造记录的问题。

如何保证比特币的交易记录是真实的,也就是如何进行身份认证,我们必须保证每一条记录都是由比特币持有者所发出的而不是由其他人伪造的,那么传统的记录认证方式有哪些呢?

可以刷脸,人脸识别。我们去银行办业务,银行要求我们必须本人去,为什么?因为他要刷脸。

第二个就是签名,我们可以在某个文件上签字,便是我们认可这份文件了,或者再狠一点,我们搞指纹,每个人的指纹不一样,你按了手印就表示这个事儿是你认可的。

但是这些方式在电子支付系统上都不能实现,为什么?因为无论是人脸签名还是指纹,利用计算机系统都可以进行拷贝。我可以拷贝你的签名,然后添加到我伪造的记录上,这不就行了吗?所以我们必须对这种传统的身份认证方式进行更改,怎么改呢?电子签名。

首先,一个比特币用户,他在注册的时候,系统会生成一个随机数,然后通过这个随机数产生一个叫做私钥的字符串,这个私钥又可以产生一个叫做公钥的字符串,私钥和公钥是对应的,同时又可以产生一个地址,那么这些东西它的重要性是不一样的,首先这个私钥你必须保存好了,它是你私有的保密的,如果你的私钥丢了,那你的所有比特币就都不见了。私钥必须存好了,也不能让别人知道,所以有些人把私钥放在一个不联网的电脑里面,也有一些人把它背下来记到脑子里。

 技术图片

而公钥和地址都是公开的,如果你想让别人给你钱的话,你把你的地址告诉他就可以了,如果你想给别人钱的话,你要把你的公钥和地址一起发送过去,这两个都是公开的,没有关系,而且通过公钥也反算不出来私钥,咱们上期说过,像SHA256算法,你只能正着算,反着算不出来,同样的私钥到公钥可以算,但是反过来公钥到私钥是算不出来的,这也是一种加密手段。

好了,那么私钥和公钥有什么作用呢?私钥可以对一串字符进行加密,而公钥可以把这个私钥加密之后的数据进行解密,那么加密和解密的钥匙不一样,这种加密方法我们称之为非对称加密,比如最典型的非对称加密就是RSA加密。

比特币也是使用了非对称加密,只有你能够加密,而任何人都可以解密你加密之后的信息,好了,现在我们就想问,假如有一个人A,他想付给B十个比特币,他该怎么办?

那么A他要做这么一件事,首先他写一条记录,就是A付给B十个比特币,写这么一条记录,然后对这条记录进行数字摘要,也就是哈希运算,算出一个摘要,之后再通过自己的私钥进行加密,产生一个密码。

 技术图片

然后,A对全网进行广播,将交易内容、自己的公钥、对摘要进行加密之后的密码全部广播出去。

 技术图片   

这时候,别人拿到了他的广播之后就去琢磨,这一条信息说A给B十个比特币,那对不对,是不是真的是A给的,别人怎么去验证?

这么验证,首先其他接收到这条消息的人会对交易信息做哈希运算,得出一个摘要,同时用公钥和密码进行解密,解密出一个摘要来,将两个摘要进行对比,两个摘要相同,就可以认为这条消息确实是A广播的,如果两个摘要不相同,这就说明这条消息是伪造的,于是所有的用户都会拒绝这条消息,这样一来就保证了所有A发给B的消息都是由A签发的,这种方式我们就称之为电子签名,其实我们的银行卡很多的时候也是用这种方法来进行签名的,原理上差不多。

 技术图片

好了,讲到这里今天的问题就解决了,我是蓝博公司的hr,我们下期再见,拜拜!

区块链【4】如何证明你发的消息是你发的?

标签:bsp   mic   计算   为什么   info   区块链   生成   公司   个人   

原文地址:https://www.cnblogs.com/lenbor/p/12609414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!