跳转至

ASICs 和去中心化常见问答 - 译

本文翻译自:ASICs and Decentralization FAQ

原作者:Andrew Poelstra @ 2015-04-08

原文链接:https://download.wpsoftware.net/bitcoin/asic-faq.pdf

关键词:Proof of Work,Proof of Stake,ASICs,去中心化,能量

【方括号里面的内容是我,译者,的话,这是一篇从编程以外的角度理解工作量证明的优秀文章。】


关于作者

Andrew PoelstraBlockstream 数学家,2011 年开始参与比特币开发工作,参与开发了高性能密码学库libsecp256k1。Blockstream 参与比特币代码维护开发,致力于构建基于比特币网络的金融体系,比较有名的项目:闪电网络开发维护、Liquid sidechain开发、矿机托管、卫星比特币网络。


以下为翻译内容

关于这份文档

1、这篇文档的论点是?

工作量证明,Proof of work,应该尽可能的简单,尽可能的依赖原始的计算资源。话句话说,PoW 应该直接、快速的达到热力学极限(后面会展开解释这一点)。

2、PoW 有趣吗?

并不 :)【很无聊】。更换或者调整 PoW 算法是抄袭比特币的 Alt Coin 最喜欢做的事情,但是这样做并不能增加任何新的特征或者使用场景。这跟给自行车的瓦盖画画类似,不过不同的是,这么做是有风险的。

3、为什么写这份文档?

两个原因:

  1. 记载一些关于 PoW 的内容,因为别处没有记载
  2. 回答一些普遍的关于 PoW 和其他数字资产的问题(就像刚才说的,PoW 很无聊,所以我不想反复的回答这些问题)

什么是工作量证明,PoW

1、什么是 PoW?

在比特币的背景下,工作量证明是计算证明,证明一些【物理世界的】稀缺的资源被消耗掉了。这样的证明之所以可以存在是因为计算资源通过时间、空间和能量与物理世界产生了联系 参考文献:NP-complete Problems and Physical Reality

更进一步说,PoW 实际上通过消耗能量为一些信息签名,并且提交【commit】了这些信息。

2、如何以及为什么使用 PoW?

这些证明主要是用来确保邪恶的参与者因为无法获得无限的能量来证明另一个历史时间线【当然,对他有利的】,同事确保其他参与者【正义的】有足够的时间和带宽对唯一的历史时间线形成共识。这一切的前提是,正义的参与者拥有比邪恶的参与者更多的资源。

比特币的主要创新就是通过经济学刺激,使得拥有大量资源的参与者倾向合理、正义的行为。

这里,“历史”就是由一串工作量证明形成的,每一个证明都会签发一些合法的比特币交易以及前一个工作量证明。用户不仅可以对交易形成共识,也可以对交易发生的顺序形成共识。【这里,作者表达了比特币区块本身就是一个工作量证明的意思】

3、PoW 如何影响共识?

为了让网络中所有参与者(包括矿工和非矿工节点)快速的达到共识,PoW 必须可以被快速验证。换句话说,证明的生成时间和验证时间的比例越大越好。

为了让所有参与者达成共识,PoW 需要足够的时间使前一个被证明的历史传播到其他节点并验证,然后新的历史才能形成【新的块才可以被加入公链】。这里“足够的时间”取决于需要验证的数据量和PoW可以被验证的速度。

4、PoW 如何影响去中心化?

为了让参与个体不会获得不成比例的优势 - (因为这样,在经济限制下,即使一个参与者拥有所有的采矿权并将其出租,以避免工作量证明,因为这在功能上是相同的(但在生态上是不合理的)对于这个参与者来说,只需对每笔交易进行数字签名)- 工作量证明必须是完全可并行的并且不需要状态。换句话说,一个人拥有 2N 哈希率跟两个人分别有 N 哈希率应该是等效的。【作者应该是想表达:比特币 PoW 的这种特性保证了形成中心和不形成中心的成功率是等价的,因此更加鼓励去中心化,而不是中心化挖矿】

比特币通过寻找“部分散列原相”【Partial Hash Pre-images】的方法实现了满足上述要求的工作量证明。该工作是通过不断重复散列操作,每一次都有一个独立同分布的成功几率(这里利用了所谓的“随机预言机假设”散列算法)。成功证明的出现符合泊松过程(Poisson Process)。虽然泊松过程已经为人熟知,但是放在这里仍然有些反直觉。【是的】

PoW 影响去中心化的另一个重要方面是他的物理属性,我们在后面的章节具体阐述。

5、PoW 的泊松过程很重要么?

