O artigo de Vitalik Buterin Tendo um CEX seguro: prova de solvência e além destaca o desafio que as trocas centralizadas enfrentam na verificação dos ativos dos utilizadores e na garantia de reservas suficientes para honrar os depósitos dos utilizadores. Portanto, as bolsas precisam de uma maneira de provar que têm ativos de reserva suficientes para reembolsar integralmente esses ativos quando solicitados pelos utilizadores, o que significa que precisam demonstrar que o valor dos seus ativos de reserva excede o valor dos depósitos dos utilizadores. Esta prova é conhecida como Prova de Reservas e chama-se 100% de prova de auditoria de reserva no Gate.io.
A maneira mais simples de provar depósitos é publicando uma lista de pares (nome de utilizador e saldo). Cada utilizador pode verificar se o seu saldo está incluído na lista, e qualquer pessoa pode verificar a lista completa para garantir que todos os saldos não são negativos e a soma corresponde ao valor reivindicado pela bolsa. No entanto, isso compromete a privacidade. Para resolver isto, é feita uma ligeira modificação: publicar uma lista de pares (hash (nome de utilizador, sal), saldo) e enviar em particular a cada utilizador o seu valor de sal. Mas mesmo isso revela saldos e mudanças de equilíbrio. Para proteger a privacidade, é introduzida uma nova inovação: a árvore Merkle.
(Figura 1 Fonte:https://vitalik.ca/general/2022/11/19/proof_of_solvency.html
A técnica da árvore Merkle organiza os dados do saldo do utilizador numa árvore de soma Merkle. Nesta estrutura de árvore, cada nó consiste num par (equilíbrio, hash). Os nós de folha na parte inferior representam saldos individuais dos utilizadores e o hash salgado dos seus nomes de utilizador. Em cada nó de nível superior, o saldo é a soma dos dois saldos abaixo dele, e o hash é o hash dos dois nós abaixo dele. A prova de soma Merkle, semelhante a uma prova de Merkle, representa um “ramo” da árvore feito de nós irmãos da folha à raiz. A bolsa fornece a cada utilizador a prova da soma Merkle do seu saldo, permitindo-lhes verificar se o seu saldo está corretamente incluído no saldo total da bolsa.
Este design aumenta significativamente a privacidade em comparação com uma lista totalmente pública. Além disso, a fuga de privacidade pode ser ainda mais minimizada ao embaralhar os “ramos” sempre que a “raiz” é publicada. No entanto, ainda restam alguns problemas. Por exemplo, o Charlie aprende que alguém tem 164 ETH, e os saldos de dois utilizadores somam 70 ETH, entre outras informações (ver Figura 1). Um invasor que controla várias contas ainda pode deduzir informações confidenciais sobre os utilizadores do Exchange.
Embora a prova de reservas baseada na árvore Merkle tenha sido eficaz para garantir a segurança dos ativos dos utilizadores, ainda existem alguns problemas com esta abordagem:
As provas de conhecimento zero ganharam atenção generalizada em vários casos de uso devido ao seu potencial para aumentar a segurança, proteger a privacidade do utilizador e suportar a escalabilidade em redes de Camada 2.
As provas de conhecimento zero permitem que uma parte prove a outra parte que uma declaração é verdadeira sem revelar nenhuma informação adicional. Contribuem para o aumento da privacidade, reduzindo a quantidade de informações partilhadas entre os participantes e suportam a escalabilidade, permitindo que as provas sejam verificadas mais rapidamente sem validar todo o conjunto de dados.
zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argumento do Conhecimento) é uma tecnologia de prova de conhecimento zero proposta num artigo conjunto por Nir Bitansky, Ran Canetti, Alessandro Chiesa e Eran Tromer em 2012. O zk-SNARK permite que uma parte prove a outra parte que conhece um segredo sem revelar o segredo em si, provando assim a exatidão de uma expressão lógica sem expor qualquer informação. Nas provas tradicionais de conhecimento zero, o provador deve interagir com o verificador várias vezes para gerar a prova. No entanto, no zk-SNARK, uma vez gerados os parâmetros (especialmente os parâmetros públicos) e a prova, o verificador pode verificar a exatidão da prova sem precisar de múltiplas interações com o provador.
Por exemplo, imagine que tem um mapa do tesouro que leva à localização exata do tesouro enterrado. Quer provar a alguém que sabe a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Usando a tecnologia zk-SNARK, criaria uma peça do puzzle do mapa do tesouro. Seleciona uma pequena peça do puzzle (uma prova) e mostra-a à outra pessoa, o que é suficiente para convencê-la de que sabe como o puzzle completo se encaixa, ou seja, a localização do tesouro, sem precisar ver o puzzle inteiro. No entanto, para conseguir isso, tem de obter algumas marcações especiais de uma fábrica de impressão respeitável para autenticar as suas peças do puzzle.
A implementação do zk-SNARKs baseia-se na criptografia de curva elíptica e na matemática polinomial. Esta técnica emprega mapeamentos para transformar entradas em polinómios e utiliza conceitos matemáticos como a ordem das curvas elípticas e o logaritmo discreto para validar que as restrições nos polinómios são satisfeitas. Aproveita algoritmos especiais para compressão de dados, permitindo assim a execução eficiente de cálculos matemáticos.
Portanto, usar zk-SNARKs pode simplificar e aumentar significativamente a privacidade em protocolos de prova de reserva. Ao incorporar todos os depósitos dos utilizadores numa árvore Merkle e empregar zk-SNARKs para atestar que todos os saldos não são negativos e somam um valor reivindicado, é possível afirmar que uma bolsa tem a capacidade de cobrir totalmente os seus passivos se os ativos divulgados publicamente na cadeia de blocos excederem esse valor.
A integração do zk-SNARKs com árvores Merkle facilita a verificação simultânea da integridade e consistência dos dados, preservando a privacidade das transações. Os provadores podem usar zk-SNARKs para demonstrar que possuem uma prova Merkle que satisfaz condições específicas sem revelar os detalhes da prova. Para as trocas, esta abordagem oferece uma maneira de provar que têm fundos suficientes para cumprir todas as obrigações, salvaguardando a privacidade do utilizador.
Em resumo, a tecnologia de prova de conhecimento zero da Gate.io aborda dois questões-chave com a prova de reservas:
O Gate.io melhorou a sua prova de reservas usando o zk-SNark, dando um passo significativo como bolsa líder na proteção da segurança dos ativos dos utilizadores. Com esta atualização, os utilizadores podem ver as provas de reserva em tempo real, e o primeiro lote de ativos suportados cobrirá o top 100 por capitalização de mercado. Como líder do setor, criou o código de código aberto e continuará a impulsionar o desenvolvimento da indústria e a explorar um futuro criptografado mais seguro e que melhore a privacidade com esta atualização à prova de conhecimento zero.
Leituras adicionais:
O artigo de Vitalik Buterin Tendo um CEX seguro: prova de solvência e além destaca o desafio que as trocas centralizadas enfrentam na verificação dos ativos dos utilizadores e na garantia de reservas suficientes para honrar os depósitos dos utilizadores. Portanto, as bolsas precisam de uma maneira de provar que têm ativos de reserva suficientes para reembolsar integralmente esses ativos quando solicitados pelos utilizadores, o que significa que precisam demonstrar que o valor dos seus ativos de reserva excede o valor dos depósitos dos utilizadores. Esta prova é conhecida como Prova de Reservas e chama-se 100% de prova de auditoria de reserva no Gate.io.
A maneira mais simples de provar depósitos é publicando uma lista de pares (nome de utilizador e saldo). Cada utilizador pode verificar se o seu saldo está incluído na lista, e qualquer pessoa pode verificar a lista completa para garantir que todos os saldos não são negativos e a soma corresponde ao valor reivindicado pela bolsa. No entanto, isso compromete a privacidade. Para resolver isto, é feita uma ligeira modificação: publicar uma lista de pares (hash (nome de utilizador, sal), saldo) e enviar em particular a cada utilizador o seu valor de sal. Mas mesmo isso revela saldos e mudanças de equilíbrio. Para proteger a privacidade, é introduzida uma nova inovação: a árvore Merkle.
(Figura 1 Fonte:https://vitalik.ca/general/2022/11/19/proof_of_solvency.html
A técnica da árvore Merkle organiza os dados do saldo do utilizador numa árvore de soma Merkle. Nesta estrutura de árvore, cada nó consiste num par (equilíbrio, hash). Os nós de folha na parte inferior representam saldos individuais dos utilizadores e o hash salgado dos seus nomes de utilizador. Em cada nó de nível superior, o saldo é a soma dos dois saldos abaixo dele, e o hash é o hash dos dois nós abaixo dele. A prova de soma Merkle, semelhante a uma prova de Merkle, representa um “ramo” da árvore feito de nós irmãos da folha à raiz. A bolsa fornece a cada utilizador a prova da soma Merkle do seu saldo, permitindo-lhes verificar se o seu saldo está corretamente incluído no saldo total da bolsa.
Este design aumenta significativamente a privacidade em comparação com uma lista totalmente pública. Além disso, a fuga de privacidade pode ser ainda mais minimizada ao embaralhar os “ramos” sempre que a “raiz” é publicada. No entanto, ainda restam alguns problemas. Por exemplo, o Charlie aprende que alguém tem 164 ETH, e os saldos de dois utilizadores somam 70 ETH, entre outras informações (ver Figura 1). Um invasor que controla várias contas ainda pode deduzir informações confidenciais sobre os utilizadores do Exchange.
Embora a prova de reservas baseada na árvore Merkle tenha sido eficaz para garantir a segurança dos ativos dos utilizadores, ainda existem alguns problemas com esta abordagem:
As provas de conhecimento zero ganharam atenção generalizada em vários casos de uso devido ao seu potencial para aumentar a segurança, proteger a privacidade do utilizador e suportar a escalabilidade em redes de Camada 2.
As provas de conhecimento zero permitem que uma parte prove a outra parte que uma declaração é verdadeira sem revelar nenhuma informação adicional. Contribuem para o aumento da privacidade, reduzindo a quantidade de informações partilhadas entre os participantes e suportam a escalabilidade, permitindo que as provas sejam verificadas mais rapidamente sem validar todo o conjunto de dados.
zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argumento do Conhecimento) é uma tecnologia de prova de conhecimento zero proposta num artigo conjunto por Nir Bitansky, Ran Canetti, Alessandro Chiesa e Eran Tromer em 2012. O zk-SNARK permite que uma parte prove a outra parte que conhece um segredo sem revelar o segredo em si, provando assim a exatidão de uma expressão lógica sem expor qualquer informação. Nas provas tradicionais de conhecimento zero, o provador deve interagir com o verificador várias vezes para gerar a prova. No entanto, no zk-SNARK, uma vez gerados os parâmetros (especialmente os parâmetros públicos) e a prova, o verificador pode verificar a exatidão da prova sem precisar de múltiplas interações com o provador.
Por exemplo, imagine que tem um mapa do tesouro que leva à localização exata do tesouro enterrado. Quer provar a alguém que sabe a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Usando a tecnologia zk-SNARK, criaria uma peça do puzzle do mapa do tesouro. Seleciona uma pequena peça do puzzle (uma prova) e mostra-a à outra pessoa, o que é suficiente para convencê-la de que sabe como o puzzle completo se encaixa, ou seja, a localização do tesouro, sem precisar ver o puzzle inteiro. No entanto, para conseguir isso, tem de obter algumas marcações especiais de uma fábrica de impressão respeitável para autenticar as suas peças do puzzle.
A implementação do zk-SNARKs baseia-se na criptografia de curva elíptica e na matemática polinomial. Esta técnica emprega mapeamentos para transformar entradas em polinómios e utiliza conceitos matemáticos como a ordem das curvas elípticas e o logaritmo discreto para validar que as restrições nos polinómios são satisfeitas. Aproveita algoritmos especiais para compressão de dados, permitindo assim a execução eficiente de cálculos matemáticos.
Portanto, usar zk-SNARKs pode simplificar e aumentar significativamente a privacidade em protocolos de prova de reserva. Ao incorporar todos os depósitos dos utilizadores numa árvore Merkle e empregar zk-SNARKs para atestar que todos os saldos não são negativos e somam um valor reivindicado, é possível afirmar que uma bolsa tem a capacidade de cobrir totalmente os seus passivos se os ativos divulgados publicamente na cadeia de blocos excederem esse valor.
A integração do zk-SNARKs com árvores Merkle facilita a verificação simultânea da integridade e consistência dos dados, preservando a privacidade das transações. Os provadores podem usar zk-SNARKs para demonstrar que possuem uma prova Merkle que satisfaz condições específicas sem revelar os detalhes da prova. Para as trocas, esta abordagem oferece uma maneira de provar que têm fundos suficientes para cumprir todas as obrigações, salvaguardando a privacidade do utilizador.
Em resumo, a tecnologia de prova de conhecimento zero da Gate.io aborda dois questões-chave com a prova de reservas:
O Gate.io melhorou a sua prova de reservas usando o zk-SNark, dando um passo significativo como bolsa líder na proteção da segurança dos ativos dos utilizadores. Com esta atualização, os utilizadores podem ver as provas de reserva em tempo real, e o primeiro lote de ativos suportados cobrirá o top 100 por capitalização de mercado. Como líder do setor, criou o código de código aberto e continuará a impulsionar o desenvolvimento da indústria e a explorar um futuro criptografado mais seguro e que melhore a privacidade com esta atualização à prova de conhecimento zero.
Leituras adicionais: