Regler för tilldelning av priser baserade på TON Blockkedja-hashvärde

2024-10-29 02:11

Ansvarsfriskrivning: Produkter och tjänster som nämns här inne kanske inte finns tillgängliga i din region.

1. Hur bestämmer man den vinnande sekvensen?

Binance kommer att välja ett specifikt datum under evenemanget och använda de sista 9 siffrorna i den sista TON Blockkedja blockhash klockan 23:59 (UTC) på det datumet som den vinnande sekvensen.

Till exempel:

Om den sista TON Blockkedja-blockhashen på belöningsberäkningsdagen är: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=

  • kommer Binance att ta bort bokstäverna för att få: 009692996864
  • Efter det tar vi de sista 9 siffrorna som den vinnande sekvensen: 692996864

2. Hur tillämpar man multiplikativ hashing på en användares adress?

Binance använder multiplikativ hashformel (liknande Javas 'hashCode()') "h = 31 * h + value[i]" för att bestämma den vinnande användarens plånboksadress.

Beräkning:

1. Konvertera strängen "0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778" till gemener för att få "0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778" och beräkna sedan hashkoden.

2. Varje teckens värde bestäms av dess ASCII-kod:

  • "0" har värdet 48;
  • "x" har värdet 120;
  • "2" har värdet 50;
  • "e" har värdet 101;
  • "c" har värdet 99;
  • "8" har värdet 56,
  • "5" har värdet 53,
  • "b" har värdet 98;
  • "a" har värdet 97;
  • "6" har värdet 54,
  • "d" har värdet 100;
  • "9" har värdet 57,
  • "7" har värdet 55;

3. Initiera hashvärdet: h = 0

4. Bearbeta det första tecknet "0":

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

5. Bearbeta det andra tecknet "x":

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

6. Bearbeta det tredje tecknet "2":

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

7. Bearbeta det fjärde tecknet "2":

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

8. Bearbeta det femte tecknet "e":

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

9. Bearbeta det sjätte tecknet "e":

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

10. Bearbeta det sjunde tecknet "c":

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

11. Förenklad bearbetning av de återstående tecknen  

Fortsätt att bearbeta de återstående tecknen genom att följa stegen ovan tills alla tecken har bearbetats. Det slutliga hashvärdet, h, kommer att vara ett heltal.  

12. För att säkerställa att hashvärdet är icke-negativt tillämpar vi det bitvis och med "0x7fffffff": "h & 0x7fffffff".  

13. Med hjälp av denna algoritm blir TON-adressens hashvärde ett tal mellan 0 och 2147483647. 

3. Hur genererar man en användares lotterisekvens?

Varje användares plånboksadress konverteras till ett hashvärde för att beräkna deras lotterisekvens:

[Vinnande sekvens - adresshash] = Användares lotterisekvens

4. Hur utser man vinnare?  

Binance kommer att sortera varje användares lotterisekvens i stigande ordning och välja ett visst antal sekvenser som vinnare beroende på kampanjreglerna. 

Om det blir oavgjort (t.ex. om två eller flera användare har samma lotterisekvens) kommer Binance att använda uppgiftens slutförandetid för att bestämma användarnas ranking. Ju tidigare en användare slutför uppgiften, desto högre rankas denne.

  • För adresser med en hash som är lika med eller längre än 10 siffror tas den 10:e siffran bort.
  • Om hashvärdet är under 10 siffror görs inga ändringar.

Därefter beräknas den absoluta skillnaden mellan användarnas adresshash och den vinnande sekvensen. Binance sorterar varje användares lotterisekvens i stigande ordning, och den eller de mindre lotterisekvenserna vinner.

Till exempel:

  • Användare A:s adresshash har 10 siffror (1023456780). Efter att ha tagit bort den 10:e siffran är deras lotterisekvens 102345678.
  • Användare B:s adresshash har 9 siffror (201154321). Inga ändringar behövs för att justera deras lotterisekvens.

Så här utses vinnaren:

  • Vinnande sekvens = 692996864
  • Användare A:s lotteriresultat = |692996864 − 102345678| = 590651186
  • Användare B:s lotteriresultat = |692996864 − 201154321| = 491842543

Eftersom 491842543 är mindre vinner användare B.

 

Registrera dig nu – Få upp till 100 USDT i rabatt på handelsavgift (för verifierade användare)