ASIC终结者:X16R算法的异军突起
小饱1
post on 2022-12-2 19:07:16
32
0
0
算法发展史
共识算法可能是区块链挖矿行业最为重要的核心,其中又以PoW为主。Proof of Work简称为PoW(工作量证明),用于证明你在某时间内完成的工作量。
这一概念最早被Cynthia Dwork和Moni Naor于1992年写在如何处理打击垃圾邮件的论文上。
2008年之后,Peer-to-Peer技术、PoW和加密算法被应用于Bitcoin。
Bitcoin采用的SHA-256算法属于SHA-2(Secure Hash Algorithm 2,安全散列算法2),由美国国家安全局研发。
SHA-2安全吗?就目前来看是安全的,并且短期内哈希计算速度没有发生大幅度提升的趋势。
SHA-2的前身是SHA-1,目前想要破解一次SHA-1的成本大约在70万美元(可能更低)。破解需要进行的计算总量约为900万兆(9,223,372,036,854,775,808),5Ghz的CPU每秒计算速度约为20亿次。相当于使用CPU得花费150年才能破解SHA-1,足以说明破解难度之高。
SHA-2虽难以破解,但是其本身计算方式单一,只要加快哈希值计算便可以提高BTC开采的速度。ASIC矿机就是为了高效计算哈希值而生。
ASIC矿机的出现使社区产生了分歧,分歧点在于是否符合PoW这一理念以及对于每一个用户是否平等。
目前多个主流加密数字货币分别采用不同的算法或者共识去反抗ASIC矿机的出现。主要分为两种方式,一是共识机制的改革,二是通过更改算法规则。
现行的共识机制下,公链上主要以PoW和PoS(Proof-of-Stake,股权证明)两种存在。
二者皆有利弊,使用PoW便意味着消耗大量的能源去进行计算,并且理论上存在着算力攻击的风险,相对来说安全性较高;PoS缺少工作过程证明,也存在利益分配和贿选问题。而Ethereum试图采用PoW+PoS混合制的形式,就是为了改善现有共识来抵御ASIC的影响。其目前的状况是使用PoW共识,试图转至PoS,但没有推出一个完美的过渡机制(依旧使用PoW)。
Ethereum使用了Ethash算法,前身为Dagger算法(Vitailk发明),其目的是为了抵制ASIC矿机。如何抵制ASIC矿机呢?通过将挖矿和内存带宽相捆绑,即降低其他硬件的运算优势,从而达到挖矿设备平等这一理念。
Ethereum算力变化图
Ethash算法没有阻挡ASIC矿机的出现,只是拖延了出现的时间。
绑定内存带宽意味着可以通过提高内存带宽速度来提高算力,或者在相同内存带宽速度下降低功耗,只不过目前内存带宽价格过高以及ETH价格过低,从成本上考虑,ASIC矿机相较GPU来得不够划算。
Litecoin使用的是密码学家兼程序员Colin Percival于2009年发表的论文Stronger Key Derivation via Sequential Memory-hard Functions上所发明的scrypt算法。原理和Ethash较为相似,都是提高挖矿时内存的使用成本,延缓ASIC矿机的出现。
2014年,Zeusminer研发出了专门针对scrypt算法的ASIC矿机。这也说明通过绑定某一硬件(如内存)从而抬高挖取的使用成本是没有办法完全杜绝ASIC矿机。
除了以上的算法外,还有Dash使用的X11算法,Zcash使用的Equihash算法,Bytecoin使用的CryptoNote算法等等。
算法的进化和变革的一个主要原因是抵制ASIC矿机的出现。
ASIC矿机对整个生态存在的缺点如下:
1、容易变成寡头之间的算力游戏,有发生算力攻击的风险。
2、挖矿设备不平等,算力过于集中。(也有观点认为设备不平等是客观存在的,ASIC矿机的研发和使用都投入了人力物力,不应该过分抵制。)
3、消耗大量的资源,用途较为单一。
如果以Bitcoin为例,ASIC矿机并非全是缺点,反而支撑起了BTC的价格。
中本聪曾在回复用户的邮件中写道,“it would be left more and more to specialists with server farms of specialized hardware”。如ASIC一类的专门用于挖矿的硬件(specialized hardware)会在未来出现早已被中本聪考虑到了。
那么,那些为了抵制ASIC矿机的而设计发明出来的算法存在的意义呢?给予普通用户将过剩资源利用起来的入场券。
/2/
目前为止, 适合个人参与挖掘的算法
最近,Binance上一个新上的通证引起了大家的注意,尤其是采用的X16R算法。
X16R算法是继X11、X13、X15、X17之后的一种变形算法。
X11算法指的是将11种固定的哈希算法串联使用,从而增大ASIC矿机的研发成本。X13算法则是将13种固定的哈希算法串联。然而单纯增加算法的数量和种类也只是延长ASIC矿机出现的速度。
X16R算法则是不断打乱哈希算法的串联顺序,使得计算难度得到几何级的提升。
X16R算法选择了X15算法中经过验证的15种,外加SHA-512算法(属于SHA-2,和SHA-256结构相同)。但是16种算法不是采用固定排列,而是基于前一个区块的哈希值进行动态变化。
改变顺序和固定顺序之间的区别有多大?
使用ASIC矿机进行固定顺序的哈希算法可以使芯片利用率达到100%。ASIC矿机在乱序的哈希算法上,平均芯片利用率只有64.38%。
如X11算法,矿机研发企业只需要将11种哈希算法逐一研发对应的ASIC矿机,并进行固定顺序组合。如同车间一般,每一种哈希算法都由相应的ASIC矿机进行计算,往复循环。每个芯片都不会闲置,利用率可以达到满负荷。
X16R增加了两个不确定性:
1、算法顺序的不确定性。
2、算法出现频率的不确定性。
每个区块会进行16次运算,这16次运算会出现什么哈希算法是无法确定。
假设16次运算都是同一种算法,那么这样的概率是16/(16的16次方)=8.673617379884e-19
假设16次运算出现了两种不同的算法,那么这样的概率为[16*15/2(从16种算法选两种)*2的16次方]/(16的16次方)=4.2632564145606e-13
…
假设16次运算出现了16种算法,那么出现这种情况的概率为16!/(16的16次方)=1.1342267125514e-6
通过加权平均计算,每个区块会涉及到10.3种函数。假设实现每种哈希计算的芯片面积相同,那么芯片利用率为10.3/16=64.38%。这也意味着即使使用ASIC矿机进行X16R计算将会造成至少35.62%的芯片浪费。
X16R还有一特点,由于每种哈希计算所需要的时间是不相同会导致出块时间不相同。在长时间上来看,出块时间会由于各个哈希函数的搭配而被平均。
X16R具有如此多之前所不具备的特征,那么到底能不能防止ASIC矿机的产生呢?就现在来说,可以。
什么情况下会产生专门针对X16R的ASIC矿机?
1、通证的价格足够高,有足够的利润吸引厂商去进行研发。
2、新技术的产生,算力功耗比得到大幅度的提升,拉开和GPU的算力优势。
不过,X16R目前能防止ASIC矿机却防不了FPGA矿机。当一个区块产生时,其哈希值的最后8个字节就确定了下一个区块所使用的哈希函数算法。FPGA矿机可以快速重新编程,为每一个哈希算法排好顺序,充分利用芯片资源,从而进行运算,但是其算力较为低下,和GPU相比优势不明显。
只要还有利可图、有人在乎设备平等,算法和ASIC矿机之间的较量就还会持续下去。
X16R绝对不会是最后一个阻挡ASIC矿机的算法。
BitMere.com is Information release platform,just provides information storage space services.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
The opinions expressed are solely those of the author,Does not constitute advice, please treat with caution.
Write the first review