Como o zk-SNARK melhora o Gate.io Comprovante de Reservas

AvançadoOct 12, 2023
Como um dos pioneiros na indústria a introduzir comprovação de reservas, a Gate.io adotará a tecnologia zk-SNARK para aprimorar sua comprovação de reservas, proporcionando aos usuários segurança superior de ativos e proteção de privacidade.
Como o zk-SNARK melhora o Gate.io Comprovante de Reservas

Com mais de 13 milhões de usuários, Gate.io conhece perfeitamente a importância da segurança dos fundos e foi pioneira na indústria na tomada de medidas eficazes. Gate.io foi uma das primeiras exchanges a implementar a prova de reservas (PoR), revelando seu PoR já em maio de 2020. Foi somente depois que a FTX se apropriou indevidamente dos ativos dos usuários 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 dos usuários e aumentar a confiabilidade da plataforma.

Após o incidente da FTX, a Gate.io divulgou prontamente sua segunda prova de reservas. Pouco depois de seu lançamento, o fundador do Ethereum, Vitalik Buterin, publicou um artigo intitulado “Ter um CEX seguro: prova de solvência e muito mais”, discutindo como as exchanges podem demonstrar melhor sua solvência. O artigo sugere a integração de tecnologias avançadas como zk-SNARK em cima da tradicional prova de reservas para garantir um PoR mais público, transparente e autêntico. Gate.io planeja usar a nova tecnologia mencionada no artigo para atualizar sua prova de reservas, oferecendo aos usuários maior privacidade e segurança genuína de ativos.

O que é comprovante de reservas?

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

Antes do surgimento do PoR, também existiam propostas de transferência de ativos e comprovação de passivos para demonstrar que as bolsas tinham fundos suficientes.

Transferência de Ativos – Demonstrando que a Bolsa possui ativos suficientes

Em 2011, a MtGox, então a maior bolsa de Bitcoin, provou que detinha determinados fundos ao executar uma transação que movimentou 424.242 BTC para um endereço previamente anunciado. Este método só poderia validar ativos e não poderia comprovar os passivos da bolsa.

Prova de responsabilidades

Os passivos de uma bolsa são os ativos depositados pelos seus usuários. A maneira mais simples de comprovar os ativos dos usuários é publicar uma lista contendo contas e saldos dos usuários. Cada usuário pode acessar esta lista e verificar se o saldo de sua conta está correto. No entanto, este método tem desvantagens óbvias:

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

  2. No processo, tanto as informações da conta quanto o saldo do usuário são divulgados.

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

