Zastrzeżenie: Produkty i usługi, o których tutaj mowa, mogą nie być dostępne w Twoim regionie.
Binance wybierze konkretną datę podczas wydarzenia i użyje ostatnich 9 cyfr ostatniego hasha bloku sieci blockchain TON o godz. 23:59 (UTC) danego dnia jako zwycięskiej sekwencji.
Przykładowo:
Jeżeli ostatni hash bloku sieci blockchain TON w dniu obliczania nagrody to: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=
Binance użyje multiplikatywnej formuły hasha (podobnej do `hashCode()` Java) „h = 31 × h + value[i]”, aby określić adres portfela zwycięskiego użytkownika (użytkowników).
Obliczenie:
1. Przekonwertuj ciąg „0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778” na małe litery, aby uzyskać „0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778”, a następnie oblicz kod hash.
2. Wartość każdego znaku jest określana na podstawie jego kodu ASCII:
3. Zainicjuj wartość hash: h = 0
4. Przetwórz pierwszy znak „0”:
5. Przetwórz drugi znak „x”:
6. Przetwórz trzeci znak „2”:
7. Przetwórz czwarty znak „2”:
8. Przetwórz piąty znak „e”:
9. Przetwórz szósty znak „e”:
10. Przetwórz siódmy znak „c”:
11. Uproszczone przetwarzanie pozostałych znaków
Kontynuuj przetwarzanie pozostałych znaków zgodnie z krokami opisanymi powyżej, aż wszystkie znaki zostaną przetworzone. Końcowa wartość hash, h, będzie liczbą całkowitą.
12. Aby upewnić się, że wartość hasha nie jest ujemna, stosujemy metodę bitową i z „0x7fffffff”: „h & 0x7fffffff”.
13. Korzystając z tego algorytmu, wartość hash adresu TON będzie liczbą z zakresu od 0 do 2147483647.
Adres portfela każdego użytkownika jest konwertowany na wartość hash, aby obliczyć jego sekwencję w loterii:
[zwycięska sekwencja – hash adresu] = sekwencja użytkownika w loterii
Binance uszereguje sekwencję każdego użytkownika w loterii w porządku rosnącym i wybierze określoną liczbę sekwencji jako zwycięzców w zależności od zasad kampanii.
W przypadku remisu (np. dwóch lub więcej użytkowników ma taką samą sekwencję w loterii), Binance ustali kolejność w rankingu na podstawie czasu wykonania zadania. Im wcześniej użytkownik wykona zadanie, tym wyższa jego pozycja w rankingu.
Następnie obliczana jest bezwzględna różnica między hashem adresu użytkownika a zwycięską sekwencją. Binance uszereguje sekwencję każdego użytkownika w loterii w kolejności rosnącej, przy czym mniejsze sekwencje wygrywają.
Przykładowo:
Wyłonienie zwycięzcy:
Ponieważ sekwencja 491842543 jest mniejsza, wygrywa użytkownik B.