a16z:公共随机性和随机性信标
公共随机性是许多现实世界安全协议的一个重要组成部分。在一些应用中,如赌博和多人游戏,随机性增加了乐趣。在其他应用中,随机性提供了一种公平的方式来分配不可分割的资源,从绿卡,到巡回法庭法官的案件分配,再到体育比赛的种子选手。它也被用来分配负面资源,如税务审计或机场的二次安检。 传统上,我们依靠受信任的机构来为这些协议产生随机性,但在Web3世界中,我们需要做得更好。在这篇文章中,我们将探讨通过分布式随机信标建立可公开验证的随机性的方法,然后讨论一些链上应用。(第二部分即将发布,将特别关注领导者选举,同时提供对其他领导者选举方法的评估)。 预期的属性 生成随机数是一项众所周知的微妙任务。例如,许多加密密钥被泄露,因为它们依赖于一个有问题的随机数发生器(Cloudflare的wall of lava lamps可以作为一个创造性的缓解措施)。然而,这只是私人随机性,只有一方需要生成和使用它。 相比之下,公共随机性是一个多方参与的过程,这大大增加了难度。一个好的产生公共随机性的协议将具有以下安全特性: 无偏向性。没有攻击者或攻击者联盟能够偏袒输出。 可靠的。没有攻击者能够阻止协议产生输出。 可验证的。任何人都可以很容易地验证协议的输出,并且应该看到与其他人一样的输出。 不可预测的。如果协议在时间T1产生输出,在某个时间T0<T1之前,没有人能够预测任何关于输出的事情,最好是T0非常接近T1。 不可偏倚性是一个比不可预测性更弱的属性,因为任何可预测的协议都必须是不可偏倚的。计算机科学家会说,不偏倚性降低到不可预测性,因为如果你能偏倚,你就能预测。但有时我们会想把它们分开来推理,因为它们可能依赖于不同的假设,例如,一个不诚实的多数人可能会预测结果,但不会偏向它。 除了这些特性之外,该协议应该是高效运行的,并产生大量的随机比特。(在实践中,应用程序通常足以产生128个随机比特,用它们作为伪随机数发生器PNRG的种子,根据需要输出更多的比特。然而,不可预知性应该保持在输出的每个单独的位上,以用于诸如彩票或资源分配等应用)。该协议最好在通信和计算成本方面也是有效的。 不同的协议可能在不同的条件下实现这些属性。例如,一些协议可能是由任何f1个恶意节点组成的联盟不可偏袒的,而由任何f2<f1个恶意节点组成的联盟是不可预测的。也有不同程度的偏见。例如,在一些协议中,一个参与者可能能够通过 “一个比特”来偏置输出——这意味着他们可以在两个可能的输出中选择一个。其他攻击可能允许他们完全固定输出。然而,通常情况下,我们根本不想容忍任何偏见(或可预测性)。 加密学的理想:随机性信标 密码学家们经常从思考他们问题的理想解决方案开始。在公共随机性的情况下,随机性信标是一种理想化的服务,它定期产生满足所有必要安全要求的随机输出。 这样一个理想化的随机性信标,类似于其他密码学的抽象概念(如随机信标或通用组模型)在现实世界中并不存在。但这是一个值得努力的目标,也是推理依赖公共随机性的协议的有用模型。 我们可以考虑几个理想随机性信标的近似值。 […]