非常重要,以至于我需要一个单独的部分来解释。为了避免中心化,矿工可以无障碍、无惩罚的加入和离开网络至关重要。另外,一个拥有很多资源的矿工不应该获得不成比例的好处【好处和资源应该是线性的,而不是非线性的】。

这两个要求的相关的,它们都在指出:花费更多的时间证明和花费更多的资源证明应该是完全等效的。【请注意,这一点非常重要】

为了达到上述要求,工作量证明必须是“过程独立”(Progress Free)的,换句话说,T 时刻进行的工作量证明不应该依赖于任何之前的任何时间点的证明。这一条,加上好的工作量证明算法应该足够需求以限制出块速度,刚好可以保证在 t0-t1 时间内的完成的工作量证明与 t1 - t0 成正比且与 t1 和 t0 或者其中的任何时间点无关。

上面这些要求加在一起,就是泊松过程。

一个非常反常识的泊松过程的例子:在任何一个当下时间点,下一个比特币出块的时间都是 10 分钟(正负实际的哈希率和难度哈希率),且与上一个块出现的时间无关,尽管平均出块时间是 10 分钟。【哇哦,停一下,仔细想想这段话,的确非常反常识】

6、PoW 的其他算法方面的考虑?

Greg Maxwell 提出了两个额外的条件:

  1. PoW 必须是无法优化的(Optimization Free),即不应该有任何优化的算法的效率可以超过标准算法。【因为】一旦这样的算法被发现,发现该算法的人会有强烈的动机保密,然后利用该算法获得优势。这将导致中心化。
  2. PoW 必须是无法近似的(Approximation Free),即工作量证明不应该有一个有缺陷的变体,它实现了超过其缺陷率的加速。 (如果这是在软件中完成的,它是上述的一个特例;但是它也可以在硬件中完成,例如,通过使用不能解复用某些位串的损坏的多路复用器。)【我。。承认我没看懂这段话。】

PoW 的物理属性

1、什么是(不)可逆计算,为什么不可逆计算很重要?

鉴于这不是一篇物理学论文,这个小节进包含一些声明,没有证明也没有过多的细节。感兴趣的读者可以参考这里.

可逆计算,或者绝热计算,是指不会增加熵的计算。这样的计算在时间上可逆,因此必须是输入的单射函数,基于散列计算的工作量证明不能被完全逆转。然而,哈希函数的某些组件可能是可逆计算的,这很有用,因为可逆计算不需要能量——更具体地说,在计算速度变为零的极限内,可逆计算的能量需求也变为零。

一般情况下,不可逆计算服从兰道尔原理,该原则提供了反转一个比特的信息需要能量的下限。

这一点的意义在于:任何不可逆的工作量证明,同时也是一个实际物理世界工作的证明,比如能量耗散。

2、什么是热力学极限?

热力学极限描述了在兰道尔所需能量耗散的下限下实际完成工作量证明的状态。再这样的状态下,两个拥有 N 哈希率的参与者,比一个拥有 2N 哈希率的参与者更有优势,因为独立的参与者有更好的散热能力【PoW 会产生热能,实际上还会产生噪音】。

因此,热力学极限鼓励去中心化。

幸运的是,热力学极限也限制了能源的有效性,比特币对于高效 PoW 的需求也促使矿工尽可能的接近热力学极限。

【这段话基本的意思就是,PoW 会促使矿工寻找更加便宜的能源】

3、谁在乎热耗散?很多大型经济实体在购买电能!

这篇文章不断强调 PoW 有助于抵制中心化,因为大型散热系统不是特别经济,任何挖矿操作都受制于: 1. 能够耗散多少热量 2. 能够利用多少余热

提高散热需要工程努力和构造,只要余热可以被利用挖矿基本是免费的,但是越过这一点就不是了。【???】

然而,很多人提出质疑:现在有很多大型的电力生产者,他们足够大以至于散热需求导致的去中心化显得微不足道。

对此,我有三个回应:

  1. 首先,如果使用利用其他极限的共识方法(比如内存复杂的PoW使用光速极限)只会让中心化更加严重。如果比特币的经济学鼓励中心化,我们就需要问什么不鼓励中心化呢?
  2. 在一些余热可以被直接利用的地方,挖矿的成本仅仅是电取暖和其他能源取暖之间的差别。电能虽然不便宜,但是相对来说比较便宜,等矿机的成本逐渐降低,这将会变成一个重要的因素。
  3. 通过廉价电能产生的中心是少数的,比如在中国,但是这不会是长久的。在接下来的几十年里,我们更可能会看到:
    • 中国【或者其他曾经的廉价地区】的用电成本激增,中心化矿场会逐渐消散
    • 由于线路损耗,高度集中的电力生产效率低下。随着太阳能等技术的成熟,将有可能以更低的启动成本和更少的地缘政治因素在本地生产电力。

