主页 > imtoken下载ios > 区块链中CPU挖矿、GPU挖矿、ASIC挖矿的原理和区别

区块链中CPU挖矿、GPU挖矿、ASIC挖矿的原理和区别

imtoken下载ios 2023-02-24 07:21:24

在区块链的世界里,有一些非常有趣的比喻。 像挖金子一样“挖”数字货币,就叫“挖矿”。 挖数字货币的人被称为“矿工”,用来“挖”数字货币的计算机被称为“矿机”。

比特币挖矿原则

比特币的区块头一共有6个字段,如下:

int32_t nVersion,4字节比特币矿机挖矿原理,版本号,一般是固定的,只有在升级的时候才会改变。

uint256 hashPrevBlock,32字节,上一个区块的区块头hash,由上一个区块决定。

uint256 hashMerkleRoot,32字节,包含区块中所有交易结构的Merkle根,在调整区块中交易顺序、增删交易、修改Coinbase交易时改变。

uint32_t nTime,4 字节,时间戳。 允许下一个区块的时间略早于上一个区块的时间,但必须在合理的时间间隔内。 一般会直接使用本机的当前时间戳。

uint32_t nBits,4字节,挖矿难度,全网共同决定,每2016个区块根据算法重新调整。

uint32_t nNonce,4字节,随机数,提供2^32个值。 即 4,294,967,296。

其中,nVersion、hashPrevBlock、nBits是固定的,其他hashMerkleRoot、nTime、nNonce是可变的。 比特币挖矿的原理是不断改变区块头中的变量值,从而对区块头进行双SHA256哈希,结果小于挖矿难度目标值。 即:SHA256D(BlockHeader) < F(nBits)

其中,SHA256D(BlockHeader)为区块头的双SHA256哈希,F(nBits)为nBits计算的难度目标值。

计算能力的表示

1 H/S = 每秒一次操作

1 KH/S = 1000 H/S,即每秒操作一千次

1 MH/S = 1000 KH/S,即每秒100万次操作

1 GH/S = 1000 MH/S,即每秒10亿次操作

1 TH/S = 1000 GH/S,或每秒 1 万亿次操作

1 PH/S = 1000 TH/S,即每秒1000万亿次运算

1 EH/S = 1000 PH/S,即每秒100万万亿次运算

比特币挖矿原理详解_比特币矿机挖矿原理_比特币矿机挖矿教程

CPU挖矿原理

CPU挖矿,即使用RPC接口setgenerate来控制挖矿。

在控制台输入setgenerate true 2开始挖矿。 后面的数字代表挖矿线程数。 当然,首先要完成同步数据。

由于SHA256D在单CPU上的计算能力约为2MH/S,nNonce提供的4字节搜索空间完全足够,即支持4G值。

GPU挖矿原理

GPU计算 SHA256D计算能力约为200M-1G,nNonce提供4G的搜索空间,如果只调整nNonce的值,可以支持4秒左右。 所以nTime是可以调整的,每调整一次nTime,可以继续挖矿4秒。

GPU挖矿采用GETWORK协议,即挖矿程序与节点分离,即挖矿组件与区块链数据分离。 在GPU挖矿时代,GETWORK协议用于实现挖矿程序与节点的交互。

核心思想是:节点构造区块,将区块头数据交给挖矿程序,挖矿程序遍历nNonce进行挖矿。 验证合格下发给节点比特币矿机挖矿原理,节点提取nNonce和nTime验证块,如果满足要求向全网广播。 遍历结束时,会调用GETWORK,节点构造新区块,然后重复上述过程。

GPU经典挖矿驱动为cgminer,源码为.

GPU挖矿缺陷:GETWORK协议为挖矿程序提供的搜索空间为4G,结束后需要再次调用GETWORK RPC接口。 矿机出现后,矿机算力已经达到10TH/S。 继续使用GETWORK协议来频繁调用RPC接口显然是不合适的。 因此,有必要切换到更高效的getblocktemplate协议。

GPU挖矿是指可以使用显卡进行挖矿。 并不是所有的显卡都适合挖矿。 GPU对算力、带宽、缓存等要求比较高,一般显卡无法挖矿。

比特币挖矿原理详解_比特币矿机挖矿原理_比特币矿机挖矿教程

专用集成电路矿机

FPGA,Field-Programmable Gate Array,译为现场可编程门阵列。

它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。 作为半定制电路出现在专用集成电路(ASIC)领域,既解决了定制电路的缺点,又克服了原有可编程器件门数量有限的缺点。 可以用FPGA实现各种AISC、DSP和单片机。 FPGA作为挖矿硬件,对于ASIC来说是不可避免的过度技术。

ASIC,Application Specific Integrated Circuits,即专用集成电路。 指应特定用户要求和特定电子系统需要而设计制造的集成电路。

目前市场上主要有蚂蚁矿机、阿瓦隆矿机、神马矿机等专业ASIC矿机。

比特币挖矿原理详解_比特币矿机挖矿原理_比特币矿机挖矿教程

矿池挖矿原理

矿工通过getblocktemplate协议与节点交互,或者矿池通过stratum协议与矿工交互,这是两种典型的矿池构建模式。

与getwork相比,getblocktemplate协议允许矿工自行构建区块,从而将节点与挖矿完全分离。 矿工得到一系列数据后,开始挖矿:

1. 建立一个 coinbase 交易。

2.coinbase交易放在交易列表之前,构建hashMerkleRoot。 由于coinbase和交易顺序可以调整,hashMerkleRoot空间可以认为是无限的。 因此,getblocktemplate 协议也让矿工获得了巨大的搜索空间。

3. 构建区块头。

4. 挖矿,即矿工可以在nNonce、nTime、hashMerkleRoot提供的搜索空间中涉及任何挖矿策略。

5. 提交数据。 如果挖矿成功,则提交给节点,由节点验证并广播。

getblocktemplate 协议的问题: