【白皮书解读】Supra DVRF: 分布式可验证随机数方案
2023-09-12 07:30
Supra 中文
2023-09-12 07:30
订阅此专栏
收藏此文章



以下内容是 Supra 分布式 DVRF 白皮书的解析版本。如需更详尽的分布式预言机协议,请点击原文链接查看完整的白皮书。



写在前面

随机性是计算系统中实现安全性重要因素之一,更是在任何公钥密码的方案设计中不可或缺的一部分。例如,生成真正的随机数对于成功实现诸如多方计算和零知识证明等加密方法至关重要。随机性还可以应用于其他目的,比如在线抽奖获胜者的选取或设置游戏奖品、区块链游戏的随机性体验,以及其他类型的随机选择过程。


什么是良好的随机性

如前所述,生成良好的随机数对许多类型的计算至关重要,但什么是“良好”的随机数?良好的随机具备以下特点:

  • 不可预测性:没有人能够提前计算出它们;

  • 不受偏见影响:良好的随机数不会受到特定数字偏见(比其他数字出现概率更高)的影响;

  • 公开可验证性:任何人都可以验证数字是否计算正确。


从技术角度来说,不可预测性的属性比不受偏见影响性更强。因为任何预测都会导致对预测值的偏见,而随机数可能是可预测的,但不受“偏见”影响。


01

可验证随机函数(VRF)

一个理想的随机性来源可以被建模成一个函数。这种类型的函数以一个数字作为输入,并返回一个具备以上所有特性的数字。可验证随机函数(Verifiable Random Functions,简称 VRF)是密码学对象,根据给定的输入和随机选择的密钥,产生“与随机一样”的输出(在技术上称为伪随机)。


这意味着只要保持密钥足够私密,对于所有实际(在技术上称为概率多项式时间)目的来说,上述特性全都会得到满足,从而将有效防止随机性原本意图防范的攻击类型。然而,一旦密钥被泄露,该函数就变得可预测,因此不再产生“良好”的随机性。


需要强调的是,即使是一个简短的密钥(比如 128 位密钥),也可以为每个输入生成许多伪随机字符串。因此,真正的挑战其实在于保护密钥的安全性。在 Web3 环境中,保护一个密钥并在链上计算随机性相当具有挑战性(并且昂贵)。因此,最佳方法是在链下计算 VRF,然后通过加密证明在链上验证其合法性。


02

分布式 VRF 

中心化 VRF 与我们的模型相反,它的计算依赖于单个节点来存储密钥。这种模型容易导致单点故障,因为任何对于该节点的威胁都会导致关键的安全漏洞,使所有随机数都变得可预测。这将导致使用随机数的协议或应用容易受到攻击,违反公平竞争的假设,同时也从根本上违背了 Web3 的分布式伦理原则。因此,我们选择使用分布式可验证随机函数(DVRF),以替代中心化 VRF。DVRF 是 VRF 的扩展,具有更强大的去中心化属性。


与中心化 VRF 相比,在我们的 DVRF 框架中没有单个节点可以访问整个密钥。在设置阶段,密钥以一种密码学的安全方式(使用 Shamir 的秘密共享)在一定数量(假设为 N )的节点之间进行共享, 这样一来,任何 N 中的 T+1 节点(其中 N > T)都持有完整的私钥,但任何 T 或比 T 更低的节点将无法获得密钥。在此前提下,系统对最多到 T 节点的威胁是有弹性的,并且至少需要 T+1 个节点参与才能成功执行。N 和 T 参数的选择是为了优化 DVRF 的安全性和实用性。


因此,至少需要 T+1 个节点共同进行 VRF 计算。每个节点使用其各自的密钥份额计算部分评估,任何人都可以公开将它们聚合在一起并计算最终输出。这意味着密钥从未在同一个地方重建,始终保持分布式。


重要的是,VRF 验证过程对于 VRF 输出是由 DVRF 还是中心化 VRF 是完全不知情的(甚至是使用的 N、T 的值)。这使得该框架具有灵活性,类似于阈值签名。最后,通过部署分布式密钥生成协议,设置阶段可以完全去中心化。


03

DVRF 要求及设计方案

