微信号:ArchNotes

介绍:高可用架构公众号.

以太坊:防ASIC算法可行性探讨

2018-04-24 14:10 Souptacular

导语:区块链技术中,共识算法是其中核心的一个组成部分,比特币和以太坊使用的是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)

以下两大文章提供更多细节。

  1. Medium文章 - 从矿工的角度看为什么以太坊应该在下一次计划的硬分叉调整算法?[7]

  2. 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)

有两大资源为这些要点提供更多细节。

  1. 博文 - 反ASIC分叉是有害的[9]。

  2. 以太坊核心开发者会议#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


相关阅读:


只用200行Go代码写一个自己的区块链!

200行Go代码实现自己的区块链——区块生成与网络通信

200行Go代码实现区块链 —— 挖矿算法

区块链及比特币入门指南

新一代开源分布式账本项目R3 Corda 技术揭秘:基于JVM开发

超越比特币以太坊的区块链技术:石墨烯项目简介

门罗币简介


特别推荐:


比特币、以太坊、ERC20、PoW、PoS、智能合约、闪电网络……

想深入了解及讨论这些话题?高可用架构在知识星球(小密圈)创建了区块链学习小组,共同学习区块链包括数字货币前沿技术,欢迎点击链接加入。


区块链学习小组


转载本文请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构建方式

长按二维码 关注「高可用架构」公众号


 
高可用架构 更多文章 GIAC深圳站 | 2018年不可错过的全球互联网架构大会! Uber:如何建立司机支持服务的签到及预约系统 门罗币简介 Java10来了,来看看它一同发布的全新JIT编译器 【热点】Service Mesh利器:NGINX将支持gRPC
猜您喜欢 使用 Dagger 2 让你的类依赖关系一目了然 iOS之LLDB常用调试命令 存储微公益活动汇报 利器: 解放你日常排版的Markdown-Here 产品汪和程序猿的相处之道