【问题标题】:Assigning giveaways based on cryptocurrency block header根据加密货币区块头分配赠品
【发布时间】:2018-02-07 06:00:26
【问题描述】:

我正在构建一个每周一进行赠品的项目。共有三个奖品,基本奖、“幸运”奖和头奖奖。基本奖在 70% 的时间里发放,幸运奖在 25% 的时间里发放,头奖奖在最后 5% 的时间里发放。

每个星期一都有多人获得奖品。赠品中的每个人都至少获得基本奖品。

现在我只是在本地计算机上生成一个随机数,然后将奖品分配给每个参与者。这行得通,但参与者必须相信我没有操纵赠品。

我想通过使用区块链作为随机数生成器来改进这个赠品。问题是我不知道如何在技术上做到这一点。

这是我开始弄清楚如何做到这一点:创建赠品时,区块高度被定义为随机性的来源。每个参与者都有一个用户 ID。当找到特定的块号时,将块哈希连接到用户ID,然后进行哈希处理。然后,生成的哈希值会在赠品中定义的赔率中“排列”。

我想不通的部分是如何进行“测距”。我认为它可能涉及模运算符,但我不确定。如果生成的哈希值落在 5% 的范围内,那么该用户将获得头奖。如果哈希值落在 70% 的范围内,那么他就得到了基本奖,等等。

【问题讨论】:

    标签: python probability blockchain


    【解决方案1】:

    我想通了,解决方法如下:

    int(hashlib.sha256(block_header + userID).hexdigest(), 16) / float(2**256)

    您将散列转换为整数,然后将该整数除以 2**256。这为您提供了一个从 0 到 1 的小数,可以与 random.random() 进行比较以获得奖品。

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多