O poder das provas de conhecimento zero: mergulho profundo nos zk-SNARKs

Última atualização 2026-04-08 16:50:51
Tempo de leitura: 1m
Este artigo fornece insights técnicos detalhados sobre zk-SNARKs.

Este artigo irá decodificar esta tecnologia usando a matemática, ilustrando como ela pode provar a veracidade do conhecimento sem revelar qualquer informação.

Compilado por: DODO Research

Autor: Cofundador da 0xAlpha @DeriProtocol

Introdução

Zk-SNARK, ou argumento de conhecimento sucinto e não interativo de conhecimento zero, permite que um verificador confirme que um provador possui certo conhecimento (chamado de testemunhas) que satisfaz relacionamentos específicos sem revelar qualquer informação sobre o conhecimento em si.

A geração de um zk-SNARK para um problema específico envolve as quatro etapas a seguir:

  • Converta um problema (ou função) em um circuito aritmético.
  • Este circuito é então traduzido em uma equação matricial.
  • Esta equação matricial é posteriormente convertida em um polinômio que deve ser divisível por um polinômio mínimo específico.
  • Finalmente, esta divisibilidade é expressa em pontos de curva elíptica sobre um corpo finito, onde ocorre a prova.

Os três primeiros passos apenas transformam a representação da afirmação original. A última etapa projeta a declaração da terceira etapa em um espaço criptografado usando criptografia homomórfica, permitindo ao provador verificar as declarações espelhadas nele contidas. Dado que esta projeção utiliza criptografia assimétrica, não é viável voltar da declaração da etapa 3 para a declaração original, garantindo exposição de conhecimento zero.

A formação matemática necessária para ler este artigo é comparável ao nível de álgebra esperado dos estudantes universitários STEM do primeiro ano. O único conceito que pode ser desafiador pode ser a criptografia de curva elíptica. Para quem não está familiarizado com isto, pode pensar nela como uma função exponencial com uma base especial, tendo em mente que a sua inversa permanece sem solução.

Este artigo seguirá as seguintes regras de notação:

Matrizes: letras maiúsculas em negrito, por exemplo A; escrito em formas explícitas \
Vetores: Letra minúscula com setas, escrita de forma explícita [ ]; todos os vetores são vetores de coluna por padrão \
Escalares: representados por letras regulares

Tomemos como exemplo a seguinte questão:

f(x)=x^3+x^2+5 (1)

Suponha que Alice queira provar que conhece uma verdade. Percorreremos todo o procedimento que Alice precisa realizar para gerar um zk-SNARK para sua prova.
Esta questão pode parecer muito simples porque não envolve fluxo de controle (por exemplo, if-then-else). Entretanto, não é difícil converter funções com fluxo de controle em expressões aritméticas. Por exemplo, considere o seguinte problema (ou “função” em linguagens de programação):

f(x, z):
se(z==1):
retornar xxx+xx+5
outro:
retornar xx
+5

Reescrever este problema na seguinte expressão aritmética (assumindo que z pertence a (0,1)) não é mais complexo do que a equação (1).

f(x,z)=(z-1)(x^2+5)+z(x^3+x^2+5)

Neste artigo, continuaremos a usar a equação (1) como base para nossa discussão.

Etapa 1: Circuito Aritmético

A equação (1) pode ser dividida nas seguintes operações aritméticas básicas:

Isso corresponde ao seguinte circuito aritmético:

Também nos referimos à equação (2) como um conjunto de 4 “restrições primárias”, cada restrição descrevendo a relação de uma porta aritmética no circuito. Em geral, um conjunto de n restrições primárias pode ser resumido como um programa aritmético quadrático (QAP), que será explicado a seguir.

Etapa 2: Matriz

Primeiro, vamos definir um vetor “testemunha” da seguinte forma:

onde y, s1, s2 e s3 são definidos como na equação (2).
Normalmente, para um problema com m entradas e n portas aritméticas (ou seja, n-1 etapas intermediárias e a saída final), este vetor testemunha será (m+n+1) dimensional. Em casos do mundo real, o número n pode ser extremamente grande. Por exemplo, para funções hash, n geralmente está na casa dos milhares.

A seguir, vamos construir três n(m+n+1) matrizes A,B,C para que possamos reescrever a equação (2) da seguinte forma:

A equação (3) é apenas mais uma representação da equação (2): cada conjunto (ai, bi, ci) corresponde a uma porta do circuito. Podemos ver isso expandindo explicitamente a equação matricial:

Portanto, LHS=RHS é exatamente igual à equação (2), e cada linha da equação matricial corresponde a uma restrição primária (isto é, uma porta aritmética no circuito).

Pulamos as etapas de construção (A, B, C), que na verdade são relativamente simples. Precisamos apenas convertê-los em matriz de acordo com as restrições primárias correspondentes para determinar o conteúdo de cada linha de (A, B, C), ou seja, (ai, bi, ci). Tomando a primeira linha como exemplo: podemos facilmente ver que para tornar a primeira restrição primária x multiplicada por x igual a s1, precisamos multiplicar [0,1,0,0,0], [0, 1,0, 0,0] e [0,0,0,1,0,0] pelo vetor s.

