教程网

您现在的位置是: 首页 > 项目

ProgPow是伪命题,以太坊上的ASIC威胁并不存在

ProgPow是伪命题,以太坊上的ASIC威胁并不存在
最近,业内有人提议使用「程序化工作量证明(ProgPoW:Programmatic Proof of Work)」取代现有的以太坊工作量证明算法。ProgPow的支持者希望改变以太坊挖矿行业的范式,他们认为:以

最近,业内有人提议使用「程序化工作量证明(ProgPoW:Programmatic Proof of Work)」取代现有的以太坊工作量证明算法。ProgPow的支持者希望改变以太坊挖矿行业的范式,他们认为:以太坊应该使用能够优化GPU的的算法来实现去中心化挖矿,而不是为了配合算法去开发相应的挖矿硬件设备,因为这么做真的会有些「浪费」。

相对于普通商用矿机,ProgPow 乍看上去的确在很大程度上降低了 ASIC 矿机的挖矿优势,让挖矿变得更容易、更去中心化。但如果仔细分析的话,会发现 ProgPow 其实并没有像其自称的那样,实现真正的「民主化挖矿」。

事实上,目前 ProgPow 的做法反而让不同GPU型号之间的性能差距变得越来越大,矿工可能不得不要向英伟达和AMD购买更新、更昂贵的GPU型号,比如RTX 2080、TitanX、以及 Vega64.而且对于该算法针对某些GPU进行了优化这件事,提议实施 ProgPow 的团队也承认是个不争的事实,不过该团队所做的工作都是公开透明的,他们也正在积极研发 ProgPow 算法的更新版本,旨在使其对所有 GPU 型号都更加公平。(如果有更新版本发布的话,我们也会更新性能基准结果)

