Dev Corner: Um guia detalhado para o Shamir Backup

Introdução

Uma semente de recuperação é uma lista de palavras em uma ordem específica que armazena todas as informações necessárias para acessar todas as suas criptomoedas, tokens e identidades digitais associadas a ela.

Quando você cria uma nova carteira, a Trezor gera uma nova semente de recuperação e solicita que você a anote no papel. Dessa forma, se você perder seu Trezor ou se ele for corrompido, você poderá recuperar sua carteira usando o backup em papel.

No entanto, qualquer pessoa que descubra sua semente de recuperação pode roubar roubar todas as suas moedas, portanto, seu backup em papel deve ser mantido seguro da mesma maneira que objetos de valor físicos.

Como usuário, você está enfrentando dois tipos de risco com sua semente de recuperação:
1.
 O risco de que ela seja destruída ou perdida e que você não poderá recuperar sua carteira.
2. O risco de que seja roubado e suas moedas digitais junto com ele.

Se você estiver preocupado com perda ou destruição, poderá simplesmente fazer várias cópias e mantê-las em lugares diferentes, por exemplo, uma em casa e outra em um cofre ou com alguém em quem confie totalmente. No entanto, quanto mais cópias você fizer, maior o risco de roubo.

Se você está mais preocupado com roubo do que com destruição, pode dividir sua semente de recuperação de 12 palavras em duas metades e armazenar as 6 primeiras palavras separadamente das últimas 6 palavras.

No entanto, quanto mais fragmentos você quebrar/dividir a sua semente de recuperação, maior o risco de que uma delas seja destruída e você não poderá remontar a semente de recuperação.

Além disso, se alguém roubar, digamos, as 6 primeiras palavras da sua semente de recuperação, com tempo suficiente e uma quantidade bastante grande de poder computacional, eles poderão revelar as palavras restantes da sua semente de recuperação por meio da busca por força bruta.

Como você pode ver, nenhuma solução é capaz de lidar com ambos os riscos ao mesmo tempo. De fato, cada uma dessas soluções reduz apenas um risco à custa de aumentar o outro risco.

A solução que precisamos é chamada de esquema de compartilhamento secreto de limite.

Este é um método de distribuir um segredo entre um grupo de N participantes, cada um dos quais recebe uma parte do segredo. O segredo pode ser reconstruído apenas quando um número predeterminado de ações é combinado. O número mínimo de ações necessário é chamado de limite T. O esquema de compartilhamento de segredo é então referido como um esquema T -de- N.

Para obter um breve entendimento sobre Shamir Backup, veja este post: O que é o Shamir Backup?

A vantagem de usar o compartilhamento secreto de limite é que ele permite encontrar um meio termo entre as duas soluções extremas de copiar ou fragmentar a semente de recuperação e, assim, permite equilibrar o risco de perda e o risco de destruição.

Como regra geral, ao aumentar o limite, reduzimos o risco de perda por roubo, mas aumentamos o risco de perda por destruição. Por outro lado, aumentando o número de compartilhamentos, reduzimos o risco de perda por destruição, mas aumentamos o risco de perda por roubo. Para equilibrar os dois riscos, é melhor usar um esquema 2-de-3 ou 3-de-5.

Compartilhamento secreto

Digamos que você gostaria de dividir sua semente usando um esquema 2-de-3, para que você tenha três compartilhamentos armazenados em locais diferentes e, se algum deles for destruído, os dois restantes poderão ser usados ​​para recuperar sua semente. Tomemos, por exemplo, a seguinte semente de recuperação BIP-0039:

robust pipe raise illness symptom crowd trip will slow assault recipe oven

Você pode dividir essa semente de recuperação em três compartilhamentos, que podem ser assim:

Faltam quatro palavras em cada compartilhamento, mas quando dois compartilhamentos são combinados, você sempre pode preencher as lacunas. Agora, considere se um ladrão roubasse uma dessas ações, ele teria que tentar adivinhar as palavras que faltavam.

Se sua carteira não estiver protegida por uma senha (ou passphrase), o ladrão precisará, em média, pesquisar meio trilhão de carteiras. É claro que isso é impossível manualmente, mas se a pesquisa for automatizada em um computador, ela se tornará uma tarefa fácil.

Não se preocupe, pois em 1979 o famoso criptógrafo Adi Shamir criou um método comprovadamente seguro de compartilhar segredos.

O compartilhamento secreto de Shamir para o resgate

O que torna o esquema de compartilhamento secreto de Shamir tão grande é que o conhecimento de menos do que o número necessário de compartilhamentos não vaza nenhuma informação sobre o segredo compartilhado.

Isso significa que, se você dividir sua semente principal usando um esquema de compartilhamento secreto de Shamir 2-de-3 e um ladrão roubar um desses compartilhamentos, eles não estariam melhor com um compartilhamento do que com zero compartilhamentos (mesmo em termos de ataques de força bruta).

A matemática por trás disso é baseada em polinômios. Ao criar os compartilhamentos, um polinômio f de grau T-1 é construído, de modo que f(0) é o segredo compartilhado. Cada usuário recebe o valor de f(x) para algum índice inteiro positivo x, ou seja, cada usuário conhece um ponto (x,f (x)) no gráfico do polinômio.

Quando qualquer T desses pontos é fornecido, eles definem exatamente o polinômio e o valor f (0) pode ser calculado. Por outro lado, se apenas T- 1 pontos forem conhecidos, o valor f (0) pode ser qualquer coisa. Assim, os compartilhamentos T- 1 não fornecem informações sobre o segredo compartilhado.

Padronização

Até agora, a ampla adoção do esquema de compartilhamento secreto de Shamir foi dificultada por uma absoluta falta de padronização. Existem algumas ferramentas disponíveis na Internet que implementam o Compartilhamento Secreto de Shamir, mas nenhuma delas é amplamente suportada e são mutuamente incompatíveis. A falta de padronização apresenta o risco de não conseguir executar a recuperação no futuro, caso as ferramentas sejam alteradas.

É por isso que a SatoshiLabs, os fabricantes da carteira física da Trezor, se esforçaram para criar um substituto para o BIP-0039, que oferecerá suporte ao Compartilhamento Secreto de Shamir. O novo padrão é chamado SLIP-0039 e é gratuito para ser implementado por qualquer pessoa, na esperança de que todas as futuras implementações do Compartilhamento Secreto de Shamir sejam interoperáveis.

Como são os novos compartilhamentos?

Um compartilhamento de recuperação Shamir se parece muito com uma semente de recuperação comum, apenas uma lista de palavras em uma ordem específica. À primeira vista, você notará que os compartilhamentos de recuperação Shamir são maiores que as sementes de recuperação BIP-0039. Para segurança de 128 bits, cada compartilhamento de recuperação tem 20 palavras e, para segurança de 256 bits, cada um tem 33 palavras.

Em comparação, as sementes de recuperação são apenas 12 ou 24 palavras, respectivamente. A principal razão para isso é que os compartilhamentos de recuperação Shamir precisam carregar metadados extras e também possuem uma soma de verificação mais forte.

Acredite ou não, digitar um compartilhamento de recuperação Shamir de 20 palavras no Trezor leva aproximadamente o mesmo tempo que digitar uma semente de recuperação de 12 palavras. Isso ocorre porque ele usa um novo conjunto de palavras, cuidadosamente elaborado para garantir uma entrada rápida na Trezor Model T.

O novo conjunto de palavras consiste em 1023 palavras comuns em inglês e a palavra “satoshi”. Cuidados foram tomados para minimizar a semelhança entre quaisquer duas palavras, tanto em termos de ortografia quanto em termos de pronúncia, caso o compartilhamento de recuperação precise ser comunicado verbalmente, por exemplo, lido por telefone.

Ao criar um conjunto de compartilhamentos de recuperação, você notará que as duas ou três primeiras palavras são sempre as mesmas em cada compartilhamento. Isso ajuda a ver que os compartilhamentos pertencem um ao outro. É útil para impedir que compartilhamentos de conjuntos diferentes se misturem, por exemplo, caso você tenha algumas ações próprias e algumas que seus amigos lhe deram para mantê-las.

As últimas três palavras de um compartilhamento de recuperação servem como uma soma de verificação para garantir que o compartilhamento foi copiado corretamente. A soma de verificação usa um código Reed-Solomon que pode detectar se você cometer um erro no compartilhamento de recuperação e não permitirá que você use o compartilhamento até que todos os erros sejam corrigidos. Se você cometer um erro em exatamente uma palavra de um compartilhamento de recuperação, o código permitirá localizar qual palavra é essa.

Passphrase

Assim como nas sementes de recuperação BIP-0039, você pode (e deve) adicionar uma proteção extra à sua semente principal usando uma senha secreta da qual apenas você se lembre. Embora a especificação SLIP-0039 use várias somas de verificação para garantir que você copiou e combinou seus compartilhamentos corretamente, não há como verificar se você usou a frase secreta correta.

À primeira vista, isso pode parecer uma falha na especificação, mas, na verdade, é um recurso importante e intencional que permite obter carteiras diferentes de seus compartilhamentos de recuperação usando frases secretas diferentes. Assim, você pode usar uma frase secreta para acessar sua carteira real e outra para acessar uma carteira de isca.

