主页 > imtoken2.0钱包下载 > FPGA比特币矿工算法
FPGA比特币矿工算法
注意:在这种矿池模式下,不仅矿工的收益变得稳定,而且矿工不再需要维护全节点,也不需要维护各种内存数据,大大减轻了独立矿工的负担。
那么问题来了,矿池如何分配收益?
关键是矿池协议中分配给矿池内矿工的难度其实和整个比特币网络的难度不同,通常要低很多倍,降低的难度可能每个矿池都不一样,我们假设 Example 1000 次:
如果挖矿难度降低1000倍,即使只有一台矿机,平均完成这个难度的时间也只有4天,假设整个矿池在4天内完成这个难度。次数为10,000,则可获得整个矿池的1/10,000。
矿池在降低难度后如何完成比特币网络的工作量证明?
虽然降低了矿工的难度,但矿工会更频繁地完成工作量证明。由于整个比特币网络的工作量证明必须包含在矿工计算的低难度答案中,随着低难度答案数量的增加,总会有矿工计算出的低难度结果匹配比特币的高难度结果,让整个矿池都获得比特币挖矿奖励。
注意:上述矿池具有一定的中心化特性,矿池管理员拥有更大的权利,因此引起了一定的争议,所以人们发明了P2POOL比特币的算法是什么,这是一种中心化矿池的方式,但由于技术和不便,这种矿池尚未大规模应用。有兴趣的朋友可以通过谷歌了解一下。
额外随机数
在“深入比特币原理(十一)”)中,我们描述了矿工如何通过不断改变区块头中的 Nonce 值来尝试完成工作量证明。但是,从区块头的结构来看,可以看出Nonce值的长度是4个字节,也就是32位,可以尝试的不同值只有42亿个。
目前单台矿机最大算力为14TH/s。也就是每秒可以计算大约1.4万亿个值,所以原来的Nonce值的长度已经不能满足不断增长的Hash算力了。
我们知道在比特币网络中,区块头的时间戳(Timestamp)字段有一定的浮动范围,所以人们开始使用长度为4字节的时间戳作为第二个变量,从而增加了值矿工可以从 232 到 264 尝试。但实际上,虽然时间戳是可变的,但必须在一定范围内,否则该块可能会被其他节点拒绝,具有一定的局限性。
在矿池协议中,一个新的扩展方法是在coinbase数据中添加一个Extra Nonce。我们之前已经多次提到向 coinbase 数据添加信息。这部分的大部分信息都可以自定义比特币的算法是什么,coinbase数据会影响Merkle Root值。所以会影响整个区块头的Hash值。
Extra Nonce分为Extranonce1和Extranonce2
Extranonce1:由矿池管理员生成,同一个矿池的所有矿工都有一个唯一的Extranonce1,这样同一个矿池的矿工就不会重复工作了。
Extranonce2:矿工产生的新的 Nonce 值,供矿工用来扩展计算空间。
Extranonce2_size:矿池管理员指定的Extranonce2长度。如果指定长度为 4 字节,计算空间将从 232 增加到 264。
目前TOP10矿池算力分布
p>
目前最大的矿池约占比特币总算力的26.5%,但排名前10的矿池占比特币的95% 比特币挖矿规模的不断扩大也引发了人们的担忧比特币矿工的中心化和对计算能力的攻击。</p>
之前有一个单一的算力矿池。接近50%的情况引起了比特币社区的极大关注。但现在各大矿池都在有意识地将其保持在 30% 以下,这似乎是一种默认的“潜规则”。
关闭矿池详情请参考以下网址:
ASIC矿机的思考
ASIC矿机的出现在一定程度上违背了中本聪白皮书中一CPU一票的理念,使得普通用户无法参与挖矿。如果只买少量的矿机,利润就很少,ASIC矿机除了挖矿几乎没有其他用途。
于是人们开始探索抗ASIC的挖掘算法,比如最典型的内存依赖算法,让内存成为计算瓶颈。
但是,ASIC 阻力也会带来新的问题。没有ASIC矿机的网络计算能力是有限的。在云计算高度发达的今天,短时间内租用大量云计算能力是完全可能的。对网络的攻击大大降低了攻击成本,整个区块链网络的安全将受到极大威胁。
所以关于如何挖矿和挖矿什么的话题还在争论中,你怎么看?
至此,比特币的基本内容已经完成。稍后,我们将讨论比特币最重要的扩展方式——隔离见证和闪电网络。
本文部分内容参考知乎茅本聪:【区块#6】比特币挖矿与淘金