一文读懂可验证随机函数(VRF
在密码学中,可验证随机函数(VRF)是一种随机数生成器(RNG),可以通过加密手段来验证随机性。可验证的随机数对许多区块链应用来说都是不可或缺的要素,因为这类随机数具有防篡改性和不可预测性,可以用来打造刺激的游戏体验,铸造罕见的NFT,并保障公平的结果。
本文将讨论什么是可验证随机函数,研究随机数在区块链上的应用,以及智能合约开发者如何利用Chainlink可验证随机函数(VRF)在dApp中获得安全的随机数来源。
什么是可验证随机函数( VRF )?
可验证随机函数是一种加密函数,基于数据输入生成伪随机数并附上一份证明,任何人都可以对其进行验证。
VRF的数据输入通常包含一对公钥和私钥(也称为“verification key”和“secret key”)以及一个seed。公钥和私钥是生成的,而seed则是选择的。将这些数值一起输入VRF,用私钥和seed来生成随机数。然后,VRF会生成一个随机数以及一份证明。最关键的一步是生成证明,因为用户可以通过证明来验证函数。而将私钥保密则可以确保随机数无法被预测。
可验证随机函数的关键特质都写在了它的名字里:
-
可验证 ——任何人都可以验证VRF生成的随机数是否有效,只需要查看证明并验证哈希计算结果是否正确即可。只有持有VRF私钥的人才能进行哈希运算,而任何持有公钥的人都可以验证哈希运算结果。
-
随机 ——对于不知道seed或不持有私钥的人来说,VRF输出的结果完全不可预测且概率均匀分布,没有任何规律可循。VRF输出的每个结果都拥有同样的概率,并使用seed和私钥,以独特的方式生成随机数。
-
函数 ——VRF使用数学算法来生成随机数以及证明。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将在未来仍是一项重要技术。
VRF 的应用场景
大多数RNG都无法生成可以通过加密技术进行验证的随机数,因此这类RNG容易受到操纵,导致其应用场景受限。VRF如果能保障随机数的安全性,就可以解锁一系列关键的用例,其中包括:
-
网络安全 ——使用VRF保障域名系统(DNS)消息传输的安全性。
-
零知识技术 ——VRF可以用来打造零知识证明和零知识数据库。
-
非交互式抽奖系统 ——VRF可以为抽奖游戏保障公平、可验证且高效的结果。
-
可验证的交易托管机制 ——VRF可以支持自动托管服务,保障用户的匿名性。
-
区块链和智能合约 ——VRF已经成为了去中心化协议和应用重要的组成部分。
区块链中的 VRF
包括Algorand、Cardano、Internet Computer和 Polkadot 在内的许多L1区块链都在共识机制中使用了VRF来随机选择出块节点。
另外,区块链智能合约开发者在开发应用时也需要随机数。然而,由于区块链网络具有高确定性,链上应用往往无法获得安全的随机数生成器。使用链上区块哈希生成随机数有可能被区块链矿工/验证者操控,他们可以放弃对他们不利的区块,重新“掷色子”,以改变随机数。而链下随机数则缺乏透明性,而且无法验证随机数是否公正且没有受到数据源或节点的操控。
可以利用链上生成随机数方案的漏洞谋取私利。
稳健的随机数生成方案意味着随机数的公平性可以得到验证,所有参与者都拥有同样的概率,并且攻击者不太可能通过预测随机数来操纵智能合约。
Chainlink VRF
Chainlink VRF 是公平、可验证的RNG,可以满足上述需求,为智能合约提供具有加密证明的安全随机数,无法被预言机节点、用户或开发团队篡改。
Chainlink VRF可以为开发者带来以下好处:
-
不可预测性 ——Chainlink VRF无法被预测。由于在请求随机数时无法得知区块数据,因此任何人都无法通过预测随机数来提高自己的成功概率。
-
公平性 ——Chainlink VRF非常公平公正,因为随机数是均匀分布的,所有数字都有同样的概率被选中。
-
随机性 ——Chainlink VRF的随机性可以得到验证,因为其使用区块哈希作为seed来生成随机数,而区块哈希无法提前预知。
-
防篡改性 ——Chainlink VRF具有防篡改性,任何人,包括预言机、外部方或开发团队,都无法操纵随机数生成流程。
Chainlink VRF是用户和区块链之间的抽象层,可以帮助智能合约开发者访问安全的随机数来源。
Chainlink VRF采用了开源代码和加密技术,生成防篡改的随机数,用户可以验证随机数的真实性。
Chainlink VRF采用了Goldberg的可验证随机函数(VRF),详情请查看这篇论文。Chainlink VRF会针对每一个随机数请求生成一个或多个随机数,并附上一份随机数的加密证明。这份证明会被发布到链上并在链上得到验证,验证通过后才会使用随机数。
Chainlink VRF 的应用场景
Chainlink VRF目前正在为Web3生态中的众多应用提供安全的链上随机数来源,其中包括GameFi、DeFi以及NFT等项目。
ChainlinkVRF的应用场景包括:
-
为 NFT 分配随机属性 ——Chainlink VRF可以用来铸造特殊的NFT。比如, Axie Infinity 使用Chainlink VRF为每个Origin Axie 赋予随机属性。
-
公平地分配罕见 NFT ——Chainlink VRF可以证明NFT是公平分配的,且证明可以得到验证。比如,Bored Ape Yacht Club(BAYC) 使用Chainlink VRF向BAYC NFT持有者随机分配变异血清NFT。
-
游戏结果无法预测 ——开发者可以利用随机数打造出更好玩的区块链游戏。比如,Blockmine使用Chainlink VRF在Next Card游戏中随机抽取卡牌。
-
公平地选出参与者 ——发放热门活动门票,抽取奢侈品预售的买家,以及选出热门公开发售活动的参与者。比如,Centaur使用Chainlink VRF选出链上公开发售活动的参与者。
-
随机选出中奖者 ——Chainlink VRF可以让用户验证中奖者的筛选流程是否公平公正。比如,PoolTogether是一个无损储蓄游戏,将用户存款放在一个资金池中,并每天和每周展开抽奖,将池子的收益随机分配给中奖者。
PoolTogether利用Chainlink VRF随机选出无损储蓄游戏的中奖者。
总结
Chainlink VRF是区块链行业领先的安全随机数生成器(RNG),为智能合约和链下系统提供可验证且防篡改的随机数来源。
Chainlink VRF通过加密技术为开发者保障随机数的安全性和可验证性,帮助他们打造出更加开放、可访问且防篡改的系统。Chainlink VRF和智能合约将实现区块链的最终愿景,基于加密事实打造出更加强大的算法系统,取代当前基于信任的薄弱系统。
如果你是一名开发者,并希望快速将智能合约连接至Chainlink VRF,请查看开发者文档并加入我们在Discord上的技术讨论群。如果你希望安排一次电话会议具体讨论集成事宜,请点击此处联系我们。
扩展阅读
-
《一文读懂智能合约》
-
《一文读懂区块链预言机》
-
《Solidity语言的随机数生成(RNG)》
-
《如何在NFT(ERC721)中获得随机数》
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum