BTC挖矿难度
btc的挖矿其实就是一直在不断尝试nonce,找到一个合适的nonce这样就有得到了记账权利,也就是所谓的挖出了一个区块,那么,挖矿到底是算什么
区块结构
在bitcoin的源代码中可以看到:
class CTransaction
{
public:
// Default transaction version.
static const int32_t CURRENT_VERSION=2;
// The local variables are made const to prevent unintended modification
// without updating the cached hash value. However, CTransaction is not
// actually immutable; deserialization and assignment are implemented,
// and bypass the constness. This is safe, as they update the entire
// structure, including the hash.
const std::vector<CTxIn> vin;
const std::vector<CTxOut> vout;
const int32_t nVersion;
const uint32_t nLockTime;
private:
/** Memory only. */
const uint256 hash;
const uint256 m_witness_hash;
uint256 ComputeHash() const;
uint256 ComputeWitnessHash() const;
}
这个就是交易的结构
挖矿就是一直在进行hash计算,直到找到一个符合难度要求的值。
在区块链演示的图中可以看到:
当在创世区块中写入数据时,因为前面的区块hash值改变了,迫使后面的信息也修改了,这样就是非法的数据
每个区块需要重新挖矿,这样才是一条正常的数据。
挖矿难度
原本中本聪设计的是一个公平的完全去中心化的一个数字货币系统,每个人都可以使用个人电脑进行挖矿。然而,有利可图时大量新算力不断加入,矿工竞争激烈,使得单个矿工的挖矿成功率几乎为零。2011 年起矿池出现,大量矿工纷纷加入矿池,以稳定收入,摊薄成本。大量算力融入,使得比特币挖矿难度越来越大
在比特币最开始的阶段,一台普通的pc就可以进行挖矿,当越来越多的人参与到挖矿中时,挖矿变得越来越难,现在一台普通的pc挖到区块的概率几乎是0,比特币挖矿经历了从普通pc机挖矿,到GPU挖矿,到专用ASCI芯片挖矿,后来普通的个人已经挖不到矿,现在普遍是矿场矿池来挖矿。目前可以在最新的区块看到挖矿难度:
挖矿难度在每隔2016个区块调整一次,大约是14天的时间,调整挖矿难度,这样保证每次的出块时间在10分钟左右。
如上述的bits= 386689514, 16进制数是:0x170C69EA
coefficient系数: coefficient = 0x0C69EA
exponent指数: exponent = 0x17 表示实际表示的数字,0x17表示实际挖矿出来的hash要有0x17=23个实际数数据
target = coefficient * Math.pow(2,8 * (exponent-3))
实际hash: 00000000000000000041ff1cfc5f15f929c1a45d262f88e4db83680d90658c0c
bits值越小,难度越大,越难挖矿,需要的算力更多。
算力
在btc.com中可以看到算力和挖矿的难度,算力一直处于上升,难度也处于上升趋势。
下面是算力单位:
H/s
: 是最小的单位,每秒做一次计算机随机的hash碰撞,就叫做Hash/s 单位简写成 H/sKH/s
: 1KH/s=1000H/s 通常 K=千的意思,每秒1,000次哈希运算MH/s
:1MH/s=1000KH/s M是兆,1M=1000千 ,1MH/s=每秒1,000,000次哈希GH/s
:1GH/s =1000MH/s 每秒计算1,000,000,000次哈希。TH/s
:1 TH/s =1000GH/s 每秒计算1,000,000,000,000次哈希。PH/s
:1 PH/s =1000TH/s 每秒计算1,000,000,000,000,000次哈希。EH/s
:1 EH/s =1000PH/s 每秒计算1,000,000,000,000,000,000次哈希(18个0)。
随着挖矿难度的增加,需要的算力增加,挖矿设备需要的电力也在增加,有相关报道说挖矿消耗全球电力的0.5%,每挖出一枚需要消耗普通家庭耗电超过10年的用电,也就是这个原因,不同机构和人研究新的不需要消耗大量电力的共识,如pos,