DVRF 除了拥有上述诸多优点,相比于其他 VRF 模型,它也引入了新的安全性机制,并具备以下特征:


  • 一致性:保证任意 T+1 节点的参与均不会影响结果,确保验证过程对 VRF 生成过程完全隔离,同时支持架构的灵活性(例如,依据需求,T 可以被变更)

  • 抗扰性:保证聚合过程必须检测到不合法的部分评估数据并将其丢弃。这确保一个合法聚合的 VRF 输出始终是正确的,并使参与者可以立即对其负责;

  • 可用性:无论对手如何行动(包括不响应等),只要它威胁的节点数少于 T,都必须计算出正确的 VRF 输出。这对于保持系统的活跃性至关重要;

  • 强伪随机性:即使最多有 T 个节点受到威胁并有勾结的可能,VRF 输出仍然是伪随机的。


我们的设计选择以可证明的方式满足了所有这些属性,这些将在下文详细阐述。我们的设计目标是确保 DVRF 在实践中具备高度的安全性、可用性和可靠性。


我们使用一种名为 GLOW 的结构 [Galinodo 等人 - Euro S&P’21],它在很大程度上基于 BLS 阈值签名。回想一下,一个 T 节点(N>T)的阈值签名可使得任何 T+1 节点生成签名。这意味着我们 DVRF 设计的一致性可以直接得到保证。DVRF 设计还要求在聚合过程中由聚合器验证每个部分签名。为此,在 GLOW 中使用了专用的零知识证明(ZKP)。


对于 ZKP 的使用,不仅使得部分签名的验证成为可能,还确保了强伪随机性。另一种替代方法(Dfinity 的分布式随机性信标所采用的方法)使用部分 BLS 验证代替 ZKP。尽管这确保了抗扰性,但与 GLOW 相比存在两个缺点:


  • 它无法被证明具有强伪随机性,因为 BLS 验证不使用零知识证明;

  • 部分验证涉及成对计算,其速度大约比 ZKP 验证慢 2.5 倍。


最终的 VRF 输出仅仅是一个签名的哈希值。相比之下,签名本身被提供作为一个证明。这意味着可以通过检查证明是否确实是 BLS 签名,以及 VRF 输出是否为其哈希值,来验证 VRF 输出的正确性。最后,为了保证可用性,我们允许一个破坏阈值 T,使得 N 至少为 2T+1。这确保了即使 T 个节点被威胁并保持沉默,仍然有 T+1 个诚实节点可以正确计算 VRF。以上就是如何满足所有重要属性的方式。


04

可保持输出隐私的 DVRF

尽管上述设计可以满足将已生成随机数立即公开的应用程序,但它严重限制了 VRF 服务的使用方式:


i) 首先,在应用程序启动前,随机数无法提前被请求并准备,请求必须与应用程序同步,从而产生了延迟成本;


ii) 其次,由于输出是公开的,因此它无法在将来被重复使用(例如,使用计数器模式哈希生成多个随机值,以便不时之需)。因为请求者每次需要新的随机数时都必须进行单独的请求,这也导致了 Gas 和 VRF 服务费用相关的成本上升。


简而言之,这迫使用户必须精心设计他们的游戏 / 服务,以确保他们的玩家 / 客户不能利用公开的 VRF 输出。此外,用户需要确保系统的响应时间和费用开销在合理范围内。


为了解决这个问题,我们提出了“可保持输出隐私的分布式可验证随机函数”(Output Private DVRF,或 PVRF)这一新概念。PVRF 必须满足 DVRF 的所有属性外,同时还要满足一个附加属性输出隐私性:这意味着 VRF 函数的输出对除了用户应用程序以外的所有实体都是隐藏的,但用户可以在未来将其公开。


基于 GLOW,我们提出了一个新的设计以满足我们的 PVRF 定义。具体来说,用户使用一个盲化因子对输入进行盲化(尽管不需要输入隐私),然后将盲化后的输入与正确盲化的零知识证明一起提供给 VRF 节点。接下来,VRF 节点使用盲化后的输入计算生成盲化的部分输出,并将这些部分输出聚合以构造盲化的输出。当需要时,用户可以使用相同的盲化因子将这个盲化的输出还原为原始输出。


尽管 PVRF 的设计有一些额外的要求,但这个附加特性几乎没有额外开销,因此不会损害效率。然而,由于盲化,安全性变得更具有优势。这扩展了隐私 VRF 的应用范围。值得注意的是,这个概念在传统的密码学文献中从未被考虑过,因此 Supra PVRF 为密码学领域的重要概念贡献。


