Como o ZK-Snark melhora o portão. Prova de Reservas

AvançadoOct 12, 2023
Como um dos pioneiros no setor a introduzir provas de reservas, a Gate.io vai adotar a tecnologia ZK-Snark para melhorar a sua prova de reservas, fornecendo aos utilizadores uma proteção superior de segurança de ativos e privacidade.
Como o ZK-Snark melhora o portão. Prova de Reservas

Com mais de 13 milhões de utilizadores, o Gate.io sabe perfeitamente a importância da segurança de fundos e foi pioneiro a indústria na tomada de medidas eficazes. Gate.io foi uma das primeiras trocas a implementar a prova de reservas (POR), revelando o seu PR já em maio de 2020. Só depois de a FTX se apropriar indevidamente dos ativos dos utilizadores em 2022, levando a uma crise de liquidez e subsequente falência, é que a prova de reservas se tornou amplamente reconhecida como uma solução para garantir a segurança dos fundos de utilizadores e aumentar a fiabilidade da plataforma.

Na sequência do incidente FTX, a Gate.io lançou prontamente a sua segunda prova de reservas. Pouco depois do seu lançamento, o fundador da Ethereum, Vitalik Buterin, publicou um artigo intitulado “Ter um CEX seguro: prova de solvência e não só”, discutindo como as bolsas podem demonstrar melhor a sua solvência. O artigo sugere a integração de tecnologias avançadas como o ZK-snark para além da prova de reservas tradicional para garantir um PoR mais público, transparente e autêntico. O Gate.io planeia usar a nova tecnologia mencionada no artigo para atualizar a sua prova de reservas, oferecendo aos utilizadores maior privacidade e segurança de ativos genuína.

O que é a Prova de Reservas?

Prova de Reservas (PoR) refere-se à revisão dos saldos detidos por bolsas de criptomoedas ou outras instituições financeiras, verificando se o valor do ativo registado pela empresa corresponde aos ativos reais detidos. Se o montante do ativo nas reservas exceder a quantidade de ativos depositados pelos utilizadores, ou seja, o rácio de garantia é superior a 100%, prova que os fundos de utilizadores são respaldados por ativos reais numa base 1:1.

Antes do surgimento do PoR, também havia propostas de transferências de ativos e provas de passivos para demonstrar que as bolsas tinham fundos suficientes.

Transferência de ativos - Demonstrar a Bolsa tem ativos suficientes

Em 2011, a MTgox, então a maior bolsa de Bitcoin, provou que detinham certos fundos ao executar uma transação que transferiu 424,242 BTC para uma morada anunciada anteriormente. Este método só podia validar os ativos e não podia provar os passivos da bolsa.

Prova de Passivo

O passivo de uma troca são os ativos depositados pelos seus utilizadores. A maneira mais simples de provar os ativos dos utilizadores é publicar uma lista contendo contas de utilizador e saldos. Todos os utilizadores podem aceder a esta lista e verificar se o saldo em relação à conta deles está correto. No entanto, este método tem desvantagens óbvias:

  1. Não há garantia de que a lista fornecida pela troca seja autêntica.

  2. No processo, as informações da conta do utilizador e o saldo são divulgados.

Este método também pode usar uma estrutura de dados como a Merkle para minimizar a exposição das informações do utilizador, levando ao conceito atual de PoR.

Como ilustrado, uma árvore Merkle é uma estrutura de dados tipo árvore. Os dados na camada inferior chamam-se “nós de folha” e o meio pode ser designado “nós intermediários”. Dois nós de folhas podem sofrer hashing (processando qualquer valor de entrada para obter um valor específico) para produzir o valor de um nó intermediário. Dois nós intermediários são então hashed para obter um valor de saída exclusivo para o nó de nível seguinte. Depois de camadas sucessivas de processamento, o nó raiz (Root) da árvore Merkle é finalmente obtido. Este valor é único e qualquer alteração no nó foliar resultará numa alteração no nó raiz.

