Se as carteiras de hardware têm um calcanhar de Aquiles, são as frases de recuperação. Mas o SatoshiLabs da Trezor descobriu uma solução, backups de Shamir.

O que os backups de Shamir resolvem

As carteiras de hardware são geralmente consideradas uma das soluções mais seguras para armazenar bitcoin. Como as chaves privadas para assinar transações nunca saem do dispositivo, essas chaves nunca são expostas à Internet e, portanto, não podem ser invadidas remotamente.

Mesmo com acesso físico ao dispositivo, subtrair as chaves não é tarefa fácil. Mas mesmo se assumirmos que elas são seguras, as carteiras de hardware ainda podem quebrar, se perder, serem roubadas ou se tornarem inutilizáveis.

Nesses casos, os usuários devem manter uma semente de backup: uma lista de algumas dúzias de palavras normalmente anotadas em um pedaço de papel, a partir do qual todas as chaves privadas do dispositivo podem ser recuperadas.

Mas e se a própria frase de backup for perdida ou – pior – roubada?

Uma nova maneira de dividir backups

Uma corrente é tão forte quanto seu elo mais fraco, e uma carteira de hardware é tão segura quanto sua semente de backup. Se o pedaço de papel for roubado, o ladrão poderá reivindicar todas as moedas na carteira de hardware – sem nenhuma habilidade técnica avançada.

Depois de mais de um ano de desenvolvimento, a SatoshiLabs, a empresa por trás da carteira de hardware da Trezor, introduziu Shamir Backups. Baseado no Compartilhamento Secreto de Shamir, um algoritmo criptográfico criado pelo conhecido criptografador Adi Shamir (o “S” no RSA, um dos primeiros sistemas de criptografia de chave pública), os Shamir Backups permitem que os usuários “dividam” suas sementes de backup em várias listas de palavras, ou em “partes”.

Dessa forma, a carteira pode ser recuperada combinando algum subconjunto predeterminado das partes da semente. Os backups Shamir permitem a criação de até 16 partes.

Como exemplo prático, você pode configurar um backup de dois em três. Nesse caso, você geraria três listas de palavras diferentes e precisaria de duas das três para restaurar suas chaves privadas. Dessa forma, você poderia, por exemplo, espalhar as três listas em três locais diferentes, minimizando o risco de duas delas serem perdidas, por exemplo, em um incêndio ou roubadas.

Se um invasor conseguir roubar apenas uma das três frases de backup, ele não vai conseguir roubar nada. Enquanto isso, as duas partes que sobraram servem como backup da carteira.

Uma observação importante, essa solução é significamente mais segura do que usar uma única semente de backup e guardá-la dividida, em lugares diferentes.

Esta solução simplista além de não solucionar o problema de ter qualquer um dos papéis danificados, e perder o backup, também não é efetivo contra roubos. Se um ladrão consegue uma parte da sua frase de recuperação, o resto pode ser descoberto por força bruta.

Fonte: BitcoinMagazine.