VDF 不是工作量证明

可验证延迟函数(Verifiable Delay Function)最近出现在许多区块链研究中(以太坊Chia,等等)。人们已经证明,VDF 是加密经济机制设计中的一种有用工具。最近一篇论文研究了一些 VDF 的应用并补充了函数背后的属性和理论。使用这些函数的目的,是让知道部分信息且某种程度上参与了协议的参与者产生最小数量的时间延迟。VDF 实现这一点的方式是:在计算是要求大量计算资源,但验证时只需花费相对少的计算资源。

这种 计算 和 验证 的非对称关系乍看起来有点像工作量证明(PoW)。实际上,这也是我从那些第一次了解到 VDF 可能被用于权益证明(PoW)的研究者那里经常听到的描述。我会听到这样的声音——“ 听起来我们又回到了工作量证明 ”或是“ 不再烧一轮 CPU 我们就干不了这事是吗 ”。虽然 VDF 和传统的 PoW 算法都拥有“难以计算”且“易于验证”这样的属性,最核心的区别在于区块链工作量证明共识算法是 可并行化工作量证明,并且只是有概率会成功,不是一种函数。相反,VDF 是 连续工作证明,是确定的函数。

可并行化 vs 连续工作

VDF 在设计上就是不可并行化的。为了让 VDF 难以计算并且花费更长时间,我们只需提高了必须计算的轮次(cycle)数量。每一轮都以上一轮的输出作为输入,所以为了计算轮次 N,我们必须先知道轮次 N-1 的输出。增加额外的处理器不会显著减少计算所花费的时间。

这也是 Stark 与区块链 PoW 算法不一样的地方,后者完全是有目的地设计成可并行化的。参与者拥有越多处理器运行 PoW 算法,就能越快找到有效的哈希值(概率上来说是如此)。工作量证明算法会激励参与者增加用于计算的硬件数量。但在 VDF 中则不然,参与者要增加额外硬件、发动并行攻击是没有优势的。获得优势唯一的方法是购买或设计 更快 的硬件。

函数 vs 概率游戏

就像名称里指出的一样,VDF 是函数。给定输入值,就只有一个可验证的正确输出值。要找到这个输出,参与者只需要按预先指定的轮次数量计算 VDF 就好。所有参与者最终都会算出同一个结果,并且也只有一个结果会被验证为给定输入值时正确的结果。

在 PoW 算法中,给定输入可能有多个正确输出值。要找到这些输出中的一个,参与者必须用猜测的输入值运行哈希函数,然后看看输出值是否符合要求。参与者可以在任意多的硬件上、使用不同的猜测输入值并行地运行任意数量的计算进程,希望其中一个进程可以产生一个符合要求的输出值。其中的经济激励驱动着人们参与这个游戏,但也正因此,一个参与者可能倾向于投入越来越多的硬件来取得更大的优势——因此 PoW 军备竞赛消耗着大量计算资源和能源,并且消耗量还在上升。

有预谋的垄断

概率性和可并行化是导致 PoW 军备竞赛的两种属性。不仅人们可以并行化计算,而且拥有最多并行化计算资源的参与者还是只能获得与他们控制的算力成比例的概率收益。这会激励参与者动用他们拥有的所有资源参与游戏。出于 PoW 的目标,这还是在某种程度上创造了一种公平游戏。这种公平性吸引了大大小小无数玩家。

因为 VDF 不是概率性的,所以它们也没有这种公平属性。根据 VDF 部署于其中的竞争模式,VDF 实际上会产生相反的属性并趋向垄断。拥有最快硬件的参与者几乎总是能够最先计算出 VDF(除非该参与者离线了、被审查了、或者另一名参与者成功买到了/开发出了更好的硬件)。如果第一个解出 VDF 的参与者公开了结果用于公开验证(可能是为了要求奖励),那么除了这个最快算出来的人,其他所有人都不会再运行计算。即便某个参与者的硬件有最快参与者硬件效率的 95%,他也几乎永远不会赢,因此也很可能永远不会参与。这种垄断属性阻止了算力军备竞赛,但也产生了一系列受攻击的可能性和设计上必须考量的事项。举个例子,要是这个垄断者突然离线了该怎么办?

我会将这些想法和其它考量放到 ethresear.ch 上和未来的文章里。同时,我希望你已经懂得,在 PoS 系统中运用 VDF 不会 让协议的能源耗费变得像爱尔兰整个国家的消耗量那么大 。


链接: https://medium.com/@djrtwo/vdfs-are-not-proof-of-work-91ba3bec2bf4

原文地址:https://www.cnblogs.com/hzcya1995/p/13312912.html