As mudanças de consenso e de rede peer-to-peer por trás do segwit ocupam 1.486 linhas de código, com outras 3.338 de testes. Os testes passaram pela versão de Pieter Wuille na sidechain Elements, em 2015, pela segnet e, em maio de 2016, pela testnet regular do Bitcoin. Assinaturas Schnorr e MAST aparecem como atualizações futuras que o segwit facilitaria.
Os mineradores têm até o bloco 419328 para agir: o soft fork CSV entrou em lock-in no bloco 417312, depois que 1946 de 2016 blocos (96,53%) sinalizaram os BIP68, BIP112 e BIP113. Todos os nós de mineração e de reserva precisam rodar o Bitcoin Core ou o Knots 0.12.1, e quem tem a versão do bloco fixa no código deve desativar o bit 0.
Pelo BIP9, os mineradores podem sinalizar prontidão para até 29 soft forks simultâneos por meio de bits no cabeçalho do bloco. Uma proposta entra em lock-in quando 95% dos blocos de uma janela de 2016 blocos sinalizam, e ativa um ajuste depois, ou fracassa no timeout. Ao contrário do IsSuperMajority, não deixa órfão um bloco sem sinalização que obedeça às novas regras.
Pares que usam retransmissão de blocos compactos (BIP152) trocam um esboço de cada bloco novo, de cerca de 9 KB para um bloco médio de 1 MB, mais o adicional pelas transações que faltam ao receptor. Em experimentos reais no modo de alta largura de banda, com até 6 transações pré-preenchidas, bem mais de 90% dos blocos se propagaram sem pedido adicional.
A sinalização do soft fork CSV começa à meia-noite de 1º de maio de 2016 com o Bitcoin Core 0.12.1, a primeira implantação via version bits do BIP9. Ela cobre os BIP68, BIP112 e BIP113; o OP_CHECKSEQUENCEVERIFY permite congelar moedas por um tempo definido após a confirmação, recurso de que a Lightning Network vai depender. O sistema de alertas p2p agora vem desligado por padrão.
Marco Falke é o novo mantenedor de Testes e QA do Bitcoin Core, anunciou Wladimir van der Laan. Ele assume o merge de pull requests do framework de testes, passo natural depois de um ano dedicado a testes unitários, cobertura e revisão do trabalho de outros colaboradores.
Problemas de segurança e novas versões agora têm uma lista própria de anúncios do Bitcoin Core, opcional e só para avisos. Usuários pediam uma forma de receber apenas os alertas críticos, e o projeto espera volume muito baixo.
Uma solução de Sudoku 16x16 foi vendida por 0,10 BTC no primeiro Zero-Knowledge Contingent Payment bem-sucedido no Bitcoin, demonstrado ao vivo na Financial Cryptography 2016, em Barbados. Sean Bowe, da equipe da Zcash, foi o vendedor e fez quase toda a engenharia. Pelo protocolo, os dados só mudam de mãos se o pagamento for feito, sem terceiro para arbitrar.
O OpenSSL sai das verificações de assinatura no Bitcoin Core 0.12.0, substituído pelo libsecp256k1, que reduz a reindexação e a validação de novos blocos a menos da metade do tempo anterior. As mempools ganham um teto padrão de 300 MB, fechando um caminho para atacantes derrubarem nós com pouca RAM. Também estreiam o Replace-by-Fee opcional (BIP 125) e o -maxuploadtarget, para limitar o tráfego de upload.
O Bitcoin Core avisa que o site que hospedou primeiro o artigo do Bitcoin não tem relação com o projeto, que mantém seu próprio site oficial. O desenvolvimento acontece no IRC, no GitHub e na lista de e-mails bitcoin-dev. O projeto não se responsabiliza por outros fóruns e pede aos membros da comunidade que não façam brigading nem lancem ataques de negação de serviço.
A maleabilidade por terceiros acaba para transações cujos inputs são todos gastos segwit, porque as assinaturas vão para uma witness que não entra mais no cálculo do txid. Ganham com isso os autores de carteiras e a Lightning Network. O hash de assinatura também passa a ser linear, com cada byte processado no máximo duas vezes; no esquema antigo, um único bloco já levou 25 segundos para ser validado.
Desenvolvedores já podem testar o Segregated Witness em rede própria, compilando o branch segwit e acrescentando -segnet ao bitcoind e ao bitcoin-cli. Ledger, Trezor, Electrum e Bitgo disseram que darão suporte ao segwit, enquanto mSIGNA e Green Address oferecem prévias.
Um vídeo mapeia a atividade de commits de 2015 no repositório do Bitcoin Core, ano com 2 versões principais, 5 de manutenção e dois soft forks ativados: BIP66 e BIP65, este último com o CHECKLOCKTIMEVERIFY. Revisores, testadores e tradutores não aparecem nos dados de commits, lembra o projeto.
As regras de consenso não cabem à equipe do Bitcoin Core, dizem seus colaboradores; quem decide são os usuários, ao escolher qual software rodar, e é por isso que ele não tem atualização automática. Eles preferem soft forks, reservam hard forks para casos raros com concordância quase universal e veem camadas adicionais sobre o protocolo como o caminho para uma escala extremamente alta.
Sob o novo limite de custo do segwit, os blocos podem chegar a pouco menos de 4 MB, mas os cálculos de Anthony Towns colocam um bloco de transações P2PKH de assinatura única perto de 1,6 MB e um de multisig 2-de-2 perto de 2,0 MB. O cronograma provisório do FAQ prevê o segwit na 0.13.1, em outubro de 2016, seguido em 2017 por weak blocks, IBLT ou Lightning.
Ao aderir ao roteiro de capacidade, 57 pessoas, entre elas Pieter Wuille, Gregory Maxwell e Wladimir J. van der Laan, o chamam de melhor continuação do seu trabalho de escalabilidade dentro do Bitcoin Core. A lista segue aberta a novas assinaturas.
O roteiro de Gregory Maxwell, enviado à lista bitcoin-dev quando terminava o Scaling Bitcoin Hong Kong, se apoia no libsecp256k1, nos versionbits do BIP9 e no Segregated Witness de Pieter Wuille. Ele relata o ConnectTip rodando 7 vezes mais rápido na 0.12 e descreve o segwit como um soft fork que tira as assinaturas do limite atual de tamanho de bloco, o que equivale a um aumento de 4 MB no pior caso.
Colaboradores técnicos, entre eles Wladimir J. van der Laan e Pieter Wuille, assinaram uma carta pedindo que a comunidade não faça julgamentos antecipados sobre propostas de escalabilidade. Em vez disso, apontam o processo de consenso e dois workshops abertos do Scaling Bitcoin: Montreal, em 12 e 13 de setembro, e Hong Kong, em 6 e 7 de dezembro.