À prova de balas

O básico

@RingCT foi introduzido para ofuscar os valores das transações. Um objetivo do @RingCT era provar a soma das entradas - saídas na @transaction era igual a 0, e todas as saídas eram números positivos. Para conseguir isso, dois tipos de assinaturas de anel foram construídos: uma assinatura de anel para toda a transação (para provar que a soma é 0), e um conjunto de assinaturas de anel para os subconjuntos de bits de transação (para provar que as saídas são números positivos), em seguida, combinados usando assinaturas originalmente Schnorr (e mais tarde substituídas pela assinatura de anel borromeana). Enquanto fazia o trabalho, uma grande desvantagem era o tamanho enorme de uma transação de ringCT.

Onde se trata de blindagem

Em 2017, um Grupo criptográfico aplicado padrão escreveu um papel apresentando um novo tipo de provas de alcance, chamadas à prova de balas.

À prova de balas são provas curtas não interativas de conhecimento zero que não requerem configuração confiável.

À prova de balas, ao contrário das assinaturas Borromean ou Schnorr, são muito eficientes como prova de alcance. Provar um grande conjunto de dados gera apenas uma pequena prova, e o tamanho dessas provas cresce logaritmicamente com o tamanho dos dados que estão sendo provados. Isso significa que aumentar o número de resultados em uma transação, com à prova de balas, aumentará apenas ligeiramente o tamanho da prova. A prova de balas também tem a vantagem de permitir provar que vários valores comprometidos estão na faixa desejada ao mesmo tempo. Não há necessidade de provar cada saída para cada destino em provas separadas; todos os valores da transação poderiam ser comprovados em um maior (mas ainda muito pequeno) à prova de balas.

Processo de auditoria completa e implementação

Como a prova de balas era realmente nova e a implementação inicial feita pelo grupo, embora completamente feita, precisava ser reescrita com foco em nosso caso de uso específico, a implementação à prova de bala em Haven não foi uma coisa simples.

O código foi escrito e reescrito para seguir a nova versão do bulletproofs que ainda estava sendo desenvolvida, mas uma vez que esta implementação Haven foi finalizada, a implementação resultante deve ser tomada com extremo cuidado.

Portanto, a comunidade iniciou um processo de auditoria. Os pesquisadores entraram em contato com Benedikt Bünz, principal autor do artigo à prova de balas, e para OSTIF uma organização que ajuda as tecnologias de código aberto a melhorar e se proteger.

A OSTIF encaminhou o grupo para várias organizações com as habilidades necessárias para realizar a auditoria. Enquanto um deles pediu para ser mantido sem nome e, portanto, foi afastado do processo que precisava ser público, dois outros (QuarksLab e Kudelski Security) foram escolhidos para conduzir a auditoria.

Nossos 3 auditores foram financiados pela comunidade para verificar se a implementação não continha bugs críticos e se não tinha exploits.

Os relatórios finais foram lançados durante o verão de 2018, com várias correções e correções úteis sugeridas, e a implementação à prova de balas final foi adicionada primeiro ao Haven Stagenet e, em seguida, à rede Haven principal durante a atualização da rede de outubro de 2018.

Desde a implantação à prova de balas, o tamanho de uma transação média caiu em pelo menos 80%, assim como as taxas de transação.

Mais explicações sobre a implementação à prova de balas do Haven podem ser encontradas no canal fondajo do youtube em um conversa com Sarang Noether.

pt_PTPortuguês