背景:比特币使用基于SHA256哈希的工作量证明方案。该方案受计算限制。最初,人们会在其PC或GPU上挖掘解决方案。但是,最终人们注意到,定制ASIC(定制设计的硬件芯片)可以更快地计算SHA256哈希,因此定制ASIC可以更高效,更快地进行挖掘,因此人们构建了可以更快计算SHA256哈希的定制ASIC。比任何通用CPU。如今,ASIC比PC上的挖掘具有100倍的优势,因此基于PC的挖掘还不是很容易。
有人建议通过设计一种难于存储的工作量证明方案来解决此问题。硬存储方案是从根本上需要最小数量的内存(例如1GB RAM)才能有效解决的方案,并且没有有用的时间-内存折衷方案。这些很难设计,但是假设我们能够构造一个。例如,布谷鸟循环就是这种方案的一个合理尝试。假设我们使用布谷鸟循环,或者找到另一种方案。我已经看到它认为这种方案将终止ASIC的垄断,从而使采矿更加民主,因为ASIC可以加快计算绑定任务,但不能加快内存绑定任务。
这是我的问题。这个说法正确吗?更具体地说,内存硬度足以确保ASIC与通用CPU相比并没有太多优势吗?是什么使攻击者无法构建定制ASIC并购买现成的DRAM芯片,以及构建将每个ASIC与DRAM芯片配对的系统?
#1 楼
是什么阻止了攻击者构建定制ASIC和购买现成的DRAM芯片以及构建将每个ASIC与DRAM芯片配对的系统?
DRAM存储器是已经针对每美元每秒每秒的随机内存访问进行了优化。由于与内存绑定的PoW在等待内存方面比在计算上花费更多的时间,因此使用ASIC加速计算毫无意义。瓶颈是DRAM延迟。 ASIC只是花费大量时间等待内存的一种非常昂贵的方法...
另请参阅reddit.com/r/Bitcoin/上的相关讨论。
出于参考目的(在极少数情况下Reddit关门了),这是我在那儿的帖子的副本:
hashcash functions must be cheap to verify to achieve their purpose.
因此记忆力可以只能通过超出hashcash的工作量证明来实现,正如我在cryptorials.io上发表的“超越Hashcash的工作量证明(比挖掘更重要的是挖掘)”中所述。
对于高市值的加密货币来说,存储硬PoW的需求是一个悬而未决的问题,没有一个简单的答案,值得进一步研究。
我认为,如果它能够从根本上改变经济,那将是可取的。采矿业,以至没有人获利。这意味着,由于以下原因,即使(假设)具有自定义内存技术的最节能的ASIC仍不会获得正的ROI:
制造成本将降低远远超过商品计算设备所使用的任何存储技术,后者仍具有更大的规模经济。电力成本虽然低于商品存储,但不太可能降低一个数量级。
以及主要原因:
就像乐于玩彩票一样,大量的人可能会愿意亏本开采。这需要非常低的进入门槛,例如一按即可在手机上安装挖矿应用程序,这将使其在充电时通宵达旦。知道您的挖掘效率不比使用自定义硬件差(大约)个数量级。
当然,我并不是说这是一种可能的情况,但我认为这是可能的。至少可以想象...
要考虑的另一种可能性是拥有2个PoW:一个计算范围和一个内存范围,在它们之间拆分块。使用ASIC挖掘计算绑定的对象(几乎)是有利可图的,而使用内存挖掘绑定的对象将是无利可图的,但有助于分散化。
但是,无利可图的挖掘绝不是制造内存的必要条件。
可以想象,为使PoW的内存访问尽可能节能而开发的任何存储技术,都会使许多其他类型的计算受益,尤其是在移动,太阳能和其他低功耗计算中。
此参数最适合于PoW,除了内存访问之外,PoW只执行尽可能少的计算,我相信这是Cuckoo Cycle的边缘修整技术的亮点。 />
评论
$ \ begingroup $
我明白了为什么在电价便宜的地方进行采矿总是有利可图的,但是专用硬件始终具有优势似乎并不正确。理论上,对于每种算法,都有一个最佳电路(或许多同样最佳的电路),但是某些算法在与通用CPU相比(可以忽略不计)上可能是最佳的。这个问题本质上是在询问“难于记忆”是否足够,我怀疑这不是真的,但却无法证明。
$ \ endgroup $
–otus
2015年10月23日15:51
$ \ begingroup $
当前廉价的通用CPU仍然缺乏生成ASIC可以进行的尽可能多的随机存储器访问的能力。但这可能会在不久的将来改变,因为许多核CPU变得司空见惯,甚至比它们使用的DRAM芯片便宜。
$ \ endgroup $
–约翰·特罗姆(John Tromp)
2015年10月23日在16:19
#2 楼
难以进行工作证明的存储器:它们是否耐ASIC?
从理论上讲,答案是明确的“否”。
如果有足够的资源(阅读:投入的时间和金钱)和适当的知识(ASIC不能在树上生长,则必须对其进行设计),所有当前已知和/或已发布的“内存硬PoW”解决方案都可以徒劳无功。 。但是理论在现实世界开始的地方就结束了……
更具体地说,内存硬度是否足以确保ASIC与通用CPU相比并没有太多优势,这是真的吗? ?
您的“感觉”似乎是正确的,因为没有任何存储器硬性设计能够“足够”地确保ASIC在通用方面没有太大的优势CPU……至少到目前为止。
阻止攻击者构建定制ASIC和购买现成的DRAM芯片以及构建将每个ASIC与DRAM芯片配对的系统的原因是什么? ?
让我在涉足这一过程的同时提高自己的实力……
实际上,在加密货币领域,ASIC真正的制胜法宝是和永远是“生产成本”。请记住,ASIC是专用的硬件。它只能解决一个特定的任务,不能像个人计算机或某些手持设备一样进行(重新)编程。
由于诸如此类ASIC芯片的设计,其(无尘室)制造以及-最后但并非最不重要的-诸如此类的事情,ASICS的生产成本可能很快达到数百万欧元/美元。 ASIC带来的低收益率(当前行业反馈显示,制造的芯片中有50%不工作,并且被破坏而不是被使用或出售)。
长话短说:要为任何加密货币创建ASIC,您都必须有财务支持和明确的盈亏平衡点。如果您没有这两个基石,那么记忆力就不是问题中最不重要的了,您最好回到绘图板上重新考虑您的计划。
回到您的问题:如果我们假设您的攻击者可以如上所述访问资源,那么这样的攻击者将能够超越特定“记忆库-
由此产生的逻辑问题(在某种程度上您的问题已暗示)是:存储器硬度是“面向ASIC电阻的解决方案”吗?并非如此,出于这个原因,我仅描述了一些内容(以防止该答案变成一本小书)。
潜在的解决方案...
除此之外,我想指出一个事实-基于上述情况-似乎可以解决该问题。但是,它显然留下了“内存不足的PoW算法”的道路。尽管如此,我认为应该在这种情况下提及:与其追逐一条巨龙,不如简单地利用攻击者所面临的通常问题,即利用所需的资源量,将事情推向可行性之外……在这种情况下:经济可行性,利用盈亏平衡点提高对手的财务能力。
请记住,一旦设计和制造了ASIC,就无法对其进行重新编码,转换或以其他方式重用,因此出现了针对此类攻击者的简单但有效的攻击媒介:经常更改PoW实现,将一种算法设计换成另一种算法设计。为了跟上这些变化,依靠(简称为“ ASIC的魔力”)的攻击者将需要重新开始自己的努力……每次进行算法设计交换时都要一遍又一遍。从理论上讲,这在某些领域(经济,时间因素等)将很快变得越来越不可行。最终,攻击者将不得不决定,投资比预期收益更多的投资是有意义的,或者放弃与不断变化的加密货币哈希算法作斗争,而专注于经济上更有趣的目标。
有记忆力的PoW可能会占有一席之地,但目前还不是最重要的。。。
我不能否认这一潜在的解决方案也可以从不同的有记忆力的算法设计中受益,因为它们将比平时更能改变ASIC设计要求。但是,这是一个“可能”,而不是“将会”。总而言之,具有存储能力的PoW算法目前无法提供针对“营销”试图出售给加密货币用户(包括矿工)的ASIC的保护。当然,我们不能忽略像莱特币(Litecoin)的Scrypt这样的算法以及诸如cryptonight之类的事情能够证明,至少在很短的时间内,有可能减慢精简和卑鄙ASIC的诞生率(因为它们改变了硬件和/或通过algo-design和-combination的资源需求)。
但是,直到现在,每个固定的算法实现(无论是否有内存)都正在慢慢地变得无效,就像我们以前都喜欢的一些以前的加密安全对象:MD5,RC4和SHA1。因此,我要说的是,与PoW相比,不应该专注于存储硬性。
取而代之的是,在设计下一个哈希实现时,应牢记内存硬度作为潜在因素……只有在确实有意义的情况下,才应以这种方式实现。 (毕竟,与其他所有与密码相关的事物一样,加密货币也受到“实施速度预期”的影响,以及“与潜在攻击者相比,普通的,良性用户可以使用的资源”。)
缺少证明,实际证明以及所有这些的未来...
如果有一个工作正常的内存PoW(与ASIC电阻相关,则在挖掘等方面机会均等),您将正在研究一种近乎完美的加密货币。只要您看到它,就可以对我进行ping操作...据环顾四周所见,距离这种情况还有几年的路程。可能是,它不存在……但是我们不能确定,因为-到目前为止-没有人能够证明这一点;就像直到今天为止还没有人能够证明硬存储实现确实能够成功阻止ASIC(或FPGA)实现,或者至少将其有效性降低到接近CPU的水平。代替提供所需/期望/预期的证明,一小部分理论和论文实际上已经被证明是错误的。
尽管如此,假设加密货币将继续存在(欧盟最近关于加密货币的税收决定明确强调了这一点),我们有一天可能会使用一种可用且公平的PoW…即使很有可能不会出现“内存不足”的情况解决方案的首要因素。毕竟,攻击者只会变得更聪明,而攻击只会变得更好。寻找更好和更灵活的解决已知问题的方法已经进行了很长时间(作为一个随机的例子,请参见以下1995年的论文:SRAM可编程现场可配置存储器以及相关专利),并且可能除非CPU技术以及台式系统能够很快实现类似的进步,否则将“内存硬度”推到一个废弃的角落。
看看军事加密,我们仍然倾向于依靠CPU而不是使用专用ASIC和快速的FPGA,这是一个奇迹。当考虑到加密货币挖矿时,这尤其令人震惊:虽然PoW类似于一场高速比赛,但也有一些运气,但有些人似乎仍然希望他们能在与矿工的比赛中胜出(并有潜力攻击者),同时骑着“记忆力强的自行车”。就我个人而言,我衷心地怀疑,仅凭记忆力本身是否能够提供这些人所希望的公平机会。
$ \ color {lightgray} {∎} $
评论
$ \ begingroup $
难道存储硬ASIC不会被消费者简单地用作RAM吗?
$ \ endgroup $
– PyRulez
16-9-5'1:23
$ \ begingroup $
@PyRulez不知道我是否能理解您的评论问题……毕竟,除了存储器芯片之外,还有存储器难题的PoW以及ASIC领域还有很多。目前,我倾向于简单地指出我对“难以存储的PoW:它们是否具有ASIC抵抗能力?”的答案。归结为“理论上不,但实际上是肯定的,只要创建ASIC比其他系统需要更多昂贵的资源(研发时间,金钱等)”。但是我很可能会完全失去你的意思。进行一些澄清可以帮助我发现我们是否在同一页面上,或者我直率地错过了您问题的核心。
$ \ endgroup $
– e-sushi
16-9-5'1:43
$ \ begingroup $
存储硬POW的要点是ASIC基本上是存储芯片,因此是RAM。
$ \ endgroup $
– PyRulez
16年9月5日在17:45
$ \ begingroup $
@PyRulez我不同意那个。如前所述,ASIC不仅限于存储芯片。问自己:为什么不理会优化电路的潜力,而将ASIC视为仅一块RAM芯片呢?实际上,这不是“专用集成电路”。当前/现代的ASIC通常包括整个微处理器,内存块(包括ROM,RAM,EEPROM,闪存)和其他大型构造块。 (认为:SoC)。当我说:也许这会有所帮助:我还没有遇到可以自己处理HDL的RAM芯片。
$ \ endgroup $
– e-sushi
16/09/5在18:42
$ \ begingroup $
[续]但是,正如我的回答所解释的那样,这并不意味着ASIC通常能够在谈论具有存储困难的PoW实现时,将用户的台式机系统随意地淘汰。但是时间(阅读:技术进步)是您的敌人,而算法更改可能是快速解决问题的简单补丁。无论如何,如果我的评论不能帮助我理解我所指的(或谈论的内容),@ fgrieu的答案很可能会为您解释一些事情。他对我刚刚装箱的东西提供了很好的,实用的观点。
$ \ endgroup $
– e-sushi
16/09/5在19:10
#3 楼
是的,论点在很大程度上是正确的。如果围绕诸如Argon2之类的良好基元进行设计并适当地进行参数化,那么一个好的存储难工作量证明方案就可以相当抵抗使用ASIC的加速。尤其是,将很大一部分成本花费在不可缓存的访问足够的内存上,因此DRAM是唯一的经济选择。这种策略的想法是( ASIC破解程序的“哈希率” /(运营成本)比率可以受DRAM功率的限制,和/或其哈希率/“构建成本”可以受DRAM成本的限制。从两种观点来看,基于ASIC的设计都没有比基于CPU的设计好多少。
通过适当的大笔投资,利用当今的技术,理想的ASIC设计将在与DRAM相同的管芯上具有裂痕。这并非难事:有使用特殊的DRAM成本优化工艺的设计工具和逻辑单元的供应商。与使用商用CPU和DRAM的解密器相比,这完全节省了CPU和与DRAM的互连,并节省了逻辑操作的大部分成本(从电源和构建的角度来看),并可能减少I花费在内存访问上的时间由于较低的传播和逻辑延迟以及DRAM单元的优化选择(最多可以比主流DRAM中的单元快,但是硅面积和每个单元的功率也会增加),因此最多可以猜测3个二进制数量级。掉东西)。
总而言之,我要说的是,上述ASIC设计的成本效益比使用商品CPU和DRAM的定制板高出16倍(在购买或运营成本方面,忽略了硅和能源采购的不确定性);而且对于吸引投资能力有限的对手来说,吸引力可能要小得多,即使对于拥有三个字母的机构来说,这实际上也是一个重要的考虑因素。这是针对参数设定为使存储器访问(而非逻辑操作)成本成为限制因素的硬存储熵拉伸函数,并且需要比经济上适合SRAM的DRAM多的存储器(为了安全起见,至少为232位) ,或每个函数实例大约半GB),并且具有针对DRAM的访问模式,该访问模式不符合任何缓存策略(后者的一种实现方式是使用经过计算的类似随机的地址)。
注意:在上面,我使用基于DRAM存储器访问的估计,因为(我认为)与更多的COTS破解器设计相比,ASIC提供了ASIC希望实现的最大优势。
建议最大程度地减少最先进的存储硬熵拉伸函数参数化中的逻辑运算次数;相反,明智的做法是将与内存相关的参数提高到可以承受的价格的2/3(包括每个内核使用相当大的千兆字节),然后进行计算,相关参数,直到负担得起;这使得设计能够跨越两个障碍的ASIC破解器的可能性较小。
评论
$ \ begingroup $
我们力量有限;但是,我们可以将更多的力量投入到速度提高一倍的过程中。从2007年开始,您可以在DRAM上使用内存而不是缓存,这是因为内存总线的吞吐量翻了一番,大约是29个月,而且您需要尽可能多的缓存来克服总线限制。我发现,在CPU中可以完成的所有事情,在ASIC中可以实现的速度要快得多,因为我没有任何规则。举例来说,我曾经在600nm上制作了一个乘数为56J / op的乘法器,而一个65nm的Cell上则为43.1J / op。一个很好的类似示例在这里:copacobana.org
$ \ endgroup $
–b degnan
2016年9月5日20:19在
$ \ begingroup $
@bdegnan:可以在ASIC上更好地实现任何计算(占用很少的内存)并且CPU支持差的计算。 ASIC还扩展了哪些内存活动可以适合为应用程序量身定制的缓存的领域。但是,现代的内存硬熵拉伸或POW函数努力使内存访问不可缓存。这对于保持推理是必要的。我们希望Bootleneck是内存,其大小使得DRAM是唯一经济的选择,而缓存则不是一种选择。
$ \ endgroup $
–fgrieu♦
16 Sep 6'在10:20
$ \ begingroup $
我应该更清楚地指出,我没有区分DRAM和缓存。我已经看到4GiB的DRAM处于“裸片”状态(不是因为通孔)。 DRAM约束完全取决于体系结构作为总线约束的功能。在芯片上,它们受热限制,但是到您制作堆叠式IC时,您已经完成了微流体冷却。如果您的约束是DRAM,则为每行64位x 2通道。如果我要制作自己的零件,则始终可以使用4、8、16个通道。我只是认为您不能在数学上击败工程师。
$ \ endgroup $
–b degnan
16 Sep 6'在10:58
$ \ begingroup $
实际上,如果有人概述了一个系统,那么我可以告诉您是否可以制造它,成本和估计的吞吐量。我寻找是否可以找到像这样概述的系统,但是却很难找到。我更多地是密码学的硬件实现者,而我还没有学过所有的术语。
$ \ endgroup $
–b degnan
2016年9月6日在11:05
$ \ begingroup $
我更多地是密码学的硬件实现者,而且我还没有学过所有的术语。 ??这让我想知道如何能够在硬件中正确实现(和/或优化)加密并称自己为“更多的加密硬件实现者”,同时又必须学习“术语”等(只是说)。
$ \ endgroup $
– e-sushi
16 Sep 7'在12:21
评论
“是什么阻止攻击者构建定制的ASIC并购买现成的DRAM芯片,以及构建将每个ASIC与DRAM芯片配对的系统?”理想情况下,ASIC将比常规计算机更小但不(顺序地)更快。如果RAM与CPU的相对成本足够大,则此优势将相对较小。我怀疑这对于竞争性采矿是否足够,但是在其他优势较小的应用程序中是否足够?例如某种速率限制或反垃圾邮件系统。我想我在PHC列表上看到了一个讨论,其中说Argon2可以用于具有快速验证功能的存储困难的PoW ...而Argon2团队的某人对此发表了看法。至于这会使它变得更加“民主”的想法,在加密文件IIRC中首次提到了这一点。我认为您的问题将得到(至少部分)的回答,尤其是在第8节中。
@CodesInChaos,谢谢。这是我的粗略计算:RAM芯片的成本约为20美元;一个CPU的成本约为\ $ 200;因此,如果ASIC的成本低至每个芯片20美元,我们就好像已经在谈论10倍加速的潜力。这听起来不只是一个小优势。听起来对吗?
这个问题实际上与加密无关,而与硬件有关。关闭为题外话吗?
@GuutBoy:我要说的是工作难于记忆的方案的设计。尽管它不可避免地要比其他一些更抽象的数字理论方面更关注硬件细节,但这本身并没有使它脱离主题。此外,还有其他一些加密子领域,例如边信道攻击,这些子领域与硬件特定,如果不是更多的话。