Regras de seleção de vencedores com base no valor de hash da TON Blockchain

2024-10-29 02:11

Aviso Legal: os produtos e serviços mencionados aqui podem não estar disponíveis na tua região.

1. Como determinar a sequência vencedora?

A Binance selecionará uma data específica durante o evento e utilizará os últimos 9 dígitos do último bloco de hash da TON Blockchain às 23:59 (UTC) dessa data como a sequência vencedora.

Por exemplo:

Se o último bloco de hash da TON Blockchain no dia do cálculo da recompensa for: 0hVwGb09xU6rhZhs9JMHU29KuqYATsVwd+96R8X6wF4=

  • A Binance irá remover os carateres alfabéticos para obter: 009692996864
  • Depois disso, os últimos 9 dígitos serão considerados a sequência vencedora: 692996864

2. Como aplicar o hashing de multiplicação ao endereço de um utilizador?

A Binance usará a fórmula de hash de multiplicação (semelhante ao código de hash "hashCode()" do Java) “h = 31 * h + valor[i]” para determinar o endereço da carteira do(s) utilizador(es) vencedor(es).

Cálculo:

1. Converte a sequência de caracteres “0x22eEC85ba6a5cD97eAd4728eA1c69e1D9c6fa778” para letras minúsculas para obter “0x22eec85ba6a5cd97ead4728ea1c69e1d9c6fa778” e, em seguida, calcula o código de hash.

2. O valor de cada carácter é determinado pelo respetivo código ASCII:

  • "0" tem um valor de 48;
  • "x" tem um valor de 120;
  • "2" tem um valor de 50;
  • "e" tem um valor de 101;
  • "c" tem um valor de 99;
  • "8" tem um valor de 56;
  • "5" tem um valor de 53;
  • "b" tem um valor de 98;
  • "a" tem um valor de 97;
  • "6" tem um valor de 54;
  • "d" tem um valor de 100;
  • "9" tem um valor de 57;
  • "7" tem um valor de 55.

3. Inicialize o valor de hash: h = 0

4. Processe o primeiro carácter "0":

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

5. Processe o segundo carácter "x":

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

6. Processe o terceiro carácter "2":

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

7. Processe o quarto carácter "2":

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

8. Processe o quinto carácter "e":

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

9. Processe o sexto carácter "e":

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

10. Processe o sétimo carácter "c":

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

11. Processamento simplificado dos restantes caracteres  

Continue o processamento dos restantes caracteres seguindo os passos descritos acima, até que todos os caracteres sejam processados. O valor de hash final, h, será um número inteiro.  

12. Para garantir que o valor de hash não é negativo, aplicamos uma operação bitwise e com “0x7fffffff”: “h & 0x7fffff”.  

13. Utilizando este algoritmo, o valor de hash do endereço de TON será um número entre 0 e 2147483647. 

3. Como posso gerar a sequência de lotaria de um utilizador?

O endereço da carteira de cada utilizador é convertido num valor de hash para calcular a respetiva sequência de lotaria:

[Sequência vencedora - Hash de endereço] = Sequência de lotaria do utilizador

4. Como determinar os vencedores?  

A Binance irá ordenar a sequência de lotaria de cada utilizador por ordem crescente e selecionará um certo número de sequências como vencedoras, dependendo das regras da campanha. 

Em caso de empate (por exemplo, no caso de dois ou mais utilizadores terem a mesma sequência de lotaria), a Binance utilizará o tempo de conclusão da tarefa para determinar as classificações dos utilizadores. Quanto mais cedo um utilizador concluir a tarefa, maior será a sua classificação.

  • Para endereços com um hash igual ou superior a 10 dígitos, o 10.º dígito é removido.
  • Se o hash tiver menos de 10 dígitos, não será feita qualquer alteração.

Depois disso, será calculada a diferença absoluta entre o hash de endereço dos utilizadores e a sequência vencedora. A Binance irá ordenar a sequência de lotaria de cada utilizador por ordem crescente, e a(s) sequência(s) de lotaria mais pequena(s) vence(m).

Por exemplo:

  • O hash de endereço do utilizador A tem 10 dígitos (1023456780). Depois de remover o 10.º dígito, a sequência de lotaria deste utilizador é 102345678.
  • O hash de endereço do utilizador B tem 9 dígitos (201154321). Não são necessárias alterações para ajustar a sequência de lotaria deste utilizador.

Como determinar o vencedor:

  • Sequência vencedora = 692996864
  • Resultado da lotaria do utilizador A = |692996864 − 102345678| = 590651186
  • Resultado da lotaria do utilizador B = |692996864 − 201154321| = 491842543

Como o número 491842543 é menor, o utilizador B vence.

Regista-te já — Recebe até 100 USDT de devolução em taxas de trading (para utilizadores verificados)