Os clientes Bitcoin Light agora são capazes de sincronizar com a ponta do blockchain quase instantaneamente, graças a um novo desenvolvimento possibilitado pela startup Bitcoin ZeroSync e seu trabalho em provas de conhecimento zero (ZK). Em última análise, o ZeroSync procura permitir que nós completos façam o mesmo.

As provas ZK permitem que um provador gere uma breve declaração matemática que prova a um verificador que um determinado cálculo está correto, sem revelar quaisquer detalhes sobre tal cálculo. Construir esta prova pode ser caro do ponto de vista computacional, mas a afirmação que ela fornece é sempre muito compacta, independentemente do tamanho dos dados que serviram de entrada para o cálculo da prova –– permitindo uma verificação extremamente rápida da exatidão desses dados com certeza matemática. No Bitcoin, esse truque matemático pode ser muito útil para nós e clientes.

Os nós completos do Bitcoin são notoriamente obrigados a baixar e verificar cada dado que compõe o blockchain, desde seu início em janeiro de 2009 até os dias atuais. Devido à dificuldade de dimensionar uma configuração tão abrangente, Satoshi Nakamoto imaginou no white paper do bitcoin um tipo diferente de cliente que seria capaz de verificar seus pagamentos recebidos sem executar um nó completo.

Os clientes Bitcoin light utilizam um mecanismo de verificação de pagamento simplificado (SPV). Ao receber um pagamento, o cliente consulta os nós da rede para obter os cabeçalhos da cadeia mais longa. Em seguida, ele é capaz de encontrar o bloco ao qual a transação recebida foi adicionada –– o que mostra que os nós da rede a aceitaram como válida. À medida que mais blocos são adicionados à cadeia depois daquele, mais confirmações o cliente light recebe de que o pagamento foi válido e aceito pela rede em um bloco.

Sem qualquer necessidade de uma mudança de consenso no Bitcoin, as provas ZK melhoram essa configuração compactando os cabeçalhos em uma única prova. Da mesma forma que cada bloco de bitcoin comprime efetivamente os dados de suas transações em uma árvore Merkle e inclui a raiz dessa árvore em seu cabeçalho, o trabalho do ZeroSync pega cada cabeçalho de bloco de bitcoin e os agrupa em outra árvore Merkle. Este processo permite que a cadeia de cabeçalhos seja sintetizada em um dado curto e leve –– a prova.

A prova da cadeia de cabeçalho é capaz de provar rapidamente se um determinado cabeçalho de bloco está incluído na cadeia. Um cabeçalho de bloco pode então ser aproveitado para atestar se uma transação específica foi incluída nesse bloco. Este processo é muito semelhante ao método SPV descrito anteriormente, mas mais eficiente. Em vez de ter que manter uma cópia completa de cada cabeçalho no blockchain para SPV, com as provas ZK o cliente leve só precisa armazenar aquela pequena prova da cadeia de cabeçalho, sendo capaz de sincronizar com o estado mais recente da cadeia em segundos.

Em última análise, o que a prova da cadeia de cabeçalho é capaz de provar é que cada bloco da cadeia atendeu ao requisito de dificuldade no momento em que foi extraído. Em outras palavras, verificar a prova da cadeia de cabeçalho permite que o usuário ou cliente tenha certeza de que cada bloco de bitcoin até aquela altura foi minerado corretamente e atendeu aos critérios de dificuldade de mineração no momento.

O lançamento da primeira prova ZK da cadeia de cabeçalho completa foi o primeiro marco do ZeroSync. Para alcançar sua visão mais ampla –– fornecer uma verificação completa do blockchain histórico para nós completos sem exigir que os usuários baixem e processem –– a equipe precisa marcar mais duas caixas de seleção. O segundo aumentaria a prova da cadeia de cabeçalho e permitiria que um nó sincronizasse de forma semelhante à função Assume Valid do Bitcoin Core. O terceiro e último forneceria a sincronização completa do blockchain bitcoin prevista.

Assume Valid é uma opção no Bitcoin Core, habilitada por padrão, que assume que todos os scripts até uma determinada altura de bloco são válidos. Isso significa que novos nós completos sincronizando o blockchain com o download inicial do bloco (IBD) podem pular a verificação dos scripts do bloco Genesis até a altura do bloco estabelecida pelo cliente Bitcoin Core em um determinado lançamento. Esses scripts são a parte dos dados das testemunhas das transações – principalmente as assinaturas que resolvem os scripts de bloqueio e desbloqueiam os fundos a serem gastos, bem como timelocks e outras condições de gastos programadas. Os usuários têm a opção de definir `assumevalid=0` e forçar seu cliente a realizar a verificação completa de todos os scripts, além da verificação dos demais conteúdos do bloco. No entanto, a suposição geral e bastante segura por trás da ativação de Assume Valid por padrão é que foi mostrada prova de trabalho suficiente até aquela altura de bloco determinada, o que torna justo acreditar que os scripts que o precedem são válidos.

A oferta intermediária do ZeroSync, quando concluída, permitirá que os usuários de Bitcoin sincronizem seus nós de forma semelhante a um Bitcoin Core IBD padrão. O nó baixa todos os dados desde o início do bitcoin até os dias atuais, mas só verifica os dados da testemunha após a altura assumida como válida. O conjunto UTXO também é uma parte necessária da equação. Para resolver isso, ZeroSync aproveita o Utreexo, projeto que também busca aumentar a eficiência na sincronização de nós de bitcoin. Utreexo fornece o conjunto UTXO mais recente em um determinado bloco, e ZeroSync é capaz de adicionar isso em sua configuração baseada em provas ZK. O resultado é uma prova de cadeia de cabeçalho muito mais curta e um conjunto UTXO mais compacto e eficiente, que os clientes podem aproveitar para satisfazer suas necessidades de verificação de pagamento.

A oferta de nível superior da equipe levará as coisas um passo adiante e permitirá que os nós sincronizem com o estado mais recente do Bitcoin sem presumir que qualquer script seja válido. Usando provas ZK, os nós completos seriam capazes de obter uma sincronização inicial muito mais rápida, com garantias de segurança talvez ainda maiores do que a configuração padrão do Bitcoin Core, que usa assumevalid.

É importante observar que mesmo que os usuários do Bitcoin Core desativem o assumevalid –– verificando todos os scripts e alcançando suposições de segurança semelhantes às da oferta de nível superior do ZeroSync –– a proposta de maior valor deste último ainda é o ganho substancial em eficiência e velocidade para verificar todas essas informações. Embora o blockchain do Bitcoin contenha atualmente 510 GB de dados, a abordagem do ZeroSync, quando concluída, permitirá um processo muito mais rápido, dada a produção de uma prova curta e leve de pouco mais de 1 MB –– uma melhoria no desempenho de várias ordens de magnitude em relação a um IBD padrão. usando o Bitcoin Core, garantindo que as mesmas regras de consenso sejam seguidas.

Os ganhos em eficiência só se tornarão mais importantes à medida que o blockchain do Bitcoin continuar crescendo bloco após bloco. Eventualmente, baixar e verificar toda a cadeia pode se tornar proibitivo em termos de largura de banda e armazenamento – especialmente em partes do mundo onde o acesso à Internet de alta velocidade e discos rígidos maiores é limitado ou caro.

Fonte: bitcoinmagazine.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *