证明|何在不使用工作量证明的情况下实现公平且高效的提议


作者:Steven Pu , Taraxa创始人
前言
在之前的技术解读文章中我们讲到了区块排序的问题 。 本文我们将继续探索如何在不使用工作量证明(PoW)的情况下实现公平且高效的提议 。
POW之美 Pow是一种简单而又优雅的共识算法 。 每个节点解决一个简单的加密难题 , 解答方案通过快速猜测得出 , 谁第一个猜对就选谁生成下一区块 。
就这么简单 。
这个简单的算法同时提供了真正的随机性——来进行公平且去中心化的区块提议;一定的延迟——确保有足够的时间来广播 , 最大程度降低分叉概率;经济上的抵押——通过硬件和电力投资来实现 , 这样矿工就有既得利益来诚实工作 。
那么PoW哪里不好?我们为什么非要搭个不一样的?
并行处理是罪魁祸首
证明|何在不使用工作量证明的情况下实现公平且高效的提议
本文插图

早期并排工作的装配线

简单又优雅的PoW机制有一个关键问题 , 那就是它的难题是可以高度并行处理的 。 这些难题通常是一个哈希函数 , 节点只是不停生成随机字符串 , 用哈希法进行处理 , 然后看得出的哈希值是否符合特定条件 。 如果你只是一名玩家(例如一台机器、一个线程) , 假设你平均能在N秒后猜对答案 。 但如果你是一百名玩家 , 那么平均你猜对答案的时间就是N/100秒 , 因为你可以轻松分配工作 。 举个例子 , 假如一共有M种可能的答案 , 你可以安排玩家1号测试答案1到答案M/100 , 再安排玩家2号测试答案M/100到答案M/200 , 以此类推 。
在PoW区块链系统中工作的矿工们通常会购买大量的专用电脑 , 或者专用集成电路(ASIC) , 并调用程序协调这些ASIC的分工来猜答案 , 所以平均算下来他们猜中正确答案的速度会快些 。 随时时间的推移 , 不同的矿工决定抱团来分担他们ASIC集团的工作 , 因此就有了矿池 。
对于比特币这样的网络 , 如果矿工猜答案猜得太快 , 它有一套内部算法可以提高猜答案的难度 , 最终将出块时间维持在平均10分钟左右一块的速度 。 因此 , 矿工猜得越快 , 谜题难度越大 , 这样也就激励了矿工通过ASIC提速或者搭建更多的ASIC 。

矿机速度越来越快 , 数量越来越多 , 消耗的能量也越来越多 , 直到维护网络的能耗高得离谱 。
因此 , PoW共识的哈希函数能够并行处理这一事实 , 是造成其负面经济动机的罪魁祸首 。 它推动了一场矿工间硬件设备的竞争 , 消耗了大量的能源 。
设计目标:随机延迟所以 , 如果我们想要设计一套不像PoW那么浪费资源的系统 , 但同时又能做到随机延迟的话 , 我们需要达成以下设计目标:

  • 真正的随机性以确保公平与去中心化
  • 延迟不可以通过并行而降低 , 以最大程度减少能耗
下面我们来看看如何优化: ■通过可验证随机函数实现随机性
证明|何在不使用工作量证明的情况下实现公平且高效的提议
本文插图

白噪音就是自然出现的一种随机源
真正的随机性更多的是一个哲学问题 。 我们在说 “随机”的时候 , 我们真正想要的是“不可预测” 。 如果我们的机制输出的结果是网络任何参与方都无法预测的 , 那么我们就认为这个结果是随机的 , 且是公正的 。
许多加密函数似乎都能生成随机输出 , 例如哈希函数和签名机制 。 但是 , 他们并不是专门为了生成不可预测的输出而设计的 , 且观察者能够在给定足够大量样本的情况下得出模式 。

在1999年 , 一篇由Micali , Rabin和Vadhan撰写的论文发表了 , 他们描述了一种可验证的随机函数(VRF) , 这个函数是专门为了生成高度不可预测的输出而设计的 。 后来 , Micali教授成立了Algorand项目 , 之后该项目核心成员Sergey Gorbunov写了一篇更详细且更容易理解的文章 。 如果你对VRF的更多技术处理感兴趣 , 可以参阅上述文章和论文 。


推荐阅读