当前位置:主页 > 查看内容

个人理解的比特币

发布时间:2021-07-12 00:00| 位朋友查看

简介:个人理解的比特币 最近几天看了一下有关比特币的介绍再此做一下笔记。 比特币的的基本介绍 1.诞生 2008年11月1日世界金融危机爆发一位名叫中本聪的极客发表《比特币一种点对点式的电子现金系统》的文章称之为白皮书),提出了比特币的概念和比特币协议从而标志……

个人理解的比特币

最近几天,看了一下有关比特币的介绍,再此做一下笔记。

比特币的的基本介绍

1.诞生

2008年11月1日,世界金融危机爆发,一位名叫"中本聪"的极客发表《比特币:一种点对点式的电子现金系统》的文章(称之为"白皮书"),提出了比特币的概念和比特币协议,从而标志着比特币的诞生。

2.中心思想:一种去中心化记账系统

现在主流的记账系统为中心化记账系统,比如银行,生活在一个群体里的每个人都不需要知道其他人的账户信息,记账这一工作交由银行来进行。
比如,在一个群体里,有A、B、C、D四个群体,A付给B10个BTC(比特币),这个记账信息不必传给C和D,只用将记账信息传递给银行,由银行来进行管理记账信息。
在这里插入图片描述

而比特币是一种去中心化记账系统,它的形象理解如下图所示:
在这里插入图片描述
当A给B十个BTC后,没有银行这个中心记账系统,A需要将这个交易信息广播给这个群体里的每一个人。

比特币的三个基本问题

1.为何记账?
2.以谁为准?
3.如何防伪?

1.为何记账?

在比特币交易系统中,没有银行这个中心记账系统,为什么群体中的人要浪费时间和精力给你记账呢?
答案:不是白记账,有好处——记账奖励;规定用户的其它人记账会得到一定比率的手续费 ,而且还会有打包奖励

1.1 关于打包和区块链

如果在群体中A给B10BTC,B给C5BTC,C给D2BTC,这个时候它会生成一个账单,这时我们将记账信息打包成一个"区块",如下图所示:
在这里插入图片描述
然后将此打包好的记账信息与之前的记账记录的区块连接起来,就形成了区块链。
在这里插入图片描述
而这个用户群体里面的哪一个用户完成了对当前交易记录的打包,形成了区块,并与之前的交易记录连接起来,就形成了区块链,就会得到打包奖励,并向全网传播此次完成的区块链。

1.2 挖矿原理

比特币设计设计平均每10min打一个包,打包奖励首四年是一次50个比特币,然后后面的一个四年为25个,又后面一个四年就是12.个,按此每四年打包奖励减少一半,总共比特币的数量为2100万个。而打包的这个过程就是所说的"挖矿过程"。

那么如何挖矿呢?
相关函数:哈希函数:sha256加密:将一个输入转换成256为二进制数,加密方法特点:正向容易,反向困难。

在这里插入图片描述
如上图所示,一个新的账单信息需要打包,此时又A、B、C三个人在尝试打包。

挖矿过程就是一个解数学题的过程,具体步骤如下:
1.字符串:前块头部+账单信息+时间+随机数
区块包含一个头部和信息。,而此时用户打包时,需要解的字符串格式如上式所列,前四项是确定的,我们只有通过不断地改变随机数这一项来进行解密。(故要求电脑运行性能计算能力快)

2.将上述字符串通过sha256加密算法加密,得到256位二进制数hash

3.要求前n(难度等级)位必需是0,若A、B、C三个人如果有人通过改变随机数项完成了要求,算出了规定的字符串就形成了一个头部,完成打包,获得打包奖励,挖矿成功。

1.3 难度等级n的设置?

n越大,难度越高,矿越不容易挖,但比特币设计者规定平均每十分钟可以打包出一个块,所以难度等级n并不是一成不变的,而是根据当前算力在进行变化,故要想提高挖矿效率,就需要有更多算力的设备来挖矿,这样从理论上讲,提高了挖矿成功率。

2.以谁为准?

这么多人进行打包,那么最终形成的区块链以谁为准呢?
答:规定以最先完成打包的人形成的区块链为准

3.如何防伪?

1.身份认证

传统的身份认证方式有:人脸、签名、指纹
而比特币采用电子签名,示意图如下:
在这里插入图片描述

首先用户注册,系统会生成随机数,并形成私钥(注意这个需要保密),私钥用于加密信息,然后通过私钥可以计算出公钥(通过公钥推不出私钥,非对称加密),公钥用于解密私钥加密的信息。最后还会有地址。

别人给你钱:只需要你的地址
你给别人钱:需要公钥和地址

eg:A给B十个BTC
在这里插入图片描述

首先A给B十个BTC通过加密获得摘要,然后摘要通过私钥加密得到密码。
然后A将此交易信息广播出去,如何判断消息真伪,首先记录信息是已经公开的,通过HASH加密,获得摘要1,然后还可以通过公钥和密码解密出摘要2,将摘要1和摘要2进行对比,看起是否相同就可以查出此条信息的真伪。

2.双重支付

1.余额检查
由于用户的账单信息区块链是公开的,所以可以通过回溯用户的区块链来获得该用户的余额信息。

2.双重支付
问题:A给了10BCT给B,同时A又给10BTC给C,由于信息传递速度不同,其他用户接受到两条消息的顺序也不同,如何确认那一条信息为真,并作为区块链呢?
答:等到其他用户有一个幸运儿成功打包交易信息,并形成区块链,则以此用户的消息为准,其他正在尝试打包的用户,放弃打包此条消息。

3.防止篡改

1.原则:最长链原则
用户已最长的区块链为准,并在此区块链上继续打包,使其不断延长。

2.关于篡改
在这里插入图片描述
如图,若当A给B10BTC后,A进行篡改信息,从当前交易信息之前开始打包出新的一条区块链,由于最长链原则,其他用户都在A给B10BTC这条打包信息后进行打包,而A则单独在另一条链上进行打包,此时A就相当于与全世界做对抗,若A新开辟的区块链长于其它用户共同打包的区块链后,则表明篡改成功,但逻辑告诉我们,此时A拥有全世界超过50%的算力,完全可以沿着长的区块链进行运算,而不会去做出篡改数据这种吃力不讨好的工作,效益不高。

至此,比特币介绍完毕

;原文链接:https://blog.csdn.net/secretboys/article/details/115689976
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