22.1 C
New York
Tuesday, June 6, 2023

Atualização de recapitulação de novembro do Litecoin MimbleWimble


Esta atualização foi escrita e fornecida pelo desenvolvedor principal do Litecoin MimbleWimble David Burkett.

——–​

Vulnerabilidade de segurança

Conforme compartilhado no Twitter ontem:

Kurt, um antigo membro da comunidade GRIN, contatou Charlie e eu para nos informar sobre uma vulnerabilidade no design de transações não interativas. Embora o ataque seja difícil de realizar na prática, ele permite o roubo de fundos se as condições estiverem corretas.

Esse ataque é bastante técnico e difícil de entender sem primeiro aprender toda a criptografia por trás do MWEB. Muito informalmente, funciona assim:

  1. Alice envia 2 moedas para Bob:
    • moeda 1 = 10 LTC
    • moeda 2 = 20 LTC
  2. Bob cria 2 transações, 1 para Charlie e outra de volta para Alice, e as envia aproximadamente ao mesmo tempo:
    • tx1 = gaste a moeda 1 para enviar 8 LTCs para Alice (8 LTC Alice, 2 LTC Change)
    • tx2 = gaste a moeda 2 para enviar 15 LTCs para Charlie (15 LTC Charlie, 5 LTC Change)
  3. Alice muda tx1 para gastar a moeda 2, mantendo os 10 LTCs adicionais para si mesma:
    • tx3 = gaste a moeda 2 para enviar 18 LTCs para Alice e 2 LTC de volta para Bob como troco
    • tx1 e tx2 descartados e substituídos por tx3

Há uma série de razões pelas quais esse ataque falharia na prática quase todas as vezes. Mas as consequências, se tivesse sucesso, seriam muito sérias, então period óbvio que isso period algo que tínhamos que evitar.

Somos muito gratos por Kurt dedicar seu tempo para estudar o design do MWEB e por compartilhar esse ataque conosco. Devido à importância da descoberta, Charlie generosamente doou seu próprio dinheiro para pagar a Kurt uma merecida homenagem. Recompensa de 0,15 BTC.

O conserto

Considerando a proximidade da information de lançamento planejada, o pânico começou. Felizmente, percebi que há uma correção relativamente simples para o ataque que consiste em introduzir uma nova chave pública em cada entrada que evita a reutilização de assinaturas de entrada.

Ao mesmo tempo em que trabalhávamos nos detalhes do ataque e correções, fui colocado em contato com alguns criptógrafos de primeira linha que se ofereceram para fazer uma auditoria de segurança de nosso design, que eles estavam considerando usar como ponto de partida para outro projeto em que estavam trabalhando.

A necessidade de um projeto mais formalmente documentado tornou-se evidente, então passei as semanas seguintes reescrevendo LIP-0004 em um projeto mais completo e formalmente especificado, fazendo pequenos ajustes ao longo do caminho para endurecê-lo onde pude. Claramente, eu deveria ter feito isso desde o início, porque tivemos quase tantos revisores do LIP-0004 no mês passado quanto nos últimos 1,5 anos 🙂

Embora eu adorasse ter todos esses olhos no design há muito tempo, estou emocionado com todo o suggestions que recebi.

Infelizmente, algumas alterações precisam ser feitas no código para corresponder ao novo design, o que significa mais algumas semanas de trabalho de desenvolvimento. Felizmente, quase todas as mudanças estarão no subprojeto libmw, que é altamente modularizado e fortemente testado. Esta é uma ótima notícia, pois significa que as alterações devem ser mais fáceis de fazer, testar e, o mais importante, revisar. Essa revisão pode ser realizada com cuidado pelos outros desenvolvedores do LTC, portanto, não acredito que seja necessário enviar as alterações de volta aos auditores. Isso terá um impacto na information de lançamento, mas o atraso deve ser mínimo.

Processo de Liberação

Mencionei no mês passado que o processo de compilação do lançamento period demorado e os scripts estavam desatualizados, então passei algum tempo limpando todos os scripts antigos e criando um processo de compilação mais simples e automatizado. Os scripts de construção e as chaves de verificação serão mantidos em um repositório separado daqui para frente. Agora mesmo, o novo ltc-release-build está apenas na minha conta pessoal do github, mas se funcionar bem para o lançamento do MWEB, iremos transferi-lo para github org do litecoin.


Atualizações da linha do tempo

  • Decidi adiar o lançamento para janeiro para garantir que tenhamos tempo suficiente para corrigir a vulnerabilidade encontrada. Espero que seja a última vez 🤞. wenmweb.com está mais uma vez atualizado.

  • v0.21.1 qualquer dia agora™ de verdade desta vez™



Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles