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


让我们在更高层次测试一下这些函数吧 , 因为数学是非常复杂的 。

这些VDF的构建是执行重复平方的计算 , 这些计算是无法并行处理的 , 因为每次迭代都需要上一次迭代的输入 , 且任何给定迭代中不会提供关于未来迭代的信息 。 换句话说 , 除非你一步步完成所有迭代 , 否则你无法知晓答案 。 这一点确保了这个函数是顺序的 。
而让VDF能够简单验证的是 , 你可以用包含VDF中间输入与最终输出的随机线性组合来搭建一个证明 。 这些限线性组合的计算很简单 , 因为比起计算整个VDF来说 , 它涉及的步骤要少很多 。 简单地类比一下就是 , 计算整个曲线中的所有数值(计算整个VDF)与选个箭头往前推几步(证明VDF的有效性)的差距 。 箭头前进几步所花费的时间显然比计算少得多 。 这一点确保了这个函数是可简单验证的 。
在Taraxa , 我们在VDF中设置了以下几个输入项:

  • 父哈希(gP) , 或者你新创建的区块通过一个幽灵指针所指向的父区块
  • 所有交易的哈希(Tx) , 你计划打包到区块中的所有交易的哈希 , 所以你无法事先计算VDF
  • d , 上一步的难度系数
所以 , 在节点提议区块之前 , VDF函数计算长这样:
VDF(gP, Tx, d) = z
在实践中 , 为了确保对输出项z的验证是非交互的 , 节点提议者需要将中间证明以及最终输出项插入提议区块中 。
所以 , 对计算VDF函数的节点来说 , 他们可能会遇到类似这样的延迟(这是个极简的视图 , 不考虑其他完成有效工作例如打包区块、处理交易等所导致的延迟):
证明|何在不使用工作量证明的情况下实现公平且高效的提议
本文插图

出于解说需要 , 这是从均匀分布中生成的 。
截至撰稿时 , VDF仍旧是极具实验性的技术 , 且正在经历积极的研究与测试 。 Taraxa会与开源领域最优秀的人以及学术社区合作学习 , 确保我们的账本采用的是最稳定、最高效、最安全的方案 。


推荐阅读