交易现在被传播到了网络中,在没有被确认并通过挖矿包含到区块前,它还没有成为共享账本(区块链)的一部分。关于挖矿,在第8章中将有详细介绍。
比特币系统的信用是建立在计算的基础上的。交易打包进区块需要巨大的计算量来证明,但是验证这个证明只需很少的计算量。挖矿过程在比特币系统中有以下两个目的:
●挖矿过程在每个新区块中创建新的比特币,就像中央银行发行货币。每个区块创建的新比特币数量是固定的,随着时间推移,这个数量会逐渐减少。
●挖矿过程创造信用,需要确保只有足够算力投入到包含这些交易的区块后,交易才能得到确认。更多的区块意味着更多的计算量投入,也意味着更多的信用。
挖矿的过程就像一个大型的竞争性数字拼图游戏,当有人找到一个解决方案时,游戏就重新开始,而游戏的难度也会自动进行调整,使每找到一个解决方案的时间大致维持在10分钟。想象一个巨大的数字拼图,高度有几千行,宽度有几千列。如果我给你看已经填充好的拼图,你可以很快地验证有没有错误。但是,如果只填了一部分,剩下的都是空白,那就需要花费大量的时间才能解决。数字拼图游戏的难度可以通过调整尺寸(增减行列数)来调节,但是不管尺寸大小,其确认过程都很简单。比特币中用的“拼图”是建立在加密哈希算法之上的,它展现了与拼图类似的特性:它也是不对称的,很难解决却很容易验证,而且它的难度也可以调整。
在第1章的“比特币的使用、用户,以及他们的故事”中,我们介绍过景,一个上海的计算机工程专业学生。景是以矿工身份参与到比特币网络中的。每10分钟左右,景与成千上万的矿工一起进行一场查找区块解决方案的全球竞赛。为了找到一个解决方案(被称为“工作量证明”),全网每秒要进行几万亿次的哈希计算。比特币中的工作量证明算法是采用SHA256加密哈希函数不断地对区块头和一个随机数进行哈希计算,直到找到一个与预设的模式匹配的方案。第一个找到这个解决方案的矿工将赢得这一回合的竞争,随即将这个区块发布到区块链当中。
景从2010年开始挖矿,他使用一台非常快的台式计算机来查找新区块的工作量证明。随着越来越多的矿工加入比特币网络中,挖矿的难度急剧增大。很快地,景和其他矿工将他们的电脑硬件升级到了更专业的水准,比如那些在游戏电脑或终端中使用的高端专用图形处理单元(GPU)。截至写这本书的时候,挖矿的难度已经非常非常高,为了保证有利可图,只能使用特定用途集成电路芯片(Application Specific Integrated Circuits,简称ASIC)来进行挖矿,这些ASIC芯片将几百个挖矿算法集成到硬件中,并使它们在一个芯片内并行计算。景加入了一个“矿池”,就像彩票池,允许多个参与者参与其中,共同工作并共享收益。景现在使用由两个通串线(USB)连接的ASIC机器,每天24小时挖矿,他通过出售挖矿获得的比特币来支付购买硬件的费用,并获取一定收益。他的电脑运行着一个bitcoind(标准比特币客户端)作为他的专用挖矿软件的后端。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。