本文将讨论什么是可验证随机函数,研究随机数在区块链上的应用,以及智能合约开发者如何利用Chainlink可验证随机函数(VRF)在dApp中获得安全的随机数来源。

在密码学中,可验证随机函数(VRF)是一种随机数生成器(RNG),可以通过加密手段来验证随机性。可验证的随机数对许多区块链应用来说都是不可或缺的要素,因为这类随机数具有防篡改性和不可预测性,可以用来打造刺激的游戏体验,铸造罕见的NFT,并保障公平的结果。
本文将讨论什么是可验证随机函数,研究随机数在区块链上的应用,以及智能合约开发者如何利用Chainlink可验证随机函数(VRF)在dApp中获得安全的随机数来源。
可验证随机函数是一种加密函数,基于数据输入生成伪随机数并附上一份证明,任何人都可以对其进行验证。
VRF的数据输入通常包含一对公钥和私钥(也称为“verification key”和“secret key”)以及一个seed。公钥和私钥是生成的,而seed则是选择的。将这些数值一起输入VRF,用私钥和seed来生成随机数。然后,VRF会生成一个随机数以及一份证明。最关键的一步是生成证明,因为用户可以通过证明来验证函数。而将私钥保密则可以确保随机数无法被预测。
可验证随机函数的关键特质都写在了它的名字里:
可验证随机函数这个概念是在1999年由知名计算机科学家和数学家Silvio Micali、Michael Rabin以及Salil Vadhan在论文中提出的。值得一提的是,Silvio Micali后来创建了Algorand区块链,Algorand在共识机制中也使用了VRF。
之后,VRF技术出现了一系列关键突破。2005年,Yevgeniy Dodis和Aleksandr Yampolskiy使用了抗碰撞哈希函数实现了更短的证明和密钥,因此提升了VRF的效率,并推动了这项技术的发展。2015年,Dennis Hofheinz和Tibor Jager使用椭圆曲线加密技术开发了可验证安全性的VRF。2019年,Nir Bitansky提出了VRF可以用一般原语构造,而不用简单的代数构造。如今许多VRF方案都建立在这些创新之上。
2020年,研究者提出了一种使用Lattice加密的VRF方案。这个方案的安全性足以抵御量子计算机发起的攻击,这意味着VRF将在未来仍是一项重要技术。
大多数RNG都无法生成可以通过加密技术进行验证的随机数,因此这类RNG容易受到操纵,导致其应用场景受限。VRF如果能保障随机数的安全性,就可以解锁一系列关键的用例,其中包括:
包括Algorand、Cardano、Internet Computer和Polkadot在内的许多L1区块链都在共识机制中使用了VRF来随机选择出块节点。
另外,区块链智能合约开发者在开发应用时也需要随机数。然而,由于区块链网络具有高确定性,链上应用往往无法获得安全的随机数生成器。使用链上区块哈希生成随机数有可能被区块链矿工/验证者操控,他们可以放弃对他们不利的区块,重新“掷色子”,以改变随机数。而链下随机数则缺乏透明性,而且无法验证随机数是否公正且没有受到数据源或节点的操控。

可以利用链上生成随机数方案的漏洞谋取私利。
稳健的随机数生成方案意味着随机数的公平性可以得到验证,所有参与者都拥有同样的概率,并且攻击者不太可能通过预测随机数来操纵智能合约。
Chainlink VRF 是公平、可验证的RNG,可以满足上述需求,为智能合约提供具有加密证明的安全随机数,无法被预言机节点、用户或开发团队篡改。
Chainlink VRF可以为开发者带来以下好处:
Chainlink VRF是用户和区块链之间的抽象层,可以帮助智能合约开发者访问安全的随机数来源。

Chainlink VRF采用了开源代码和加密技术,生成防篡改的随机数,用户可以验证随机数的真实性。
Chainlink VRF采用了Goldberg的可验证随机函数(VRF),详情请查看这篇论文。Chainlink VRF会针对每一个随机数请求生成一个或多个随机数,并附上一份随机数的加密证明。这份证明会被发布到链上并在链上得到验证,验证通过后才会使用随机数。
Chainlink VRF目前正在为Web3生态中的众多应用提供安全的链上随机数来源,其中包括GameFi、DeFi以及NFT等项目。
ChainlinkVRF的应用场景包括:

PoolTogether利用Chainlink VRF随机选出无损储蓄游戏的中奖者。
Chainlink VRF是区块链行业领先的安全随机数生成器(RNG),为智能合约和链下系统提供可验证且防篡改的随机数来源。
Chainlink VRF通过加密技术为开发者保障随机数的安全性和可验证性,帮助他们打造出更加开放、可访问且防篡改的系统。Chainlink VRF和智能合约将实现区块链的最终愿景,基于加密事实打造出更加强大的算法系统,取代当前基于信任的薄弱系统。
如果你是一名开发者,并希望快速将智能合约连接至Chainlink VRF,请查看开发者文档并加入我们在Discord上的技术讨论群。如果你希望安排一次电话会议具体讨论集成事宜,请点击此处联系我们。