跳转到内容

抽奖

抽奖是一个存放 takoGRAM 的金库。金库中所有存款产生的收益都会进入奖池,每个周期抽出一名中奖者。你的本金本身永远不会成为奖金的一部分:你随时都能取回你存入的部分。

  1. 你把 takoGRAM 发送到金库。金库按当前汇率以 Gram 记录你的存款。
  2. 在你参与期间,你存款的收益进入奖池,而不是给你。
  3. 每个周期抽奖结束,并使用公开随机数选出中奖者。
  4. 奖金被加到中奖者的存款中,他们会带着奖金继续参与。
  5. 你退出时,会全额拿回本金,外加你赢得的奖金。

你的中奖概率与你的存款成正比:在总额 10,000 Gram 的抽奖中存入 1,000 Gram,有 10% 的概率赢得头奖。把一笔存款拆成多笔小额存款不会改变任何结果。

存款至少锁定一个周期。如果没有锁定,有人可以在开奖前一刻进入,拿走别人存款赚来的部分奖金,然后离开。有了锁定,晚进入就要付出整整一个周期的收益,而这恰好等于一次抽奖的平均价值。

每次抽奖最多可以有五名中奖者分享奖金。每笔奖金的一部分会进入可滚存的头奖奖池(jackpot):每次开奖时,第一名中奖者有固定概率拿走它,否则它会继续累积。在测试网上,每小时开奖一次,有三名中奖者,每笔奖金的 20% 进入头奖奖池,平均每十次开奖有一次会开出头奖。

任何 Telegram 群聊都可以拥有自己的抽奖。它的金库地址由群聊 id 推导得出,所以机器人和应用不需要任何注册表就能找到它,重复创建也会得到同一个金库。见 Telegram。

中奖者由 drand 决定。drand 是一个由多个独立机构组成的网络,每 3 秒发布一个随机数。在 drand 发布之前,没有人知道这个数字,包括 Tako 团队、验证者以及发起开奖的人。

  • 抽奖结束时,会锁定大约一分钟之后的某个 drand 轮次。在该轮次公布之前,存入和提取都会暂停。
  • 合约会在链上自行用 drand 的公钥验证该轮次的签名。
  • 中奖票号等于随机数对总存款取模。持有这张票的人就是第一名中奖者。

在 浏览器 中打开任意一次抽奖,点击 Check against drand。你的浏览器会从 drand 下载签名,并重复两项检查:用 drand 的公钥验证 BLS 签名,以及确认金库的随机数是该签名的哈希。页面还会显示哪张票中奖。数学原理见 随机数。