权力下放安全性假设是,一个19岁的杭州人和一个可能在英国并且可能尚未决定互相串通的人.

过去一周,关于比特币网络中的采矿集中化问题引起了很大的骚动。我们看到一个单独的采矿池GHash.io累积了超过45个哈希功率达多个小时,并且在某个时刻甚至增长到整个网络的51个。比特币兑换的整个头版都在激烈的讨论中泛滥成灾,罕见的自满和恐惧冲突,矿工们迅速动员起来,从GHash手中夺走了其算力,并且出人意料地采用了巧妙的策略,试图恢复不同池之间的平衡,包括GHash的一名矿工,其采矿速度“介于50 TH / s和2 PH / s之间”,但包括 拒绝转发有效的区块, 基本上破坏了水池中的所有地雷,最多破坏了4处。现在,GHash的情况有所缓解。 降低到35个网络哈希功率 排名第二的是Discus Fish,直到16岁,这种情况可能会至少持续一小会儿,然后情况才会再次升温。问题解决了吗?当然不是。问题可以解决吗?这将是这篇文章的主要主题.

比特币挖矿

首先,让我们了解问题所在。比特币挖矿的目的是创建一个去中心化的时间戳记系统,使用本质上是多数表决机制来确定某些交易以什么顺序出现,以此作为解决双重支出问题的一种方式。双重支出问题很容易解释:如果我发送了一个发送100 BTC的交易给您,然后一天后我发送了一个发送100 BTC的交易给我,那么这两个交易显然无法同时处理。因此,两者中的一个必须“获胜”,而应该获得该荣誉的直观上正确的交易才是第一位的。但是,没有办法查看交易并以密码确定交易的创建时间。这就是比特币挖掘的步骤.

比特币挖矿的工作原理是让称为“矿工”的节点汇总最近的交易并产生称为“区块”的程序包。为了使一个区块有效,它包含的所有事务都必须是有效的,它必须“指向”(即包含其哈希值)一个有效的先前区块,并且必须满足“工作证明条件”(即SHA2562(block_header) <= 2190,即块标题的双哈希值必须以大量的零开始)。由于SHA256是伪随机函数,因此制作此类块的唯一方法是反复尝试生成它们,直到碰巧满足该条件为止。 2190“目标”是一个灵活的参数;它会自动调整,因此平均而言,整个网络需要工作十分钟才能使一个节点幸运并成功。一旦发生这种情况,新生成的块将成为“最新”块,每个人都开始尝试挖掘指向该块的块作为前一个块。该过程每十分钟重复一次,构成了比特币网络的主要操作,创建了一个不断加长的区块链(“ blockchain”),按顺序包含了曾经发生的所有交易。.

如果一个节点看到两个或更多竞争链,则认为最长。它是最有效的工作量证明之一。随着时间的流逝,如果同时运行两个或更多链,则可以看到具有更多计算能力支持的链最终将如何获胜。因此,该系统可以描述为“一个CPU周期一次表决”。但是存在一个漏洞:如果一个政党或一个政党合谋集团拥有全部网络权力中的50%以上,那么该实体就可以单独控制投票过程的多数控制权,并且可以超越其他任何链条。这为该实体提供了一些特权:

  1. 实体只能将自身产生的块确认为有效,从而阻止其他任何人进行挖掘,因为其自身的链永远是最长的。随着时间的推移,这将使矿工以BTC计价的收入翻倍,而其他人则要付出代价。请注意,这种攻击的弱势版本“自私挖矿”在大约25的网络功率下开始生效.
  2. 实体可以拒绝包含某些交易(即审查制度)
  3. 该实体可以“回到过去”并在N个区块之前开始挖掘。当此分叉不可避免地超过原始分叉时,这将消除分叉点之后原始链中发生的任何交易的影响。可以通过(1)将BTC发送到交易所,(2)等待6个区块以确认存款,(3)购买和提取LTC,(4)撤消存款交易并转而发送来赚取非法利润。这些硬币退还给攻击者.

