(本文在观看李永乐老师视频讲解基础上整理)
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]微博 @李永乐老师
网友评论