这些观点体现了对比特币的一个长期看法,在比特币在世界范围内达成它的目的:全球储备资产的时候,去中心化才真正会被重视,才会发挥价值。目前我们有更加迫切的问题去解决,比如可用性、拓展性、和隐私性。我的期望是,当这些问题得到解决时,这些评论将变得不言自明。

关于 ASIC

1、ASIC邪恶吗?

不。就像刚才论述的,ASIC 矿机让我们更加接近热力学极限,因此也就更加鼓励去中心化。同时,ASIC 在相同的能量消耗下产生更多的哈希率,他们可以产生更多的工作量证明,更少的影响周围环境。

然而,ASIC 带来了生产工厂的中心化,就像我们在比特币早期的挖矿过程中看到的。但是,市场最终摧毁了这种垄断。另外,SHA2 哈希算法的使用也加速了这一过程,因为 SHA2 大大降低了硬件的设计难度。因此,不需要很多资金就可以开设生产 ASIC 的工厂。

更进一步,无论个人如何看待 ASIC,这个趋势是不可逆的。专用硬件永远比通用硬件更加高效(让我们更加接近热力学极限),而比特币 PoW 本质上要求提高就散效率。

2、反 ASIC 好吗?

不。反 ASIC 通常需要设计更加复杂工作量证明算法,但是ASIC仍然是不可逆的趋势,增加算法复杂度只会增加制作成本,进而增加中心化。

更进一步,增加证明算法复杂度,通常也意味着增加验证算法复杂度,这样就会额让非矿工节点(全节点)很失望,进而增加中心化程度。

3、反 ASIC 可行吗?

让 ASIC 工厂提高生产成本是可能得。但是,你不可能提出一个算法,使得通用计算机的计算速度超越其对用的专用计算机,这样只会产生一个新的专用计算机。

(如下观点完全错误:如果 ASIC 出现,软件开发人员只需要更换算法即可。因为在一个去中心化工作量证明网络,开发人员无法这样做;如果是中心化网络,工作量证明本身就是没有意义的)

4、内存困难证明好吗?

不。内存困难证明方法最终会提高 ASIC 的设计负担,降低热力学极限提供的去中心化优势,而且不必要的会提高成本,然后进一步促进中心化。加上 SRAM(静态内存)比 DRAM(动态内存)更快,但是更贵的事实,这只会让事情变得更糟糕。

困难证明方法还需要一部分验证者提供大量的内存,这也会损伤去中心化。

还有一个需要提出的事情是“时间换空间”问题。就是说一个算法可以通过增加使用的内存空间来提速。这一点就不满足“不可优化的”的原则【之前提出的】。

5、scrypt 比 SHA2 更好么?

不。因为:

  1. 验证太慢。
  2. 需要更加复杂的 ASIC【后来证明是显卡成了 ASIC 】
  3. 对内存要求更多

6、Primecoin 比 SHA2 更好么?

不。【不写了,Primecoin 已经不在了, SAH2 比特币还在,已经说明了一切。】

7、有用的 PoW?

一般来说用 PoW 来做其他“有用的”事情是个坏主意,比如 Primecoin。并且,PoW 对于比特币已经是一件“有用的”事情了。

权益证明(PoS)

1、什么是 PoS?

PoS 的主要思想是:矿工不是通过消耗物力资源,而是消耗自己的加密货币【虚拟的】来实现自举。【有点像鸡生蛋、蛋生鸡的循环】。但是这种共识方式可能会出现“Nothing to stake”的问题。

2、原则上,PoS 如何工作?

PoS 的基本工作原理是通过自己的加密货币进行投票决定出块。为了增加拓展性和防止“富人邪恶”的情况,每个区块是从一组参与者中产生的,共识算法决定这一组中谁出块。

3、什么是 Nothing to stake?

问题的关键在于,用户可以无成本的投票选出无数个分叉的区块链,但是这么做往往是有利可图的。因此,因此,矿工诚实行事以保护自己币的价值的想法,实际上是一场悲剧。

矿工同时提出多个分叉的优势在于,他们可以改变的未来出块的投票分布。

这对中心化来说是致命的,因为每个矿工都被单独激励以这种方式行事,这对共识也是致命的。

4、PoS 适合其他产品吗?

当然。以密码方式证明一个人在系统中的股份的能力是一个令人兴奋的功能,这是密码产品独有的。它可用于构建我不了解的新的和创新的协议。但是,它不能用于创建分布式共识