- Voltar ao menu
- Voltar ao menuPreços
- Voltar ao menuPesquisar
- Voltar ao menuConsenso
- Voltar ao menu
- Voltar ao menu
- Voltar ao menu
- Voltar ao menuWebinars e Eventos
A tendência para a Política de Privacidade do Blockchain: provas de conhecimento zero
George Samman, ex-CMO da Fuzo, LOOKS como soluções como provas de conhecimento zero podem preservar a Política de Privacidade em plataformas de blockchain.
Uma das maiores tendências no mundo do blockchain, particularmente quando se trata de serviços financeiros e especificamente operações de Mercados de capital, tem sido a necessidade de Política de Privacidade e confidencialidade no curso dos negócios diários. Isso significa que as soluções de blockchain estão sendo projetadas com essa necessidade primária em mente. Isso levou a todas as soluções de blockchain privadas sendo desenvolvidas hoje.
Quando você constrói para Política de Privacidade e confidencialidade, há compensações que vêm com isso. Principalmente você perde transparência, que era a principal característica do primeiro blockchain: Bitcoin. Como projetado originalmente, um blockchain é uma máquina de transparência. Neste sistema, os computadores são distribuídos e ONE entidade controla a rede. Não apenas isso, mas qualquer um pode ser um validador e qualquer um pode escrever ou ler da rede. Clientes e validadores podem ser anônimos e todos os dados são armazenados localmente em cada nó (replicação). Isso torna todos os dados de transação públicos.
A segurança do Bitcoin é possível por um processo de verificação no qual todos os participantes podem validar transações individualmente e autonomamente. Enquanto o Bitcoin aborda o problema de Política de Privacidade emitindo endereços pseudônimos, ainda é possível descobrir de quem são os endereços por meio de várias técnicas.
Isso é o oposto do que está acontecendo no mundo do blockchain privado, onde a descentralização e a transparência não são consideradas necessárias para muitos casos de uso do Mercados de capitais.
O que é importante é Política de Privacidade e confidencialidade, latência (velocidade) e escalabilidade (capaz de manter alto desempenho conforme mais nós são adicionados ao blockchain). Transações criptografadas nó a nó (n2n) significam que apenas as duas partes envolvidas na transação recebem dados. Em muitos desses sistemas, há opt-ins para nós de terceiros (reguladores) fazerem parte da transação.
Outros sistemas que estão sendo desenvolvidos para propósitos semelhantes, que foramescrito neste blog, tem um gerador de bloco designado que coleta e valida transações propostas, agrupando-as periodicamente em uma proposta de novo bloco. O consenso é fornecido por um Gerador que aplica regras (valida) acordadas pelos nós (núcleos de cadeia) ao bloco e aos signatários de bloco designados.
Nesses sistemas, a descentralização simplesmente não é necessária porque todos os nós são partes conhecidas. Em blockchains privadas, os nós devem ser conhecidos para satisfazer certos requisitos regulatórios e de conformidade. O foco tem sido como preservar a Política de Privacidade e a confidencialidade, ao mesmo tempo em que se obtém velocidade, escalabilidade e estabilidade de rede. Portanto, há maneiras de recurso legal, mesmo entre partes que T necessariamente confiam umas nas outras.
Identificação criptográfica forte e durável
O que são criptografia e encriptação?
Conforme observado acima, com Política de Privacidade e confidencialidade sendo cruciais, a criptografia se tornou um foco importante para todos os blockchains. Muitas dessas soluções estão usando técnicas criptográficas avançadas que fornecem fortes garantias matematicamente comprováveis para a Política de Privacidade de dados e transações.
Em uma postagem de blog recente intitulada "Um lembrete gentil sobre criptografia" por Kathleen Breitman do R3CEV, ela fornece sucintamente uma ótima definição de trabalho:
"Criptografia se refere à operação de disfarçar texto simples, informação a ser escondida. O conjunto de regras para criptografar o texto é chamado de algoritmo de criptografia. A operação de um algoritmo depende da chave de criptografia, ou uma entrada para o algoritmo com a mensagem. Para um usuário obter uma mensagem da saída de um algoritmo, deve haver um algoritmo de descriptografia que, quando usado com uma chave de descriptografia, reproduza o texto simples."
Se essa criptografia usa texto cifrado para descriptografar esse texto simples, você obtém criptografia homomórfica e isso (combinado com técnicas de assinatura digital) é a base para as técnicas criptográficas que serão discutidas neste post. A criptografia homomórfica permite que cálculos sejam feitos em dados criptografados sem primeiro ter que descriptografá-los. Em outras palavras, essa técnica permite que a Política de Privacidade dos dados/transações seja preservada enquanto os cálculos são realizados neles, sem revelar esses dados/transações. Somente aqueles com chaves de descriptografia podem acessar o que exatamente eram esses dados/transações.
Criptografia homomórfica significa que decrypt(encrypt(A) + encrypt(B)) == A+B. Isso é conhecido como subadição homomórfica.
Portanto, um cálculo realizado nos dados criptografados quando descriptografados é igual a um cálculo realizado nos dados criptografados.
A questão-chave que está sendo colocada é:Como você pode convencer um sistema de uma mudança de estado sem revelar muita informação?
Afinal, blockchains querem compartilhar um (alteração de) estado; não informações. Em um blockchain, algum processo de negócio está no estado X e agora se move para o estado Y, isso precisa ser registrado e provado, preservando a Política de Privacidade e não compartilhando muitas informações. Além disso, essa mudança de estado precisa acontecer legalmente, caso contrário, há uma violação de Política de Privacidade .
Técnicas criptográficas como provas de conhecimento zero (ZKPs), que usam diferentes tipos de criptografia homomórfica, separam:
1) chegar a uma conclusão sobre um estado de coisas
2) as informações necessárias para atingir esse estado de coisas
3) mostrar que esse estado é válido.
O restante deste post discutirá como a tendência em direção à Política de Privacidade levou a técnicas criptográficas, algumas antigas e outras novas, sendo usadas para criptografar transações e os dados associados a elas de todos, exceto das partes envolvidas. O foco será em Zero Knowledge Proofs, zk SNARKs, Hawk, assinaturas confidenciais, canais de estado e criptografia homomórfica.
O problema de Política de Privacidade em uma blockchain é a principal lacuna para a implantação de todas as soluções criptográficas discutidas abaixo.
Fora de um blockchain, há exemplos de criptografia homomórfica na prática. CryptDB é um exemplo de sistema que usa criptografia homomórfica e outras técnicas de criptografia de preservação de atributos para consultar bancos de dados com segurança. Ele é usado em produção no Google e na Microsoft, entre outros lugares.
No entanto, ele tem limitações: você tem que definir os tipos de consultas que deseja com antecedência e é fácil vazar dados. O CryptDB fornece confidencialidade para o conteúdo dos dados e para os nomes de colunas e tabelas; no entanto, o CryptDB não oculta a estrutura geral da tabela, o número de linhas, os tipos de colunas ou otamanho aproximado dos dados em bytes. Um método que o CryptDB usa para criptografar cada item de dados é por onioning. Isso permite que cada item de dados seja colocado em camadas de criptografia cada vez mais forte.
Assinaturas confidenciais
Gregory Maxwell projetou uma ferramenta criptográfica (CT) para melhorar a Política de Privacidade e a segurança de blockchains estilo bitcoin. Ela mantém os valores transferidos visíveis apenas para os participantes da transação. CTs tornam os valores e saldos da transação privados em um blockchain por meio de criptografia, especificamente criptografia aditivamente homomórfica. O que os usuários podem ver são os saldos de suas próprias contas e transações que estão recebendo. Provas de conhecimento zero são necessárias para demonstrar ao blockchain que nenhuma das saídas criptografadas contém um valor negativo.
O problema com transações confidenciais é que elas permitem apenas provas muito limitadas, como mencionado acima. zkSNARKs e provas de conhecimento zero (ZKPs), que serão descritas em detalhes abaixo, permitem que você comprove praticamente qualquer tipo de validação de transação, mantendo todas as entradas privadas.
Provas de Conhecimento Zero (ZKPs)
Provas de Conhecimento Zero (ZKPs) não são novas. Elas foram conceituadas pela primeira vez em 1985 em um artigo "The Knowledge Complexity of Interactive proof Systemshttps://groups.csail.mit.edu/cis/pubs/shafi/1985-stoc.pdf". Uma ZKP é uma técnica criptográfica que permite que duas partes (um provador e um verificador) provem que uma proposição é verdadeira, sem revelar nenhuma informação sobre essa coisa além de ser verdadeira. No caso de criptomoedas e blockchains, geralmente serão dados sobre informações transacionais.
Uma prova de conhecimento zero deve satisfazer três propriedades:
- Completude: se a afirmação for verdadeira, o verificador honesto (isto é, ONE que segue o protocolo corretamente) será convencido desse fato por um provador honesto.
- Solidez:se a afirmação for falsa, nenhum provador trapaceiro poderá convencer o verificador honesto de que ela é verdadeira, exceto com alguma pequena probabilidade.
- Conhecimento zero: se a declaração for verdadeira, nenhum verificador trapaceiro aprende nada além desse fato. Isso é formalizado mostrando que todo verificador trapaceiro tem algum simulador que, dada apenas a declaração a ser provada (e nenhum acesso ao provador), pode produzir uma transcrição que "LOOKS " uma interação entre o provador honesto e o verificador trapaceiro.
As duas primeiras são propriedades de natureza mais geralsistemas de prova interativos. O terceiro é o que torna a prova de conhecimento zero."
zk-SNARKs
Um zk-SNARK (zero-knowledge Succinct Non-Interactive Arguments of Knowledge) é uma prova de Conhecimento Zero que é uma maneira de provar algum fato computacional sobre dados sem revelar os dados. Zk-SNARKs são a ferramenta criptográfica subjacente usada no Zcash e no Hawk, ambos construindo blockchains com ZKPs e ambos serão explicados mais tarde. No caso do Zcash, esses SNARKs são usados para verificar transações e, no caso do Hawk, são usados para verificar contratos inteligentes. Isso é feito enquanto ainda protege a Política de Privacidade dos usuários.
Um zk-SNARK é uma prova de conhecimento não interativa de conhecimento zero que é sucinta e para a qual as provas são muito curtas e fáceis de verificar. Eles podem ser pensados como pequenos circuitos lógicos que precisam gerar uma prova de declaração para verificar cada transação. Eles fazem isso tirando um instantâneo de cada transação, geram uma prova e então precisam convencer o lado receptor de que o cálculo foi feito corretamente sem revelar nenhum dado, exceto a própria prova. A operação básica de uma execução SNARK é uma entrada codificada neste circuito que pode ser descriptografada.
Como os zk-SNARKs podem ser verificados rapidamente e as provas são pequenas, eles podem proteger a integridade da computação sem sobrecarregar os não participantes. Deve-se notar que essa Tecnologia está apenas começando a amadurecer, mas ainda tem limitações. Eles são muito intensivos em CPU para gerar provas e leva até 1 minuto para gerar novas provas, então o dimensionamento ainda é um problema que precisa ser resolvido.
Os primeiros pontos de dados para zk-SNARKs serão Zcash , que é uma combinação de estado distribuído e prova de que você possui os ativos.
Zcash
O Zcash pode ser descrito como um livro-razão criptografado, aberto, sem permissão e replicado. Um protocolo criptográfico para colocar dados privados em um blockchain público. O Zcash pode ser pensado como uma extensão do protocolo Bitcoin . Basicamente, o Zcash adicionou alguns campos ao formato de transação Bitcoin para suportar transações criptografadas.
O Zcash usa SNARKs (ZKPs) para criptografar todos os dados e só fornece chaves de descriptografia para partes autorizadas a ver esses dados. Isso não podia ser feito em um blockchain público até agora porque se você criptografasse tudo no passado, isso impediria os mineradores de verificar se as transações são válidas. Os ZKPs tornaram isso possível ao permitir que o criador de uma transação faça uma prova de que a transação é verdadeira sem revelar o endereço do remetente, o endereço do destinatário e o valor da transação.
Zooko descreve isso dizendo que o Bitcoin tem 3 colunas, que são as três mencionadas acima (endereço do remetente, endereço do destinatário, valor da transação) e o Zcash tem 4. A prova da quarta coluna T sabe o endereço do remetente, o endereço do destinatário e o valor transferido, mas sabe que ninguém poderia ter criado a prova que vem com os valores criptografados a menos que eles tenham uma chave Secret que tenha valor suficiente para cobrir o valor que está sendo transacionado. Esta é uma prova de que os dados dentro da criptografia satisfazem corretamente as construções de validade. Isso permite a prevenção de gastos duplos e transações menores que zero.
O Zcash é basicamente o mesmo que o Bitcoin. Os mineradores e os full nodes são validadores de transações. O Zcash usa POW que faz com que os mineradores verifiquem os ZKPs anexados a cada transação e recebam uma recompensa por validar essas transações. Os full nodes são os mesmos, exceto que se você tiver as chaves privadas, poderá detectar se algumas transações têm dinheiro que está lá Para Você. Os SNARKs fazem com que os mineradores possam rejeitar uma transação de alguém se sua chave privada T tiver dinheiro suficiente para essa transação.
Ao manter todos os dados privados, exceto a quarta coluna, ele omite o vazamento de informações para um blockchain privado, o que permite que todos visualizem informações sobre as transações. O Zcash tem transparência seletiva enquanto o Bitcoin tem transparência obrigatória. Isso significa que o Zcash pode revelar coisas específicas para pessoas específicas por permissão. Ele revela transações específicas que qualquer um que as veja pode verificar no blockchain.
Algumas diferenças em relação aoDocumento técnico do Zcashincluir:
"O valor no Zcash é transportado por notas, que especificam uma quantia e uma chave de pagamento. A chave de pagamento é parte de um endereço de pagamento, que é um destino para o qual as notas podem ser enviadas. Como no Bitcoin, isso é associado a uma chave privada que pode ser usada para gastar notas enviadas para o endereço; no Zcash, isso é chamado de chave de gasto.
Um endereço de pagamento inclui duas chaves públicas: uma chave de pagamento correspondente à das notas enviadas para o endereço e uma chave de transmissão para um esquema de criptografia assimétrica de chave privada. “Chave privada” significa que os textos cifrados não revelam informações sobre qual chave foram criptografados, exceto para um detentor da chave privada correspondente, que neste contexto é chamada de chave de visualização. Esse recurso é usado para comunicar notas de saída criptografadas na cadeia de blocos para o destinatário pretendido, que pode usar a chave de visualização para escanear a cadeia de blocos em busca de notas endereçadas a eles e, em seguida, descriptografar essas notas.
A base das propriedades de Política de Privacidade do Zcash é que quando uma nota é gasta, o gastador apenas prova que algum compromisso para ela foi revelado, sem revelar qual. Isso implica que uma nota gasta não pode ser vinculada à transação na qual foi criada."
Zcash é o que é conhecido como esquema de pagamento anônimo descentralizado (esquemas DAP). Um esquema DAP permite que os usuários paguem diretamente uns aos outros de forma privada: a transação correspondente oculta a origem do pagamento, o destino e o valor transferido.
No Zcash, as transações são menores que 1 kB e levam menos de 6 ms para serem verificadas — ordens de magnitude mais eficientes que o menos anônimo Zerocoin e competitivo com o Bitcoin. No entanto, a Política de Privacidade alcançada é significativamente maior do que com o Bitcoin. Desanonimizar o Bitcoin se tornou muito mais fácil por meio de serviços que rastreiam e monitoram os movimentos do Bitcoin e os dados associados a ele. Os serviços Mixer permitem que as moedas sejam alteradas conforme elas se movem pelo sistema por meio de uma parte central, mas isso ainda não é suficiente.
O Documento técnico do Zcashafirma:
"[M]ixes sofrem de três limitações: (i) o atraso para recuperar moedas deve ser grande para permitir que moedas suficientes sejam misturadas; (ii) o mix pode rastrear moedas; e (iii) o mix pode roubar moedas. Para usuários com “algo a esconder”, esses riscos podem ser aceitáveis. Mas usuários legítimos típicos (1) desejam KEEP seus hábitos de gastos privados de seus pares, (2) são avessos ao risco e não desejam despender esforços contínuos para proteger sua Política de Privacidade e (3) geralmente não estão suficientemente cientes de sua Política de Privacidade comprometida."
As principais motivações para ZKPs e o protocolo Zcash são 1) Política de Privacidade e 2) fungibilidade. Fungibilidade é ser capaz de substituir unidades individuais de algo como uma mercadoria ou dinheiro por uma quantia igual. Isso pode ser um problema real quando algumas unidades de valor são consideradas menores porque são consideradas "sujas". Ocultar o histórico de metadados T permite que uma moeda com um histórico ruim seja rejeitada por um comerciante ou bolsa. Gregory Maxwell disse " Política de Privacidade insuficiente também pode resultar em perda de fungibilidade — onde algumas moedas são tratadas como mais aceitáveis do que outras — o que prejudicaria ainda mais a utilidade do Bitcoin como dinheiro."
Espera-se que o Zcash lançar em breve e com isso o bloco genesis do blockchain Zcash . Isso permitirá, como o blockchain Bitcoin , que qualquer pessoa no mundo minere, por Zcash. Será um sistema aberto, sem permissão (totalmente descentralizado). Os usuários poderão enviá-lo para qualquer pessoa usando Política de Privacidade de conhecimento zero.
O uso de técnicas criptográficas de ponta pelo ZCash traz riscos substanciais. Um ataque criptográfico que permite a falsificação de provas de conhecimento zero permitiria que um invasor criasse moeda ilimitada de forma invisível e degradasse o valor do Zcash. Ataques desse tipo foram encontrados e corrigidos no passado recente. Felizmente, as técnicas de ocultação de metadados usadas no Zcash são mais reforçadas para produção e podem ser consideradas menos arriscadas.
Falcão
Andrew Miller em seuwhitepaper: "Hawk: O modelo blockchain de criptografia e contratos inteligentes que preservam a privacidade" desenvolveu um sistema de contrato inteligente programável que funciona da mesma forma que o Zcash para contratos inteligentes.
O Hawk não armazena transações financeiras no blockchain e mantém privado o código do contrato, os dados enviados para o contrato e o dinheiro enviado e recebido pelo contrato do público. É apenas a prova que pode ser vista e todas as outras informações úteis são ocultadas. Como o Zcash, a transparência é seletiva no Hawk e T precisaria ser usada por todos os contratos inteligentes, mas com base nos casos de uso e nas preferências das partes envolvidas. Ele também visa abordar as questões de Política de Privacidade e fungibilidade da mesma forma que o protocolo Zcash .
O whitepaper do Hawk faz um ótimo trabalho ao descrever a motivação para a segurança contratual que ele busca fornecer para transações financeiras:
"Enquanto a Política de Privacidade on-chain protege a Política de Privacidade das partes contratuais contra o público (ou seja, partes não envolvidas no contrato financeiro), a segurança contratual protege as partes no mesmo acordo contratual umas das outras. Hawk assume que as partes contratuais agem egoisticamente para maximizar seus próprios interesses financeiros. Em particular, elas podem se desviar arbitrariamente do protocolo prescrito ou até mesmo abortar prematuramente. Portanto, a segurança contratual é uma noção multifacetada que abrange não apenas noções criptográficas de confidencialidade e autenticidade, mas também justiça financeira na presença de trapaça e comportamento de aborto."
De acordo com Andrew Miller, Hawk é baseado em várias primitivas criptográficas. Ele usa a mesma biblioteca de prova de conhecimento zero que o Zcash, que é chamada de libsnark. Hawk também usa implementações personalizadas de uma função hash baseada em lattice e criptografia de chave pública. Hawk usa uma ferramenta jSnark que é de código aberto.
Em Hawk, cada parte gera suas próprias chaves Secret . Miller afirmou que:"Para cada contrato, há também um parâmetro público confiável, semelhante ao Zcash. A única maneira de gerar esses parâmetros é um processo que envolve a geração de um valor Secret em uma etapa intermediária, que precisa ser apagado no final do protocolo. Para pegar emprestado o termo do Zcash para isso, é como um "subproduto de resíduo tóxico" do procedimento de configuração e, como todo resíduo industrial, deve ser descartado com segurança. Há muitas opções... poderíamos fazer o que o Zcash faz e usar uma computação multipartidária para gerar esses parâmetros, simplesmente deixar uma parte confiável fazer isso (a parte confiável só precisa ser usada uma vez e pode ficar offline depois), ou usar hardware confiável como o SGX."
Miller disse que há algumas diferenças entre contratos Ethereum e contratos Hawk. Ao contrário do Ethereum, a linguagem de entrada para contratos privados no Hawk é o código C. Um contrato privado Hawk não é um processo stateful de longa duração como um contrato Ethereum , mas sim um contrato de 1-shot que prossegue em fases, onde primeiro recebe as entradas de cada parte e, em seguida, calcula as saídas para cada parte. Depois que as saídas são computadas, o contrato é concluído e não mantém mais nenhum saldo. Portanto, é um modelo de computação ligeiramente diferente. O Hawk suporta contratos privados, conforme descrito acima, bem como contratos públicos que são exatamente como aqueles no Ethereum. (No entanto, nenhuma garantia de Política de Privacidade é fornecida para os contratos públicos).
Assim como no Zcash, há alguns desafios para dimensionar e otimizar esquemas criptográficos de blockchain para que sejam eficientes ao usar ZKPs. O Hawk tenta fazer o máximo de computação off-chain possível. Isso é feito porque em blockchains públicas a computação on-chain é replicada para cada nó e torna as coisas drasticamente mais lentas. Produzir a prova pode levar vários minutos (o que é longo) e pode ser caro. Os nós que verificam a prova levam apenas milissegundos para fazer isso. Dados do whitepaper: No Hawk, leva cerca de um minuto de tempo de CPU para cada participante em um contrato Hawk. A computação on-chain leva cerca de 9 a 20 milissegundos.
A Hawk ainda não anunciou uma data de lançamento, pois ainda está trabalhando na otimização de suas ferramentas de compilação do snark para melhorar o desempenho.
Canais estaduais
Os canais de estado permitem canais de pagamento que estão fora da cadeia e permitem atualizações para qualquer tipo de aplicativo que tenha uma mudança de estado. Como a Lightning Network, dois ou mais usuários podem trocar pagamentos que normalmente exigiriam uma transação de blockchain sem precisar publicá-los no blockchain ou esperar por confirmações, exceto ao configurar ou fechar o canal.
Vitalik Buterin explica isso em seu artigo para R3CEV "Análise da plataforma Ethereum"
"Os canais de estado são uma estratégia que visa resolver o desafio da escalabilidade mantendo o protocolo blockchain subjacente o mesmo, em vez de mudar a forma como o protocolo é usado: em vez de usar o blockchain como a camada de processamento primária para cada tipo de transação, o blockchain é usado puramente como uma camada de liquidação, processando apenas a transação final de uma série de interações e executando cálculos complexos apenas no caso de uma disputa
Os canais de estado não são uma solução perfeita; particularmente, é menos claro como eles se estendem a aplicativos multiusuários em massa, e eles não oferecem melhorias de escalabilidade em relação ao blockchain original em termos de sua capacidade de armazenar um grande tamanho de estado – eles apenas aumentam o rendimento das transações de fato.
No entanto, eles têm uma série de benefícios, talvez o mais importante deles seja que, além de serem uma solução de escalabilidade, eles também são uma solução de Política de Privacidade , já que o blockchain não vê nenhum dos pagamentos ou contratos intermediários, exceto para a liquidação final e quaisquer disputas, e uma solução de latência, já que as atualizações do canal de estado entre duas partes são instantâneas - muito mais rápido do que qualquer solução direta no blockchain, privada ou pública, poderia ser, e potencialmente até mais rápido do que abordagens centralizadas, já que as atualizações do canal de A para B podem ser seguras sem passar por um servidor centralizado."
Os canais estatais visam resolver problemas de escalabilidade, problemas de Política de Privacidade e atrasos de confirmação associados a blockchains públicas, ao mesmo tempo em que permitem que atores que T necessariamente confiam uns nos outros realizem transações.
Você precisa mesmo de um blockchain? É necessário consenso?
Para muitas pessoas, todos esses métodos criptográficos que MASK todos os dados transacionais serão uma surpresa. O blockchain deve ser uma máquina de transparência na qual qualquer um pode se juntar à rede e, como resultado, visualizar todas as informações dessa rede. Mesmo em blockchains privadas, há uma visão mais aberta dos dados do que os protocolos que foram mencionados neste post.
Outra questão que pode vir à mente é se o consenso é mesmo necessário, já que tudo é privado, exceto a prova. Se a prova é apenas entre as duas partes envolvidas na transação, por que o consenso é necessário e por que usar um blockchain público? Pode parecer contraintuitivo, mas a resposta é que sim, um blockchain público é necessário e o consenso também, e isso se deve à Política de Privacidade das provas. Essencialmente, a transparência completa é necessária para manter a Política de Privacidade das provas.
ZKPs e blockchains se complementam. Você T pode simplesmente usar um para substituir o outro. Um blockchain é usado para garantir que toda a rede possa concordar com algum estado que pode ou não ser criptografado. ZKPs permitem que você tenha confiança sobre algumas propriedades desse estado. Nesse cenário, você ainda precisa de uma fonte canônica da verdade. Uma chave de visualização que revele todas as transações de entrada, mas não as de saída. Para que isso aconteça, você precisa de um livro-razão totalmente descentralizado com consenso onde todos concordam com os dados escritos lá.
Por exemplo, o Zcash tem dados que contêm informações inúteis e ilegíveis para a maioria dos atores. É um banco de dados de compromissos e pedaços opacos de dados. É apenas uma maneira de sincronizar dados entre atores. (Zooko Wilcox declarou publicamente que se o Chainalysis representasse isso graficamente, seria apenas uma série de registros de data e hora de quando uma transação ocorreu.) Em casos em que o número de transações é baixo, então ataques de tempo podem revelar o originador das transações, imagine que isso seja equivalente a apenas um nó conectado a uma rede Tor.
A ênfase real está no lado da carteira para os atores porque isso permite que eles gastem dinheiro e movam ativos, no Bitcoin você pode pegar uma chave privada e mover Bitcoin. Agora é mais. É uma chave privada e um conjunto de segredos que você KEEP para provar provas anteriores e gerar uma nova prova que você usa para convencer os outros. Para isso, um livro-razão totalmente descentralizado é necessário com consenso onde todos concordam com os dados escritos lá.
Um blockchain é necessário porque você precisa de uma camada de consenso de todos: é necessário ter um acordo de provas no livro-razão para mover ativos mais tarde, se essa prova T estiver disponível em todos os nós, você T poderá convencer ninguém da prova quando precisar mover ativos mais tarde. Essas provas precisam ser armazenadas de forma aberta para que as provas possam ser vistas como sendo verificadas e aceitas pelas partes receptoras.
Existem duas camadas diferentes: 1) É preciso haver acordo sobre quais provas todos aceitam. 2) É preciso haver acordo sobre o que você pode provar e o que acontece na prova de conhecimento zero e o que acontece quando você conhece a informação.
Como você gera prova e passa essa informação para a próxima pessoa? A chave é obter autoridade da transação adicionando uma prova ou metadados à transação com algum tipo de script condicional (instruções if then para aceitação da transação). Este código contém regras de validade da transação. Uma pessoa vê a prova de fora, mas T sabe se a regra em si foi acionada ou não.
Agora que você tem Política de Privacidade dos ZKPs, para cumprir com a transação, você precisa provar que a transação obedece às regras. Então você pode pegar 2 provas e criar novas provas que a pessoa que as recebe pode apontar e verificar se a prova é aceita por toda a rede. Uma vez que as provas tenham um significado para você com base nas regras, você pode concordar que elas foram provadas no passado e podem ser usadas no futuro para transacionar e transferir dinheiro.
Limitações
Os ZKPs estão saindo do reino da teoria e se tornando força de produção. Agora é a hora de ver o quão práticos eles são. Eles só agora vão começar a ter testes realmente mundiais e ainda sofrem com grandes problemas de escalabilidade.
O trabalho de desenvolver uma prova é enorme e tem custos de computação enormes. Como mencionado antes, no Zcash, para criar uma prova de que você move dinheiro de outra pessoa, leva entre 45 segundos e 1 minuto em um computador realmente potente. Atualmente, as pessoas estão trabalhando para tornar SNARKs e ZKPs mais eficientes, permitindo mais provas por segundo ou provas mais elaboradas no mesmo período de tempo.
Mudanças profundas precisam ser feitas arquitetonicamente em DLTs - entenda o conhecimento da arquitetura ZKP, é preciso entender as restrições do que você pode provar e em que escala.
Este artigo foi publicado anteriormente no site do autorbloge foi republicado aqui com permissão.
Aviso Importante:CoinDesk é uma subsidiária do Digital Currency Group, que tem participação acionária na Zcash.
Imagem de fechaduras e chavesvia Shutterstock
Nota: As opiniões expressas nesta coluna são do autor e não refletem necessariamente as da CoinDesk, Inc. ou de seus proprietários e afiliados.
George Samman
George Samman é o cofundador e COO da <a> BTC.sx</a>, a primeira plataforma de negociação somente de bitcoin do mundo. Ele é um ex-gerente sênior de portfólio e estrategista de mercado de Wall Street, bem como analista técnico. Ele possui a designação Chartered Market Techician (CMT). Um trader experiente, George tem mais de oito anos de experiência nos Mercados financeiros.
