目前想在aptos链上做一个抽奖功能,比如100个参与者里抽一个开奖,需求是可以公示的随机(即用户可以通过公开的信息验证抽奖环节是否作弊)。 例如,取最后一个参与者发起交易的区块为final_block 令block_hash(final_block+10)%100编号的参与者中奖,这样就保证了可以公示和随机性两点。 但是不幸的是aptos链并没有提供按区块高度取哈希或者nonce的方法,这让我一时无措。 请问各位大佬,为了这样的需求还可以通过什么seed去产生随机数呢?
final_block
block_hash(final_block+10)%100
在链上生成一个安全的随机数, 目前通常的方案是使用 ”提交“ 和 ”揭示“ 两个阶段。
例如: 先”提交“了一个数的(假设称为nonce) hash, 每个用户在参与时进行一些记录生成一个数, 最后开奖时 , 再”揭示“ nonce 值(之前的hash确保的nonce的正确),然后用nonce 和 用户参与获得的值生成一个最终用户中奖的随机数。
nonce