395 / 736CORALLO

Matt Corallo

Programador conhecido como TheBlueMatt

Quando surge um novo bloco de Bitcoin, os outros computadores precisam de saber disso. Matt Corallo trabalhou para transmitir esses dados com menos tráfego e atraso. Também ajudou a criar software que outros programadores usam para desenvolver aplicações Lightning.

Matt Corallo, conhecido como TheBlueMatt, é um programador de Bitcoin ligado ao Compact Block Relay, à rede de transmissão FIBRE e à rust-lightning. Estes trabalhos partilham uma questão prática: como melhorar redes e aplicações sem confundir rapidez com a certeza de que tudo está correto?

No GitHub, Matt Corallo usa TheBlueMatt. O perfil informa que muitos repositórios foram transferidos para git.bitcoin.ninja. Um repositório guarda o código-fonte e o histórico de alterações; um endereço antigo vazio não significa necessariamente que o projeto foi abandonado. Para perceber quem contribuiu com o quê, convém consultar esse histórico, as propostas e os seus autores. No caso de Corallo, o percurso vai da transmissão mais eficiente de blocos às ferramentas para Lightning. [1]

Os computadores que verificam Bitcoin trocam continuamente transações por confirmar. Quando chega um bloco, podem já conhecer grande parte do conteúdo. O Compact Block Relay aproveita essa situação. A especificação técnica pública BIP 152 identifica Corallo como autor e agradece a Gregory Maxwell a ideia inicial, o trabalho de conceção e os testes. O objetivo principal é poupar dados transmitidos. A transmissão também pode ficar mais rápida, mas as regras de validade dos blocos não mudam. [2]

Imagine uma lista partilhada de documentos: já tem a maioria e só precisa de saber quais integram o novo conjunto. A BIP 152 usa de forma semelhante identificadores curtos de transações e o mempool, o conjunto local de transações por confirmar. O destinatário pede os dados em falta através de getblocktxn. Os identificadores podem colidir, ou seja, atribuir a mesma designação curta a transações diferentes. Poupar tráfego não dispensa obter os dados reais e verificar se o bloco foi reconstruído corretamente. [2]

Em condições definidas, a BIP 152 permite anunciar um bloco compacto antes de verificar completamente todas as suas transações. Isso não autoriza o envio de dados arbitrários: é necessário verificar o cabeçalho, a ligação à cadeia validada, a prova de trabalho e o compromisso com as transações incluídas. Depois de reconstruído, o bloco é processado normalmente. O destinatário continua a verificar se são gastos fundos existentes segundo as regras. «O bloco chegou» não equivale a «o bloco é válido». [2]

Na Internet, os dados viajam em pequenos pacotes. Quando um se perde, esperar pelo reenvio aumenta o atraso. Em 7 de julho de 2016, Corallo descreveu FIBRE: combina blocos compactos com UDP, um transporte sem reenvio automático de pacotes perdidos, e FEC, uma codificação para recuperar partes em falta. Os dados adicionais ajudam o destinatário a reconstruir o conteúdo sem outro pedido. Em contrapartida, transmite-se mais informação; não há garantia de transmissão perfeita em todas as circunstâncias. [3]

FIBRE pode reenviar pacotes antes de os verificar. Ganha tempo, mas exige forte confiança interna entre os nós. Não significa aceitar indiscriminadamente ligações não verificadas. O código público permite criar outras redes, embora o operador de uma rede concreta possa escolher os seus pares. Segundo a FAQ, w0xlt e Justin, da Localhost Research, assumiram a manutenção em 2025, com o aconselhamento de Corallo e Maxwell. O projeto prossegue, assim, através do trabalho de outras pessoas. [4]

Outra parte do trabalho de Corallo envolve Lightning, uma rede de pagamentos por canais sobre Bitcoin. O manifesto, isto é, a descrição do pacote lightning em rust-lightning, indica Matt Corallo como autor. A biblioteca, escrita em Rust, fornece funções centrais de Lightning e permite que a aplicação escolha como tratar a carteira, a interação com a cadeia, o armazenamento e a rede. A atribuição não significa que uma pessoa tenha escrito todas as alterações posteriores nem que a biblioteca seja, por si só, uma carteira acabada. [5]

LDK integra-se na aplicação como um SDK, um conjunto de ferramentas para programadores. É necessário ligar o armazenamento e os outros componentes. O resultado de um pagamento pode não chegar no momento em que é iniciado: LDK comunica depois o sucesso ou a falha através de um evento que a aplicação processa. Iniciar a operação não confirma o sucesso. Para quem utiliza a carteira, a exigência é simples: o ecrã deve distinguir um pagamento em curso de um pagamento concluído. [6]

Para ter uma visão mais completa, leia este verbete junto com Gregory Maxwell, Luke Dashjr, Satoshi Nakamoto. Também há referências a este verbete em Stratum V2, Gregory Maxwell, Luke Dashjr.

DOC · 001GitHub — Matt CoralloDocumentação DOC · 002BIP 152 — Compact Block RelayDocumentação DOC · 003Matt Corallo — The Future of The Bitcoin Relay NetworksDocumentação DOC · 004FIBRE — FAQDocumentação DOC · 005rust-lightning — package manifestDocumentação DOC · 006LDK — ArchitectureDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento