您的位置:炒股学习网 >> 理财问答 >> 比特币 >> 【转】AsicBoost和SegWit的技术讨论

【转】AsicBoost和SegWit的技术讨论

2018年3月31日  10:10:35   来源:网友   编辑:168炒股学习网    阅读:2442人次

网友发帖:

【转】AsicBoost和SegWit的技术讨论。关于AsicBoost和SegWit的讨论已经冷清了很多,但我还是想从技术的角度尝试解释下:

  • AsicBoost是什么
  • AsicBoost和SegWit有什么关系
在说这两件事情之前,离不开一个关键词:挖矿,那就先来说说挖矿吧!
挖矿
比特币的挖矿机制:比特币挖矿机制采用的是SHA256算法,但SHA256算法并不是针对整个块做的,而是只是针对块头(Block Header)做SHA256,下图是block的组成:
从上图中可以看到Block hash是从哪些字段组合之后再做hash而得到的,其中黄色背景的字段就是块头,它包含:
  • 版本号
  • 上一个块的hash
  • Merkle root
  • timestamp(时间戳)
  • bits(难度)
  • Nonce (随机数)
在一轮挖矿过程中,其中的版本号、上一块的hash、难度都是确定的,矿工需要做的就是不断的修改Nonce,以改变当前块的hash值以找到小于当前难度的Block Header。但Nonce的可用搜索空间是不够的,原因就是Nonce的位数只有4bytes。Block Header中各字段所占的位数:4bytes的Nonce的意味着他的搜索概率空间为2^32,也就4G次的hash运算就能遍历完,对于当前的单个矿机来说也就是一瞬间就可以完成的事。在Nonce的搜索空间不够的情况下,就只剩下timestamp和Merkle root可以改变了,timestamp可以前后调整,但是调整之后的搜索空间还是不够。矿工通过修改Coinbase交易、或者交易顺序、或者其他的方式,获取新的Merkle Root,再重新做232次Nonce的遍历。而`Merkle Root`是32 bytes,它的搜索空间足够大。总结比特币的挖矿:
简单来说比特币挖矿就是通过不断更改Nonce来改变块hash以寻找小于当前难度的Block Header,但是Nonce的搜索空间太小了,在做完232 次哈希没有找到对应的块头就需要变更Merkle Root重新计算。
上面说了简单说了下比特币挖矿机制,那AsicBoost又是怎么回事呢?
AsicBoost
AsicBoost是和SHA256的计算、Block Header结构有关的一种算法,在开始计算块头hash的时候是需要补齐到128 bytes再做SHA256计算,而上面所示块头只有80 bytes,剩下的需要使用固定的48 bytes填充到128 bytes。而在计算128 bytes的hash的过程是分两个过程进行的,前64 bytes一起计算,后64 bytes一起运算:
这样一个被填充过的块头就被分成了两个部分,比较有意思的是Merkle Root,Merkle Root的32个bytes中前28个bytes被放在前部分计算,后4个bytes被放在后部分计算,Block Header hash的计算公式为:SHA256=F(Chunk1)+B(Chunk2)Chunk1=(version)+(Previous hash)+F28(Merkle root)Chunk2=B4(Merkle Root)+Timetamp+Bits+No
评论专区
   本站有缓存,一般1小时内能看到您的评论
官网微信公众号
168炒股学习网微信
郑重声明:168炒股学习网发布此信息目的在于传播更多股票信息,与本网站立场无关。本股票学习网不保证该信息的准确性、真实性、有效性、原创性等。相关信息并未经过本站证实,不对您构成任何投资建议。含有广告标志的信息皆是广告,本站不承担相关责任。如因作品内容、版权和其它问题需要同本网联系的,请在15日内进行。股市有风险,投资需谨慎。
168炒股学习网,专注为中小股民提供炒股入门知识,股票入门基础知识,股票学习教程,技术指标,炒股技巧等股票知识服务,专注做专业的股票学习网站!
版权所有:168炒股学习网, www.168chaogu.com   粤ICP备14098693号   广告合作QQ:765565686,邮箱:765565686@qq.com