权益证明pos及其意义

权益证明POS及其意义

(译者注:此文为作者通过网络采访Sunny King 后所写。)
POW:Proof of Work工作量证明
POS:Proof of Stake 权益证明
引言:
如果你已经接触过比特币有一段时间,肯定听说过“工作量证明”这个词。工作量证明的原理很简单:一方(通常称为证明人)出示计算结果,这个结果众所周知是很难计算的但却很容易验证的。通过验证这个结果,任何人都能够确认证明人执行了一定量的计算工作量来产生这个结果。第一个POW程序是1996年Adam Back开发的“哈希现金Hashcash"程序,它使用SHA-256工作量证明措施来反垃圾邮件—通过要求所有收到的邮件都使用强POW附件。此系统使得垃圾邮件发送者在大量发送邮件时在经济上不可行,但却允许个人在需要的时候互相发送信息。时至今日,殊途同归的程序是 Bitmessage, 而这种算法也被赋予新的意义,即以“采矿”形式出现的BTC安全核心。
SHA256工作量证明是如何工作的?
对于密码学者来说,SHA256被称为单向函数,即其结果很难计算得出,但却很容易被验证。但如果要将这个结果反向计算出来,却需要尝试每个输入直到某个随机数匹配为止。传统的SHA256输出形式是一系列十六进制的64位数字和字母组合–从0123456789abcdef中取出。举例说明:
SHA256(“hello”) = 2cf24dba…
SHA256(“Hello”) = 185f8db3…
SHA256(“Hello.”) = 2d8bd7d9…
SHA256的输出被设计成了高度随机性,即使输入的数据有微小的变化也会使得输出结果迥异,这也就是SHA256成为单向函数的原因。
找出以"0"打头的SHA256的输入值平均需要尝试16次,“00”打头的需要尝试256次,以此类推。哈希现金及比特币采矿工作的方式,是要求使用者(即邮件发送者或矿工)找到一个“随机数”,使得其SHA256(信息+随机数)以一串零开头,然后把找到的随机数与信息一起发送出去,作为其工作量证明。例如,编号为254291的区块是:
000000000000003cf55c8d254fc97d2850547e5b787a936bc729497d76443a89
平均而言,在一个区块内进行运算时,需要进行72957千亿次尝试才能找到一个随机数,才能返回这样一个以很多0开头(技术上而言,282394 千亿,因为POW要求的比“以很多零开头”的要复杂一些,但是大体而言是如此。“人为设置这样的难度是因为防止攻击者凌驾于比特币网络之上,引入另一个区块链,并推翻之前的交易,引入新的交易。任何想要攻击比特币网络的人,都必须完成 282394 千亿次SHA256 运算来达到这样的目的。
但是,这有一个问题:工作量证明是相当浪费资源的。比特币网络每秒种进行600千亿次运算,最终这些运算并没有任何实际或科学用途。其唯一目的在于解决工作量证明问题,而工作量证明如此之难,是为了阻止攻击者轻易伪装成数以百万计的节点,并控制网络。当然,这种浪费也不是天生的。在没有其它选择的情况下,这种工作量证明的浪费对于获得一种去中心化的,半匿名的而允许所有人都能够几乎免费即时发送现金到其它人的全球货币网络来说,这个代价可能不算大。在2009年,工作量证明确实是唯一的选择。但是在四年之后,我们有了其它选择。
Sunny King的素数币可能是最温和,但同时也是最有希望的解决方案。除了运算工作量证明之外,素数币还试图使其变得有用。没有采用SHA256运算,素数币要求矿工们寻找长的坎式链素数-如n-1,2n-1,4n-1等,然后这些数值在区块链里是素数(为了准确,n+1,2n+1,4n+1也是有效的坎式素数,素数币也接受孪生素数如n-1,n+1,2n-1,2n+1,这些都是素数。目前还不清楚这些区块链有什么用处–素数币支持者列出一些理论上的应用,但这些应用只需要长度为3的区块链,这很容易产生。但是,在目前比特币采矿界的更有力的说法是目前采矿硬件的大部分生产成本都是用在研发如何更有效地采矿方式上面(ASICs,优化线路等),而不是自己制造或运行这些硬件。而在素数币的世界里,这些研究会投入到寻找更有效的算法及数字理论计算上-这些研究的目的比单纯地进行加密货币采矿要更高级。
类似素数币这种“有用的工作量证明”令人鼓舞的原因还有,如果这种计算是足够有用的,那么这种货币的“浪费指数”会降至零以下,使得这种货币成为一种公共货币。假如有一种加密货币的每一次运算,都能够推动治疗癌症的研究能够进展1020 之一。现在,没有个人或组织有足够的动力去这样做:如果他们运气好能够成功的话,有两个选择。一是将秘密公诸于众,除了一些短期的媒体报道外,对于他们个人并无益处;二是在有保密条款的前提下把结果出售给一些研究者,这样大部分没有签署保密条款的人就无法从中受益。无论哪个选择,他们都不会挣到大钱。但是,如果这种神奇的运算可以被整合到某种虚拟货币中去,采矿所得就能鼓励不少人进行这种运算,而且运算所得会公布在区块链上,所有人都能看到。其社会效益将远超电力成本。不过,目前我们不知道这种神奇的治愈癌症的运算,最接近的一个项目是Folding@home项目,但这个缺乏数学上的可验证性—一个不诚实的矿工能够轻易地制造让工作量证明人难以分辨的虚假计算,但对社会毫无益处。在数学可验证及有用的工作量证明的领域,素数币是目前最好的。虽然其带来的效益能否完全超出其生产及电力成本仍然很难判断。很多人对此存疑。但即使如此,素数币的成就仍然值得表扬,能够给公众带来效益已经收回了部分成本,总比没有强。
POS权益证明
但是,还有另外的SHA256算法已经存在,从根本上摆脱了工作量证明的算力浪费,这就是权益证明。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。中本聪没能做到这一点的原因很简单:在2009年之前,没有任何一种数字财产可与密码协议层面上产生互动。Paypal和信用卡在线支付已经存在十几年了,但这些系统都是中心化的。如此这些中心化的系统也使用权益证明的话,就会给Paypal及信用卡供应商在提供虚假交易上提供可乘之机。IP地址及域名是部分去中心化的,但目前针对这两种方式都无法建立一种所有权证明而且无法验证。实际上,第一种能够实现在线权益证明的数字财产就是比特币本身(及普通的加密货币)。
对于如何实现权益证明有过几种方案,但目前为止实际成功应用的就是PPC,也是由Sunny King 发明的。POS权益证明的运作方式如下:当创造一个POS区块时,矿工需要创建一个“币权”交易,交易会按设定的比例把一些币发送给矿工本身。(类似利息,原理与比特币的区块产出25个接近)。一个SHA256的哈希运算是基于以下数据得出的:交易输入,其它一些固定数据,以及当前时间(以秒为单位的整数,基点是1970年1月1日)此哈希运算将与工作量证明要求进行比较,与比特币很象,除了其难度是与交易输入的“币龄“成反比的。在PPC中,币龄的定义是交易数量乘以该笔交易的币存在于钱包中的时间。由于POS的哈希运算只是基于时间及静止数据,因此无法加快其运算速度。每一秒钟,每个PPC交易输出都有一定机会产生与其币龄及其钱包余额成正比的有效的工作。不增也不减。实质上,每个PPC都可以成为“模拟矿机”,虽然这种矿机的算力会随着时间直接增长,但每次发现一个新块其算力就会归零。
目前还不清楚PPC使用币龄或使用输出大小是否一定有必要,这样做的初衷是防止矿工重复使用得到的币,但是PPC目前的设计并不允许矿工有意识地去通过一定量的交易输出生成一个区块。目前的机制是系统会每隔若干随机秒挑选出某个PPC,赋予其所有人生成POS区块的权力。即使在这个随机过程中没有把币龄做为衡量因素包括进去,这也几乎和比特币采矿相类似,只是没有了浪费。但是,对币龄一说不利的还有一个比较复杂的理论:因为如果你无法创建一个区块的时间拖得越长,下一次成功的机率就会越大。而POW矿工创建区块的时间会更有规律些,因此减少了类似中心化矿池的风险。
加密货币之外
但POS更有趣的地方是其可以应用于加密货币之外的地方。目前,反垃圾邮件系统在以下三类防护机制中都失败了:工作量证明,captchas和身份认证系统。
工作量证明,已经使用在Hashcash及bitmessage当中,我们上面已经进行了深入讨论,不再赘述。
Captchas在互联网上广泛使用。其原理是给出一个机器很难解答但人类很容易解答的问题,因此把人和机器区别开来(CAPTCHA 是 Completely Automated Public Turing test to tell Computers and Humans Apart”的首字字母缩写)。实际应用中,通常会使用很混乱的背景图上带上字母和数字,然后要求答题人打出其中的数字和字母。最近的变化是将其“对大众有用”,方法是从印刷书的扫描件里取出某个字,利用公众的力量将其数字化。不幸的是,captcahs效率并不高,最近的机器学习进展已经将成功率提高了到30-90%,这个数字和人类的成功率相近。
身份识别系统有两种形式。一种是系统会要求使用身份证进行注册,这也是民主团体防止被匿名发言者控制的方法。另一种是系统要求交纳一定费用进行注册,如果发现用户滥用系统,则管理员可以说没收注册费并取消帐户。这些系统是起作用的,但牺牲了匿名性。
权益证明可以用于第四类反垃圾邮件的机制。假设在注册论坛帐户时,不需要填写Capthas字符,而是要求用户通过发送给自己一定量的PPC或者BTC来消耗币龄。为确保每个权益证明运算都是由用户执行的,而且不是随机从区块链中抽取的,系统可以要求用户使用相同的地址发送已签署的信息,或者是可以用某种方式把他们的钱发送给他们自己(例如,发送的数量可以设定为0.0000xxx,这个数字是随机设定的。)请注意,此处币龄起到了决定性的作用,我们希望用户能够根据需求创造权益证明,所以必须消耗一些东西来防止重复花费。从某个角度而言,手机短信验证就是某种形式的权益证明,要求用户发送某个信息,证明对某个号码的所有权以便创建google帐户。虽然这并不是纯粹的权益证明,因为电话号码通常与身份证紧密相关,而且买电话的过程也象是填captcha。因此,短信验证具备了这三种反垃圾邮件系统的一些好处和一些坏处。
但权益证明的真正优势在于其去中心化的系统,类似bitmessage.目前,bitmessage使用工作量证明因为没有其它选择。目前并没有去中心化的captcha存在,而且在这个方面也没有太多的研究在进行中。不过,工作量证明是浪费资源的,这一点也让Bitmessage有些难以处理,同时也要耗费电力去维持系统运行。如果是电子邮件通信还行得通,但如果是即时通信就省省吧。但如果bitmessage 能够与比特币(素数币或PPC)整合在一起,并用POS来运行,就可以消除大部分的困难和浪费。
POS权益证明有未来吗?
有很多迹象表明确实有。Sunny King说比特币的安全性将随着区块产出持续下降而变得脆弱,这确实也是他创造PPC及素数币的出发点之一。自从那时候起,PPC的市值占据了第五的位置(本文写于8月底,截止10月2日PPC市值已经上升至第3),而且还有很多山寨币模仿了这种POS设计。目前,PPC还不是完全的权益证明,因为其支持者人数不多,币值也不高。被人控制的风险大于比特币,所以存在着一个中心化的检查机制,无论攻击者如何攻击,开发者可以确保“检查点”存在于区块链中。
最终的目的使得这个检查机制更加去中心化,并弱化其影响,同时更多的人群可以拥有PPC。另一个方法是可以把POS作为一个去中心化的检查机制整合进比特币里面去。例如,可以创建一个协议让多人合作,通过把币发回给自己,消耗至少1百万年的BTC币龄来产生一个区块,而这个区块将被所有人同意为一个有效的区块。
在2009年,加密货币在一系列看似不相关的创新下诞生了:哈希现金、merkle 哈希树,工作量证明及公匙密码学。而这些创新都在BTC中起到了关键作用。
现在,比特币及加密货币将继续存在下去,这又为加密货币的未来提供了另外令人兴奋的可能性。我们现在能够在加密货币本身以外设计新的协议-权益证明就是绝好的例子。权益证明可以被用来保证一种加密货币的安全,它可以被用在去中心化的反垃圾邮件系统,甚至还有我们没有想到过的数十种其它协议。就象直到1998年戴伟发明B-money之后,人们才会想到比特币。
未来,存在无限可能。
原文链接:
http://bitcoinmagazine.com/6528/ … and-why-it-matters/

原文作者:VITALIK BUTERIN on AUGUST 26, 2013