[转]AsicBoost到底是个什么技术?让矿圈炸了。

本文为转载,仅供交流学习使用.

原文出处:http://www.bitcoin86.com/wk/30419.html

 

AsicBoost到底是个什么技术?让矿圈炸了。

2018-10-23 分类:矿业动态 阅读(2226)

昨晚的一则快讯引爆了矿圈,快讯称比特大陆发布了S9新固件,新固件用于实现“显性Asic Boost”功能。不少朋友问我这是项什么技术,大家如此关注。其实简单的从矿工朋友切身利益来说,就是使用该项技术可以降低功耗10%-20%(AsicBoost官网数据显示)。那么AsicBoost到底是什么,今天我们就来揭开它的神秘面纱。

 

AsicBoost到底是个什么技术?让矿圈炸了。
 

一、比特币的核心算法:SHA256


首先我们来简要梳理下比特币的挖矿原理,比特币的挖矿是对区块头(blockheader)做两次SHA256运算,运算出来的结果必须小于当前难度周期所对应的难度目标。区块头有80个字节,包括4字节的版本号(Version)、32字节的父区块哈希(Previous Hash),32字节的当前候选区块打包交易的Merkle Root,4字节的时间戳(timestamp),4字节的难度,4字节的随机数(Nonce)。在挖矿过程中,版本号、父哈希、难度都是确定的,矿机需要去不断修改随机数来运算,而随机数只有4字节,只能做2^ 32次运算。因此矿工还需要修改Coinbase交易,得到新的Merkle Root,即每2^32次哈希后更改一次。随着算力的暴涨,独立矿机已经几乎不能出块,矿工都选择加入矿池来挖矿。挖矿过程就变成了矿池给不同的矿机发送不同的job,矿机计算出的share提交即可。

 

AsicBoost到底是个什么技术?让矿圈炸了。

 

在做区块头的SHA256时,需要64字节一组去处理,很明显80字节超出了,这就需要用48字节的填充位将块头补充至128字节,填充位全填写0,所以被称作padding-zero。

这样区块头就被分成了前后两组来运算,结合上图可以看出,Merkle Root的前28个字节和后4个字节被分开了。

 

二、AsicBoost


从图2中我们不难看出,Merkle Root很尴尬,被分割在两个组中,而区块头的结构是写死不能修改的,于是AsicBoost就诞生了,2016年3月Dr. Timo Hanko提出了白皮书,后经过不断完善,最终确定了两种优化的方法,一种就是Version-rolling,另一种是Merkle Root Collisions。不过目前都是第一种实现方式,第二种暂时没人宣称使用。


这边就重点介绍一下Version-rolling。


Version-rolling(版本轮动)。4字节的Version总共有32个位,只有前3位是固定的,其他位用在技术升级或者软分叉时候的投票时使用,可是在实际应用过程中,不可能同时有29个软分叉投票吧,如果我们只取4位来用,那么就多了2^4次,也就是说在收到同一个任务后,可以进行2^4轮的2^32次运算,降低了矿机接受数据的次数,从而降低了功耗,据AsicBoost.com测算,可以降低约20%的功耗,当然实际使用效果还要经过长期的测试。随着越来越多的人涌入区块链世界,全网算力一直处于不断攀升的阶段,挖矿的利润可能会进一步下降,20%的功耗节约对于矿工来说可能也是一笔不小的钱。

 

感兴趣的朋友也可了解一下Merkle Root Collisions(梅克尔根碰撞)。如图2所示,32字节的Merkle Root被分割成两组来做SHA256运算,第一部分为28字节,第二部分为4字节。Merkle Root Collisions的原理就是构建出很多后4个字节相同的Merkle Root,这样在随机数固定的情况下,我们只需要对区块头的前半部分做SHA256运算,而后半部分是不变的。这种方法的本质是一个32位的哈希碰撞,根据“生日悖论”,找到一组碰撞需要的尝试次数其实并不多。尝试新的Merkle Root通常有两种方法:一是修改Coinbase交易,但这里有个问题,矿池可能会恶意打空块,因为当区块只有coinbase交易的时候,要保证Merkle Root后4个字节要容易的很多;第二是交换任意交易的顺序,这种方法的问题是,在隔离见证(Segwit)中,哈希运算量会增加一倍。隔离见证引入了一个全新的Witness Merkle Tree和Witness Merkle Root(见图3),如果修改交易顺序,那么Witness Merkle Tree也会更改,这就导致了在原有Merkle Tree中的coinbase交易进一步更改,从而使得整个Merkle Tree需要从下到上重新计算一次,增加了一倍的工作量,而我们都知道在之前更新的bitcoin core version中,早已经全面支持了隔离见证。

 

AsicBoost到底是个什么技术?让矿圈炸了。

 

昨日官方公告还表示R4、T9、T9+、S9i、S9j能激活“显性Asic Boost”功能的新固件也将在本周内发布,而币印矿池(Poolin.com)已率先支持Asic Boost,矿工更新固件后不需要多余操作,连接矿池就可直接开挖!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值