下表展示了使用以太坊当前的工作量证明挖矿算法 Ethash 和 ProgPow 算法在不同 GPU 挖矿时的算力减少比较(数据源:https://medium.com/@ifdefelse/)。ProgPow「偏爱」的 GPU 型号已经用红色突出显示了,不可否认的是,现阶段 ProgPow 算法下算力增长的幅度大了不少,宽带利用率也有所提高。

如果以太坊实施了 ProgPow 算法可能有助于让矿工集中在拥有高端 GPU 的矿场内,同时也会刺激矿场把 GPU 升级到最新型号。

其实,并不存在「ASIC 威胁」问题

ProgPow 声称要解决以太坊的「ASIC 威胁」问题,但这个威胁其实并不像人们想象的那么严重,甚至就连 ProgPow 开发人员都承认,以太坊的挖矿算法其实是最能抵制 ASIC 矿机 的算法之一。最好的以太坊 ASIC 矿机挖矿效果仅比 GPU 矿机好 2-4 倍,相比而言,比特币完全做不到这一点。

而且,以太坊创始人 Vitalik Buterin 其实也没有担心过 ASCI 矿机带来的威胁,他曾说过:

如果你看看几天前发布的 E3 矿机,与市场上现有的 GPU 相比挖矿效率并没有大幅提升。我的中国消息源表示,220 MH/s 矿机成本大约为 2500 美元,而比特大陆 180 MH/s 的矿机售价为 800 美元,挖矿效率只不过提升了 2.5 倍而已。

挖矿硬件设备的相对效率。数据源:https://medium.com/@ifdefelse/

实际上,尽管很难确切地知道以太坊网络里 ASIC 矿机的比例,但很多业内消息人士估计这个数字可能非常低。

对于以太坊而言,「ASIC 威胁」在很大程度上更像是一个「伪命题」,这主要是因为 ASIC 矿机必须具有长期潜力才能抵消矿工早期投入的高额成本。与 GPU 矿机不同,ASIC 矿机是一种专门针对某个挖矿算法而开发的高度专业化计算机设备,而且也无法在其他区块链上进行挖矿。

如果一切顺利的话,以太坊将会在不久的将来将工作量证明算法切换到权益证明(PoS)算法,对于大多数矿工而言,在短暂的工作量证明生命周期里大规模投资以太坊 ASIC 矿机似乎并不是件划算的事情。

GPU 挖矿不等于去中心化

有人认为 GPU 挖矿会更安全,他们觉得使用 GPU 能让「外行人」也能参与到加密货币挖矿,从而让挖矿变得更加去中心化,并抵抗 51% 攻击——好吧,理论上是这样的。那些经常「待在家里」的矿工买不起昂贵的 ASIC 矿机,因此当鼓吹去中心化的时候,GPU 似乎成了一个更好的选择。

但实际上,GPU 挖矿也主要集中在矿池或矿场,而不是独立的个人业务加密货币爱好者手中。更重要的是,矿池中并不会出现中心化问题,因为「外行人」无法访问 ASIC 矿机,而且恰恰是因为规模经济效应,让矿池里的矿工通过投入成本带来了更稳定的收入。

矿池的集中化问题主要是因为某些地区可以提供廉价的挖矿电力能源。

矿池挖出的区块占到总挖出区块的比例,数据源:ConsenSys Media

升级到一个对 GPU 友好的挖矿算法并不会让矿工选择在家里挖矿,更无法让矿池变得去中心化。与其天真地希望靠几个在家里挖矿的人实现去中心化,倒不如想想该如何防范那些有可能攻击系统的矿池。

根据挖掘区块数量排名前二十五的以太坊矿工,他们可能更多地会使用 ASIC 矿机,数据源:Etherscan.io。

以不同的方式看待 ASIC 矿机

有人认为 ASIC 矿机会让区块链网络安全有所降低,但需要说明的是,这种想法是错误的。之所以会有这种想法,是因为他们没有考虑到全部的激励措施,其实 ASIC 矿机的特殊性反而使其成为了区块链网络的一个关键安全组件。

ASIC 设备专门设计的电路智能用于运行单个挖矿算法,而对其他任何计算目的都没有效果,这与多用途、并且可以在不同区块链上挖矿的 GPU 有很大不同。研发 ASIC 矿机投入的是沉没成本,这意味着 ASIC 矿机就像是参与区块链网络挖矿的一次性入场券。

由于投入的成本更高,反而会让 ASIC 矿工更关注区块链安全,否则他们的巨额投入可能无法获得相应回报。相比之下,GPU 矿工并不需要忠于某个特定的挖矿算法,他们为了追求利润可以在各种不同区块链之间来回切换挖矿,甚至可以把自己的设备用于非法挖矿活动。

另外,二手 GPU 的价格能以超过原价的 50% 成交,而 ASIC 矿机的转售价只有其原始售价的 5% 左右,而且其价格还取决于特定的代币价值。

区块链对抗 51% 攻击的一个关键要素,就是看攻击者是否有多余的、可以累积算力的硬件设备。在 ASIC 矿机挖矿链中,多余硬件设备通常接近于零,而 GPU 挖矿链中多余设备却非常充足。

不仅如此,在短时间内获取足够多的 ASIC 矿机发动攻击也是非常困难的,但在很多二级市场却可以轻松交易 GPU 算力和 AWS GPU,硬件越通用,可用的剩余量就越多,如果某个区块链使用的主要挖矿设备更「通用」,就意味着这个区块链的安全性相对更低。

挖矿硬件制造中心化问题

挖矿硬件制造中心化也是区块链网络另一个关注点,相比于 ASIC 芯片,GPU 在制造水平上更加中心化。在过去的二十年里,GPU 制造业主要由三家供应商主导,相比之下,因为挖矿行业利润较高而引发的「军备竞赛」,导致 ASIC 芯片制造仍然是一个竞争非常激烈的行业。

过去,虽然特定的 ASIC 制造商可能已经成为了某个挖矿算法的主要设备制造商,但他们从来没有「统治」过所有区块链的矿机制造。如果你想推翻一家 ASIC 芯片市场领导者,也许需要花费几年时间就可以,而像英伟达、AMD 和英特尔这样的 GPU 芯片巨头,怎么可能在短短几年时间就被推翻呢?

英伟达显卡仍是 PC 游戏玩家的首选。

对于成熟的挖矿算法来说,任何更新都会引发未经证实的安全风险,而且升级系统也会给全世界的矿工带来很多麻烦。如果以太坊采用 ProgPow,其实并不会获得较大优势,毕竟 ASIC 没有给网络带来太多问题。

虽然以太坊网络很快将会转向权益证明算法,但市场上仍然有很多基于工作量证明的加密货币,他们也会面临是否允许 ASIC 矿机挖矿的问题。当你不知道该如何取舍的时候,不妨可以考虑一下使用 GPU 挖矿是否真的能提升系统安全性,还是它本身其实就是一个安全漏洞。

据Trustnodes 3月6日报道,以太坊ProgPoW算法核心开发人员Kristy Leigh Minehan证实,她一直推广的ProgPoW算法实际上并不像看上去那么抗ASIC。

图片来源:pixabay

Minehan说道:“安全审计公司Least Authority的审计师没有发现这点;Bob Rao、提议ProgPoW的IfDefElse,甚至研究人员Solardiz也没有发现。这是一种新的方法,它依赖于BTC的能力来增加应用到ETH的nonce。这是极好的发现,干得漂亮。”

她继续说道:“Ethash算法使用256位(bit)作为它的种子(seed);ProgPoW使用64位(因为它弥补了其他地方缺失的192位)...在Kik的研究结果中,他发现可以简单地对一个种子做一次强内存需求(memory hard)计算,然后通过增加extraNonce来找到块头和nonce。”

64位和256位之间的差别可能看起来不是很大,但它实际上是决定性的,因为你可以在一台普通的笔记本电脑上强行使用这个关键的抗ASIC组件,然后你可以用ASIC挖掘其余部分。

令人惊讶的是,Minehan表示,这一“漏洞”意味着“挖矿难度越大,利润越高”。

ProgPoW在被放弃后又突然被“批准”了,但最近再次被搁置,随后这个漏洞也暴露了出来。

因此,目前还不清楚这是一个无意的漏洞,还是以太坊集中化挖矿一个隐藏良好的后门。Minehan表示,要修复这个漏洞是很容易的事,但如果有这么多人都忽视了这点,那么也不清楚他们可能还忽视了其他什么。

Minehan本人就是挖矿领域的专家。她在美国大型的加密货币矿场Core Scientific工作,这家矿场拥有大量比特币ASIC矿机和以太坊GPU矿机。Minehan某种程度上能够破解GPU矿机,将它们变为比普通GPU矿机稍好的FPGA矿机。

因此,在搁置ProgPoW之后才发现这个漏洞也就不足为奇了,因为加密货币挖矿是一个非常专业的领域,很少有人能够参与任何同行评审。

开发人员认为任何新的代码都有存在漏洞的可能性,并且他们缺乏目前以太坊上到底有多少ASIC矿机(如果有的话)的数据,这也是很多人反对ProgPoW的原因之一。

目前还没有证据表明有ASIC矿机在以太坊区块链上挖矿,尽管有些人声称正在开发此类矿机,但ASIC矿机相比GPU矿机的效率到底高多少尚不清楚。

以太坊的算法被设计为抗ASIC,所以效率上可能可以进行2-4倍的改进,但它不像比特币那样可以提升50倍以上。

然而,如果ProgPoW被通过,它似乎会去掉使算法抗ASIC的内存部分,因此只留下原始计算位及ASIC部分。

ProgPoW是一种PoW算法,旨在缩小与专用的ASIC之间的效率差距。它几乎利用了标准硬件(GPU)的所有性能,并预先为以太坊网络中最常见的硬件进行了调整和优化。

自从首个比特币挖矿ASIC问世以来就出现了很多新的PoW算法,旨在维持“ASIC抗性”。而所谓的“ASIC抗性”则在于抵制PoW挖矿算力的中心化,防止采用这类算法的币种被少数参与者操控。

本文将首先介绍ProgPoW这个新算法以及其为“ASIC抗性”带来的影响。另外,文章还会分析不同的PoW算法在硬件中的使用状况,并作出比较。最后,我们会通过分析代码来谈一谈ProgPoW的部署方式。

简单介绍一下ProgPoW

ProgPoW的设计目标就是要让这个算法的需求与显卡相匹配:如果该算法要部署在特定的ASIC上,那么与显卡相比,其效率提升幅度并不大。

ProgPoW的主要特点是:

- 将keccak_f1600(64位字)改为keccak_f800(32位字)来减少对总算力的影响

- 增加混合状态

- 在主循环中添加随机数学序列

- 添加支持随机地址的低延时、小规模的缓存读取

- 将DRAM(动态随机存取存储器)读取从128字节增加到256字节

尽管ASIC也可以部署这个代码,但在效率方面几乎没有任何帮助。大多数显卡都需要支持上述特点。唯一可优化的部分在于:移除图形管线(显示、几何引擎、表面纹理等)以及浮点数学。

这将提高大约1.1-1.2倍的效率,比Ethash(2倍)或者Cryptonight(50倍)要少得多。

标准硬件的PoW应用概述

随着大型矿池的不断发展,形成了少数矿池控制大量算力的局面,因为只有加入这些矿池,小矿工才能获得更稳定的经济收益。虽然有些人认为大型的集中式矿池违背了“ASIC抗性”,但有一点很重要,即基于ASIC的币种事实上反而更加中心化,原因如下:

1. 不存在自然的分布:除了挖矿之外,这类专业硬件不会创造其它经济目的,因此大多数人不会持有这类硬件。

2. 没有后备组织:当价格波动性较大以及容易受到操控的时候,没有后备的硬件或者利益相关方可以入场。

3. 准入门槛较高:入场较早的矿工已经非常富有,他们可以在未知的新币种上投入资金和生态资源。因此,通过挖矿进行的初始代币分配存在局限性,可能导致中心化的“经济偏差”。

4. 委托中心化 VS 部署中心化:虽然矿池的中心化是用户委托造成的,但硬件的单一化则不是:只有这种硬件的特定买家才能参与挖矿,因此不可能在短时间内剥夺矿池的控制权。

5. 即使采用去中心化的挖矿方式,也很难实现去中心化的控制:一旦大型ASIC制造商参与进来,设计后门硬件就变得毫无意义。在市场中保证透明和公平对ASIC制造商来说没有任何好处。

尽管维持“ASIC抗性”的这一目标是非常有价值的,但“ASIC抗性”这个概念是存在谬误的。CPU(中央处理器)和GPU(显卡)本身就是ASIC。理论上来说,任何可以在商用ASIC(CPU或GPU)上运作的算法都能够部署特定的ASIC。部分算法甚至被刻意做成是“ASIC友好型”——部署ASIC后的挖矿效率远远高于运行普通硬件的同类算法。这一现象对于专业的ASIC矿机制造商来说极具吸引力。

因此,ASIC抗性指的是:专业的硬件和普及度及应用度更高的硬件之间的效率差距。定制和通用硬件之间的效率差越小就意味着抗性越强,算法也就越好。这种效率差是衡量PoW算法质量的合理标准。效率意味着绝对的性能、效能功耗比或者性价比——这几点之间都是高度相关的。如果一家公司生产且控制的ASIC效率极高,那么他们就能够控制51%的网络算力,就很可能发动攻击。

 1/5    1 2 3 4 5 下一页 尾页