深度分析-从源代码看Hcash(超级现金)的矿业指南和矿工规划,含挖矿收益预估

2017-09-12 13:35 评论 0 条


全球首篇针对HCash超级现金 数字货币的算法和挖矿分析的文章,文中结论直接指导矿池运营和数字货币挖掘爱好者的挖矿规划,本文涉及较多源代码解析,关心结论的朋友可直接跳转页底查看结论。

2017-9-9,Hcash(超级现金)官网(https://h.cash) 发布了最新的钱包版本(2.1.0.0),并宣布在第106000个块实现硬分叉,平滑升级实现POW+POS混合挖矿。具体参见官方公告(https://h.cash/zh-cn/display/128)。

本文就Hcash最新源码(https://github.com/HcashOrg/Hshare) 展开深度研究,分析Hcash(超级现金)的矿业趋势及矿工的挖矿指导。

官方公告描述:

今天(2017年9月8日),Hcash的主链第一次硬分叉升级已经全部准备就绪,以实现Hcash的第一个重要特性—POW+POS混合挖矿。Hcash将在当前主链的区块高度106000实施硬分叉升级,升级之后将:

  1. 采用POW+POS的混合挖矿模式,两种模式各获得一半的收益。
  2. 初期每个块获取1.6HSR的收益,逐年递减,每年每个块收益递减0.016HSR,持续100年。

从源码 src/chainparams.cpp 查看区块版本定义

nHeightV1enable = 106000;

nLastPOWBlockV1 = 52560000;

nLastPOWBlockV0 = 1000;

即Hcash将区块分为V0、V1、Vc、Vf四个版本,具体定义如下

区块高度 版本定义
0~1000 V0
1000~106000 Vc(为升级到V1前的当前版本)
106000~52560000 V1(已定义好可以POW和POS混合挖矿的版本
>52560000 Vf(V1后的版本)

        截止到发文时间(2017-9-12 10:15),当前区块高度为105216

          从源码 src/main.cpp 查看区块奖励定义

if (Params().IsVersionV1(pindexBest->nHeight + 1)){

if(pindexBest->nHeight < 52560000) {return 1.6 * COIN - 0.016 * COIN * ( pindexBest->nHeight / 525600 ) + nFees;}

else {return nFees;}

}else{

if(pindexBest->nHeight < nStakeMinConfirmations){return GLOBAL_MONEY*COIN/nStakeMinConfirmations +nFees;}    else {return nFees;}

}

其中 nStakeMinConfirmations定义值为

int nStakeMinConfirmations = 50;

 

         结论:最早的50个区块奖励另算(自然是官方在控制),Vc版本区块奖励仅仅只有区块中包含交易的手续费总和。V1版本区块收益为1.6hsr逐块递减0.016HSR,按官方描述持续100年,则反推每区块时间为:

         52560000/100/365/24/60=1分钟

         即每分钟一个块,每天1440个块,按从106000块开始,则10600块奖励为1.596773212hsr,第一天总区块奖励约为2299hsr+区块包含交易的手续费总和左右。

 

         关于POWPOS分配问题,根据官方白皮书描述理解如下:

106000后每个区块先由POW模式确定奖励归属的矿工,然后转为POS模式进行签名,一组鉴定者签名达成后该区块将被确认,确认后区块包含的手续费将分配给发现快的矿工和所有参与签名的鉴定者。区块奖励平均分配给POW矿工和POS的所有鉴定者(各50%)

 

结论:从106000块开始,每天1440个块,每块奖励为1.60hsr(逐块衰减)+手续费,奖励50%分配给矿工(0.80以内),另50%分配给所有参与POS的鉴定者,每天增发总量约为2299(每块衰减)。

 

        以下是矿工关心的收益问题:

从上述结论不难看出,全体POW矿工每天可以被挖到的总量不超过1149hsr(这数字真的很小),单位算力*(总量/总算力)即可得出每单位的收益情况,当然总算力与币价密切相关,我们可以考虑从eth的挖矿收益反推预计的Hcash总算力情况。

按当前难度,一台1060 6g 6显卡矿机(计算为一个单位)每天ETH收益为:0.0243eth(http://whattomine.com 2017-9-12数据),按当前国内市价1900元(chbtc 2017-9-12 12:00),即单位产出约为46.17元

按hcash市价82.08元(chbtc 2017-9-12 12:00),获得46.17元产出,该矿机单位需要挖到0.5625个hsr方可持平。

我们按hcash第一天的POW总量1149计算,并假设eth与hsr矿工收益持平,则计算总算力需求为1149/0.5625=2042矿机单位。

         结论:eth矿工参与hcash挖矿,假定eth与hsr兑换关系不变,则总算力<2042个矿机单位(1060*6矿机)时矿工收益大于挖eth

 

        最后我们看挖矿方式:

挖矿方式和算力与算法密切相关,如果挖矿算法被市售asic矿机所支持,则总算力将有极大幅度提升,挖矿将集中在asic矿机手中。反之,挖矿将分散于GPU矿机手中。

实际上,刚开始看到源码时吓了一跳,src/hash.h 中定义函数如下:

inline uint256 HashX13(const T1 pbegin, const T1 pend)

 

X13,达世币矿机支持算法,继续查看源码 src/hash.h

 

inline uint256 HashX14(const T1 pbegin, const T1 pend)

 

继续 src/main.cpp:

if (Params().IsVersionV1(nBestHeight)){

return HashX14(BEGIN(nVersion), END(nNonce));

}else{

return HashX13(BEGIN(nVersion), END(nNonce));

}

 

V1区块版本算法为X14,其他版本为X13,还是达世币矿机,还是跟显卡无缘。

 

继续 src/main.cpp(具体代码太长,不贴了):

 

HashX14函数对比标准X14Hash函数具有一定差异,其中hcash x14函数在第12次运算时更换为sph_sm3()算法,而标准X14函数为sph_hamsi512()算法。

 

我查看了主流的 n卡 ccminer (https://github.com/tpruvot/ccminer) 挖矿软件,当前版本2.2.1并不支持hcash的X14算法,抽空我们在查看其它可用的挖矿软件算法支持情况。

 

         结论:HCash采用了变种X14哈希算法,当前未发现支持该算法的挖矿软件和矿池,矿工们可能需要采用官方的cpu挖矿模式进行solo挖矿了。

        所有结论总结如下:

  • 从106000块开始,每天1440个块,每块奖励为1.6hsr(逐块衰减)+手续费,奖励50%分配给矿工(0.80以内),另50%分配给所有参与POS的鉴定者,每天增发总量约为2299(每块衰减)。
  • eth矿工参与hcash挖矿,假定eth与hsr兑换关系不变,则总算力<2042个矿机单位(1060*6矿机)时矿工收益大于挖eth。
  • HCash采用了变种X14哈希算法,当前未发现支持该算法的挖矿软件和矿池,矿工们可能需要采用官方的cpu挖矿模式进行solo挖矿了。(不排除达世币矿机更新支持该种算法的情况)

        另外:

分类:挖矿指南, 重点资讯 标签:

评论已关闭!