欢迎来到天天文库
浏览记录
ID:11642841
大小:114.55 KB
页数:7页
时间:2018-07-13
《比特币的工作证明与挖矿》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、比特币的工作证明与挖矿工作证明工作证明(ProofOfWork,简称POW),顾名思义,即工作量的证明。通常来说只能从结果证明,因为监测工作过程通常是繁琐与低效的。比特币在Block的生成过程中使用了POW机制,一个符合要求的BlockHash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的BlockHash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的BlockHash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到
2、BlockHash。工作证明机制看似很神秘,其实在社会中的应用非常广泛。例如,毕业证、学位证等证书,就是工作证明,拥有证书即表明你在过去投入了学习与工作。生活大部分事情都是通过结果来判断的。挖矿挖矿即不断接入新的Block延续BlockChain的过程。挖矿为整个系统的运转提供原动力,是比特币的发动机,没有挖矿就没有比特币。挖矿有三个重要功能:1.发行新的货币(总量达到之前)2.维系货币的支付功能3.通过算力保障系统安全金矿消耗资源将黄金注入流通经济,比特币通过“挖矿”完成相同的事情,只不过消耗的是CPU时间与电力。当然,比特币的挖矿意义远大于此。BlockHash算法Block头部
3、信息的构成:字段名含义大小(字节)Version版本号4hashPrevBlock上一个blockhash值32hashMerkleRoot上一个block产生之后至新block生成此时间内,交易数据打包形成的Hash32TimeUnix时间戳4Bits目标值,即难度4Nonce随机数4下面采用高度为125552的block数据为例,演示blockhash的计算过程: 12345678910111213141516171819
4、2fe99f2de44d49ab2b8851ba4a308000000000000".//merkleroothashoftransactionsinthisblock"e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122b".//Time"c7f5d74d".//Bits(Difficulty)"f2b9441a".//Nonce"42a14695";$header_bin=pack("H*",$header_hex);//hextobin$h=hash('sha256',hash('sha256',$hea
5、der_bin,true),true);//doublesha256echobin2hex($h),"";//output:1dbd981fe6985776b644b173a4d0385ddc1aa2a829688d1e0000000000000000echobin2hex(strrev($h)),"";//output:00000000000000001e8d6829a8a21adc5d38d0a473b144b6765798e61f98bd1d 该计算过程简单明了:首先将数个字段合并成一块数据,然后对这块数据进行双SHA256运算。产量调节Block的产量为大约每两周20
6、16个,即每10分钟一块。该规则在每个节点的代码里都固定了。 123456//目标时间窗口长度:两周staticconstint64nTargetTimespan=14*24*60*60;//block频率,每10分钟一块staticconstint64nTargetSpacing=10*60;//每两周的产量2016,也是调节周期staticconstint64nInterval=nTargetTimespan/nTargetSpacing; 但由于实际算力总是不断变化的(目前一直是快速上升的),所以需根据最近2016个块的耗费时间来调整难度值,维持每10分钟一个block的频率.
7、 12345678910111213141516171819202122232425262728293031//Onlychangeonceperintervalif((pindexLast->nHeight+1)%nInterval!=0){//未达到周期个数,无需调节returnpindexLast->nBits;}//Gobackbywhatwewanttobe14daysworthofblocksconstCBlockIndex*pindexFir
此文档下载收益归作者所有