Uma árvore Merkle é uma estrutura de dados binária, semelhante a uma árvore de hash. Em uma árvore binária, um nodo pode ter no máximo dois nodos filhos, um nodo esquerdo e um nodo direito. Cada nodo de folha da árvore Merkle armazena o valor de hash de um elemento de dados. Quando sabemos os dados do nodo esquerdo e do nodo direito, podemos calcular as informações completas do nodo pai. Essas informações abrangentes consistem em duas seções: Dados de saldo do endereço da carteira e dados de hash.
- Dados de saldo: Com base na estrutura de dados da árvore binária, os dados de saldo do nodo pai só podem ser compostos pelos dados de saldo dos nodos esquerdo e direito sob ele.
- Dados de hash: Cada nodo inclui dados de saldo, dados hierárquicos da árvore binária (linha pontilhada na figura) e dados de hash dos nodos filhos (dados do nodo esquerdo e do nodo direito são armazenados em cada nodo).
A árvore Merkle é verificada por cálculo, como as partes verdes (B e D) calculadas na figura acima e pelos dois critérios a seguir:
1. Verificar se o saldo atende ao princípio de divisão.
2. Verificar se o hash é legal.
A árvore Merkle usa uma função de hash, que permite que os usuários verifiquem se eles fazem parte da árvore completa sem conhecer as informações nos nodo roxos. As provas de Merkel são exclusivas para usuários individuais (pessoa física). No caso de uma árvore Merkle com 24 níveis, os usuários precisam de uma matriz de saldo com um comprimento de 24 elementos para verificar suas informações de saldo, e essa matriz é usada apenas para verificar o saldo do usuário.
Desde que os dados obtidos pelos usuários não excedam 50% dos dados totais do usuário na árvore Merkle, os usuários não poderão reconstruir toda a estrutura de dados com base em suas próprias informações fragmentadas. Portanto, para a empresa, a árvore Merkle garante que as informações gerais de ativos da empresa não vazem e que a privacidade da conta dos usuários esteja protegida.
A Bybit fornece dois métodos de verificação:
Verificação por meio da plataforma Bybit
Você pode visitar esta página para acessar a página Verificar minha conta e visualizar seu caminho de Merkle. Exibimos graficamente o processo de derivação do nodo da verificação de árvore Merkle para facilitar a visualização dos saldos dos ativos.
Nota: Realizamos auditorias regulares de Comprovação de Reservas para demonstrar que a Bybit possui reservas adequadas. Se você criou sua conta após a realização de uma auditoria ou não possui fichas auditadas, não haverá nenhum registro de auditoria correspondente para sua conta.
Através de uma ferramenta de autovalidação - Código-fonte aberto
A Bybit lançou seu código-fonte de geração de árvore Merkle e código de verificação no GitHub para ajudar os usuários em seu próprio processo de verificação de saldo. O processo de cálculo da árvore Merkle envolve o cálculo de dados massivos do usuário, que geralmente é implementado por big data e Java. A codificação Java está completamente aberta para que os usuários inspecionem.
Fundo
A Bybit abriu o código dos seguintes códigos para autoverificação de usuários profissionais. Os usuários podem clicar em Copiar dados da Página de Prova de Reservas para copiar os dados para o arquivo de prova da árvore Merkle em sua própria área de transferência do sistema de programação e armazená-los como um arquivo chamado myProof.json em sua unidade local.
Como proceder
1. Crie seu arquivo executável
Baixe os arquivos de código-fonte mais recentes e certifique-se de que o JDK (versão 1.8 e superior) e o Maven foram instalados em sua estação de trabalho ou laptop.
- Resolva dependências, compile e empacote.
- Verifique o pacote jar compilado, como a seguir, na pasta atual do projeto.
2. Execute sua verificação
- Você pode colar o arquivo da prova copiado do site Bybit em um novo arquivo na pasta atual e nomeá-lo como myProof.json. Em seguida, execute o seguinte comando:
- Depois disso, você pode executar o programa verificado e observar os dados.