ЧЗВ
Начало
Център за поддръжка
ЧЗВ
Условия за ползване
Условия за ползване на Binance
Правила за избор на награда въз основа на стойността на хеш на TON Blockchain

Правила за избор на награда въз основа на стойността на хеш на TON Blockchain

2024-10-29 02:11
Отказ от отговорност: Продуктите и услугите, посочени тук, може да не са налични във вашия регион.

1. Как да определите печелившата поредица?

Binance ще избере конкретна дата по време на събитието и ще използва последните 9 цифри на последния блок хеш на TON Blockchain в 23:59 (UTC) на тази дата като печеливша поредица.
Например:
Ако последният хеш на блока на TON Blockchain в деня за изчисляване на наградата е: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=
  • Binance ще премахне азбуките, за да получите: 009692996864
  • След това ще вземем последните 9 цифри като печеливша поредица: 692996864

2. Как да приложите мултипликативно хеширане към адрес на потребител?

Binance ще използва мултипликативна хеш формула (подобна на `hashCode()` на Java) "h = 31 * h + value[i]", за да определи адреса на портфейла на печелившия(те) потребител(и).
Изчисление:
1. Конвертирайте низа „0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778“ в малка буква, за да получите „0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778“, след това изчислете хеш кода.
2. Стойността на всеки знак се определя от неговия ASCII код:
  • „0“ има стойност 48;
  • „x“ има стойност 120;
  • „2“ има стойност 50;
  • „е“ има стойност 101;
  • „c“ има стойност 99;
  • „8“ има стойност 56;
  • „5“ има стойност 53;
  • „b“ има стойност 98;
  • „а“ има стойност 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. Обработете петия знак „е“:
  • h = 31 * h + 101
  • h = 31 * 1546888 + 101
  • h = 47953629
9. Обработете шестия знак „е“:
  • 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. За да гарантираме, че хеш стойността е неотрицателна, прилагаме побитово и с „0x7ffffffff“: „h & 0x7fffffff”.  
13. Използвайки този алгоритъм, хеш стойността на TON адреса ще бъде число между 0 и 2147483647. 

3. Как да генерирате лотарийна поредица на потребител?

Адресът на портфейла на всеки потребител се преобразува в хеш стойност, за да се изчисли неговата лотарийна поредица:
[Печеливша поредица - хеш на адрес] = Лотарийна поредица на потребителя

4. Как да определим победителите?  

Binance ще сортира лотарийната поредица на всеки потребител във възходящ ред и ще избере определен брой поредици като победители в зависимост от правилата на кампанията. 
В случай на равен резултат (напр. двама или повече потребители имат една и съща лотарийна поредица), Binance ще използва времето за изпълнение на задачата, за да определи класирането на потребителите. Колкото по-рано даден потребител изпълни задачата, толкова по-високо е класирането му.
  • За адреси с хеш, равни на или по-дълги от 10 цифри, 10-ата цифра се премахва.
  • Ако хешът е под 10 цифри, не се правят промени.
След това се изчислява абсолютната разлика между хеша на адреса на потребителите и печелившата поредица. Binance ще сортира лотарийната поредица на всеки потребител във възходящ ред, а по-малката(ите) лотарийна(и) поредица(и) ще спечели.
Например:
  • Хешът на адреса на потребител А има 10 цифри (1023456780). След премахване на 10-ата цифра неговата лотарийна поредица е 102345678.
  • Хешът на адреса на потребител B има 9 цифри (201154321). Не са необходими промени, за да се коригира лотарийната поредица.
Как да определите победителя:
  • Печеливша поредица = 692996864
  • Резултат от лотарията на потребител А = |692996864 - 102345678| = 590651186
  • Резултат от лотарията на потребител B = |692996864 − 201154321| = 491842543
Тъй като 491842543 е по-малко, потребител B печели.