关于渡鸦币 ASIC 的第二轮思考

显然,仍有 ASIC 矿机在挖 Ravencoin。正如我多次声明的那样,Ravencoin 网络上的专用硬件挖矿没有任何问题。事实上,可以认为专用硬件增加了哈希率的稳定性,因为它们的硬件在其他地方都没有用处。这就形成了一种对代币的锁定。

那么,为什么要担心 ASIC 呢?因为 Ravencoin 的白皮书讨论了抗 ASIC 以及让 ASIC 远离网络。为什么会在白皮书上这样说?因为还有一个强有力的论点认为,广泛分布的代币(RVN)有利于网络的健康。想象一下,如果世界上每个人都有一个 RVN。那将是一个近乎完美的分布,到那时,每个人都可以决定是持有、消费还是交易他们的 RVN。所以说,允许消费级硬件(CPU 或 GPU)挖矿更接近于完美的分布。

总的来说,一方面我们拥有对 RVN 网络承诺有利的专用硬件,另一方面就是消费级硬件挖矿具有广泛的完美分布。

我不太关心现有的 CPU/GPU/ASIC 挖矿率和挖矿难度是有原因的。这对 Ravencoin 生态系统来说并不是一个生存威胁。为了便于讨论,我们假设算法从这里开始永远不会改变。最坏的情况是,Ravencoin 开始变得更像比特币,因为具有专用硬件和低电费率的数据场集中了一些挖矿能力。这些商业运营最关心的是利润,所以他们会在公开市场上出售 RVN。与持有 GPU 的矿工相比,这增加了下跌的价格压力,但另一方面,它允许任何人在早期以低廉的价格获得 RVN。如果能回到 2011 年,用你现在知道的东西换取比特币,你会付出什么代价?

首先,让我介绍一下前面的算法更改。最初的意图是想要具有更强的抗 ASIC,但是还有其他的情况,这就需要加速修改以解决两个关键的 bug。错过它的人,可以在这里查看更多的更新。

https://medium.com/@tronblack/ravencoin-upgrade-retrospective-705707b4b51

那么如何再次改变挖矿算法呢?我们有一个大型的矿工社区,大多数是 GPU 矿工,他们都希望从中获利。我们如何才能使在 GPU 上挖矿有利可图呢?一些善意的人说 ASIC 是不可能远离网络的。他们也许是对的,但我相信有些算法会充分利用 GPU 的能力和优势,为 ASIC 制作一个看起来和执行起来更像 GPU 的算法。我们把此作为目标。

另一个需要考虑的问题是,移动钱包算法的可行性必须验证区块。有两个选择:

1)确保算法可以在移动设备(iOS 和 Android)上实现,2)丢失自我验证 SPV 钱包选项。当前的移动钱包会检查每个区块,以确保区块是有效的并链接在一起的。这对于安全性和最佳实践来说非常好,但可能并非是绝对必要。如果一个移动钱包被欺骗,就会导致糟糕的体验,但不会伪造 RVN。大多数移动钱包都是基于 API 的,不需要通过执行挖矿算法来验证区块。我所知道的两个例外是 tZero 钱包和 RVN 钱包,它们确实验证了每个区块。tZero 钱包的 iOS 版本已经转换为基于 API 的钱包,以改善用户体验。

也有其他批评者指出,无法消除 FPGA 或 ASIC,且只要有足够的激励,它们有能力执行 CPU 或 GPU 所能做的一切。我同意这一点,但随着算法不断突破 CPU 或 GPU 的边界,ASIC 开始看起来像通用计算机或显卡 , 失去了其优势。接下来的目标是消除专用硬件的特殊优势。

我也收到了一些批评,有些是私下的,有些是公开的,认为 Ravencoin 社区#algos 频道现有的提议很大程度上是由那些具有 FPGA 驱动动机所驱动的。在我看来,情况似乎并非如此,但要审查未经测试的算法及其抵抗 FPGA 开发人员的工作努力很难。

那么让我们假设我们将移动钱包切换成基于 API,或者删除区块验证,并为可选挖矿算法提供最大的灵活性。

迁移到仅使用 CPU 算法是一种选择,但是 Ravencoin 社区的大多数是 GPU,出于这个原因,我们的目标是支持 GPU。

使用哪种算法?

目标:

**
**

保留 x16r 变体 (roots and branding)

减少 ASIC,使其与 GPU 相似。

具有与另一个代币不同的算法,以防止代币跳动并降低安全性。

有了这些目标,就有了一些选择。一个是将现有的 GPU 友好算法集成到 x16r 中。有两种方法可以做到这一点:一种是将现有算法替换为诸如 progPOW 或 Ethash 之类的 GPU 友好算法。唯一的问题是,现有的 16 个算法和类似于 Ethash 的算法之间存在明显的速度差异。通过仅解决 16 个字节中不包含 Ethash 的块来确定下一个区块的算法,这可以导致系统博弈。可以通过按原样使用 x16r 来解决此问题,然后始终将其中一种算法换成 Ethash。为了提高安全性并防止 Ethash 解决方案的预缓存,我们可以将 Ethash 插入算法 2 至 15 (从 1 开始计数)。

Ethash

**
**

Bitmain E3 ASIC-190MH/s@760W

Innosilicon A10 ETHMaster—500MH/s@850W—$5000

1070–30MH/s@150W

1080Ti-50MH/s@250W

Titan V—75MH/s@250W

目前,最好的公共 ASIC 是 Innosilicon A10,相当于 10 1080Ti。这确实胜过 GPU。

挖矿数据:https://minerstat.com/coin/RVN

X16Rv2

**
**

1070Ti 20MH/s@150W

1080Ti 35MH/s@250W

OW1 182MH/s@1400W

Rumor 680MH/s@800W

据我所知,目前在 x16r ASIC 制造商和 Ethash ASIC 制造商之间没有任何重叠,并且他们似乎在使用不同的技术(Xilinx 芯片和定制的硅)。

结合算法有数百万种可能。我将提出一个符合上述目标的方案。

代号:x16rE

**
**

它从最初的 x16r 开始。x16r 有很好的文档记录。

第一个阶段是 x16r,但是在哈希开始之前,将 16 个半字节加起来,得到一个 0 到 256 之间的数字。取这个数字的 mod14,得到 0 到 13 之间的数字,然后加上 1,得到一个介于 1 到 14 之间的数 X。然后用 Ethash 替换位置 X 的算法。

因此,将有 16 个哈希链接在一起,其中一个永远是 Ethash,并且它永远不会是第一个或最后一个哈希。

它是两个已知的抗 ASIC 算法的简单融合,这迫使 FPGA/ASIC 实施这两种算法,而这两种算法的效率仅略高一点。每个 (x16r 和 Ethash) 的特性都是众所周知的,但每个的 ASICish 解决方案是不同的。

原文标题 | Ravencoin — ASIC Thoughts —— Round Two
原文作者 | Tron Black
翻译 | Annie_头等仓
本文来自 Medium,翻译来自头等仓 (www.first.vip),转载请保留文末信息。