PlatON开放链上随机数能力 | 技术云图

PlatON开放链上随机数能力 | 技术云图

随着PlatON 1.2.0 升级完成,PlatON内置合约提供的VRF随机数能力也完全开放使用,智能合约的开发者可以利用PlatON提供的随机数合约获取去中心化、可验证、防篡改、安全的随机数。

在公有链上通过共识算法独立产生不可预知的随机数是困难的,一般的链上随机数获取方式是通过链上的参数作为随机源,如blockhash,虽然blockhash是随机的,但可能会受到矿工的扣留攻击。

Chainlink提出了一种链下解决方案。在Chainlink V2版随机数解决方案中,在链下由Chainlink产生一个随机的Seed,通过其节点的密钥生成一个随机数和一个可以在链上验证的证明,现在虽已被广泛应用,但需一定额外手续费。

中心化的随机数提供商可能会为了利益而操纵随机数。传统的RNG解决方案无法保障数据不被篡改,因此用户只能盲目相信随机数是真实可靠的。

PlatON的链上随机数来源于区块Header中的Nonce字段,该字段由父区块的Nonce作为种子,由当前区块的提议人私钥签名产生的随机数。在使用时,取该字段的第[1,33]字节为可验证的随机数的随机源。

PlatON的共识算法Giskard中使用了VRF算法做验证人选取,其链上Nonce(VRF和证明)天然的具备安全、可验证、随机性、不可篡改的特点。

由于PlatON网络中的所有验证人节点都将对区块Header中的Nonce字段做验证,该字段也会应用于PlatON共识节点的随机选取,安全性已经得到充分验证。

提议人虽然可提前获取随机数,但并不能做任何恶意行为,因此安全性是可以得到保障的。如果该字段非法,则当前区块不能获取验证人的签名,从而无法被确认。

PlatON最多支持返回500个随机数,合约开发者也无需在合约层重复验证即可使用,而且无需除Gas以外的费用,合约开发者直接通过合约调用即可获取随机数,真正做到简单、高效、易用。

参考:


PIP-8: 

https://github.com/PlatONnetwork/PIPs/blob/master/PIPs/PIP-8.md

使用教程:

https://devdocs.platon.network/docs/zh-CN/get_vrf_random_number

本文转载自https://mp.weixin.qq.com/s/U6F0_KgVfXaWJZ8eV7V_cA

(0)
上一篇 20 4 月, 2022 10:54
下一篇 21 4 月, 2022 09:29

相关推荐

发表回复

登录后才能评论