Assim, convertemos com sucesso o circuito aritmético em uma equação matricial, nomeadamente a equação (3). Ao mesmo tempo, também alteramos o objeto que precisa ser provado para ser dominado para os vetores testemunhas.

Etapa 3: Polinômios

Agora, vamos construir uma matriz n(n+m+*1) PA, que define um conjunto de polinômios em relação a z:

Garantindo que a funçãoassume os seguintes valores em {1, 2, 3, 4} satisfaz as condições:

Então podemos reescrever A como:

São quatro conjuntos de equações lineares envolvendo seis variáveis que podem ser resolvidas usando métodos tradicionais. Porém, uma forma mais eficiente de resolver PA neste caso é a interpolação Lagrangiana, que explora as peculiaridades do problema. Aqui pulamos o processo de resolução de PA, que é um pouco tedioso, mas direto.

Da mesma forma, construímos PB e PC separadamente para B e C. Então podemos reescrever a equação matricialdo seguinte modo:

Observando cada linha separadamente, fica evidente que essas quatro linhas correspondem à mesma expressão avaliada em quatro pontos diferentes. Portanto, a equação matricial acima é equivalente a:

Etapa 3: Ponto da Curva Elíptica

Reescreva a equação (4) como:

onde i(z)=1 é apenas um polinômio trivial de grau zero em z usado para unificar as equações - todos os termos são quadráticos. A necessidade disso ficará clara em breve. Observe que esta equação contém apenas a adição e multiplicação de polinômios em z.

Observe que as operações aritméticas, adição (+) e multiplicação (X), também são mapeadas para operações correspondentes no corpo finito de pontos de curva elíptica. Os símbolos e são usados para evitar confusão e indicar que se trata de operações de campo redefinidas.

A seguir, explicaremos as etapas práticas com mais detalhes.

Criptografia de curva elíptica

A teoria geral das curvas elípticas vai muito além do escopo deste artigo. Para os propósitos deste documento, uma curva elíptica é definida como mapeamentos de um campo principal Fp para a função E, onde E inclui pontos tais que y^2=x^3+ax+b (chamados pontos de curva elíptica, ou ECPs, para abreviar) .

Observe que, embora tenhamos discutido aritmética regular até agora, ao fazer a transição para um corpo primo, as operações aritméticas com números são realizadas usando aritmética modular. Por exemplo, a+b=a+b(mod p), onde p é a ordem de Fp.

Por outro lado, a adição de dois pontos de curva elíptica é definida conforme mostrado abaixo:

Especificamente, a adição de P e Q de duas ECPs:

Encontre a intersecção da linha PQ e da curva R e defina-a como -(P+Q)
Vire para o ponto “espelho” R' de R na curva.
Portanto definimos a adição de pontos de curva elíptica P+Q=R':

Observe que esta regra também se aplica ao caso especial em que é utilizada a adição de um ECP, caso em que será utilizada a tangente a esse ponto.

Agora suponha que selecionamos aleatoriamente um ponto G e mapeamos o número 1 para ele. (Este “mapeamento inicial” parece um pouco arbitrário. Discutiremos isso mais tarde). E para qualquer n pertencente a Fp, definimos:

E(N)=G+G+G+…..+G=G multiplicado por n

Existe uma expressão de operação. Defina a operação +G como “gerador”, denotado como g. Então a definição acima é equivalente a:

Após definir a adição, a seguinte relação linear torna-se evidente:

Portanto, qualquer relacionamento linear (ou restrição) em Fp será preservado no espaço criptografado B através deste mapeamento. Por exemplo, a equação l + m = n em Fp levará a

Contudo, como a equação (5) que Alice quer provar está na forma quadrática, ela não é suficientemente linear. Para lidar com termos quadráticos, precisamos definir a multiplicação no espaço criptografado. Isso é chamado de emparelhamento ou mapa bilinear, que explicarei na seção a seguir.

Mapa bilinear

Suponha que G1, G2 e GT sejam grupos de ordem prima g. Uma função de emparelhamento, ou mapa bilinear, é definida da seguinte forma:

String de referência comum

Este conjunto é denominado “chave de prova” (PK). Observe que a representação de vetores dentro de E() deve ser entendida como vetores de pontos de curvas elípticas, onde cada ponto é mapeado a partir do elemento vetorial correspondente. Assim, esses 11 vetores compreendem, na verdade, 62 (=42+63+63+63) pontos de curva elíptica. Estas 62 PAE serão fornecidas a Alice, a provadora. Em um cenário geral, para um problema com m entradas en restrições primárias, o PK conterá 2n + 3(m+n+1)*3 = 11n + 9m + 9 ECPs.

Simultaneamente, serão realizados os seguintes cálculos:

Todo o processo é denominado “chave de verificação” (VK). Apenas 7 pontos de curva elíptica (ECPs) estão envolvidos aqui, os quais precisam ser fornecidos ao verificador. Deve-se notar que não importa quantas entradas e restrições primárias estejam envolvidas no problema, o VK é sempre composto por 7 ECPs.

