区块链中比特币和挖矿原理漫谈
2020-05-25刘佳
摘 要:区块链一直被人们认为是比较高深的技术。直到勒索病毒爆发时期间人们才逐渐听说区块链,初步知道了比特币和挖矿。然而对于比特币,普通人是陌生的。挖矿人们也仅仅只能从字面上理解。挖矿为什么能获得比特币呢,挖矿的原理又是什么?本文从比特币和挖矿的原理说起,希望能对普通大众了解比特币和挖矿,了解区块链有所促进。继而推动区块链技术在各个应用领域的不断拓展。
关键词:区块链;比特币;挖矿;哈希算法
2019年10月24日习近平总书记在中央政治局第十八次集体学习时强调要把“区块链”作为核心技术自主创新重要突破口,加快推动“区块链”技术和产业创新发展。近来“区块链”这个名词也越来越多的出现在各个高层会议上,越来越频繁的出现在人们的视野中。区块链究竟是什么呢?事实上区块链是伴随着比特币产生的一种新技术。它本质上是一个去中心化的数据库。提起区块链我们就必须先了解一下比特币的概念了。
1 比特币产生的历史和特点
比特币实际上是一种电子货币,或者叫数字货币,它的本质是基于密码学的一种货币。这种货币与我们日常使用的银行卡里面的货币和现金完全不同。比特币的出现是一个传奇。2008年,全球爆发了大规模的金融危机,2008年11月1日,有一个网络极客,化名叫中本聪。真人是谁,我们无从得知。中本聪曾经在网络上发表了一篇文章。提出了比特币的概念,他设计了一种去中心化的电子记账系统。提到记账,我们来回想一下,在进行交易的时候我们都必须进行记账操作,比方说,我支付给你100元人民币,我首先必须检查自己的银行卡里,是否有足够的额度,完成支付后还剩余多少,这就要记账,现阶段我们日常生活中的交易是通过银行来记账,无论我们是使用信用卡或是支付宝或者微信都是通过银行来记账的,我们信任银行,因为银行的背后是国家的信用,在此我们认为银行是记账的中心。而中本聪认为其实我们并不需要带中心化的这个记账系统。我们可以去中心化。让每个人都记账并且把账本广播出去,让所有人都看到。这就是一种去中心化的电子记账系统。
2 区块链中块和链的构成实质
前面我们提到区块链就是一个数据库或者说区块链就是用来存储数据的一个处理系统,在数据库中记录交易等数据,又称这种数据库为账本。这种账本特殊之处在于,每个人都可以参与账本的记账过程。区块链中的块就存储了大量的交易信息,一个区块,大小约为1兆字节。可以存4000条左右的交易记录,存储信息的多少取决于每一条记录的大小。这个块打包完成之后,我们再把这个块链接到以前的交易记录上,形成了一条链,这样就形成了区块链。新建区块的过程又被称为“挖矿”。挖矿主要完成下面的工作:接受交易信息,建造区块,把区块广播出去,然后得到比特币作为奖励。挖矿的报酬来自两个方面,其一:所有被成功打包的交易过程都要支付给记账人一定的手续费(以比特币的形式支付)。其二:打包成功有奖励,这个奖励就是比特币。按照中本聪的设想,每十分钟全世界只有一个人能成功打包,也即只有一人能成功获得比特币。获得比特币的数值是一个定值。中本聪在2008年提出这个分布式记账系统时,设计了这样的一个方案,每10分钟打一个包。最开始成功的打包者,将获得50个比特币的奖励,这个过程将持续四年。四年之后,同样是每10分钟打包一次。奖励金额减半,即成功的打包者将获得25个比特币的奖励,再过4年奖励12.5个比特币,也就是每过4年之后,奖励的比特币数额减半。按照这种算法,全世界比特币一共有2100多万个。
3 挖矿的含义,挖矿为什么这么难
正因为比特币的产生是通過打包奖励这种方式扩散出去的。也正因为有了手续费和打包奖励两种获得比特币的方式,所以世界上所有的挖矿者都积极的去打包,究竟谁能打包成功,或者说谁能挖到矿呢?中本聪想到一个办法,叫工作量证明。即每一个参与的用户,都要去做一个很难的数学题,这个很难的数学题,只有第一个成功做出这个数学题的挖矿者才有权利进行打包。这个数学题非常难,难到全世界没有任何一个人能够直接通过脑力计算将它算出。我们必须一个一个数据尝试,直到你把它尝试解答出来了,那么你就获得这个奖励。所以这个过程我们就称之为挖矿。如果你在10分钟内第一个把这个数学题做出来了,你就获得了这个打包的奖励。而这个打包的奖励就是几十个比特币,就称之为挖矿成功了。
4 挖矿原理漫谈
我们继续深入探讨挖矿的具体原理。我们知道了挖矿就是做一个很难的数学题,求解这个数学题并不是看你脑子聪明不聪明,而是看你计算机的运算速度如何。因为没有人能够通过人的大脑将它计算出来,也无法通过数学方程或手工验算的方式得到结果。这个数学题是什么呢,就是哈希函数。用通俗的话讲,哈希函数就是把一个字符串通过一定的运算,转化成一个二进制的形式。正向推算比较容易,反算非常难。在哈希算法里面有一个很著名的,由美国国家安全局发明的算法SHA256。将一个字符串输入到这SHA256算法中,最后会得到一个256位的二进制数。在区块链链接的过程中每一个块不单纯只有交易信息,每个块有个头部。包含了前块头部、账单信息、时间戳、和一个随机数。对这个字符串做两次SHA256运算。会得到一个哈希值。这个哈希值的前N位为0,如果计算出来的哈希值前N位为零,符合要求,那么就成功了。如果计算出来的前N位的0的个数不符合要求,就必须调整字符串最后的随机数,继续推算,直到满足条件为止。这样就把符合条件的哈希值做为新块的头部链接到已经产生的块上。只有这样才能成功打包并且保证链接成功。当然只有第一个算出正确哈希值的并链接到新块上的才能获得比特币的奖励。随着时间的推移和比特币价值的不断攀升,单位时间能获取的比特币越来越少,参与挖矿的人越来越多。参与挖矿的矿主只有购买更多更快的矿机,才能在单位时间内提高运算速度,有更多的机会去尝试那个随机数。从而获得比特币的奖励。
5 结语与展望
比特币是基于区块链技术构建而成,但它只是该技术诸多应用中的一种,绝非等同于区块链。人们逐步意识到区块链技术最具可行性的应用就在具有“公证性”事物方面,如果有了区块链技术作为基础,大家通过区块链技术获得的信息都是真实可靠的,那么人们交易就不需要通过第三方担保了,因此有人说区块链具有“去第三方”或“无需信任系统”等特性。区块链技术应用前景广阔,并且也不断有领域开始尝试应用,可以这样认为,如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网改变了信息传递的方式,那么区块链作为构造信任的机器,将可能改变整个人类社会价值传递的方式。
参考文献:
[1]许重建,李险峰.区块链交易数据隐私保护方法[J].计算机科学,2019,12:128-129.
[2]刘琴,蒋明杰.比特币的货币本质与风险分析[J].内江科技,2019(11):125-126.
[3]洪阳,王立松.比特币平台挖矿策略及其收益综述[J].南京信息工程大学学报,2019(9).
[4]林成骏.比特币生成原理及特点[J].中兴通信技术,2018,11:13-18.
[5]梁斌.从“比特币挖矿”看区块链技术的共识机制[J].中国金融电脑,2016,9:45-46.
基金项目:湘潭市2019年度指导性科技计划项目“区块链+”高校智慧校园建设研究(ZDX-CG2019022)
作者简介:刘佳(1977-),男,湖南湘潭人,硕士,讲师,主要研究方向:计算机网络技术,数据库技术,高校教育信息化。