# 可验证随机函数（VRF）的介绍

By [爱摆烂的人](https://paragraph.com/@0xe9437d2066efe3facb26d6b83e3ad68a781efee3) · 2023-07-22

---

**_在密码学中，可验证随机函数（VRF）是一种可以通过加密的方式验证随机性的随机数生成器（RNG）。可验证的随机数对于许多区块链应用程序是必不可少的，因为它们具有防篡改和不可预测性。这些可用于创造令人兴奋的游戏体验、生产稀有的 NFT 并确保公平的结果。_**

**什么是可验证随机函数（VRF）？**
====================

可验证随机函数是一种加密函数，它根据数据输入生成伪随机数，并附加任何人都可以验证的证明。

VRF 的数据输入通常包括一对公钥和私钥（也称为“验证密钥”和“秘密密钥”）以及种子。公钥和私钥是在选择种子时生成的。该信息被输入 VRF，VRF 使用私钥和种子生成随机数。然后，VRF 产生一个随机数和相应的证明。这里的关键步骤是生成这个证明，因为用户可以使用它来验证该函数。对私钥保密可确保随机数无法预测。

可验证随机函数的关键特征都在其名称中：

*   可验证——任何人都可以通过检查证明并验证哈希计算结果是否正确来验证 VRF 生成的随机数是否有效。只有持有 VRF 私钥的人才能执行哈希运算，而拥有公钥的任何人都可以验证哈希运算的结果。
    
*   随机——对于那些不知道种子或没有私钥的人来说，VRF 的输出是完全不可预测的，并且具有均匀分布，没有可辨别的模式。VRF 传递的每个结果都具有相同的概率，并使用种子和私钥以独特的方式生成随机数。
    
*   功能 - VRF 使用数学算法生成随机数和证明。VRF 隐藏种子以确保不可预测性。同时，它使随机性证明可以公开供每个人查看和验证。
    

**VRF的应用**
==========

大多数 RNG 无法生成可以通过密码验证且可以轻松操纵的随机数，从而限制了它们的用例。然而，如果 VRF 能够确保随机数的安全性，它就可以解锁一系列关键用例，包括：

*   网络安全 – VRF 保障域名系统 (DNS) 消息传输的安全。
    
*   零知识技术——VRF可用于开发零知识证明和数据库。
    

非交互式彩票系统 – VRF 确保彩票游戏的公平、可验证和高效结果。

可验证交易托管机制——VRF支持自动托管服务，保护用户匿名。

区块链和智能合约——VRF 已成为去中心化协议和应用程序的重要组成部分。

包括 Algorand、Cardano、Internet Computer 和 Polkadot，许多 L1 区块链在其共识机制中使用 VRF 来随机选择区块生产者。

此外，区块链智能合约开发人员在开发应用程序时需要随机性。然而，由于区块链网络的高度确定性，基于链的应用程序通常无法访问安全的随机数生成器。使用链块哈希来生成随机数可能会受到区块链矿工/验证者的控制，他们可以放弃对他们不利的区块并重新掷骰子来改变随机性。链下随机性缺乏透明度，无法验证随机数是否公平且不受数据源或节点操纵。

鲁棒的随机性生成解决方案意味着随机性的公平性可以得到验证，每个参与者都有相同的概率，攻击者不太可能通过预测随机性来操纵智能合约。

**WINkLink 的随机数服务**
===================

VRF（可验证随机函数），可以产生安全可靠的随机数。随机性由用户提供的种子、nonce（VRFCoordinator合约的私有状态）、请求所属的区块哈希以及随机数生成节点的私钥决定，节点无法作弊。这个随机数在返回给用户Dapp之前经过验证，保证了这个随机数的安全。

随机数生成过程如下：

1.  用户合约在链上发出请求以生成随机数。
    
2.  一旦节点监听到请求，它就会在链外生成随机数和证明，然后在链上合约内做出响应。
    
3.  链上合约验证生成的随机数，验证成功后，通过回调函数向用户 DApp 提供反馈。
    

它可用于任何需要可靠随机数的应用：

*   区块链游戏和 NFT
    
*   职责和资源的随机分配（例如，法官随机分配案件）
    
*   共识机制代表性样本的选择

---

*Originally published on [爱摆烂的人](https://paragraph.com/@0xe9437d2066efe3facb26d6b83e3ad68a781efee3/vrf)*
