以太坊:防ASIC算法可行性探讨
导语:区块链技术中,共识算法是其中核心的一个组成部分,比特币和以太坊使用的是POW。对于使用POW算法的比特币来说,经历了CPU挖矿,GPU挖矿,ASIC矿机挖矿的过程。同样的以太坊也面临ASIC矿机挖矿的问题,本文作者就是否需要防止ASIC矿机做了探讨。
本文仅仅代表我自己的观点,而非以太坊基金会或任何其他实体。
过去两周,我一直密切关注社交媒体上有关设计和实现新的防ASIC工作量证明算法的争论。 争论双方的焦点在于我们是否应该努力预防以太坊网络上出现使用ASIC设备的矿工。我持比较中立的观点,并且已经在以太坊生态系统中活跃了一段时间。我希望双方都能发声。本文目的是提供背景,并为争论的双方提供进一步讨论的依据。
事实
- 已经确定开发出了支持Ethash算法的ASIC矿工[1]。
- Piper Merriam创建了“EIP 958:将挖矿改为ASIC抗性”[2]。 Piper开放了EIP,意在将其作为关于ASIC抗性算法变化讨论(技术性和非技术性)的起点。他在EIP中的角色是扮演中立的推动者,而不是专家。 该EIP现在应作者的请求被关闭。而在Reddit等其他论坛上继续讨论。
- 大约一周前,AirSquirrels创建了“EIP 969:早期ASIC缓解硬分叉”[3]。该EIP侧重于围绕ASIC抗硬分叉的技术讨论。根据EIP 1,它已在草稿状态下合并到EIP库中。这并不表示EIP已同意或接受,但它满足进入仓库的最低技术要求。
- 从语法和技术的角度来看,veox一直致力于清理EIP 969。 EIP PR的状态可以在这里[4]找到。
- EIP 958是最近核心开发者会议[5]上讨论的话题。会议记录和会议录像的链接可以在这里[6]找到。
下一部分是我总结的双方的讨论。我已经为它们编号以便更容易对特定的讨论发表意见。
Pro ASIC Resistance(PAR) 以下两大文章提供更多细节。
- Medium文章 - 从矿工的角度看为什么以太坊应该在下一次计划的硬分叉调整算法?[7]
- reddit帖子 - 关于的Bitmain和ASIC抗性的帖子 [8]
- PAR 1:以太坊网络允许存在ASIC的安全风险。假设一个实体拥有大部分计算能力,51%的***就有可能。
- PAR 2:至少从抗ASIC的经济诱因的角度来看,以太坊白皮书宣称以太坊具有“ASIC抗性”。如果这不是一个错误的叙述,就需要维护该特性。
- PAR 3:Bitmain被允许在网络上使用ASIC进行挖掘会导致以太坊的集中化。
- PAR 4:Bitmain可能有更好的ASIC,但他们还没有表明他们目前正在使用它。这扩大了其他风险,并消除了Ethash ASIC性能提升(相比GPU)的不确定性。
- PAR 5:Bitmain已被证明对加密货币组织有敌意。当他们涉足比特币现金时,他们对比特币的敌意可以证明这一点。他们的商业行为在任何方面都不利他。
- PAR 6:在Monero努力阻止ASIC之后,其算力下降70%以上,这证明了ASIC被用于秘密挖矿。今天以太坊也可能发生这种情况,这就是为什么我们需要迅速采取行动。
- PAR 7:ASIC将消除业余爱好者矿工,并使普通人难以开采以太坊。
Pro Doing Nothing(PDN) 有两大资源为这些要点提供更多细节。
- 博文 - 反ASIC分叉是有害的[9]。
- 以太坊核心开发者会议#36笔记/视频[10]。
- PDN 1:ASIC实现的效率提升相对有限。在发布代码的时候,Bitmain ASIC的第一批以800美元出售,挖矿速度是180mh/s(这是GPU的2.5倍)。第2批的售价为1,800美元,虽然具有不同的改进水平,但技术上仍然有争议。 (35:38)
- PDN 2:我们不确定哪些协议更改会有用。即使我们切换到完全不同且完全不受I/O约束的PoW算法(如SHA3),算法可能只会在半年到一年内防止ASIC。 (37:37)
- PDN 3:改变PoW算法并让每个人都升级的工作可能有风险并且会带来混乱。开发,测试,规划和制定硬分叉和相关代码不是一个简单的过程。 (38:47)
- PDN 4:专注于改变PoW算法会影响更重要的事情,如Casper,分片和其他协议级别的工作。 (38:47)
- PDN 5:以太坊网络即将切换为赌注证明(Casper),因此改变PoW算法会降低研发成本。改变PoW算法是一种临时方案,而Casper是一劳永逸的解决方案。
- PDN 6:最糟糕的情况是Bitmain在一段时间内控制了以太坊网络的一部分。如果他们试图将其用于恶意目的,可以加快Casper的开发速度,并在一周内发布(尽管可能会有更多的漏洞并且跳过正式的验证/学术评估),挖矿奖励将减少90%。如果geth和Parity开始把实施Casper的优先级放在首位,它将为防止51%的算力***提供保障(39:05)
- PDN 7:在挖矿方面要防止反竞争的规模经济是不可能的。大型企业和实体将在任何采矿模型中形成规模经济,包括通用硬件/GPU占主导地位的采矿(请参阅之前引用的Phil的博客[9])。
- PDN 8:ASIC可以大幅增加***加密货币的成本,对于加密货币系统的安全性来说也是一件好事(参见前面引用的Phil的博客)。
Casper还有多久才能推出? 这似乎是许多争论的焦点。这是最新的:研究人员正在完成测试网第二阶段的代码,目标是完成和冻结Casper PoS算法的完整规范。 geth和Parity今天可以开始实现Casper的部分功能。Casper目前正在通过运行时验证进行正式验证,这需要4到5个月的时间才能完成。多个学术团体也在关注Casper。Casper正式的EIP正在开展工作,并将在未来2周内发布。我们的计划是让运行时间验证验证Casper,重新启动一个定制的Casper测试网络,重新启动以太坊测试网上的合约,并最终在主网上启动Casper。现在没有正式的时间表,在我看来,在我们完全验证Casper之前,都不可能有一个时间表。 (40:23)
所以现在怎么办? 如果你在PAR组中,我建议你按照你的信念行事,并帮助制定一些EIP。如果您位于PDN组中,则可以在论坛/聊天室中向PAR组提供反例。目前以太坊核心开发者的大致共识是PDN。然而只要社区共识或与之相关的东西能够得到证明,他们就会对社区所希望的事情开放。有很多方法可以影响结果,包括投票和讨论以及EIP。我鼓励大家参与这个过程。
文中链接:
[1] https://shop.bitmain.com/product/detail?pid=00020180407155628542Kh79QU7M0649 [2]https://github.com/ethereum/EIPs/pull/958 [3]https://github.com/ethereum/EIPs/pull/969 [4]https://github.com/ethereum/EIPs/pull/979 [5]https://github.com/ethereum/pm/issues/36 [6]https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2036.md [7]https://medium.com/@bitsbetrippin/why-ethereum-should-adjust-algo-on-next-planned-hardfork-from-a-miners-perspective-aa0afeef05b9 [8]https://www.reddit.com/r/EtherMining/comments/8auy55/regarding_threads_on_bitmain_and_asic_resistance/ [9]https://pdaian.com/blog/anti-asic-forks-considered-harmful/ [10]https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2036.md
转载本文请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。