Além disso, vale ressaltar que a “configuração confiável” e o processo de geração de PK e VK só precisam ser feitos uma vez para um problema específico.

Prova e Verificação

Agora possuindo a chave pública (PK), Alice irá calcular os seguintes pontos da curva elíptica (ECPs):

Esses 9 pontos da curva elíptica são cruciais para um argumento de conhecimento sucinto e não interativo de conhecimento zero (zk-SNARK)!

Observe que Alice está essencialmente realizando combinações lineares nos pontos da curva elíptica na chave pública. Isto é particularmente crítico e será rigorosamente verificado durante a verificação.

Agora, Alice apresenta a prova zk-SNARK, levando-nos finalmente ao processo de verificação, que acontece em três etapas.

Primeiro, é necessário confirmar que os primeiros 8 pontos da curva elíptica são de fato combinações lineares desses pontos na cadeia de referência comum.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [chaincatcher]. Todos os direitos autorais pertencem ao autor original [0xAlpha Cofundador @ DeriProtocol]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Artigos Relacionados

O que é a Carteira HOT no Telegram?
intermediário

O que é a Carteira HOT no Telegram?

A Carteira HOT no Telegram é uma carteira totalmente na cadeia e não custodial. É uma carteira do Telegram de próxima geração que permite aos usuários criar contas, negociar criptomoedas e ganhar tokens $HOT.
2026-04-05 07:39:11
O que é Bitcoin?
iniciantes

O que é Bitcoin?

O Bitcoin é um sistema de moeda digital descentralizado desenvolvido para transferências de valor peer to peer e para a preservação de valor no longo prazo. Criado por Satoshi Nakamoto, funciona sem a necessidade de uma autoridade central. Em seu lugar, a manutenção ocorre de forma coletiva, utilizando criptografia e uma rede distribuída.
2026-04-09 08:09:16
Morpho vs Aave: Análise comparativa dos mecanismos e diferenças estruturais nos protocolos de empréstimo DeFi
iniciantes

Morpho vs Aave: Análise comparativa dos mecanismos e diferenças estruturais nos protocolos de empréstimo DeFi

A principal diferença entre Morpho e Aave está nos mecanismos de empréstimo que cada um utiliza. Aave adota o modelo de pool de liquidez, enquanto Morpho evolui esse conceito ao implementar um mecanismo de correspondência P2P, proporcionando uma melhor adequação das taxas de juros dentro do mesmo mercado. Aave funciona como um protocolo de empréstimo nativo, oferecendo liquidez básica e taxas de juros estáveis. Morpho atua como uma camada de otimização, elevando a eficiência do capital ao reduzir o spread entre as taxas de depósito e de empréstimo. Em essência, Aave é considerada infraestrutura, e Morpho é uma ferramenta de otimização de eficiência.
2026-04-03 13:09:13
Tokenomics da Morpho: utilidade do MORPHO, distribuição e proposta de valor
iniciantes

Tokenomics da Morpho: utilidade do MORPHO, distribuição e proposta de valor

MORPHO é o token nativo do protocolo Morpho, utilizado principalmente para governança e incentivos ao ecossistema. Com a estruturação da distribuição de tokens e dos mecanismos de incentivo, Morpho promove o alinhamento entre as ações dos usuários, o crescimento do protocolo e a autoridade de governança, estabelecendo uma estrutura de valor sustentável no ecossistema de empréstimos descentralizados.
2026-04-03 13:13:12
O que é o PolygonScan e como você pode usá-lo? (Atualização 2025)
iniciantes

O que é o PolygonScan e como você pode usá-lo? (Atualização 2025)

PolygonScan é um explorador de blockchain que permite aos usuários acessar detalhes de transações publicamente compartilhados na rede Polygon. Na atualização de 2025, agora processa mais de 5 bilhões de transações com confirmações em milissegundos, apresenta ferramentas de desenvolvedor aprimoradas, integração com Layer 2, análises avançadas, recursos de segurança melhorados e uma experiência móvel redesenhada. A plataforma ajuda os usuários a rastrear transações e obter insights mais profundos sobre o fluxo de ativos no crescente ecossistema da Polygon, que agora abriga 3,2 milhões de endereços ativos diários e $8,7 bilhões em valor total bloqueado.
2026-04-08 22:02:02
O que é Tronscan e como você pode usá-lo em 2025?
iniciantes

O que é Tronscan e como você pode usá-lo em 2025?

Tronscan é um explorador de blockchain que vai além do básico, oferecendo gerenciamento de carteira, rastreamento de tokens, insights de contratos inteligentes e participação em governança. Até 2025, evoluiu com recursos de segurança aprimorados, análises expandidas, integração entre cadeias e experiência móvel aprimorada. A plataforma agora inclui autenticação biométrica avançada, monitoramento de transações em tempo real e um painel abrangente de DeFi. Os desenvolvedores se beneficiam da análise de contratos inteligentes alimentados por IA e ambientes de teste aprimorados, enquanto os usuários desfrutam de uma visualização unificada de portfólio multi-cadeias e navegação baseada em gestos em dispositivos móveis.
2026-04-08 21:20:26