帮助中心
常见问题
其它主题
平台协议
基于 TON ...希值的获奖规则

基于 TON 区块链哈希值的获奖规则

2024-10-29 02:11

免责声明:您所在的地区可能不提供本文提及的产品和服务。

1. 如何确定获奖数列?

币安将在活动期间选择一个特定日期,使用该日期 23:59 (UTC) 最后一个 TON 区块链区块哈希值的最后 9 位数字作为获奖数列。

例如:

假设奖励计算日的最后一个 TON 区块链的区块哈希值为:0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=

  • 去掉哈希值中的字母,得到数字:009692996864
  • 最后 9 位数字作为获奖数列:692996864

2. 如何对用户地址进行乘法哈希运算?

币安将使用乘法哈希运算公式“h = 31 * h + value[i]”(类似于 Java 中的“hashCode()”)来确定获奖用户的钱包地址。

计算步骤如下:

1. 将字符串“0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778”转换为小写,得到“0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778”,然后计算哈希码。

2. 每个字符的值通过其 ASCII 码确定:

  • “0”的值为 48;
  • “x”的值为 120;
  • “2”的值为 50;
  • “e”的值为 101;
  • “c”的值为 99;
  • “8”的值为 56;
  • “5”的值为 53;
  • “b”的值为 98;
  • “a”的值为 97;
  • “6”的值为 54;
  • “d”的值为 100;
  • “9”的值为 57;
  • “7”的值为 55。

3. 初始化哈希值:h = 0

4. 处理第一个字符“0”:

  • h = 31 * h + 48
  • h = 31 * 0 + 48
  • h = 48

5. 处理第二个字符“x”:

  • h = 31 * h + 120
  • h = 31 * 48 + 120
  • h = 1608

6. 处理第三个字符“2”:

  • h = 31 * h + 50
  • h = 31 * 1608 + 50
  • h = 49898

7. 处理第四个字符“2”:

  • h = 31 * h + 50
  • h = 31 * 49898 + 50
  • h = 1546888

8. 处理第五个字符“e”:

  • h = 31 * h + 101
  • h = 31 * 1546888 + 101
  • h = 47953629

9. 处理第六个字符“e”:

  • h = 31 * h + 101
  • h = 31 * 47953629 + 101
  • h = 1486562610

10. 处理第七个字符“c”:

  • h = 31 * h + 99
  • h = 31 * 1486562610 + 99
  • h = 46083441008

11. 简略处理其余字符

继续按照上述步骤处理其余字符,直到所有字符处理完毕。最终得到的哈希值 h 是一个整数。

12. 为了确保哈希值是非负数,我们使用“0x7fffffff”进行按位与运算:h & 0x7fffffff。

13. 通过以上算法,得出一个在 0 到 2147483647 之间的 TON 地址哈希值。

3. 用户的抽奖数列如何产生?

每位用户的钱包地址将转换为一个哈希值,用以计算其抽奖数列:

[获奖数列 - 地址哈希值] = 用户的抽奖数列

4. 如何确定获奖用户?

币安将每位用户的抽奖数列按升序排序,并根据活动规则选出一定数量的数列作为获奖者。

在排名相同的情况下,即两位或多位用户的抽奖数列相同,将根据任务完成时间的先后顺序确定用户的排名。越早完成任务,排名就越高。

  • 对于哈希值等于或超过 10 位的地址,将去掉第 10 位数字。
  • 不足 10 位的哈希值不进行处理。

然后,将用户地址哈希值与获奖数列相减,再取绝对值。币安将对每个用户的抽奖数列按升序排序,抽奖数列较小者获奖。

例如:

  • 用户 A 的地址哈希值有 10 位数字 (1023456780)。去掉第 10 位后,得到抽奖数列 102345678。
  • 用户 B 的地址哈希值有 9 位数字 (201154321),无需更改即可获得其抽奖数列。

如何确定获奖者:

  • 获奖数列 = 692996864
  • 用户 A 的抽奖数列 = |692996864 − 102345678| = 590651186
  • 用户 B 的抽奖数列 = |692996864 − 201154321| = 491842543

由于 491842543 较小,因此用户 B 获奖。

立即注册,最高可获 100 USDT 的交易手续费返还(仅限认证用户)