
[ad_1]
Esta atualização foi escrita e fornecida pelo desenvolvedor líder do Litecoin, MimbleWimble David Burkett.
——–
Vulnerabilidade de segurança
Conforme compartilhado no Twitter ontem:
Kurt, um membro de longa data da comunidade GRIN, entrou em contato comigo e Charlie para nos informar sobre uma vulnerabilidade no design de transações não interativas. Embora o ataque seja difícil de executar na prática, ele permite o roubo de fundos se as condições forem adequadas.
Este ataque é bastante técnico e difícil de entender sem primeiro aprender toda a criptografia por trás do MWEB. Muito informalmente, funciona assim:
- Alice envia a Bob 2 moedas:
- 1 moeda = 10 LTC
- moeda 2 = 20 LTC
- Bob cria 2 transações, uma para Charlie e outra para Alice, e as envia aproximadamente ao mesmo tempo:
- tx1 = gaste 1 moeda para enviar 8 LTC para Alice (8 LTC Alice, 2 LTC Change)
- tx2 = gastar moeda 2 para enviar 15 LTC Charlie (15 LTC Charlie, 5 LTC Change)
- Alice troca tx1 para gastar a moeda 2, ficando com 10 LTC extras:
- tx3 = gaste 2 moedas para enviar 18 LTC para Alice e 2 LTC de volta para Bob como troco
- tx1 e tx2 removidos e substituídos por tx3
Há uma série de razões pelas quais esse ataque falharia quase todas as vezes. Mas as consequências, se fossem bem-sucedidas, seriam muito sérias, então era óbvio que tínhamos que evitá-lo.
Somos muito gratos a Kurt que dedicou um tempo para estudar o design do MWEB e compartilhar esse ataque conosco. Devido à importância da descoberta, Charlie generosamente doou seu dinheiro para pagar a Kurt uma merecida recompensa de 0,15 BTC.
Correção
Dada a proximidade da data de lançamento planejada, o pânico se seguiu. Felizmente, percebi que há uma correção relativamente simples para o ataque, que consiste em injetar uma nova chave pública em cada entrada, o que impede que as assinaturas de entrada sejam reutilizadas.
Ao mesmo tempo em que trabalhávamos nos detalhes do ataque e das correções, entrei em contato com alguns dos principais criptógrafos que se ofereceram para fazer uma auditoria de segurança do nosso projeto, que eles viram como ponto de partida para outro projeto em que estavam trabalhando.
A necessidade de um projeto mais formalmente documentado tornou-se aparente, então passei as semanas seguintes reescrevendo o LIP-0004 em um projeto mais completo e formalmente especificado, fazendo pequenos ajustes ao longo do caminho para fortalecê-lo onde pudesse. Obviamente, eu deveria ter feito isso desde o início, porque tivemos quase tantos revisores para o LIP-0004 no mês passado quanto nos últimos 1,5 anos 🙂
Embora eu quisesse me concentrar no design há algum tempo, estou entusiasmado com todos os comentários que recebi.
Infelizmente, o código precisa de algumas alterações para combinar com o novo design, o que significa mais algumas semanas de trabalho do desenvolvedor. Felizmente, quase todas as mudanças serão no subprojeto libmw, que é muito modular e exaustivamente testado. Esta é uma ótima notícia porque significa que as mudanças devem ser mais fáceis de fazer, testar e, o mais importante, revisar. Essa revisão pode ser feita minuciosamente por outros desenvolvedores de LTC, portanto, não acho necessário enviar as alterações de volta aos auditores. Isso afetará a data de lançamento, mas o atraso deve ser mínimo.
Processo de lançamento
No mês passado, mencionei que o processo de compilação do lançamento estava demorando muito e os scripts estavam desatualizados, então gastei algum tempo limpando todos os scripts antigos e criando um processo de compilação mais simples e automatizado. No futuro, os scripts de compilação e as chaves de verificação serão armazenados em um repositório separado. No momento, o novo ltc-release-build está na minha conta pessoal do github, mas se for adequado para o lançamento do MWEB, vamos movê-lo para o github litecoin org.
Atualizações da linha do tempo
-
Decidi mover o lançamento para janeiro para que tenhamos tempo suficiente para corrigir a vulnerabilidade identificada. Espero que seja a última vez 🤞. wenmweb.com é atualizado novamente.
-
v0.21.1 qualquer dia™ de verdade desta vez™
[ad_2]
Source link