富人越富,穷人越穷,我为什么反对PoS
作者 | Hugo Nguyen
编译 | Guoxi
据摩根士丹利年初报告,2017年比特币挖消耗的电力与中东国家卡塔尔年耗电相当,预计2018年的电力需求可能会达到2017年的三倍以上。
大量的电力消耗也带来了很多争议,很多人都尝试在保证安全性的前提下改进共识协议。一时间,业界出现了许多新的协议,如权益证明(PoS)、委托权益证明(DPoS)等等。
这些协议中最有前景的莫过于PoS,甚至以太坊在未来也会从工作量证明过渡到权益证明。
不过,近日Hugo Nguyen列举了权益证明的几大罪状,实名反对权益证明。这到底是怎么回事,让我们一起去看看。
多角度分析PoS并不是什么灵丹妙药
很多人都在大力倡导使用权益证明,笔者看来,权益证明并不是什么灵丹妙药,从多个角度都能发现它的缺点。
进化心理学/历史学
历史上的「收藏品」或「原始货币」都有一个共同点,即不可伪造的成本(Unforgeable Costliness,有些人可能会将不可伪造的成本与劳动价值论混为一谈,但其实它们并不是同一回事,因为仅靠消耗资源是不够的,资产必须是不可伪造的),或者至少在他们的时代大背景下是不可伪造的成本,随着历史的不断发展,这些货币逐渐从最初的贝壳,毛皮,牙齿,贵金属演变成今天的铸币。
由于权益证明仅仅是临时锁定现有的资本而并不消耗这些资本,因此它不能满足Nick Szabo(计算机专家,智能合约之父)确定为货币的三个关键属性之一的不可伪造的成本。
经济学
如果某个物品具有价值,人们就会花费精力追逐它,直到消耗的精力与物品的价值相抵(边际成本=边际收益,MC = MR)。这里的精力可以看作是某种形式的「工作量」。 前耶鲁大学统计学家,现区块链创业者Paul Sztorc认为权益证明是一种混淆形式的工作量证明。
权益证明中的工作量可以来自多种不同的形式,比如说从银行获得的贷款,运行全天候的权益证明挖矿服务器获得的区块奖励,甚至可以是通过窃取私钥获得的赃款。
权益证明不仅混淆了工作量证明,它还不如工作量证明。任何权益证明为你节省的潜在成本,都需要你付出相应的安全性损失的代价。
正如我们将在下面看到的那样,短暂地锁定1美元的权益创造出的安全性水平远远低于在挖矿中实际花费1美元创造出的安全性。
计算机科学
Blockstream公司数学家Andrew Poelstra写了业界第一篇批评权益证明的文章,在其中他创造了无成本模拟(Costless Simulation,即无利害关系)和远程攻击(Long-range Attacks)这两个术语。
加州大学伯克利分校研究员Jonah Brown-Cohen和《区块链 技术驱动金融》作者,德克萨斯州大学奥斯汀分校研究员Arvind Narayanan在最近的一篇论文中说明了权益证明协议中缺乏良好且可靠的随机数来源。对于使用权益证明的加密货币,依赖外部的随机数来源可能会出现循环推理谬误(Circular Reasoning Fallacy)。因此,权益证明协议急切需要使用其区块链中的内容在内部生成随机数。然而,这个过程被证明是一个需要折衷的难题。
工程实践
从工程实践的角度,我写了一篇关于权益证明缺点的文章(Proof-of-Stake & the Wrong Engineering Mindset [1]),其中列出了权益证明机制特别容易受到攻击的某些特定场景,包括网络分裂、私钥被盗、以及权益证明参与率低。
也许看待权益证明的最简单方法就是透过时间尺度。
PoS应该叫PoTS
权益证明是一个误称,正确的叫法应该是临时权益证明(Proof-of-Temporary-Stake,PoTS),临时权益证明这个名称更准确,因为它加入了权益证明中缺少的时间因素。
为了正确理解权益证明中时间因素的影响,我们首先来分析时间因素在工作量证明中发挥的作用。
工作量证明中持续消耗的资源以两种方式保护整个区块链网络的安全:
-
每个区块消耗的资源不仅可以保护属于该区块的UTXO(未使用的交易输出),还可以保护前序区块中所有的UTXO。为什么这么说呢?是因为如果不首先恢复当前的区块,就不可能恢复过去的UTXO。所以说,每个新区块都保护着所有前序的现存UTXO。
-
从本质上来说,对专业挖矿设备的投资代表了对未来获得潜在回报的乐观预期,对于矿工而言,投资新的挖矿设备可以看作是在购买定期支付股息的股票。这意味着挖矿设备大致代表了未来区块链的潜在能源支出。
这么说可能有点抽象,想象一个时间轴。过去花费的工作量单元积累在账本中,未来消耗的工作量单元积累在当前的挖矿设备中。
账本积累了过去的工作量单元,挖矿设备积累了未来的工作量单元
随着时间的推移,右侧的工作量单元逐步实体化并向左侧移动。这里的挖矿设备可以看作是一个「缓冲区」,工作量单元在进入最终目的地——账本之前,都存放在这个缓冲区中。不过,并非所有的工作量单元都可以直接进入帐本中,大部分都被抛弃了,但正是这些被抛弃的工作量单元保证了整个网络的去中心化。
描述这种基于时间的资源积累现象的官方术语是存量和流量(stock & flow),这种现象也经常发生在自然界中。从本质上说,比特币的安全性是因为受到账本和挖矿设备两个部分的高存量流量比的保护。
相比之下,权益证明并没有这种安全性保障。
在权益证明中,过去的权益(时间线的左侧)不会积累在账本中,因为经过一段时间的冻结周期后,这些权益会被释放。不过,权益证明不涉及资源的积累也并不影响其「确定性(Finality)」概念,因为从新成立节点、长期休眠节点、分区节点中也可以看出不同的「确定性」。
远程攻击是这种缺点的表现:它的攻击原理是因为权益证明无法保护过去发生的交易。因而,远程攻击是权益证明面临的最严重问题之一,这种攻击方式的出现表明,从长远来看权益证明机制无法保证账本的完整性,而账本的完整性是区块链最核心的特性。
在权益证明中,未来的权益(时间线的右侧)也不会在当前的校验器中积累,因为权益证明行为只在它发生的短暂窗口时间内具有意义,而并不会影响未来。私钥盗窃是这种缺点的表现:它的原理是权益证明无法保护未来。
私钥盗窃完全避开了获得多数权益所需的财务成本,而在工作量证明中,攻击者需要克服挖矿设备和持续能源消耗带来的成本来发起并维持一场51%算力攻击,而且任何攻击者都不得不面对这个问题。在工作量证明中,挖矿设备被大规模查封(例如国家发布禁令)是最大的风险,不过只要挖矿设备足够去中心化,就可以大大降低这种风险。
然而,权益证明无法使用这种将挖矿设备去中心化的应对方法,因为权益证明中的校验器只是软件节点,它们可以轻而易举地被远程定位。更重要的是,在工作量证明中即使控制了硬件,攻击者仍然无法避免持续的能源消耗带来的成本,所以说工作量证明更加安全。
权益证明中存在一种积累形式,即校验器获得的周期性权益奖励。但是,与工作量证明中的积累不同,奖励积累仅对每个权益证明校验器有益,而不会提高整个网络的安全性。
总的来说,如果在权益证明中进一步脱离时间因素,更快的权益证明就失去了存在的意义,直到权益证明变得毫无意义。
工作量证明可以有力地抵挡时间的摧残,而权益证明不能。工作量证明的稳健性得益于其大量的哈希算力,而不是它所消耗的资源。新的技术可以提高挖矿效率,不过在未来某些时候,效率的增加会因为物理限制的瓶颈慢慢放缓。比特币工作量证明的稳健性也依赖于SHA256哈希算法的安全性。
工作量证明消耗了大量的资源这一事实是一个重要的特性,而不是设计漏洞。关于权益证明的研究通常陷入工作量证明是一种漏洞并且效率十分低下的误解中。
写在最后
看到这里,相信你已经理解我为什么反对使用权益证明,当然这还不是全部的原因。对权益证明的另一个主要批评是,权益证明可以说是建立了一个财阀统治体系,在其中富人越富,穷人越穷。这也是一个很值得讨论的问题,但由于本文的主题是安全性,所以在这里未做过多讨论。