这就是可怕的“ 51攻击”。但是,值得注意的是,即使使用99的哈希能力也无法赋予攻击者特权给自己分配任意数量的新硬币或窃取其他任何人的硬币(除非通过反向交易)。另一个重要的一点是,不需要网络51发起此类攻击;如果您要欺骗的是在等待N个确认后欺骗接受交易的商人(通常是,

N = 3

或者

N = 6

如果您的采矿池具有网络的P部分,则可以成功进行操作:

(P /(1-P))^ N

以35的哈希强度和3次确认,这意味着GHash当前可以以15.6成功概率从山寨币交易所窃取山寨币-每六次尝试一次.

泳池

这是我们去游泳池的地方。比特币挖矿是一种有益的方法,但不幸的是,这种方法的变化很大。如果当前 100 PH / s网络, 如果您以1 TH / s的速度运行ASIC,那么每100000区块中有1个机会获得25 BTC的区块奖励,但是100000中的其他99999次您将一无所获。鉴于网络哈希能力目前每三个月翻一番(为简单起见,例如12500个块),那么您的ASIC会产生奖励的概率为15.9,而ASIC的总终身收入的概率为84.1.

矿池充当一种反向保险代理人的角色:矿池要求您将其开采到自己的地址而不是您的地址,并且如果您生成一个工作证明几乎足够但不够充分的区块,称为“份额” ,那么该池会给您较小的付款。例如,如果主链的挖掘难度要求哈希值小于2190,则共享的要求可能为2190。因此,在这种情况下,您将大致每100个块生成一个共享,并从中接收0.024 BTC矿池中的千分之一将获得25 BTC的奖励。每块预期的0.00024 BTC和0.00025 BTC之间的差是矿池的利润.

但是,矿池也可以达到另一个目的。目前,大多数采矿ASIC在哈希功能上都很强大,但在其他所有功能上却很弱。他们通常仅有的用于通用计算的是小型Raspberry Pi,它太弱了,无法下载和验证整个区块链。矿工可以解决此问题,代价是每台设备要多花100美元才能获得更像样的CPU,但他们却没有这样做–显而易见的原因是0美元不到100美元。相反,他们要求挖掘池为其生成挖掘数据。所讨论的“挖掘数据”是指块头,包含前一个块的哈希值的数百个字节的数据,包含事务的Merkle树的根,时间戳和其他一些辅助数据。矿工获取这些数据,并继续增加一个称为“ nonce”的值,直到块头满足工作量证明条件为止。通常,矿工将从他们独立确定为最新区块的区块中获取此数据;但是,在这里,最新块的实际选择将降级到池中.

因此,我们有什么?好吧,现在,基本上是这样的:

采矿生态系统已经固化为相对较少的池,每个池都有很大一部分网络-当然,上周这些池中的一个池GHash达到了51。 Deepbit在2011年或GHash在2013年达到51,用户数量突然急剧减少,GHash实际上有可能达到60个网络哈希能力,并且只是隐藏了其中的一部分。在现实世界中,有大量证据表明,大公司会创建相互竞争的品牌,以提供选择的外观和市场活力,因此,这样的假设完全不可小视。即使假设GHash实际上对它具有的哈希能力水平是诚实的,此图从字面上也表明,目前没有针对比特币发生51次攻击的唯一原因是Discus Fish,这是一个由矿工运营的采矿池。现年19岁的他在中国杭州和GHash(据称在英国运营,但可能在任何地方运营)的矿池尚未决定相互勾结并接管区块链。或者,如果人们倾向于信任这个在杭州的19岁小男孩(毕竟,当我遇到他时,他看起来很不错),Eligius或BTCGuild可以与GHash勾结.

那么,举例来说,如果GHash再次超过51,并开始发起51次攻击(或者也许甚至在40岁时开始发起针对山寨币交易所的攻击)怎么办?那会发生什么?

首先,让我们摆脱一个错误的论点。有人认为GHash是否超过51岁并不重要,因为没有动力诱使他们对网络进行攻击,因为即使是这样的攻击也会破坏他们自己的货币单位和采矿硬件的价值。不幸的是,这种说法简直是荒谬的。要了解原因,请考虑一种假设货币,其中的挖掘算法只是我自己的公钥的签名验证者。只有我可以签名,并且我有各种动机来维持对系统的信任。为什么比特币社区不会采用我明显优越的,不浪费电力的工作证明?有很多答案:我可能很不理智,我可能会受到政府的胁迫,我可能会慢慢开始灌输一种文化,在这种文化中,出于某些“良好目的”(例如,阻止儿童色情制品付款)的交易冲销是可以接受的,然后慢慢将其扩大到涵盖我所有的道德偏见,或者我什至可能会以10倍的杠杆率对比特币进行大规模的空头交易。那些中间的两个论点不是疯狂的假设。它们是已存在的实施me-coin的真实记录操作:PayPal。这就是为什么权力下放很重要;我们不会每年仅耗费数百万美元的电力,而只是为了换一种货币,货币的持续稳定取决于一种稍有不同的政治游戏.

此外,必须指出的是,即使GHash本身也有参与对赌博网站进行交易逆转攻击的历史。特别是,人们可能会回忆起涉及 BetCoin骰子. 当然,GHash否认采取了任何有意采取的行动,并且可能是正确的。相反,这些攻击似乎是流氓员工的过错。但是,这不是支持GHash的论点。恰恰相反,这是现实世界中的经验证据,显示了支持权力下放的一个普遍论点:权力腐败,同样重要的是,权力吸引了已经腐败的人们。从理论上讲,GHash从那时起提高了安全性。实际上,无论他们做什么,比特币网络的这一中心漏洞仍然存在.

但是,还有一个更好的论点,即为什么矿池不是问题:确切地说,它们不是个体矿工,而是矿工可以随时进入和离开矿池的事实。因此,可以合理地说 Ars Technica的主张 比特币的安全已经“被拥有51个网络功能的匿名矿工破坏了”,这是完全不准确的;没有哪个矿工控制着接近51的矿工。确实存在一个名为CEX.io的实体,该实体控制GHash的25,这本身虽然很恐怖,但与标题暗示的情况相去甚远。如果个体矿工不想参与颠覆比特币协议,并不可避免地将其硬币价值降低70左右,他们可以简单地离开矿池,而这种事情在比特币的历史上已经发生过三次了。但是,问题是,随着比特币经济的持续专业化,这种情况会继续吗?或者,给定一些“贪婪”的个体,矿工们将继续在唯一的矿池继续开采,以使他们继续赚取收入,以节省整个比特币采矿生态系统的代价为代价单独节省自己的利润?

解决方案

即使到现在,矿工实际上也已经可以采取一种策略来颠覆GHash.io:在矿池中进行开采,但故意保留他们发现的任何实际有效的区块。这样的策略是无法检测到的,但是以这种方式以1 PH / s的速度开采矿机实际上会使所有GHash矿工的利润降低约2.5。与其他池相比,这种池破坏行为完全抵消了使用零费用GHash的好处。这种惩罚不良行为者的能力很有趣,尽管其含义尚不清楚。如果GHash开始雇用矿工对其他所有矿池做同样的事情怎么办?因此,我们不应该依靠未经审查的经济手段来维持警惕的破坏策略,而应该理想地尝试寻找其他解决方案.

首先,有一个永远存在的P2P挖掘池P2Pool。 P2Pool已经存在了多年,其内部区块链具有10秒的区块时间,允许矿工以链中区块的形式提交份额,并要求矿工尝试产生发送给最后几十个共享的区块生产者同时。如果P2Pool具有90个网络哈希能力,那么结果将不会是集中化和仁慈独裁。相反,限制条件只是简单地复制旧的比特币区块链。但是,P2Pool有一个问题:它要求矿工完全验证节点。如上所述,鉴于有可能在没有完全验证节点的情况下进行挖掘,这是不可接受的.

解决此问题的一种方法是采用一种挖掘算法,该算法可强制节点将整个区块链存储在本地。在比特币的情况下,一个简单的算法是:

def mine(block_header,N,nonce):o = []对于范围(20)中的i:o.append(sha256(block_header + nonce + i))n = []对于范围(20)中的i:B =( o [i] / 2 ** 128)%N n.append(tx(B,o [i]))return sha256(block_header + str(n))

其中tx(B,k)是一个函数,该函数返回块B中的第k个事务,并在必要时以模的形式环绕该块中的事务数,而N是当前块数。注意,这是一个简单的算法,并且是次优的;一些明显的优化包括使其串行(即o [i + 1]取决于n [i]),从o [i]值中构建Merkle树以允许对其进行单独验证,以及在其中保留两个Merkle树。每个区块,一个存储交易,另一个存储所有当前余额,因此该算法只需要查询当前区块.

这种方法实际上同时解决了两个问题。首先,它消除了使用集中式池而不是P2Pool的动机。其次,关于完整节点太少的问题,比特币一直处于危机之中。之所以如此,是因为使用20GB的区块链维护一个完整的节点非常昂贵,而且没人愿意这样做。通过这种方案,每一个采矿ASIC都将被迫存储整个区块链,从这个状态开始执行一个完整节点的所有功能变得微不足道。.

第二种策略是另一个加密技巧:使挖掘不可外包。具体来说,这个想法是 创建挖掘算法 这样,当矿工创建有效区块时,他们总是必须拥有发布区块的另一种方式,以确保自己的挖矿奖励。该策略是使用一种称为零知识证明的密码构造,​​通过密码证明他们创建了一个有效的区块,但将区块数据保密,然后同时创建了一个没有工作证据的区块,该区块将奖励发送给了矿工。这将使欺骗矿池变得微不足道,从而使矿池不可行.

这样的设置将需要对比特币的挖掘算法进行重大改变,并使用比其他比特币更为先进的加密原语。可以说,复杂性本身就是一个严重的劣势,也许它值得解决严重的问题,例如可伸缩性,但不能实施巧妙的方法来阻止采矿池。另外,使矿池不可能成为可能使问题变得更糟,而不是更好。存在矿池的原因是为了解决方差问题。矿工不愿意购买只有15次机会获得任何回报的投资。如果不可能汇集资金,矿业经济将简单地集中到一小撮更大的参与者身上-这种设置与现在不同,单个参与者无法简单地退出。另一方面,只要本地节点具有完整的区块链,先前的方案仍允许池化,从而鼓励一种对系统无害的池化(即p2pool).

另一种方法则不太激进:根本不更改挖掘算法,而要更改池化算法。目前,大多数采矿池都使用一种称为“按每N股支付”(PPLNS)的支付方案-根据最近几千股的收益,向矿工支付每股的金额。该算法实质上是将池自身的方差分配给其用户,从而不会给池带来风险,也为用户带来少量方差(例如,使用具有1个散列能力的池,预期每月回报的标准差约为15,比单人彩票更好,但仍然可以忽略不计)。较大的池具有较小的方差,因为它们可以挖掘更多的块(根据基本统计数据,具有4倍的挖掘能力的池的标准偏差的百分比要小2倍)。还有另一种称为PPS(按份额支付)的方案,其中,矿池仅向矿工支付每股静态价格;该计划消除了矿工的所有差异,但以给矿池带来风险为代价;这就是为什么没有采矿池这样做的原因.

Meni Rosenfeld的Multi-PPS试图提供一种解决方案。矿工可以尝试生产同时向多个池付款的块(例如,向一个池5 BTC,向另一个池7 BTC,向第三池11.5 BTC和向第四池1.5 BTC),而不是挖掘到一个池中。按比例向矿工支付股份(例如,不是一个池支付每股0.024 BTC,第一池将支付0.0048,第二池为0.00672,第三池为0.01104,第四池为0.00144)。这使得非常小的矿池只能接受给予他们很小奖励的矿工,从而使他们承担与其经济能力成正比的风险水平。例如,如果池A比池B大10倍,则池A可能接受其输出最多为10 BTC的块,而池B可能仅接受1 BTC。如果进行计算,则可以看到池B的预期收益正好是每种情况下池A的十倍,因此池B没有特别的超线性优势。另一方面,在单一PPS方案中,较小的B与其资产相比将面临3.16倍的较高风险。.

问题是,问题到底在多大程度上是由方差引起的,它又在多大程度上像便利性一样?当然,一个1矿池的回报率将达到15个月的标准差。但是,仅是由于BTC价格的波动,所有矿池的回报率都出现了每月40个标准差的变化。 15个标准偏差和2个标准偏差之间的差异似乎很大,这是使用最大池的令人信服的原因; 42和55之间的差异不大。那么还有哪些其他因素可能会影响矿池的集中化呢?另一个因素是,池必须在某个网络延迟后立即“听到”他们自己的块,而其他人的块则“听到”,因此较大的池将不太频繁地在过时的块上进行挖掘;这个问题对于时间为十秒的区块链至关重要,但是在比特币中,影响小于1,因此意义不大。第三个因素是便利。这可以通过资助易于使用的开源自行开发的矿池解决方案来解决,该精神类似于许多小型VPS提供商所使用的软件;如果认为很重要,那么我们可能最终会为此计划的一部分与网络无关的版本提供部分资金。然而,仍然存在的最后一个因素是,GHash不收费。相反,该池通过与ASIC云采矿公司CEX.io的连接来维持自身,该公司控制着其25的哈希功率。因此,如果我们想真正深入到集中化问题的底部,我们可能需要研究一下ASIC本身。.

专用集成电路

最初,比特币挖矿是一种非常平等的追求。全球数以百万计的用户都将在其台式机上开采比特币,其结果将是同时具有高度均等性和广泛散布初始BTC供应量的分布模型,以及一个包含数千个利益相关者的共识模型,实际上排除了任何可能的欺诈行为。共谋。最初,该计划奏效,确保前几百万个比特币在数以千计的用户中广泛传播,甚至包括通常现金匮乏的高中生。然而,在2010年,用于GPU(“图形处理单元”)的挖矿软件问世,该技术利用GPU的大规模并行化技术实现了10-100倍的加速,并使CPU挖矿在几个月内完全无利可图。 2013年,随着ASIC的出现,专业化又发生了变化。 ASIC或专用集成电路是专用于生产的采矿芯片,其目的是为了:挖掘尽可能多的SHA256计算以开采比特币块。这种专业化的结果是,ASIC比GPU进一步提高了10-100倍的速度,从而使GPU挖矿也无利可图。现在,挖矿的唯一方法是要么成立一家ASIC公司,要么从现有公司购买ASIC。.

ASIC公司的工作方式很简单。首先,公司开始运营,进行最少的设置工作并弄清计划,然后开始接受预订。这些预购然后用于为ASIC的开发提供资金,一旦ASIC准备就绪,设备便被交付给用户,公司开始有规律地制造和销售产品。 ASIC制造是在管道中完成的;有一种工厂生产用于ASIC的芯片,然后另一种不太复杂的工厂,将这些芯片与标准零件(如电路板和风扇)一起放入一个完整的盒子中,以运送给购买者.

那这把我们留在哪里呢很明显,ASIC生产是相当集中的。大约有10至30家制造这些设备的公司,每个公司都有相当大的算力。但是,直到我参观了中国深圳这座不起眼的小建筑物时,我才意识到ASIC生产是多么集中:

在工厂三楼,我们看到:

在第一张图片中,我们大约有150个矿工,每个矿工780 GH / s,总共有120 TH / s的矿工-超过网络总哈希能力的0.1个-全部集中在一个地方。第二张图片显示了包含另外150 TH / s的盒子。总的来说,工厂每天生产的产量略高于这两个数量的总和-约300 TH / s。现在,看这张图:

总体而言,比特币网络每天可获得约​​800 TH / s的收益。因此,即使增加了一些安全因素,并假设工厂每周关闭几天,我们所拥有的就是一家工厂,其生产的新哈希功率中有四分之一以上都被添加到了比特币网络中。现在,建筑物有点大,所以猜一楼是什么?没错,制造工厂生产的Scrypt ASIC等于Litecoin网络增加的所有新哈希功率的四分之一。这为比特币带来了可怕的残局:比特币网络每年花费数百万美元的电力,只是用深圳的几十个人代替美元的“ 8个白人”的挖矿算法。.

但是,在我们对挖掘的未来变得过于警惕之前,重要的是深入挖掘并理解(1)ASIC的问题所在;(2)CPU的正常运行;(3)ASIC挖掘的未来将会如何看起来像。这个问题比看起来要复杂得多。首先,一个人可能会问,为什么仅由几家公司生产ASIC,而其中四分之一通过一个工厂却是很糟糕的呢? CPU也高度集中。集成电路仅由少数几家公司生产,并且我们使用的几乎所有计算机都至少具有AMD或Intel的某些组件。答案是,尽管AMD和Intel生产CPU,但它们不能控制运行的CPU。它们是通用设备,制造商无法将对制造过程的控制转换成对使用过程的任何控制。负载DRM的“可信计算模块”确实存在,但是很难想象这种东西被用来迫使计算机参与双花攻击。.

对于ASIC矿工来说,目前情况还算不错。尽管ASIC仅在少数工厂中生产,但它们仍受世界各地成千上万不同数据中心和家庭中的人的控制,并且每个矿工通常拥有少于几个terahash的能力,可以将哈希值定向到所需的任何地方。但是很快,这种情况可能会改变。在一个月的时间内,如果制造商意识到只要将所有设备都放在一个中央仓库中并赚取全部收入就可以出售ASIC,从经济上讲该怎么办?运输成本将降到接近于零,运输延迟将减少(一周的运输延迟相当于当前散列功率增长率下的〜5.6收入损失),并且无需生产稳定或美观的外壳。在这种情况下,深圳一家工厂生产的ASIC将不只是25种。这将是深圳一家工厂用完的所有hashpower中的25%.

在访问涉及莱特币采矿的杭州公司总部时,我问了创始人同样的问题:为什么不只将矿工留在公司内部?他们提供了三个答案。首先,他们关心权力下放。这很容易理解,而且很幸运,有这么多的矿工暂时感觉到这种方式,但是最终,采矿将由对货币利润多一些而不是意识形态多一些的公司进行。其次,他们需要预订才能为公司提供资金。通过发布“采矿合同”(基本上是加密资产,分配的股息等于特定数量的GH / s采矿能力的股息)来合理但可解决。第三,仓库中的电力和空间不足。从长远来看,最后一个论点似乎是似是而非的,它可能是唯一长期坚持下去的论点。这也是ASICminer停止纯粹在内部进行采矿并开始向消费者销售USB采矿机的既定原因,这表明这种决定背后可能有强大而普遍的理由.

假设出售预购商品和出售采矿合同的资金策略在经济上是等效的(它们是相同的),那么确定内部采矿或出售是否更有意义的等式如下:

在左侧,我们拥有内部采矿的成本:电力,存储和维护。在右侧,我们要承担外部的电力,存储和维护成本(即,由买方掌握),运输以及以后必须开始运行ASIC所带来的损失,以及负面因素,以解决以下事实:有些人至少出于娱乐目的而挖矿,出于出于支持网络的意识形态渴望。让我们现在分析这些数字。我们将使用 蝴蝶实验室君主 作为示例,为简化起见,将每个ASIC保持运行一年.

  • 内部电力,存储,维护 –根据BFL的结帐页面,内部电力,存储和维护费用每年为1512美元,假设BFL获利,我们将其降至1000美元
  • 外电 –在安大略省,价格约为 每千瓦时$ 0.1. 蝴蝶实验室君主将参加 350 W时600 GH / s;将其标准化为每TH,这意味着每天的电费为$ 1.40或全年的电费为$ 511
  • 外部存储 –在家中,可以考虑免费存储,或者可以增加每天$ 1的便利费;因此,我们将说从0美元到365美元不等
  • 外部维护 –难以量化该值;对于享受零挑战的技术娴熟的个人而言,对其他人而言可能很难;因此,我们可以说$ 0至$ 730
  • 运输费 –根据BFL,38美元.
  • 收入 –当前,每1 TH / s可获得0.036 BTC或每天$ 21.6。由于在我们的分析中,hashpower每90天翻一番,因此ASIC的效率每90天减少一半,因此我们可以得到122天的生命,即$ 2562
  • 运送时间 –根据我的中文资料,一个星期
  • 哈希功率加倍时间 – 三个月。因此,运输延迟罚款的整个表达式为2562 *(1- 0.5 ^ 0.0769)= 133.02
  • 业余爱好者/意识形态溢价 –目前,很大一部分比特币矿工出于意识形态的考虑而这样做,因此我们可以说从0美元到1000美元不等

因此,加总起来,左边有$ 1000,右边有$ 511 + $ 38 + $ 133 = $ 682,最多加$ 1095,最多减$ 1000。因此,哪一个更好是完全模棱两可的。我分析中的错误以及人们对时间和美学的重视程度的模糊变量似乎远远超过了任何确定的结论。但是将来会发生什么呢?从根本上讲,人们可以预期,由于规模经济和专业化收益,集中供电,存储和维护将比每个消费者便宜得多。另外,“现实世界”中的大多数人不是美丽的ASIC护身符的利他主义者,业余爱好者或仰慕者。运输成本高于零,运输延迟罚款高于零。因此,经济学似乎完全赞成集中开采……

…除了一个潜在因素:热量。目前,ASIC仍处于快速发展阶段,因此,绝大部分成本是硬件。上例中使用的BFL矿机的价格为2200美元,而电费为511美元。但是,未来的发展将会非常缓慢。最终,我们可以预期摩尔定律将会收敛,哈希能力每两年翻一番,甚至摩尔定律本身似乎也在放慢速度。在这样的世界中,电费可能会成为主要的瓶颈。但是电费多少呢?在一个集中式仓库中,很多 方立方定律 保证了在集中式环境中,比起家里,还需要花费更多的能源来冷却,因为所有矿工都集中在一个地方,而且大多数矿工都在工厂内部太深,无法暴露在凉爽的新鲜空气中。但是,在家里,如果室外温度低于20摄氏度,则用电成本为零;矿工花费的所有电力最终必定会转变为“废热”,然后将房屋供暖并替代中央加热器所消耗的电力。这是为什么ASIC分散可以起作用的唯一论点:发生分散是因为每个人在笔记本电脑上都有一定数量的未使用,因此有空闲的计算时间,而分散是因为许多人对加热有一定的需求在他们的家中.

这会发生吗?许多比特币支持者似乎相信答案是肯定的。但是,我不确定。电力成本是否小于维护成本加上存储成本加上运输成本加上运输延误成本是一个完全基于经验的问题,并且在十年的时间里,方程式很可能会从一边或另一边掉下来。我个人不愿意简单地坐下来希望获得最好的成绩。这就是为什么我个人感到失望的是,如此多的核心比特币开发人员(尽管幸运的是,不是几乎所有的人)都满足于考虑“解决”工作量证明问题或认为尝试解决采矿专业化是一种行为。 “无需重新设计”. 可能是事实,也可能不是事实,但是我们首先进行讨论的事实强烈表明,比特币的当前方法远非完美.

ASIC电阻

最常被吹捧的ASIC问题的解决方案是开发耐ASIC的挖掘算法。到目前为止,开发这种算法有两种思路。第一个是内存硬度–通过使用占用大量内存的功能,降低ASIC通过并行化获得大量收益的能力。社区的第一个尝试是Scrypt,事实证明这种抵抗力不够。一月份,我尝试使用Dagger来提高Scrypt的内存硬度,该算法难以计算(最大128 MB)但易于验证。但是,此算法容易受到共享内存攻击的攻击,在共享内存攻击中,多个并行进程可以访问相同的128 MB内存。目前,存储硬PoW的最新技术是 布谷鸟, 一种在图形中查找长度为42的循环的算法。有效地找到这样的周期需要大量内存,但是一个周期的验证非常快,需要42个散列和少于70个字节的内存.

第二种方法有些不同:创建一种机制来生成新的哈希函数,并使其生成的函数空间如此之大,以至于根据定义,最适合处理它们的计算机就是完全通用的。一个CPU。这种方法接近于“可证明具有ASIC抵抗性”,因此更具前瞻性,而不是专注于诸如内存之类的特定方面,但是它也不是完美的。在这种算法中,至少总是会有CPU的某些部分被证明是多余的,因此可以将其删除以提高效率。但是,追求的并不是完美的ASIC抵抗力;相反,挑战在于实现我们所谓的“ ASIC的经济阻力” –构建ASIC应该不值得.

实际上这是令人惊奇地可能实现的。要了解原因,请注意,对于大多数人来说,每花费一美元的采矿产出是次线性的。前N个单位的采矿电力生产成本非常便宜,因为用户可以简单地在台式机上使用现有的未使用的计算时间,而只需支付电费(E)。但是,要超越N个单位,就需要同时支付硬件和电费(H + E)。如果ASIC可行,只要它们在商品硬件上的加速速度小于(H + E)/ E,那么即使在包含ASIC的生态系统中,人们也可以在台式机上花费大量的电力来获利。这是我们希望争取的目标;我们是否能够达到它是完全未知的,但是由于加密货币作为一个整体在任何情况下都是一个巨大的实验,因此尝试尝试不会有任何伤害。.