Reserva à prova em Árvores Merkle (Fonte: Vitalik

Neste método, o total de ativos detidos por uma troca em nome dos seus utilizadores é determinado pela acumulação de valores camada a camada. No entanto, mesmo depois de inserir os dados da conta de utilizador e do saldo diretamente nos nós foliares, continua a haver um risco menor de fuga de informação. Tomando a ilustração como exemplo, o utilizador marcado a verde (Charlie) pode aceder à informação parcial de David, bem como aos saldos de Alice e Bob no lado esquerdo. Consequentemente, houve melhorias técnicas nos nós foliares:

  1. Como mostrado na ilustração, o ID da conta de usuário é feito em hash juntamente com um valor específico.

  2. Os saldos de utilizadores estão dispersos. Por exemplo, o 10ETH do Charlie pode ser dividido em duas quantidades 5ETH e colocado em dois nós foliares diferentes.

  3. A identificação do utilizador e o saldo são hashed separadamente e os valores resultantes são haxilados uma vez mais. A prova do fundo de reserva do Gate.io usa esse método.

Apesar destes avanços ao nível do nó foliar, um problema continua por resolver: saldos negativos. Na prática, depois dos utilizadores depositarem as criptomoedas, eles interagem com produtos de troca, como negociações alavancadas e contratos perpétuos. Se ocorrerem perdas, a perda máxima deve ser 100% do capital, ou seja, o saldo da conta de um usuário deve ser sempre maior ou igual a zero.

Normalmente, os saldos negativos são iniciados por trocas maliciosas. Por exemplo, se uma troca se apropriar indevidamente 500ETH, em cálculos padrão, os ativos que a bolsa detém realmente podem ser inferiores à garantia exigida, possivelmente até menos de 100%, revelando a apropriação indevida. No entanto, a bolsa pode criar uma conta, como a chamada Henry com um saldo de -500ETH na ilustração dada, para tornar o valor total do ativo da Merkle tree igual ou inferior aos ativos que a bolsa detém após apropriação indevida, fabricando assim uma ilusão de uma taxa de garantia superior a 100%.

Impacto das Contas de Valor Negativo na Ilustração das Merkle Trees (Fonte: Vitaliano

Para resolver este problema, trocas como o Gate.IO começaram a usar a tecnologia ZK-Snark à prova de conhecimento zero para melhorar as suas provas de reserva.

O que são provas Zero-Knowledge e ZK-Snarks?

Uma prova de conhecimento zero é uma técnica através da qual uma parte pode provar algo a outra sem revelar informações confidenciais. Para ilustrar este conceito com um exemplo simples: Se o Utilizador A souber o número de telefone do utilizador B e o Utilizador C inquirir se o Utilizador A sabe, o utilizador A pode discar o número de B no local para verificar que realmente o tem, sem divulgar o número real ao Utilizador C. Este processo, que preserva a privacidade do utilizador mas confirma o conhecimento, exemplifica o mecanismo da “prova de conhecimento zero”.

No domínio das criptomoedas, provas de conhecimento zero permitem que os utilizadores demonstrem a propriedade de uma chave privada sem expor a própria chave ou qualquer assinatura eletrónica. As plataformas de negociação de criptomoedas esperam validar o estado dos seus fundos de reserva sem divulgar informações sensíveis do utilizador, como saldos de contas individuais.

O ZK-Snark significa uma técnica sucinta e não interativa de prova de conhecimento zero. Passa por uma “configuração inicial confiável” para produzir uma String de Referência Comum (CRS) que todos os provadores podem aceder diretamente. Isto é análogo a um sistema de classificação de exames em que o ZK-Snark carrega diretamente as respostas corretas. Os examinados podem então verificar as suas respostas (enviando a solução para uma pergunta para um sistema de backend, que fornece imediatamente o resultado correto ou incorreto), tornando o processo altamente eficiente.

Com o ZK-Snark, os utilizadores podem atestar saber o valor original que foi hash sem revelar o conteúdo real desse valor. Sem divulgar quantias, valores ou moradas específicos, os utilizadores também podem verificar a validade de uma transação. É normalmente utilizado em transações privadas. No design das provas de reserva, o ZK-Snark pode pré-definir restrições, eliminar contas diferentes de zero e garantir a privacidade do utilizador.

Como o Porto.io Utiliza os ZK-snarks para reforçar as provas de reserva

Porta.io integra a tecnologia ZK-Snark com Merkle trees para criar provas de reserva mais transparentes, protegidas pela privacidade e invioláveis.

Processo de Implementação

  1. Autorização Cold Wallet
    Todas as carteiras frias e quentes transferem uma quantidade aleatória específica para uma morada designada pela empresa de auditoria para verificar a propriedade. A empresa de auditoria resume os saldos desses endereços para determinar o valor total controlado pela troca (incluindo os fundos de utilizadores e proprietários).

  2. Instantâneo de equilíbrio de utilizadores
    Num momento específico no tempo, é feito um instantâneo dos saldos dos utilizadores na plataforma. As ações da conta reais são calculadas usando dados como ordens em dívida, empréstimos, juros devidos e lucros/perdas não realizados.

  3. Saldos de exportação
    O UID encriptado e o saldo de cada utilizador são fornecidos à empresa de auditoria com a finalidade de calcular os ativos de utilizadores agregados e publicar um número Merkle.

  4. Processamento em lote de ativos
    do usuário Os ativos líquidos da troca são confirmados como a soma dos ativos líquidos de cada usuário. Então, com base no ativo líquido dos utilizadores, é construída uma árvore Merkle.
    (A principal razão para o processamento em lote é que o Gate.io tem 13 milhões de utilizadores. Processar todos os dados do utilizador de uma só vez colocaria exigências extremas ao hardware e software. O processamento em lote é mais tempo e econômico sem comprometer a segurança ou a privacidade dos dados.)

  5. Implementando Restrições de Circuito
    ① Antes de os ativos líquidos de um usuário serem inseridos na árvore Merkle, o nó correspondente à identificação desse usuário está vazio.
    ② Com base na lista de ativos do utilizador e no preço de cada ativo, calcule o ativo total do utilizador. O ativo total deve sempre exceder o passivo total.
    ③ Adicionar o ativo/passivo do utilizador ao ativo/passivo da bolsa.
    ④ Usando a identificação do usuário, o ativo/passivo total e a lista de ativos, calcular o hash do status do usuário. Insira o status do usuário na árvore Merkle para ter uma nova Raiz da Merkle.
    ⑤ Antes de criar uma operação para um usuário, o valor do hash raiz da árvore deve corresponder ao valor hash do nó raiz depois de criar uma operação para o usuário subsequente.
    (Restrição ① evita dados de nós não verdadeiros, ② evita contas com valores negativos e ⑤ garante que os dados dos usuários permanecem inalterados antes e depois das operações.)

  6. Gerando provas de reserva
    usando o circuito ZK-Snark, determine o número de ativos do utilizador e depois emita um relatório de prova de reserva.

Para obter uma explicação mais detalhada do processo de cálculo de reservas e implementação do código, clique aqui.

Desempenho

Numa máquina com 32 núcleos e 128 GB de RAM, são 15 dias para calcular as provas de ativos para 10 milhões de utilizadores. Os cálculos da prova de reserva podem ser paralelizados; assim, com 10 máquinas, demora apenas 1,5 dias.

Conclusão

A introdução do ZK-Snarks é um upgrade significativo para o Gate.iOs reservar provas e um passo essencial na proteção dos ativos dos utilizadores. Esta proteção superior de segurança e privacidade aumenta a confiança dos utilizadores e estabelece um novo padrão para a indústria das criptomoedas. Como líder da indústria, a Gate.io agora criou o seu código de fonte aberta, na esperança de promover desenvolvimentos mais transparentes e seguros do setor. No futuro, o Gate.io vai continuar o seu espírito de inovação, explorando e pioneiro num futuro criptográfico mais seguro e abrangente, protegido pela privacidade ao lado dos seus utilizadores.

Referências

Autor: Wayne
Übersetzer: Piper
Rezensent(en): Edward、KOWEI、Elisa、Ashley He、Joyce
* Die Informationen sind nicht als Finanzberatung gedacht und stellen auch keine Empfehlung irgendeiner Art dar, die von Gate.io angeboten oder unterstützt wird.
* Dieser Artikel darf ohne Bezugnahme auf Gate.io nicht reproduziert, übertragen oder kopiert werden. Zuwiderhandlung ist eine Verletzung des Urheberrechtsgesetzes und kann gerichtlich verfolgt werden.
Jetzt anfangen
Registrieren Sie sich und erhalten Sie einen
100
-Euro-Gutschein!
Benutzerkonto erstellen