A equipe de desenvolvimento do Bitcoin Core ainda não está satisfeita com a escalabilidade do protocolo da criptomoeda.
Apesar do fato da Segregated Witness (SegWit) ter sido ativada na rede há pouco mais de seis semanas (com as empresas e os usuários agora atualizando lentamente e os tamanhos médios dos blocos aumentando), a atualização já iniciou uma reação em cadeia em outras otimizações voltadas para acomodar mais usuários.
Assim, enquanto as empresas e os mineradores estão empurrando para uma escala mais agressiva através da controversa proposta do Segwit2x, a equipe de código aberto por trás do software mais utilizado do Bitcoin está focada em outros esforços. Chamada de “assinaturas Schnorr”, a tecnologia oferece outra opção de esquema de assinatura ao lado do algoritmo Elliptic Curve Digital Signature (ECDSA). Um benefício é que ele suporta “agregação de assinatura” na blockchain do bitcoin.
Embora isso possa parecer complexo, a mudança visa consolidar a atividade que já ocorre na rede com cada transação. Sob o esquema ECDSA, cada peça de uma transação bitcoin é assinada individualmente, enquanto com assinaturas Schnorr, todos esses dados podem ser assinados uma vez.
O engenheiro da Blockstream, Jonas Nick, disse à CoinDesk que esse método de mistura de dados de assinatura em conjunto deve ser considerado “projeto de baixo custo para ajudar a escala do bitcoin”.
Primeiro, ao diminuir o número de assinaturas, aumenta a quantidade de dados de transação que podem caber em cada bloco. Em segundo lugar, ao incorporar assinaturas, a tecnologia poderia aumentar a privacidade, dificultando a determinação de onde as transações são provenientes.
Em terceiro lugar, acredita-se que a mudança poderia travar “ataques de spam”, onde uma entidade envia um monte de pequenas transações de bitcoin que ocupam espaço extra na cadeia de blocos, o que dificulta a criação de nodes.
Leia Também: Entendendo a Lightning Network, Parte 1: Construindo um Canal de Pagamento Bidirecional
Sucesso através do fracasso
Embora a nova tecnologia de assinatura tenha sido uma idéia desde pelo menos 2013, os desenvolvedores fizeram recentemente alguns avanços, aproximando as assinaturas de Schnorr da implementação real no bitcoin.
O SegWit foi o primeiro passo necessário para que a mudança de código, que move dados de assinatura para outra parte do bloco, possibilitando a criação de Schnorr (ou algo parecido) com uma atualização de software compatível com versões anteriores (soft fork), onde não era possível anteriormente.
Então, mais recentemente, os desenvolvedores tropeçaram em pesquisa de criptomoedas que poderia ajudá-los a construir o algoritmo de forma mais rápida.
De acordo com uma transcrição da reunião anual do Bitcoin Core ao longo do ano os desenvolvedores apresentaram um documento descrevendo seu esquema de agregação de assinatura para a conferência de ‘Criptografia Financeira e Segurança de dados 2017’. Enquanto o comitê da conferência rejeitou o documento – afirmando que a prova de segurança para o esquema de agregação de assinatura previsto era muito frágil – eles também sugeriram outro artigo, que forneceu uma prova de segurança mais forte.
O colaborador do Bitcoin Core, Bryan Bishop, disse ao CoinDesk:
Isso é importante e útil porque significa que a criptografia foi estudada no passado em uma extensão maior do que pensávamos anteriormente.
Com este trabalho já feito, os desenvolvedores podem gastar menos tempo a resolver o esquema de assinatura de segurança e mais tempo descobrindo como implementá-lo no bitcoin.
Próximos passos para a realidade
O Nick do Blockstream aponta para um pacote em progresso de mudanças de código chamado “módulo aggsig” como o principal local onde as assinaturas de Schnorr estão sendo trabalhadas.
Contribuições de código – de Andrew Poelstra, Greg Maxwell, Pieter Wuille, Peter Dettman e outros – datam até 2012, mostrando este módulo como o mais avançado em termos de trabalho durante o maior número de anos.
Enquanto muitos desenvolvedores voltaram sua atenção para otimizar o desempenho da implementação do código Schnorr para se certificar de que a verificação das assinaturas é tão rápida quanto possível, Nick disse que ainda existem algumas peças faltando no módulo aggsig antes que ele possa ser fundido em bitcoin em si.
Por exemplo, a função OP_CHECKSIG do bitcoin verifica se alguém realmente possui o bitcoin que está tentando enviar. Atualmente, a função não leva em consideração as novas assinaturas de Schnorr, o que significa que não pode fazer as assinaturas agregadas, disse Nick.
“Ainda não existe uma proposta pública, especificando como [isso] funcionaria exatamente”, explicou, acrescentando que os desenvolvedores precisam escrever algum tipo de roteiro para a nova função, antes que possa ser implementado.
Ainda assim, ele estava otimista de que a mudança não demoraria para implementar.
Nick concluiu:
“As pessoas certas só precisam encontrar tempo para se concentrar nisso”.