Antes do Bitcoin Core v25.0, um par que enviasse blocos mutados poderia limpar o estado de download de outros pares que também nos anunciassem o bloco, o que dificultaria a propagação do bloco.
Esta questão é considerada Médio gravidade.
Detalhes
O Bitcoin Core trata um bloco como mutado quando, por exemplo, a raiz Merkle no cabeçalho ou o compromisso da testemunha na transação coinbase não corresponde às transações no bloco.
Antes do Bitcoin Core v25.0, um peer poderia limpar o estado de download do bloco de outros peers enviando um bloco mutado não solicitado. Este foi um problema, por exemplo, para relés de bloco compacto. Depois de receber um bloco compacto e enquanto espera por uma resposta a um getblocktxn
solicitação para reconstruir o bloco completo, receber o bloco mutado permitiria que o Bitcoin Core esquecesse o estado de reconstrução do bloco compacto. UM blocktxn
a resposta que chegava após o bloco mutado não poderia ser usada para reconstruir o bloco. Isso dificultou a propagação do bloco.
Isso foi corrigido em #27608 certificando-se de que um par possa afetar apenas seu próprio estado de download de bloco e não o estado de download de outros pares.
Atribuição
O crédito vai para Suhas Daftuar por perceber o problema e trabalhar em uma solução.
Linha do tempo
- 08/05/2023 – Um problema com blocos mutados é relatado pela primeira vez no Canal IRC #bitcoin-core-dev.
- 10/05/2023 – A correção foi mesclada (#27608)
- 25/05/2023 – v25.0 é lançada
- 09-10-2024 – Divulgação pública