比特币是如何记账与挖矿的?

Posted 地产经管爱好者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币是如何记账与挖矿的?相关的知识,希望对你有一定的参考价值。

(本文在观看李永乐老师视频讲解基础上整理)

2008年11月1日,一个名叫中本聪(Satoshi Nakamoto的人在p2pfundation网站上发布了一篇名为《Bitcoin: A Peer-to-Peer Electronic Cash System》的比特币白皮书,将这个以区块链技术创造出来的数字货币带到了世界。

比特币是基于密码学的一种数字货币,旨在通过去中心化的电子记账系统,打造一个信用社会。

     比特币区块链的形成方式:将交易信息打包,形成一个区块,一个区块包含头部与账单信息。

区块的大小为1MB,可存储约4000条交易记录,然后将此区块连接到之前的区块交易记录上,形成一个完整的区块链账本。
比特币是如何记账与挖矿的?

以上的方式若要实现,还要解释几个问题:

1、 为什么会有人愿意花费精力来记账?

2、 以谁记录的账本为准?因为很多人都在记账的时候,由于网络延迟等原因必然会造成账单的不一致。

3、 如何防伪?

4、 如何避免双重支付?

在第一集的视频中,李永乐老师对第一和第二个问题进行了解释。

 

一、为什么会有人愿意花费精力来记账?

中本聪为比特币的记账建立了一种奖励制度:如果进行记账则会获得奖励。奖励包括手续费与打包奖励。

手续费由转出人支付,就像银行转账的时候,转账人支付一定比例的费用。

打包奖励是直接获得比特币。打包的频率是每10分钟打一个包。在前四年中每打一个包,就可获得50个比特币,第二个四年的打包奖励是之前的二分之一,以此类推,即25个比特币、12.5个比特币……那么由此可推算出比特币的总量为:


比特币是如何记账与挖矿的?


二、以谁记录的账本为准?

比特币记账采取的是工作量证明法,也就是让记账的人去解一道运算量很大数学题,谁能够最先解出来,就用谁的账本,同时谁也就获得了比特币的奖励,这个解数学题的过程就叫做挖矿,所以挖矿比拼的就是矿机C P U的运算能力。

具体要解怎样的数学题呢?这个数学题是要计算一个哈希函数,即输入一个x求得一个y,哈希函数具有正算容易反算难的特点,也就是说得知x可以计算出y值,但得知y值无法反推出x值。

哈希函数有很多种,比特币采用的是由美国国家安全局发明的sha256算法,即对任意一个字符串进行运算后,都会得到一个256位的二进制数,如sha256(“apple”)=100110……,不论这个字符串是一篇文章还是一部电影,都是输出一个256位的二进制数。

具体到比特币的记账上,就是要对新的区块进行两次sha256运算,得到一个256位的二进制哈希值。

哈希值=sha256[sha256(区块信息)],并要求该哈希值的前n位都是0。

一般一个区块信息会包含四大部分息:前块头部、账单信息、时间、随机数。

由于前块头部、账单信息、时间是已知量,所以解这道数学题的关键就是去不断的尝试随机数,使得哈希值前n位都是0,n越大,哈希值越难算,随机数越难找。

此时所有计算这道数学题的人就是矿工,电脑就是矿机,计算过程就是挖矿。第一个找到对应的随机数使得哈希值前n位都是0的人就有了打包权,以他的账本为准,从而获得奖励。

所以挖矿的关键就在于找到这个随机数,拼的是电脑的算力。

以上就是根据视频整理的内容。

结语

1、  有人愿意在比特币记账上花费精力是因为中本聪建立的奖励制度;

2、  挖矿就是寻找随机数计算出符合要求的哈希值的过程;

3、  第一个找到符合要求随机数的人就可以获得奖励

 

参考文献

[1] 微博 @李永乐老师

[2] https://bitcoin.org/bitcoin.pdf

[3] https://www.8btc.com/article/32986


以上是关于比特币是如何记账与挖矿的?的主要内容,如果未能解决你的问题,请参考以下文章

挖矿的原理

写给新手:秒懂比特币挖矿

比特币的测试网络

比特币是怎么产生的? 如何挖矿?

区块链比特币特性与挖矿

IPFS算力挖矿:让挖矿回归大众,人人都可以挖矿