智能合约中使用更安全的随机数(代码实战篇)
Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。
我们先简要介绍一下Chainlink VFR的工作流程。
- 首先,智能合约应用,也就是我们的Dapp,需要先发起一个获取随机数的请求,这个请求需要给定一个合约地址,这个合约称为VRFCoordinator合约。
- 与VRFCoordinator合约所关联的Chainlink链下节点,会(通过椭圆曲线数字签名算法)生成一个随机数,以及一个证明。
- Chainlink节点将上面生成的随机数和证明发送到VRFCoordinator合约中。
- VRFCoordinator合约收到随机数和证明后,会对通过证明来验证所生成随机数的合法性。
- 随机数验证成功后,会将随机数发送回用户的智能合约应用
整个过程中有两次的交易提交确认的过程,用户合约需要支付LINK给VRF合约作为交易费用。
下面我们就通过写一个猜数字的小游戏,来学习如何使用Chainlink VRF。
首先,新建一个truffle项目,安装Chainlink开发包
mkdir vrf; cd vrftruffle initnpm install @