比特币基础课程五——比特币挖矿是在挖什么?
第0章 引言
上两篇文章我们重点介绍了比特币交易这个概念,用户发起一笔比特币交易,最终被纳入比特币区块链里是依靠矿工挖矿来完成。那什么是挖矿呢?
第1章 比特币世界里的会计
在理解什么是挖矿之前,我们先来理解我们日常经济活动中的银行的一个业务。我们使用银行账户进行汇款、取现和网银支付这些活动,银行就会在我们的账户上进行记账,银行是我们的会计。正因为银行能够帮全国人民记账,人民币这套货币系统才得于正常运行。帮用户记账是银行的最基础的功能。
比特币也是一套货币系统,用户使用比特币来支付,哪谁来帮用户记账呢?谁来充当比特币世界里的“银行”角色呢?答案是矿工。
我们知道银行帮我们记账是包含了一整套软件,还要雇一堆会计来对账,还要买大量的计算机来运行这些软件和让会计来操作对账。哪比特币世界里的矿工具体是一个什么样的物理实体呢?它们不会是怪物吧。
第2章 矿工长什么样子
通过本系列的第一篇文章,我们知道了比特币是一个点对点的分布式计算系统。在那一篇文章里我们提到了一个最简化的比特币模型,是由10台电脑组成一个点对点的分布式计算系统,也就是比特币系统。这里的10台电脑都是矿工,当然也都是用户。
也就是说在最简化的比特币系统中(当年中本聪刚发明比特币时,仅有少数几个人使用比特币,那时就是最简化的比特币系统),矿工就是一台简单的PC机。矿工的硬件是PC机,软件是一个比特币钱包。它不需要人工对账,一切都是由这个网络自行记账,从来不会出问题,根本不需要也不可能需要人工对账。
现在比特币系统演化到了非常复杂,矿工早已不能是由简单的电脑来担当了,而由专业的硬件开发商做的矿机来担当,下面这张图就是一台矿机:
这些矿机本质上还是计算设备,里面的电路板搭载满了计算芯片,工作时不停地像我们PC机的CPU那样算啊算,一会我们会讲到它到底在算什么。
有人使用大量的这种矿机搭建成庞大的矿场,像下面这张图那样:
因为矿机需要消耗电来计算,有人为了挖矿就将一个水电站包下来挖矿,使用一排一排的厂房来摆矿机,非常的疯狂。如果你以前没有见过矿机,让你现在亲临一个矿场,你一定会大吃一惊。
而挖矿的软件也变的更复杂,最简化的比特币系统模型只需要钱包,但现在需要矿池和钱包共同运算。
第3章 矿工在干吗?
在第1章里我们讲到了矿工其实就是和银行干着类似的事情——记账。这一章我们详细点表述这些疯狂的硬件和软件做成的矿工到底在干吗。
我们还是先讲一个我们生活中相似的案例来做类比。一家公司的会计和出纳每天都会收集员工的报销票据,然后整理填写成一本一本的账本,堆进公司的会计存储室。
类似的,在比特币世界里是这样的。
我们普遍用户使用比特币发起交易,一笔交易本质上就是一个大约200到500k左右数据。用户将交易广播到比特币网络,矿工节点就会收到交易。矿工会将他收到的交易都打包进一个叫区块的数据块,这个数据块目前平均大小是1M,一般能包含几百到几千笔交易。每新打包一个区块都会拼接到以前的区块,这样整个区块数据块就构成一条链,这就是区块链。
矿工就是干这事,收集用户发起的交易,然后打包成区块,然后拼接成区块链。
这个区块链就是比特币系统里的总账本,任何人使用比特币交易都会被记录到这个账本里,这个记录的工作就交给矿工来完成。整个收集、打包、拼接的过程全是由软件自动完成的,不需要人工干预。目前这个区块链几杯已经超过130G的数据量了,收集登录了从第一笔比特币交易到现在总共超过2.46亿笔交易。
当然矿工还会对交易的合法性进行验证,谁发起欺诈性的交易是骗不了矿工的。但矿工的核心工作就是做会计。
第4章 矿工为什么会干会计?
上面讲到了运行矿机需要消耗电,甚至有人会包下整个水电站来运行矿机,这可是很费钱啊。而且矿机本身是非常贵的,我们买一台PC机好的也就五六千块,一台图上的矿机也是几千块啊。哪为什么会有人花这么多钱去挖矿呢,对他有什么好处呢?
好处大大的有。
比特币这套系统为了鼓励人们去挖矿,设定了一个规则:只要你遵守规则成功抢到一次记账的权力,那系统就会给你奖励一些比特币。(这个“一些”最开始在2009年是50个比特币,然后平均四年半减半,到了2012年变成了25个比特币,现在变成了12.5个比特币。)这个叫区块奖励。
参与挖矿的人就是为了抢夺这份区块奖励,才大量购买矿机,甚至到了直接购买水电站去挖矿。
另外区块奖励也是比特币发行的策略,天底下所有的比特币就是从区块奖励开始诞生的。又因为每隔四年半奖励会减半,到了2140年,理论上比特币总量将无限接近2100万个。当然因为早期会有大量的人因为不在乎会丢失比特币,所以最终问题肯定达不到2100万个。
现在的问题是,系统如何决定将区块奖励发给哪一个矿工呢?
第5章 区块奖励凭什么发奖?
我们评奖学金是凭学习成绩,矿工是凭什么拿到区块奖励的呢?
说来很奇怪,和运气非常相关。
比特币系统的记账权力是要争夺的,争夺的规则其实非常简单,就是大家抛硬币,谁先抛出合乎规则的硬币序列谁就赢。这就是矿机运算的核心内容,矿机算的东西本质上是抛硬币。
比特币矿机计算的东西专业术语叫计算区块头信息哈希值小于某个数值的数。其本质上就是一个随机数。谁先算出这个数,就可以获得接下来给比特币网络记账的权力。也就可以拿到区块奖励,和相应的交易转账手续费。
可以这样来形象理解,挖矿的计算过程,比特币这套系统每10分钟会给一道题,这道题就是让大家去抛硬币,胜出规则是,连续抛出正面向上多少次就算赢。
所以谁的计算设备抛硬币抛的快谁就更能抢到比特币的区块奖励,这个抛硬币的快慢叫算力。所以也不能说是靠运气哈,还得靠实力,虽然这个实力是由抛硬币这种碰运气机会组成的。
目前全世界在玩这个抛硬币游戏的计算机的抛硬币能力是每秒能抛 1.6*10^18次方。这是非常非常非常大的。
这个矿机抛硬币和系统验证你抛的对不对的过程就叫工作量证明,也就是比特币世界里经常提到的POW。我们下一篇科普文会解释这个概念。
第6章 结束语
比特币是由一系列概念和技术作为基础构建的系统,理解起来并不会很难,只要一个一个概念慢慢摸清楚,就OK了。
(如果您觉得好,欢迎关注我的公众号: 闪电HSL,也欢迎加我微信号:13116885)
(如果你想学习比特币和区块链知识,欢迎加入我的小密圈)