[GPU挖矿教程] 挖矿中采用欺诈方法提高算力

[复制链接]
19265 |6
发表于 2018-5-10 14:27:40 | 显示全部楼层 |阅读模式
矿机挖矿原理:连接到矿池,接受矿池任务,产生合法share发给矿池,矿池根据某一区块产生过程中,某矿机产生的share在全池share中的比例来分配利益。比如某矿池池费率1%,在10分钟内产生一个区块,获得25个比特币,共有10000个share,某矿机提交了1000个share,占10%,因而该矿机可获得的收益=25*10%*(1-0.01)=2.475
某些矿机为了多得收益,可能会采用以下欺诈方法来挖矿:
欺诈条件:自己挖到块,矿池采用PPLNS模式
欺诈方法:用多台矿机连接多个矿池,当自己矿机在矿池A挖到块时,先不向矿池A发送结果,把所有其他矿机连接到矿池A,挖5-10分钟,然后再向矿池提交块,把所有算力分散到各个矿池中。
收益来源:集中所有矿机到矿池A挖5-10分钟,使得提交的share变多,分配比例变大。
风险所在:在集中算力到矿池A时,别人挖到块,先前挖到的块就作废了。
监控方法: 在某个帐号提交新块之前的几分钟,算力明显增大,以此现象来辨别与预防。
目前的stratum协议下,矿机知道自己产生的share是否是最终区块的HASH值,围绕着这点还可以产生其他的欺诈挖矿方法。那能否让矿机不知道自己产生的nonce是否是新区块的HASH值呢,答案是有的,但是要修改矿机算法、stratum协议和矿池软件。
新区块HASH保密方法:
  • 矿池针对每个块都产生一个密钥,把密钥进行HASH,得到一个附加HASH值,加到区块头后;
  • 矿机对区块头计算HASH,原先需要使得HASH值小于2^256/(2^32*D),D是难度,现在只需小于2^256/2^32,得到合法share提交给矿池;
  • 矿池验证,先验证矿机提交的BHASH小于2^256/2^32,再验证:私密HASH值=BHASH+密钥的HASH小于2^256/D,如果是则该nonce和extraonce可用,以正常的方式广播块。
    [/ol]
    因为矿机不知道密钥,因而它没法计算私密HASH值,因而不知道是否是该区块的HASH值,而矿池知道,因而达到保密效果。
    注意:该新区块HASH保密方法来自【Analysis of Bitcoin Pooled Mining Reward Systems】一文,未经验证,慎用。
  • 回复

    使用道具 举报

    发表于 2018-5-10 17:56:28 | 显示全部楼层
    哪位大神改一下矿机算法
    回复 支持 反对

    使用道具 举报

    发表于 2018-5-10 21:20:07 | 显示全部楼层
    看不不是说有矿机直接上电干就可以的呀
    回复 支持 反对

    使用道具 举报

    发表于 2018-5-11 07:55:18 | 显示全部楼层
    怎么弄个
    回复 支持 反对

    使用道具 举报

    发表于 2018-5-14 13:52:55 | 显示全部楼层
    牛人
    回复 支持 反对

    使用道具 举报

    发表于 2018-5-15 09:27:17 | 显示全部楼层
    看不懂。。。
    回复 支持 反对

    使用道具 举报

    发表于 2018-5-17 08:14:16 | 显示全部楼层
    高手才懂
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门版块
    快速回复 返回顶部 返回列表