智能合约中使用更安全的随机数(代码实战篇)

Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。

我们先简要介绍一下Chainlink VFR的工作流程。

  1. 首先,智能合约应用,也就是我们的Dapp,需要先发起一个获取随机数的请求,这个请求需要给定一个合约地址,这个合约称为VRFCoordinator合约。
  2. 与VRFCoordinator合约所关联的Chainlink链下节点,会(通过椭圆曲线数字签名算法)生成一个随机数,以及一个证明。
  3. Chainlink节点将上面生成的随机数和证明发送到VRFCoordinator合约中。
  4. VRFCoordinator合约收到随机数和证明后,会对通过证明来验证所生成随机数的合法性。
  5. 随机数验证成功后,会将随机数发送回用户的智能合约应用

整个过程中有两次的交易提交确认的过程,用户合约需要支付LINK给VRF合约作为交易费用。

下面我们就通过写一个猜数字的小游戏,来学习如何使用Chainlink VRF。

首先,新建一个truffle项目,安装Chainlink开发包

mkdir vrf; cd vrftruffle initnpm install @