对话:无利害关系

对话:转向权益证明

这是权益证明 (Proof of Stake) 系列对话之二。如果你还没看对话一 转向权益证明 的话,建议你先看一下。

这次对话跟上次的一样,“D” 代表我(Danny), 而 “F” 代表和我对话的那个朋友。F 有点技术背景,而且精通工作量证明 (Proof of Work) 和区块链相关术语。

上次对话中,我们骑着自行车穿过新奥尔良的街道,大声谈论着权益证明的激励措施。这次对话是发生在我们骑完自行车后,懒洋洋地躺在圣约翰河口边之时。

迎着河口的微风......

-我们懒洋洋地躺在圣约翰河口。F 正静静地思考着权益证明背后的激励措施。-

F: 让我理理我的思路是不是对的......我们可以把工作量证明 (Proof of Work) 概括成某种稀缺资源的证明,这种思路推动我们转向寻找其它可以向区块链协议证明的稀缺资源。公链中有一种稀缺资源,即在公链基础上构造的加密经济代币。权益证明试图用协议内代币 (in-protocol token) 作为比率限制器 (rate limiter) 来限制个人在共识算法中的影响力。

D: 我可说不了这么好。

F: 我一直在反复思考这一点,而且我喜欢这样思考!既然你有一个区块链经济指标,那为什么还要将 CPU 成本和 GPU 时间作为经济指标呢?

D: 因为问题远比表面看起来的要难得多。

F: 对,你刚说有好几个问题。那除了“无利害关系”之外,还有什么问题呢?

D: “长程攻击”。

F: 哦,是的。无利害关系(Nothing at stake)......听起来好像不对......这似乎和整个概念的意思相反。权益证明强调的不应该是我持有权益(I have a stake)吗?

D: 这可归结为语义学问题。持有某物的权益(have a stake in something)和用某物下注(put something at stake)分别是什么意思呢?前者是指分一杯羹,例如“我是这家企业的权益持有人” 指的是我是这家企业的所有人之一。后者是指将某物作为赌注押在某个结果上。 例如,“我把我的财产押在黑色上了” 是指我已经把所有的钱都押在轮盘赌转轮会降落在黑色那里了。这是被动所有权 vs. 损失风险。

F: 对,说得有道理。

D: 这在工作量证明中再自然不过了。你很明确自己在进行工作量证明之时将算力押在什么上了。你可以把你的资源用在这个或那个分叉上——这个或那个区块链上,但是你不能把你的资源同时用在两个分叉上。你必须决定把赌注下在哪。你在一个特定的区块后面挖矿,等于是在说“我把我的算力押在哈希值为 0xFFFF 的那个区块上”。

F: 但是在权益证明中,你不一定要做出这个决定,因为如果出现了分叉,你可以在两条分叉上都下注。

D: 没错。因为经济资源是在协议中的,如果像分叉一样出现了两个协议实例,那你就能得到该资源的“复制品”。

F: 所以你最好两个分叉都押!

D: 是的,如果有分叉的话,理性的经济决策是对两个分叉都进行验证,以增加押到获胜分叉的可能性。如果在经济激励的影响下,验证者都去验证所有的分叉,并且创建分叉,你就会知道要达成共识有多难了。

F: 当然了。你看我这么理解对不对——在简单的权益证明中,做出一致决定其实并没有什么风险,所以从个人角度来说,最佳做法就是尽可能多地参与分叉,但从整条链的角度来说,这并非最佳做法。

D: 没错!一般而言,这是设计加密经济协议的关键所在。我们必需 在个体参与者实现个体收益最优化的同时,确保系统整体结果的最优化 。简化工作量证明能够做到这一点,但简单的权益证明不能,正如“无利害关系”问题所示的那样。

F: 那么我们要如何调整激励措施来解决“无利害关系”问题呢?

D: 问得好!这完全不是通过某种方式就能解决的问题。这是一个新兴的研究领域。最靠谱的解决办法通常都需要将权益作为 安全押金 锁起来。如果有人证明你是恶意行动者,你就会被处罚。举个例子,如果有人证明你在两条分叉链上下注,你可能会失去部分或所有赌注。有了额外的处罚机制,你必需就参与哪条分叉做个经济决策了。就像在工作量证明中一样,你不能将算力同时用在两条链上,而增加处罚机制就能防止你将代币同时押在两条链上,否则你就会失去这些代币!

A: 等等。如果你做了错误的决定,你就会赔钱吗?

D: 如果做了个“错误的决定”,你可能只会少挣点,但是做了个被证明是恶意的决定,你就理所应当要被处罚了。

A: 嗯。听起来似乎很有风险。

D: 那就对了!那正是这些“罚没条件”存在的意义。我们已经在这个过程中增加了风险,这样验证者必须理性决定该验证什么了。

A: “罚没条件”?

D: 是的,那些就是协议专设条件,如果验证者违背了这些条件,他们的资金就会被“大幅度削减”,或被永久销毁。一般而言,罚没条件指的是:在没有被违反的情况下,这些条件会确保其中一条链继续延长或“最终确定下来”;在被违反的情况下,至少会确保有一些验证者会赔一大笔钱。

A: 真有趣......等等,“最终确定下来”是什么意思?

D: 呃......你饿吗?我们去吃个穷小子三明治吧。我们总不能空着肚子讨论最终确定性和”长程攻击”呀。

我们扶起自行车骑往当地一家穷小子三明治店,打算就着油炸海鲜继续展开讨论。

下回预告

敬请期待本系列的下一篇文章:“对话:长程攻击 ”。

原文链接: https://hackernoon.com/nothing-at-stake-a-dialogue-2ded91318cb9
作者: Danny Ryan
翻译&校对: 李丽 & 闵敏

你可能还会喜欢:

干货 | 从当年 PPCoin 的 PoS 模式看 PoS 的演化
引介 | Nick Szabo:非管制货币的诸传统,Part-1
干货 | 什么是 Substrate?

评论