Conforme ilustrado, uma árvore Merkle é uma estrutura de dados semelhante a uma árvore. Os dados na camada inferior são chamados de “nós folha” e os do meio podem ser chamados de “nós intermediários”. Dois nós folha podem sofrer hashing (processamento de 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 hash para obter um valor de saída exclusivo para o nó do próximo nível. Após sucessivas camadas de processamento, o nó raiz (Root) da árvore Merkle é finalmente obtido. Este valor é único e qualquer alteração em um nó folha resultará em uma alteração no nó raiz.

Prova de reserva em árvores Merkle (Fonte: Vitalik

Neste método, o total de ativos detidos por uma bolsa em nome dos seus utilizadores é determinado pela acumulação de valores camada por camada. No entanto, mesmo depois de inserir a conta do usuário e os dados do saldo diretamente nos nós folha, permanece um pequeno risco de vazamento de informações. Tomando como exemplo a ilustração, o usuário marcado em verde (Charlie) pode acessar informações parciais de David, bem como os saldos de Alice e Bob no lado esquerdo. Consequentemente, houve melhorias técnicas nos nós folha:

  1. Conforme mostrado na ilustração, o ID da conta do usuário é hash junto com um valor específico.

  2. Os saldos dos usuários estão dispersos. Por exemplo, os 10ETH de Charlie poderiam ser divididos em dois valores de 5ETH e colocados em dois nós folha diferentes.

  3. O ID do usuário e o saldo são criptografados separadamente e, em seguida, os valores resultantes são criptografados mais uma vez. A prova do fundo de reserva da Gate.io usa esse método.

Apesar destes avanços ao nível dos nós folha, uma questão permanece por resolver: saldos negativos. Na prática, depois que os usuários depositam criptomoedas, eles se envolvem com produtos de câmbio, como negociações alavancadas e contratos perpétuos. Se ocorrerem perdas, a perda máxima deverá ser de 100% do principal, ou seja, o saldo da conta do usuário deverá ser sempre maior ou igual a zero.

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

Impacto das contas de valor negativo na ilustração das árvores Merkle (Fonte: Vitalik

Para resolver esse problema, bolsas como a Gate.io começaram a usar a tecnologia de prova de conhecimento zero zk-SNARK para aprimorar suas provas de reserva.

O que são Provas de Conhecimento Zero e zk-SNARKs?

Uma prova de conhecimento zero é uma técnica pela qual uma parte pode provar algo a outra sem revelar informações confidenciais. Para ilustrar esse conceito com um exemplo simples: se o usuário A souber o número de telefone do usuário B e o usuário C perguntar se o usuário A sabe, o usuário A pode discar o número de B imediatamente para verificar se realmente o possui, sem revelar o número real ao usuário. C. Este processo, que preserva a privacidade do usuário e ao mesmo tempo confirma o conhecimento, exemplifica o mecanismo de “prova de conhecimento zero”.

No domínio das criptomoedas, as provas de conhecimento zero permitem aos usuários demonstrar 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 status de seus fundos de reserva sem divulgar informações confidenciais dos usuários, como saldos de contas individuais.

zk-SNARK significa uma técnica sucinta e não interativa de prova de conhecimento zero. Ele passa por uma “configuração inicial confiável” para produzir uma cadeia de referência comum (CRS) que todos os provadores podem acessar diretamente. Isso é análogo a um sistema de classificação de exames onde zk-SNARK carrega diretamente as respostas corretas. Os examinandos podem então verificar suas respostas (enviando a solução de uma pergunta para um sistema backend, que fornece imediatamente o resultado correto ou incorreto), tornando o processo altamente eficiente.

Com zk-SNARK, os usuários podem atestar que conhecem o valor original que foi criptografado sem revelar o conteúdo real desse valor. Sem divulgar valores, valores ou endereços específicos, os usuários também podem verificar a validade de uma transação. É comumente usado em transações privadas. No projeto de provas de reserva, o zk-SNARK pode pré-definir restrições, eliminar contas diferentes de zero e garantir a privacidade do usuário.

Como Gate.io utiliza zk-SNARKs para aprimorar as provas de reserva

Gate.io integra a tecnologia zk-SNARK com árvores Merkle para criar provas de reserva mais transparentes, protegidas pela privacidade e resistentes a adulterações.

Processo de implementação

  1. Autorização de carteira fria
    Todas as carteiras frias e quentes transferem uma quantia aleatória específica para um endereço designado pela empresa de auditoria para verificar a propriedade. A empresa de auditoria então resume os saldos desses endereços para determinar o valor total controlado pela bolsa (incluindo fundos de usuários e proprietários).

  2. Instantâneo do saldo do usuário
    Em um momento específico, é tirado um instantâneo dos saldos dos usuários na plataforma. Os patrimônios reais da conta são calculados usando dados como pedidos pendentes, valores emprestados, juros devidos e lucros/perdas não realizados.

  3. Exportando Saldos
    O UID criptografado e o saldo de cada usuário são fornecidos à empresa de auditoria com a finalidade de calcular os ativos agregados do usuário e publicar um número Merkle.

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

  5. Implementando restrições de circuito
    ① Antes que os ativos líquidos de um usuário sejam inseridos na árvore Merkle, o nó correspondente ao ID desse usuário está vazio.
    ② Com base na lista de ativos do usuário e no preço de cada ativo, calcule o total de ativos/passivos do usuário. O total de ativos deve sempre exceder o total de passivos.
    ③ Adicione os ativos/passivos do usuário aos ativos/passivos da bolsa.
    ④ Usando o ID do usuário, total de ativos/passivos e lista de ativos, calcule o hash de status do usuário. Insira o status do usuário na árvore Merkle para obter uma nova Merkle Root.
    ⑤ Antes de criar uma operação para um usuário, o valor hash raiz da árvore deve corresponder ao valor hash do nó raiz após criar uma operação para o usuário subsequente.
    (A restrição ① evita dados falsos do nó, ② evita contas com valores negativos e ⑤ garante que os dados do usuário permaneçam inalterados antes e depois das operações.)

  6. Gerando Comprovante de Reserva
    Usando o circuito zk-SNARK, determine o número de ativos do usuário e emita um relatório de prova de reserva.

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

Desempenho

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

Conclusão

A introdução dos zk-SNARKs é uma atualização significativa para o Gate.io provas de reserva e uma etapa essencial na proteção dos ativos dos usuários. Esta proteção superior de segurança e privacidade aumenta a confiança do usuário e estabelece um novo padrão para a indústria de criptomoedas. Como líder do setor, Gate.io agora abriu seu código, na esperança de promover desenvolvimentos industriais mais transparentes e seguros. No futuro, a Gate.io continuará seu espírito de inovação, explorando e sendo pioneira em um futuro criptográfico mais seguro, abrangente e protegido pela privacidade junto com seus usuários.

Referências

Автор: Wayne
Перекладач: Piper
Рецензент(-и): Edward、KOWEI、Elisa、Ashley He、Joyce
* Ця інформація не є фінансовою порадою чи будь-якою іншою рекомендацією, запропонованою чи схваленою Gate.io.
* Цю статтю заборонено відтворювати, передавати чи копіювати без посилання на Gate.io. Порушення є порушенням Закону про авторське право і може бути предметом судового розгляду.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!
Створити обліковий запис