工作量证明概念
或许,比特币网络最缺乏直观的一面就是工作量证明概念。它是生成要加入到分布式交易数据库(“区块链”)中去的一组新交易信息(“区块”)时必须满足的要求。这一概念脱胎于早期密码朋克运动中的理念,不仅对于货币理论很新颖,而且在计算机科学领域也有点生僻。我下面会讲解生物学为我们理解这个概念提供的最贴切的模型。
每一个比特币区块链中的区块都包含着一个由无意义数据构成的短字符串(称为随机数)。只有挖矿设备搜索到正确的无意义字符串,区块作为一个整体才能满足某个随机条件(arbitrary condition)而生成。具体地说就是,区块的SHA-256哈希函数中必须有一定数量的前导零。由于哈希函数是单行函数,因此找正确的随机数或者说让区块满足相应的条件都没有简单的方法。找到一个合适的随机数唯一已知的方法是不停地随机试探直到搜索到一个有效的数。Khan Academy对工作量证明给出了形象生动的解释。
记住,整个搜索随机数的过程是完全随机的。为了使区块难以生成,这个过程像宗教仪式一样被刻意增加了难度。其实,只要能使计算难度大,怎样设置区块的生成条件都可以。其它的加密货币使用其它的哈希算法。不存在任何只有某个人比如Shinichi Mochizuki才懂的特殊的数论情况。
尽管挖矿设备是用来帮区块链记账的,但是它们实际所做的大部分工作是寻找正确的随机数而与记账无关。用来寻找随机数的能量将永远地消失。正如一些人所认为的,这些能量不能像黄金支撑与其挂钩的钞票一样来支撑比特币的价值。在流入比特币挖矿的巨大计算力中,除了很小的比例外,其它的全部都显而易见地浪费掉了。
当某个人更新他的挖矿设备后,挖矿速度变得更快,因而可以赚钱更多的比特币。但是,当所有的人都更新设备后,挖矿整体而言并没有变得效率更高。无论整个网络中的挖矿能力多强,每十分钟只会产生一个新区块。更糟糕的是,比特币网络会提高挖矿难度,使得未来生成区块的条件更为苛刻。有可能所有的矿工都更加努力地工作但是却没有人从中受益。这就像是一个森林,里面的所有的树都为了比其它树木获取更多的阳光而拼命地长高,结果到头来,绝大部分的太阳能都用来生长干瘪的树干了。
为什么每一个比特币区块都要和一个充满挑战的普罗克汝斯忒斯之床绑在一起呢?对工作量概念的正确看法是,它是利己而不从属于别人的一群人消除分歧取得共识的手段。如果每个人都是完全地诚实和利他,则比特币去掉了工作量证明也可以运行地非常好。可是,如果他们的道德不是这么完美,则达成共识就很困难了。
新的区块生成之前,在比特币网络中可能有许多交易信息等待确认。关于什么样的交易应该被记录并没有任何标准答案。因为有些交易可能是无效的,因此它们都应该被检查一遍。有些可能不涉及任何交易费用,所以应该决定到底让不让这样的交易被记录。最后,可能会有某种包括两个或更多交易信息的集合,该集合里面的交易不能同时有效,但某些子集里面的交易同时有效。比如,一个钱包可能把相同的比特币在同一时间花两次。如果是这样的话,需要有一种随机选择机制决定哪个交易是有效的。
因此,对于一个给定的交易信息集合,里面的交易信息能够构造的潜在的区块可能有许多个,但是没有哪一个是客观上最正确的,仁者见仁智者见智,因此对于哪种结果更可取可能不会有统一的意见。首先,对挖掘出新的区块的矿工奖励新的比特币。设立奖金是必须的。因为,如果没有奖励,几乎就没有人有动力去记账。但是,有了奖励措施,每个矿工自然就会希望这个新区块按照自己而不是别人喜欢的标准来记录交易信息。
此外还有其它更微妙复杂的情况,甚至在有的情况下不用考虑奖金。有的矿工可能拒绝确认来自他的敌人的交易,或者在涉及到接受的费用的种类时他有可能或多或少地是利他的。他甚至可能想欺诈别人。比如说,他向目标人士发出比特币购买某件商品,但是同时他又把这些比特币发到自己的另一个钱包里面,而他只确认第二笔交易。于是他的第一笔交易无效但他却获得了别人的商品。
由于有这么多让人为一己之私而操作区块链的原因存在,矿工们可能会一致同意交易记录的确认需要一个通用的准则。比特币的解决之道是在协议上添加额外的要求来增加退出的代价。如果区块是由高难度的计算随机生成的的,则每次只会提交一个新区块。当要挖掘的新区块出现之后,矿工将决定是继续寻找新的区块对自己更有利还是接受这个新区块然后再找其它新区块更有利。每个接受新区块的人不仅都明白他是在遵守不成文的共识,而且也明白如果他足够幸运地生成另一个区块的话,第二个区块很有可能以同样的原因被自己接受。另一方面,放弃眼前的区块而去寻找更好的一个区块是很冒险的,因为他必须说服足够多的矿工和他一起走,这需要他提出一个大家都接受的建议。
一般规律是,最先挖掘的区块不是靠自利性的。因为对任何人来讲,这不可以靠计划而只能靠运气。而退出后挖掘的区块则可能都是自利性的,因为要生成这个区块,矿工必须选择拒绝非常好和有可能利他的区块。这不是一件容易的事。
不利原理
生物学上有一个原理叫做不利原理(the Handicap Principle),该原理可以帮助我们解释工作量证明的过程。这个原理说,当两只动物有合作的动机时,它们必须很有说服力地向对方表达善意。为了打消对方的疑虑,它们向对方表达友好时必须附上自己的代价,使得自己背叛对方时不得不付出昂贵的代价。换句话说,表达方式本身必须是对自己不利的。
囚徒困境是博弈论中非常著名的模型,它的应用范围很广。我们可以通过它来理解不利原理。囚徒困境中有两方,每一方都有两个选项:合作或背叛。通常,这个模型被解释成两个囚犯的故事。这两个囚犯都有两个选项:要么保持沉默要么出卖对方。囚徒困境的根本特征是不管对方怎么选择,选择出卖对方总比保持沉默好。尤其是当对方保持沉默而自己背叛他时,将会使自己的利益最大化。两人都保持沉默比两人都出卖对方好。但是因为不信任,他们会选择出卖对方。
如果在囚徒们开始博弈之前,他们每个人都做一件让对方相信自己即使出卖对方也是得不偿失的事,不利原理就可以解决囚徒困境的问题。虽然很难想象如何在两个囚徒中直接应用不利原理,但是可以设想一种情形。假如他们和起诉人在一起时,其中一个精通博弈论的囚徒对起诉人说:“如果另一个囚徒有罪,我也同样有罪。”显而易见,这句话对他自己而言是不利的。因为如果另一个囚犯对警察保持沉默的话,他也不能出卖对方了。另一个囚犯如果也对检察官说同样的话,则两个囚犯的利益可以最大化,但是如果他不说,第一个囚犯则不得不出卖他。上面这个例子就运用了不利原理。
不利原理已经被成功地用来解释各种各样的生物现象。举个具体的例子,假设一个被捕食的动物发现一头捕食者正在追踪自己。如果被捕食者告诉捕食者它已经发现对方了,则双方都会获益:因为如果捕食者丧失了偷袭的机会而被捕食者不能被捕获,则捕食者放弃捕猎的机会。然而,即使被捕食者没有发现捕食者,仅仅是为了诈可能潜伏在附近的野兽,它也可以随口说:“我看见你了!”尽管被捕食者可能是在撒谎,但是野兽也不敢掉以轻心。
在同一个物种内,不利原理解释了许多关于动物如何与同伴竞争和合作。例如,在鹿群中,拥有最大鹿角的公鹿是最强壮也是等级最高的鹿,因为任何比它瘦小却想长出比它更大鹿角的鹿将会面临着把超出自己负荷的能量和营养转移到鹿角上的风险。因此,第二强壮的鹿有着第二大的鹿角,第三强壮的鹿有着第三大的鹿角,以此类推。
在群居动物中,不利原理解释了大量的关于伦理和利他主义现象。就像动物种群中的成员可以用角的不利条件从实力和健康上将自己区别开来,群居动物可以以利他的方式把彼此区分开来。比如,《不利原理》这本书描述过一种群居性的鸟Arabian Babbler,这类鸟争先恐后地利它。最强大威武的鸟通过护卫鸟群和喂养幼鸟和低级别的鸟来展示自己的优越性。Babblers不喜欢被同级别的鸟类喂,因为它们不想感到低鸟一等。《不利原理》甚至提到了一个观察到的现象,有一次,一只鸟儿衔着一条虫子喂另一只鸟儿,结果这条虫子被强行送回了自己的嘴里。
由此可知,工作量证明不应该被看做是神秘莫测或铺张浪费的。它不仅有正常功效,而且对任何通信协议设计都有潜在的参考价值。当电脑的分布式系统被一个人所控制时,他可以认为所有的电脑都会听话,因为是他在控制它们的运行。如果不存在所有电脑被一个人操纵的情形,则所有的电脑都需要证明它们有共同的目标。不利原理在生物界的普适性应该足够使人们相信不把费用摊在使用者身上的协议将招致滥用。有意思的是,想想互联网有多少问题可以被归咎为违反了这个原理。如果在电子邮件出现时工作量证明就被大家熟悉了,那就不会出现垃圾邮件。如果网络协议在处理用户请求时要求提供工作量证明,我们也许不必担心DDOS攻击了。
比特币工作量证明系统可以比作鹿角和利他行为。产生区块的能力是计算力的表现,这正是比特币网络确认所有交易所需要的。但是,它也是社区精神(community spirit)的体现。因为通过一致同意展开下一个区块的竞争,他们显示了愿意尊重社区利益而不是完全为一己之私操作区块链,这正是我们应该期盼的把社区凝聚在一起的东西。
比特信
工作量证明的一个更新的应用是比特信,它是匿名分布式的加密信息协议,有朝一日在重要性方面可能会接近比特币。虽然比特信的出现受到了比特币的启发,但是它们的工作方式非常不同。在比特信协议里没有区块链,因为没有必要在一个数据库里把所有的信息都永久的存储起来。相反,比特币要求所有的信息发送者在网络传递信息之前必须完成一些工作。这使得每一条信息都会有价值。如果垃圾邮件的发送者在这种系统上发送垃圾邮件的话,大约一分钟,他的电脑就会受不了。工作量证明是比特信的根本,因为作为一个依赖用户捐赠运算力的分布式网络,它负担不起搭便车的人。目前比特信还处于起步阶段,它受人关注的安全性至今仍没有被充分研究,但是,它有巨大的潜力来取代电子邮件。
PPCoin和权益证明
讨论工作量证明时,如果没有涉及到继比特币和莱特币之后第三大流行的加密货币PPCoin,则这个讨论就是不完整的。为了使捣乱的的人无利可图,PPCoin也使用工作量证明,但是不同矿工所承担的费用不同。生成区块时,对PPCoin只持有少量的矿工和持有时间较短的矿工要承受比长期持有大量PPCoin的矿工苛刻得多的限制。这意味着人们将倾向于接受的共识不是由拥有最强大功率电脑的人提出来的,而是对这种货币有着最大投资的人提出来的。象征矿工身份的东西更像是资历而不是实力。当一个矿工在PPCoin的区块链生成新的区块时,为了获得新币他必须花掉一些他的旧币,这意味着生成区块的人继续生成新的区块的可能性相对较小。这种系统被称为权益证明系统(proof-of-stake)。
在不同的环境下,工作量证明和权益证明有不同的优点和劣势。根据不利原理,用来产生信号的劣势应该和所发信息的含义联系起来。权益证明体系下投资要放在货币本身,而工作量证明体系下的投资要放在基础网络上(underlying network)。
因此,如果存在一个工作量证明网络系统和一个权益证明网络体系,并且二者的市场总值相等,那么人们可以预料,工作量证明网络货币的网络体系规模更大产能更大以及流通性更好,但是权益证明货币的价格更为稳定。
工作量证明系统通过使长期对接受缺德矿工区块的网络体系(network)的依靠变得很困难来阻碍他操纵区块链 。相反地,权益证明通过只从努力确保商品值得人们信赖的矿工那里接受区块来打击缺德矿工。另一方面,因为当新的区块生成时权益证明就枯竭了,因此,挖矿权不停地转换,继而专注于这个区块链的动力较弱。
为了获得可靠性和价值,在加密货币网络的早期阶段,需要对货币本身进行长期的投资。而对于更大更成熟的网络来说,为了能够正常发挥,它更有可能需要专注于网络基础设施。在一个理想化的世界里,根据环境进行更新的某些权益证明(proof-of-stake )和工作量证明的混合系统可能会促进某些加密货币最大化的增长。
然而,本文的探讨都是学术化的。支持任何一种非比特币的加密货币都是不明智的。不要指望普通的消费者会根据晦涩难懂但不影响他们把虚拟货币当真正货币来使用的技术细节来选择货币。他们更有可能选择更受大众欢迎的货币。一些认为PPCoin更合理的人对PPCoin超越比特币几乎不抱任何希望,但是他们有可能会说服比特币界让比特币未来的某个版本采用权益证明(proof-of-stake)体系。尽管这只是理论上的可能性而且可能会产生实际好处,但是比特币矿工们已经在当前这个系统中形成了既定的利益,因此他们将很有可能会反对这类创新。
(完)
原文网址:http://themisescircle.org/blog/2013/06/24/the-proof-of-work-concept/原文作者:Daniel Krawisz翻译者:自然而然
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場