05

Supra DVRF 框架

现在,让我们简述下面 图 -1 中所示的 Supra VRF 框架。我们从基本框架开始。这些步骤根据执行顺序进行了列举。在第一步中,用户向智能合约提供输入并创建了一个 VRF 输入。VRF 输入以图示方式完成创建,确保可以轻松追踪查询。此外,在此过程中我们还避免了恶意行为,比如重复查询或有选择地拒绝输出以施加偏差。

接着,中继 / 聚合节点获取 VRF 输入,然后将其转发给 VRF 服务节点(在 Supra 术语中也称为 VRF 族群),并由 VRF 族群中的节点分别返回计算的部分评估,这些部分评估随后由中继 / 聚合节点聚合。然后,聚合的输出将被返回给调用合约,在验证 VRF 的同时使用输出调用用户回调函数。


06

优化后的 Supra DVRF 框架

为了优化基本框架,我们允许同时进行多个 VRF 请求。这在 图 -2 中有所描绘。在这种情况下,一旦所有请求的部分输入被返回并在中继 / 聚合节点处聚合(如下面的步骤 5 和 6),VRF 输出就会被发送到 Supra SMR 服务。

紧接着,Supra SMR 服务会分别验证每个输出。如果所有输出都验证成功,它会根据调用的智能合约(例如,在以太坊中,这将是 ECDSA)在整个 VRF 输出集上产生适当的签名。

“批处理”签名连同 VRF 输出一起被发送到调用的合约,然后仅在调用的合约中验证签名(而不是单独验证每个 VRF)。这节省了大量的 Gas 成本(例如,在以太坊中,批处理 5 个输出可以将 Gas 成本降低 30 倍),因为验证每个 VRF 通常涉及复杂的操作,如双线性配对和哈希到群组。例如,在以太坊上,这大约需要 200,000 Gas;现在与 ECDSA 相比,后者只需要约 30,000 Gas。


07

Supra PVRF 框架

在 图 -3 中描述的 PVRF 框架与上述框架非常相似,只是在合约和用户之间增加了一轮交互。这是因为一旦合约创建了输入,它会将输入发送回给用户进行盲化,并计算零知识证明已完成正确盲化,如下图中步骤 1、2 和 3 所示。其余流程几乎保持不变。此外,我们还可以通过直接使用 SMR 服务来优化此过程。
当然,与中心化 VRF 相比,使用 DVRF 在计算效率、通信成本和系统复杂性方面存在轻微的劣势。然而,它在安全性方面的收益显著地超过了其潜在的不足,最重要的是,分布式 VRF 真正体现了区块链技术的内核,即去中心化精神。



写在最后

Supra 的 VRF 服务提供了一个快速、可靠、去中心化的 VRF 服务,结合了创新的功能和最前沿的技术。我们部署了一个最先进的分布式 VRF 原语(即 GLOW),它被证明比市场现有方案更安全(得益于强假随机性),Supra 可以提供行业里第一个可保持输出隐私的 VRF 服务。同时,由于我们使用了零知识证明和通用优化技术,结合 Supra 的 SMR 服务让整个方案更加经济高效。

如果您想通过正式的撰写、定理和证明来揭示我们的分布式 VRF 设计的技术奥秘,请查阅完整版 Supra DVRF 白皮书。


(本文为【Supra 中文】原创内容,未经账号授权,禁止随意转载;如需转载,请在公众号消息栏发送“转载”关键字获得相关信息)
免责声明
本文为知识科普交流之用,不作为任何投资建议。

关于 Supra
Supra 是一个具备原生预言机和 VRF 等功能并实现跨链互操作的中间服务层——IntraLayer。旨在链接 L1 和 L2,为开发者社区提供全面的中间服务,为保护未来金融市场和推动 Web3 应用落地而打造的高速、安全、可扩展的跨链互操作核心基础设施。【Supra 中文】也将持续为读者提供更有价值、更有深度的区块链行业内容跟干货

往期推荐

For Better Blockchain

项目进展Supra 最新 Roadmap

白皮书解读丨分布式预言机方案 --DORA

白皮书解读“无桥”跨链协议 --HyperNova

点击“阅读原文” ,查看更多官方频道

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

Supra 中文
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开