Se alguém mais tarde forçar você a revelar sua frase secreta por lei ou pela força, poderá revelar a frase secreta que acessa a carteira de isca e negar plausivelmente a existência de sua carteira real, porque não há como o agente provar que a isca carteira não é a verdadeira.

Como posso começar a usar o Shamir Backup?

O Shamir Backup está disponível para todos os proprietários da Trezor Model T.

Você pode encontrar um guia passo a passo para criar uma nova carteira usando o Shamir Backup em nosso Blog.

Convém migrar sua carteira atual para uma nova com Shamir Backup, o que também é possível, e segue as mesmas etapas de mover seus fundos para uma carteira feita com uma semente de recuperação recém-gerada.

Qual é o próximo?

Uma característica do esquema de compartilhamento secreto de Shamir é que todas os compartilhamentos são iguais. Portanto, se você precisar distribuir a quantidade de confiança de maneira desigual entre as pessoas da sua confiança, algumas pessoas deverão receber vários compartilhamentos.

Além disso, você pode restringir as combinações de pessoas que são capazes de reconstruir o segredo, porque algumas combinações de pessoas podem ter mais chances de conspirar contra você do que outras.

Para facilitar isso, o SLIP-0039 permite adicionar mais um nível de complexidade. Você pode primeiro dividir sua semente usando o Shamir Backup para criar um conjunto de compartilhamentos de primeiro nível. Em seguida, você pode dividir cada um dos compartilhamentos de primeiro nível novamente usando o compartilhamento de Shamir para criar os compartilhamentos reais que serão distribuídos.

Por exemplo, suponhamos que você queira reconstruir sua semente usando 2 compartilhamentos, que você armazenará em locais diferentes. No entanto, se um ou ambos os compartilhamentos forem destruídos, você também deseja ter um backup com seus amigos e familiares, de modo que 3 de seus 5 amigos e 2 de seus 6 membros da família sejam necessários para reconstruir sua semente. .

O nível adicional de complexidade pode acomodar facilmente esses requisitos. O que acontece é que você primeiro divide sua semente usando um esquema de 2-de-4 para obter os compartilhamentos de primeiro nível A, B, C e D. Você mantém A e B para si mesmo e divide C usando um esquema de 3-de-5 para obter cinco compartilhamentos que você distribui a seus amigos.

Da mesma forma, você divide D entre os membros da sua família usando um esquema 2-de-6. Assim, os membros da família recebem uma quantidade maior de confiança do que os amigos, sem ter que dar a uma pessoa vários compartilhamentos. No entanto, mesmo que todos os seis membros da família conspirem contra você, eles não poderão obter sua semente sem a ajuda de pelo menos dois de seus amigos ou sem roubar um de seus próprios compartilhamento.

A Trezor não suporta este recurso ainda. No entanto, se você estiver curioso para vê-lo em ação, há uma versão demo de linha de comando disponível. Lembre-se de que esta demonstração é apenas para fins experimentais e não se destina a gerar ou decodificar segredos sensíveis .


Sobre a Trezor

Criado pela SatoshiLabs em 2014, a Trezor One é a carteira de hardware original e mais confiável do mundo. Ela oferece segurança inigualável para as suas criptomoedas, gerenciamento de senhas e serve como um segundo fator na autenticação de dois fatores. Esses recursos combinam com uma interface fácil de usar, seja você um especialista em segurança ou um novo usuário.

Trezor Modelo T é a carteira de hardware da próxima geração, projetada com os benefícios da Trezor original em mente, combinada com uma interface moderna e intuitiva para maior experiência e segurança do usuário. Ela possui uma tela sensível ao toque, processador mais rápido e suporte avançado a moedas, bem como todos os recursos do Trezor One.

Escrito por: blog.trezor.io

Hardware Wallets

Vale Presente

R$100,00R$6.495,09
-28%
Lançamento

Hardware Wallets

Ledger Stax

R$2.799,00
-40%

Hardware Wallets

Ledger Nano X

R$1.499,00
-40%
Fora de estoque

Hardware Wallets

Trezor T

R$1.499,00
-53%
Lançamento

Hardware Wallets

Ledger Nano S Plus

R$799,00
-54%
Lançamento

Hardware Wallets

Trezor Safe 3

R$777,00
-46%
Lançamento

Hardware Wallets

SecuX V20

R$699,00
-70%
Lançamento
R$599,00
-70%
Lançamento
R$599,00
-40%

Hardware Wallets

SecuX W20

R$599,00
-53%
Fora de estoque
Elementor PROWP RocketCrocoblockCheckout Woocommerce