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

12/28/2023, 4:28:45 AM
Avançado
Blockchain
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.

Compartilhar

Calendário Cripto

Encontro em Ho Chi Minh
Metis trará sua iniciativa BUIDL Hour para Ho Chi Minh City como parte do ETHVietnam em 9 de agosto.
METIS
-3.22%
2025-08-08
AMA no X
THORChain irá segurar um AMA no X com Vultisig no dia 9 de agosto às 15:00 UTC para examinar os desenvolvimentos em torno da carteira VULT. A discussão deve delinear os objetivos do projeto e seu potencial impacto na funcionalidade das carteiras de criptomoeda.
RUNE
-6.6%
2025-08-08
AMA no Discord
Nibiru fará um AMA no Discord no dia 9 de agosto às 16:00 UTC para demonstrar a navegação dos aplicativos da Festa de Blocos.
NIBI
-1.36%
2025-08-08
ETH Vietnã em Ho Chi Minh City
A Kadena participará da conferência ETH Vietnam, programada para os dias 9 e 10 de agosto em Ho Chi Minh City. O evento está marcado para reunir desenvolvedores de blockchain e profissionais da indústria para discussões sobre desenvolvimentos tecnológicos dentro do ecossistema Ethereum.
KDA
-4.87%
2025-08-09
Rare Evo em Las Vegas
COTI participará do evento Rare Evo em Las Vegas de 6 a 10 de agosto.
COTI
-5.31%
2025-08-09

Artigos Relacionados

O que é Bitcoin?
iniciantes

O que é Bitcoin?

Bitcoin, a primeira criptomoeda usada com sucesso no mundo, é uma rede descentralizada de pagamento digital peer-to-peer inventada por Satoshi Nakamoto. O Bitcoin permite que os usuários negociem diretamente sem uma instituição financeira ou terceiros.
11/21/2022, 10:12:36 AM
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.
11/11/2023, 6:20:25 PM
O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?
intermediário

O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?

Este artigo fornece uma análise aprofundada da emergente exchange descentralizada (DEX) EtherVista e seu token de plataforma, VISTA. Explora como a EtherVista visa desafiar o modelo existente de AMM (Automated Market Maker), especialmente o da Uniswap, por meio de seus mecanismos de negociação exclusivos e modelo de distribuição de taxas. O artigo também explora os contratos inteligentes da EtherVista, a tokenomia e como atrai usuários ao oferecer taxas de gás baixas e um inovador sistema de distribuição de receitas.
9/10/2024, 3:49:43 PM
O que é Coti? Tudo o que você precisa saber sobre o COTI
iniciantes

O que é Coti? Tudo o que você precisa saber sobre o COTI

Coti (COTI) é uma plataforma descentralizada e escalonável que oferece suporte a pagamentos sem atrito para finanças tradicionais e moedas digitais.
11/2/2023, 9:09:18 AM
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.
11/22/2023, 6:27:42 PM
O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025
intermediário

O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025

Neiro é um cachorro da raça Shiba Inu que inspirou o lançamento de tokens Neiro em diferentes blockchains. Em 2025, o Neiro Ethereum (NEIROETH) evoluiu para uma das principais moedas meme com um valor de mercado de $215 milhões, mais de 87.000 detentores e listagens em 12 grandes exchanges. O ecossistema agora inclui um DAO para governança comunitária, uma loja oficial de mercadorias e um aplicativo móvel. NEIROETH implementou soluções de camada 2 para melhorar a escalabilidade e consolidou sua posição entre as 10 principais moedas meme temáticas de cachorro por capitalização de mercado, apoiado por uma comunidade vibrante e influenciadores cripto líderes.
9/5/2024, 3:37:06 PM
Comece agora
Inscreva-se e ganhe um cupom de
$100
!