Díjkiválasztási szabályok a TON blokklánc hashértéke alapján

Közzététel időpontja: 2024-10-29 02:11

Felelősségkizáró nyilatkozat: előfordulhat, hogy az itt említett termékek és szolgáltatások nem állnak rendelkezésre a régiódban.

1. Hogyan kerül meghatározásra a nyertes szekvencia?

A Binance kiválaszt egy adott dátumot az esemény során, és az adott napon 23:59 (UTC) órakor az utolsó TON blokklánc blokk hash utolsó 9 számjegyét használja a nyertes szekvenciaként.

Például:

Ha az utolsó TON blokklánc blokk hash a jutalom kiszámításának napján: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=

  • A Binance eltávolítja a betűket, így a következőt kapja: 009692996864
  • Ezután az utolsó 9 számjegyet tekintjük a nyertes szekvenciának: 692996864

2. Hogyan alkalmazzuk a multiplikatív hashelést egy felhasználói címre?

A Binance multiplikatív hash képletet használ (hasonlóan a Java hashCode-hoz()) „h = 31 * h + érték[i]” a nyertes felhasználó(k) tárcacímének meghatározásához.

Számítás:

1. Váltsuk át a „0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778” karakterláncot kisbetűssé, hogy megkapjuk a „0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778” karakterláncot, majd számítsuk ki a hash-kódot.

2. Minden karakter értékét az ASCII-kód határozza meg:

  • A „0” értéke 48;
  • Az „x” értéke 120;
  • A „2” értéke 50;
  • Az „e” értéke 101;
  • A „c” értéke 99;
  • A „8” értéke 56;
  • Az „5” értéke 53;
  • A „b” értéke 98;
  • Az „a” értéke 97;
  • A „6” értéke 54;
  • A „d” értéke 100;
  • A „9” értéke 57;
  • A „7” értéke 55.

3. Inicializáljuk a hash értékét: h = 0

4. Feldolgozzuk az első „0” karaktert:

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

5. Feldolgozzuk a második „x” karaktert:

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

6. Feldolgozzuk a harmadik „2” karaktert:

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

7. Feldolgozzuk a negyedik „2” karaktert:

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

8. Feldolgozzuk az ötödik „e” karaktert:

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

9. Feldolgozzuk a hatodik „e” karaktert:

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

10. Feldolgozzuk a hetedik „c” karaktert:

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

11. A fennmaradó karakterek egyszerűsített feldolgozása  

Folytatjuk a fennmaradó karakterek feldolgozását a fenti lépések szerint, amíg az összes karaktert fel nem dolgozzuk. A végső hash-érték, a „h”, egy egész szám lesz.  

12. Annak érdekében, hogy a hash-érték ne legyen negatív, bitenkénti műveletet alkalmazunk „0x7fffffffff” értékkel: „h & 0x7fffffffff”.  

13. Ezzel az algoritmussal a TON-cím hash értéke egy 0 és 2147483647 közötti szám lesz. 

3. Hogyan kerül létrehozásra egy felhasználó sorsolási szekvenciája?

Minden felhasználó tárcacímét hash-értékké alakítják át a sorsolási szekvencia kiszámításához:

[Nyertes szekvencia - cím hash] = a felhasználó sorsolási szekvenciája

4. Hogyan kerülnek kiválasztásra a nyertesek?  

A Binance növekvő sorrendbe rendezi az egyes felhasználók sorsolási szekvenciáit, és a kampányszabályoktól függően kiválaszt egy bizonyos számú nyertes szekvenciát. 

Döntetlen esetén (pl. két vagy több felhasználónak ugyanaz a sorsolási szekvenciája) a Binance a feladat teljesítési idejét használja a felhasználók rangsorolásához. Minél korábban teljesíti a felhasználó a feladatot, annál magasabb rangsorolást kap.

  • A 10 számjegyű vagy annál hosszabb hash-számmal rendelkező címek esetében a 10. számjegyet eltávolítjuk.
  • Amennyiben a hash kevesebb mint 10 számjegyből áll, nem történik változás.

Ezután kiszámítjuk az abszolút különbséget a felhasználók cím hash-e és a nyertes szekvencia között. A Binance növekvő sorrendbe rendezi az egyes felhasználók sorsolási szekvenciáját, és a kisebb sorsolási szekvenciák nyernek.

Például:

  • „A” felhasználó címének hash-e 10 számjegyű (1023456780). A 10. számjegy eltávolítása után a sorsolási szekvenciája: 102345678.
  • „B” felhasználó címének hash-e 9 számjegyű (201154321). Nincs szükség változtatásokra a sorsolási szekvencia meghatározásához.

Nyertes kiválasztása:

  • Nyertes szekvencia = 692996864
  • „A” felhasználó sorsolási eredménye = |692996864 − 102345678| = 590651186
  • „B” felhasználó sorsolási eredménye = |692996864 − 201154321| = 491842543

Mivel a 491842543 kisebb, „B” felhasználó nyer.

 

Regisztrálj most – akár 100 USDT kereskedési díjkedvezményt is kaphatsz (ellenőrzött felhasználók számára)