技术原理
比特币是由网络节点在完成一个特定数学问题计算之后生产出的。这些数学计算需要相当的运算能力才能完成,并能够通过生成有效运算工作的证明来检验。在比特币网络中运算难度可以自动调节:在最初的四年里会有10500000个比特币被制造出来,这个数值每四年减半,所以在第四到第八年中会有5250000个比特币被制造,而在第八到第十二年中会有2625000个比特币被制造,以此类推。因此,比特币的数额会无限趋近于21000000个比特币。
从技术上讲,在目前的数据结构下,一个比特币可以被分区到8位小数,所以,0.00000001BTC是目前比特币的最小单位。如果将来有需要的话,会考虑更小的分区单位。即使比特币的允许精度从目前的8位小数扩展,最终流通中的比特币将总是略低于2100万。
系统运行内建的机制会在平均大约每10分钟确认一个区块。参与制造新比特币的人数变动,新比特币制造的难度也随之变动,这是将整个分布式网络作为一个整体来分析,分析的依据是之前2016个区块的制作时间。因此制造的难度与一定时间内全网投入制作的平均运算能力相关。单一个体“发现”新区块的可能性是创建在他的计算能力与全网计算能力的综合比较之上的。
获取机制
比特币矿工负责解决具有一定工作量的“工作量证明机制”问题来确认交易和防止双重支付。中本聪在他的论文中阐述:在没有中央权威存在的条件下,既鼓励了矿工支持比特币网络,又让比特币的货币流通体系有了最初的货币注入源头。中本聪把通过消耗CPU的电力和时间来产生比特币,比喻成金矿消耗资源,将“黄金”注入经济。
比特币的挖矿和节点软件是基于P2P网络、数字签名、密码学证据来发起和验证交易的。节点向网络广播交易,这些广播出来的交易在经过矿工的验证后,矿工用自己的工作证明结果来表达确认,确认后的交易会被打包到数据块中,数据块会串起来形成连续的数据块链。
除了将接收到的交易信息打包到数据块,每个数据块都会允许发行一定数量的比特币,用来激励成功发现数据块的矿工。比特币系统按照预定的货币增发节奏决定发行的比特币数量。如果其他支付交易有给手续费的,那么矿工琮会获得手续费。由于矿工可以自行决定是否将某一个交易数据打包到数据块中,因此矿工有可能优先选择手续费较高的交易来打包。
数据块产生速率的预期为每10分钟一个,但每个数据块中新发行的比特币不能超过50个,而这个数字每隔四年就会减半,因此比特币的总数量不会超过2100万个。随着新发行比特币数量的下降,手续费将成为挖矿的主要激励。
比特币早期通过CPU来获取,而随着GPU通用计算的优势不断显现以及GPU速度的不断发展,矿工们逐渐开始使用GPU取代CPU进行挖矿。比特币挖矿采用的是SHA-256哈希值运算,这种算法会进行大量的32位整数循环右移运算。有趣的是,这种算法操作在AMD