Criando uma carteira bitcoin multisig com Electrum

TR Rocha
15 min readAug 11, 2019

Vai ser meio lugar comum dizer que “Lugar de cripto moedas é na sua carteira, não na exchange”, obviamente pessoas com interesses diferentes vão ter metas e maneiras de pensar diferentes, mas entre aqueles que optam por manter suas cripto moedas sob o próprio controle sempre surge a duvida, qual a maneira mais segura de manter?

Temos varias opções no mercado, desde os core, as “carteiras originais” completas com toda a blockchain, que funcionam como nodes que, e que ocupam vários gigabytes no computador, grandes quantidades de banda e são mais lentas, ate as light wallets que não guardam toda a blockchain, “só registram as transações envolvendo os endereços específicos”, são mais rápidas e leves, dentre essas, se tratando de bitcoin, a Electrum ( https://electrum.org/ ) é uma das mais antigas, conhecidas, confiáveis e apresenta uma seria de boas opções de segurança, dentre as quais, carteira multisig.

Ícone da Electrum

Uma carteira multisig serve a vários propósitos, deste a que varias pessoas possam controlar uma carteira de maneira cooperativa, uma instituição que possa dividir a responsabilidade da carteira com mais de um membro, como opção de backup ou ainda exigir a aprovação de vários dispositivos pertencentes à mesma pessoa, ou seja, uma forma de autenticação de dois ou mais fatores, nesse terceiro cenário que irei focar esse pequeno manual.

O conceito da carteira multisig é que você precisa controlar várias chaves privadas para gastar com essa carteira, isso é, cada endereço na carteira tem várias chaves privadas por trás dele, que podem operar a carteira de maneira independente ou cooperativa, dependendo de como a carteira é configurada.

De maneira simples, são um conjuntos de carteiras interconectadas entre si, compartilhando os mesmos endereços e o mesmo saldo, em uma alusão ao sistema bancário, é como pessoas que compartilham conta em banco, e como tal é possível configurar o nível de solidariedade entre as partes, “quantas assinaturas em um cheque” são necessárias para movimentar o valor, aqui configura-se quantas carteiras precisam assinar.

Os diferentes indivíduos, ou dispositivos, que estão envolvidos em uma carteira multisig são chamados de cossignatários, e são possíveis diversos tipos de arranjos no numero de cossignatários e de quantos devem assinar a transação para a mesma ser efetivada, por exemplo, você pode criar uma carteira multisig com 4 cossignatário, dos quais qualquer 2 deve assinar transações de gastos, com 7 cossignatário onde qualquer um sozinho pode efetuar a transação, com 5 onde todos tem que assinar, assim por diante.

Criando a carteira

Neste exemplo iremos criar uma carteira multisig de Bitcoin utilizando Electrum onde há 3 cossignatário, dos quais 2 tem que assinar a transação, vou demonstrar como criar e utilizar no Windows e no Android, em sistemas Linux, nas versões gráficas, o procedimento é idêntico ao Windows.

A ideia é usar o computador e o celular com carteiras multisig como uma espécie de autenticação de dois fatores, e um terceiro computador como backup, de forma que seja necessário a assinatura de duas das 3 carteiras para confirmar uma transação de saída, e caso o usuário venha a perder uma das carteiras, ainda consegue acesso. Somado a isso, e possível fazer backup de todas as carteiras via frases mnemônicas, no jargão conhecidas como semente ou seed e senhas, além de ser possível fazer o backup do arquivo criptografado da carteira.

Algumas notas antes de começar:

-Pode haver trocas constantes de termos de jargão ao longo do texto, para efeito deste texto: Semente = Seed,

-Tenha papel e caneta a mão para anotar as sementes (seed).
-Todas as partes tem que usar Electrum

-As duas maneiras de recuperar a carteira em caso de perda são: pela semente ou backup do arquivo, não existe recuperação de senha, está sob sua responsabilidade a guarda dessas informações

-Se você esta criando uma carteira cooperativa com outras pessoas, em hipótese alguma compartilhe sua semente com elas

-Se você esta criando como uma maneira extra de segurança ou segundo fator, não guarde as duas sementes no mesmo local

-Caso você não entenda ou fique com muitas duvidas, reeleia, busque outras fontes e pesquise, apenas utilize criptomoedas quando tiver certeza do que esta fazendo, é o seu dinheiro em risco

1. Windows e Linux

O Electrum para o Windows e Linux disponibilizado em diversas formas, o código em Python para o próprio usuário compilar, portable, standalone é instalador padrão para Windows, e pacotes prontos para algumas distribuições Linux, onde ele fica efetivamente instalado na maquina. Salvo o caso de um usuário avançado, ou que saiba o que esta fazendo, escolha o instalador. Como as diversas distribuições linux tem maneiras diferentes de instalar, irei focar na instalação apenas do Windows, mas os passos seguintes de configuração da carteira são idênticos.

1.1 Instalando no Windows

A única fonte confiável do instalador do Electrum é o site oficial, https://electrum.org, na sessão de downloads, como na figura 1.1.1, escolha o Windows Installer.

Figura 1.1.1 — Pagina de Download do Electrum

Após o download do executável, basta iniciar o mesmo para começar a instalação, na primeira janela, figura 1.1.2, pode-se configurar a pasta do computador onde instalar o Electrum, como em um programa comum, caso não queira alterar, basta apertar o botão Install

Figura 1.1.2 — Escolha o local de instalação

O processo de instalação padrão é automático, figura 1.1.3, não é necessário nenhuma modificação.

Figura 1.1.3 — Tela de instalação

Após completada a instalação, figura 1.1.4, basta fechar o instalador, e iniciar o programa, no menu iniciar, para iniciar a configuração.

Figura 1.1.4 — instalação finalizada

Agora basta abrir o Electrum onde você instalou ele, por padrão ele vai estar no menu iniciar.

1.2 Criando seed (semente) e chave publica

Ao abrir o Electrum, ele vai solicitar um arquivo de carteira, ao escolher um nome que não existe na pasta selecionada (nesse caso a padrão onde ele esta configurado) ele ira criar uma nova carteira,

Figura 1.2.1 — Caso queira manter o arquivo da carteira na pasta padrão, so escolher o nome da sua nova carteira, e pressionar próximo, caso queira mudar de pasta, aperte “Escolher” e mude a pasta.

Selecione a opção “Multi-signature wallet”

Figura 1.2.2- Tipos de Carteiras e autenticações disponíveis no Electrum

Escolha a quantidade de cossignatário totais da carteira, e numero de assinaturas requeridas para movimentar a carteira.
Nesse caso, estou configurando 3 cossignatário e 2 assinaturas, o máximo possível são 15 cossignatário e 15 assinaturas.

E importante lembrar, para terminar de criar a carteira todos os cossignatário vão precisar compartilhar sua chave publica ou a semente (seed) entre si, não é possível adicionar ou remover cossignatário posteriormente, então se você quiser criar uma carteira com X cossignatários, é recomendado que já esteja com os X aparelhos onde vão estar essas carteiras fazendo o processo ao mesmo tempo, quanto mais cossignatário, mais demora o processo.

Figura 1.2.3 — Basta correr o seletor na barra para escolher o numero de cossignatário e o numero de assinaturas.

Na tela seguinte tem a opção de como criar a carteira de cada um dos cossignatários, você pode utilizar uma semente (seed) já existente, uma hardware wallet como a Trezor ( https://trezor.io/), uma masterkey que você já possua, etc… nesse caso vamos criar uma nova semente.

Figura 1.2.4 — Adicionando o primeiro co-signatario, no caso esse próprio.

A Electrum da por opção padrão tipos de sementes Segwit e Legacy, a segunda é a “primeira geração de endereços” do Bitcoin, conhecida por seus endereços começando por 1… já a Segwit é mais moderna, além de ser mais rápida, porem pode ter problemas de compatibilidade com carteiras mais antigas, porem, é mais recomendada para esse tipo de carteira, além de ser conhecido pelos seus endereço começando em bc1…

Figura 1.2.5 — Tipo de Endereço, tipo de semente

Agora uma parte importante, a carteira Electrum utiliza frases mnemônicas como seed (semente) de backup da carteira (lista de palavras utilizadas pela Electrum: https://github.com/spesmilo/electrum/tree/master/electrum/wordlist ) é uma maneira bem segura de se ter um backup fora de meios eletrônicos, ANOTE EM UM PAPEL a semente (seed) e guarde em um lugar seguro.

Figura 1.2.6 —

As frases da Electrum já são bem seguras, são 12 palavras de um dicionário de 2048 palavras, resultando em 5,2 x 10³⁹ combinações, porem vamos aumentar a segurança da senha, estendendo a semente com palavras personalizadas.

Figura 1.2.7 — Clique em Opções, abaixo da caixa de dialogo que aparece a semente, selecione a opção “Estenda esta semente com palavras personalizadas”, e clique em concluído.

Para estender a semente, seleciona-se opções, abaixo da semente, e optar por estender a semente, na próxima tela coloca-se o trecho personalizado da semente.

ATENÇÃO: ESSE TRECHO DEVE SER ANOTADO JUNTO COM A SEMENTE (SEED), E DEVIDAMENTE GUARDADO EM LOCAL SEGURO.

Figura 1.2.8 — Nessa janela colocamos o nosso trecho personalizado da semente, ao finalizar, clica em próximo.

O Passo seguinte é de segurança, para confirmar que o usuário guardou adequadamente a semente (seed) de recuperação de carteira, atenção, nesse campo somente a semente (seed) dada pelo programa por padrão.

Figura 1.2.9 —

Agora confirma-se a extensão personalizada da semente, como feita anteriormente.

Figura 1.2.10 —

Agora vem a parte um pouco mais chata, confirmar a chave publica entre os dispositivos. Isso pode ser feito digitando caractere a caractere, o que seria improdutivo, ou salvando a chave em um pendrive, ou através de um QR code fornecido pelo programa

Figura 1.2.11-

Como a ideia é ter uma carteira multisig entre o computador e o dispositivo móvel, o leitor de QR-Code é uma opção muito pratica para ler do PC para o Celular, para isso basta clicar no símbolo do QR-Code no canto do campo onde aparece a chave publica que o programa abre o QR Code legível.

Figura 1.1.2.12 —

Eu fiz essa carteira entre um computador Windows, um computador com Linux e um celular Android, para transferir do celular para os computadores e entre computadores usei um pendrive seguro com o txt com a chave. Você pode usar a câmera do computador para ler QR code, enviar a chave por email ou comunicador seguro, etc… até por que há mais de uma opção de compartilhar, e a chave, como dito, e a parte publica, não e tão sensível a segurança.

Lembre-se que todos os computadores vão precisar de ter essa parte da chave de todos.

1.3 Adicionando cossignatário

Na sequencia você vai ter que entrar com a chave de cada um dos cossignatário, pode ser com a chave publica fornecida no momento como foi na Figura 1.2.11, que é o método que julgo ser o melhor, pela semente (seed) que julgo que só deve ser usado em caso de necessidade, como ultima opção, ou podendo ser por Hardware Wallet, que é um bom método, mas não iremos tratar aqui, a tela de adição de cossignatário, Figura 1.3.1, da as 3 opções.

Figura 1.3.1 —

1.3.1 — Adicionando cossignatário pela semente deles

Uma das opções, e mais fácil, apesar de a menos recomendada, e a pior em termos de segurança, é indicar quem é o cossignatário e autentica-lo é inserindo a semente (seed) do mesmo, assim o Electrum ira conseguir recuperar a carteira ele e recalcular qual a chave dele, é menos indicada, por que você expõe a semente de dois assinantes a um mesmo dispositivo, o que pode ser um problema de segurança caso esse dispositivo esteja comprometido. Mas, se for essa a opção, selecione a opção de “Insira a semente do cossignatário” na tela de adição de cossignatário, e clique em próximo, na tela seguinte, ele vai pedir a semente (seed) do cossignatário, Figura 1.3.2.

Figura 1.3.2 —

Caso a semente (seed) for estendida, vá em opções e selecione o checkbox “Estenda esta semente…”, Figura 1.3.3, na tela seguinte ele ira pedir a extensão da semente, e siga o processo.

Figura 1.3.3

1.3.1 — Adicionando cossignatários pela Chave Publica deles

Esse é o método recomendado, na Figura 1.2.11, foi criada a chave dessa carteira, os outro consignatários vão passar pelo mesmo processo, e todos devem compartilha entre si as chaves mestra publica, que começa por Zpub…, podendo ser da maneira que preferirem, como dito antes, via QR-Code, email ou comunicador seguro, salvando em um Pendrive, etc…

Na segunda tela de adição de cossignatário, Figura 1.3.4, você ira entrar com as chaves das outras partes, basta colar é clicar próximo, podendo abrir a camera, caso esteja em QR, ou navegar em arquivos, caso esteja em arquivos. O processo vai ser repetido o numero de vezes que tiver de consignatários na carteira.

Figura 1.3.4 — Digitando as chaves dos Cossignatarios

Agora é a parte final, basta entrar com a senha para criptografar essa parte da carteira, somente esse cossignatário especifico, esta senha será somente dele, e não vai ser igual para todos os cossignatários, assim como cada um tem sua própria seed, cada um deve ter a sua senha. E não esqueça de confirmar se a caixa de “Criptografar o arquivo da carteira”, Figura 1.3.5, está marcada.

Figura 1.3.5 — Senha desse Cossignatario

Pronto, Esta configurada a sua carteira Multisig no Electrum, com um dos níveis de segurança mais altos em carteiras Bitcoin.

Figura 1.3.6 — Carteira Electrum Bitcoin

Repare que no topo esta escrito, [2of3] isso significa que é uma carteira de 3 partes, onde duas tem que assinar qualquer transação de saída.

2 Android

No Android a carteira Electrum esta disponível tanto diretamente via o APK no site, quanto pela Play Store

2.1.1 Download via site

Figura 2.1.1 —

Ao entrar no site do Electrum, e ir a parte de downloads, basta baixar o APK, marcado em vermelho na Figura 2.1.1, para Android que consegue instalar ele diretamente no seu aparelho, e ao abrir o arquivo prosseguir como procedimentos comuns de instalação, como nas figuras 2.1.2 e 2.1.3 .

Figura 2.1.2 —

-

Figura 2.1.3 —

2.1.2 Download via Play Store

Na Google Play Store basta buscar por Electrum, e baixar Electrum Bitcoin Wallet por Electrum Tecnnologies GmbH, figura 2.1.4 .

Figura 2.1.4 —

E Abrir, Figura 2.1.5

Figura 2.1.5 —

Ao Abrirmos a carteira no android, selecionamos a opção Multi-Signature wallet

Figura 2.1.6 —

Escolha a mesma configuração dos outros cossignatarios, nesse caso, 3 cossignatarios requerendo duas assinaturas

Figura 2.1.7 —

Iremos criar uma nova semente (Seed), para isso, basta clicar em “Create a new seed” ou “Crie uma nova semente”

Figura 2.1.8 —

Escolha o “mesmo tipo de semente”, tipo de endereço no caso, que as outras carteira, nesse caso, Segwit.

Figura 2.1.9 —

Ao contrario das versões Desktop, o Electrum para Android não permite extensão da semente, então vamos anotar apenas a semente (seed) padrão.

ATENÇÃO : ANOTE A SUA SEMENTE E GUARDE EM LUGAR SEGURO, ELA É O SEU BACKUP SECUNDÁRIO EM CASO DE PERDA DA CARTEIRA. E NÃO GUARDE AS SEMENTES DAS CARTEIRAS COSSINATARIAS JUNTAS.

Figura 2.1.10 —

Mais uma vez, confirme se entrou corretamente com a semente dessa chave.

Figura 2.1.11 —

Agora ele vai passar a Master Public Key Dessa carteira cossignatário que deve ser compartilhada com as outras, como dito antes na sessão 1.3.1 , você pode compartilhar por email e comunicadores seguros, pendrives, QR-CODE, etc.

Figura 2.1.12 —

Se optar por QR, irar aparecer essa tela, que pode ser lida pela câmera do Celular ou do computador

Figura 2.1.13 —

Na tela seguinte você será solicitado a configurar a chave dos cossignatário nessa carteira, possesso identifico a sessão 1.3.1 , pressione Enter cosigner key na tela, figura 2.1.14, e era a opção de colar a chave que recebeu por email ou comunicador, ou ler QR-CODE, bem similar ao feito anteriormente.

Figura 2.1.14 —

Ao contrario do Electrum no Windows e no Linux, também não é possível estabelecer livremente uma senha, assim como a extensão de semente, após configurar as chaves dos cossignatários ele ira solicitar para gerar um PIN de 6 dígitos, que será a senha da sua carteira, figura 2.1.15 . IMPORTANTE: NÃO PERCA ESSA SENHA, NÃO EXISTE RECUPERAÇÃO.

Figura 2.1.15— Entre com a senha numérica de seis algarismos.

Criada o PIN, a sua Carteira do segundo cossignatário esta pronta para uso, figura 2.1.16 .

Figura 2.1.16 —

O PIN será necessário para abrir a carteira e para autorizar a transação, eu recomendo a utilização de um gerenciador de senhas de sua referencia
(PS extra texto: pessoalmente gosto do KeepassXC e do BitWarden como gerenciadores de senhas)

Utilizando a Carteira

A Carteira multsig não tem diferença nenhuma para receber o pagamento, nada muda, e todas os cossignatário vão visualizar os mesmos endereços. A mudança ocorre no gasto da carteira.

3.1 Recebendo

Não importa o cossignatário do circulo, a carteira possui os endereços definidos a partir de qualquer um pode-se compartilhar o endereço para recebimento, figuras 3.1.1 e 3.1.2

Figura 3.1.1 — Endereços no cossignatário no windows

Mesmos endereços em todos os cossignatário

Basta clicar na aba Receber no Windows e Linux e na guia Receber no Android, sem problemas.

3.2 Enviando

Aqui esta o grande diferencial da carteira multisig, a necessidade de mais de um ente confirmar a transação para efetuar a saída da criptomoeda da carteira, vamos pegar por exemplo uma transação iniciada no Windows ou Linux e confirmada pelo cossignatário no Android.

Na aba enviar do Electrum colocamos o destinatário do pagamento, a descrição do mesmo e taxa, figura 3.2.1.

Figura 3.2.1 — Envio pela carteira multisig

Como foi configurado senha na carteira, ele ira solicitar a senha DESSE COSSIGNATÁRIO especifico para liberar a transação.

Figura 3.2.2 — Senha do Co-Signatário

Uma vez que se entra com a senha, ele vai abrir a tela de dados da transação, onde podemos ver abaixo do ID da Transação: Status: Partially signed (1/2), o que significa que o cossignatário que emitiu a transação naturalmente já assinou a mesma, agora fica faltando mais um (nesse caso) assinar.

Figura 3.2.3 — Dados da Transação.

Para autenticar a transação com a carteira instalada no celular Android, a maneira mais pratica é via leitura de QR-Code, para isso, clique no símbolo de QR-Code do lado do botão de Copiar na tela de informação da transação, Figura 3.2.3, ele irar abrir um QR-Code com as informações da transação, figura 3.2.4.

Figura 3.2.4 — QR Code com as informações da Transação

Para confirmar com a carteira instalara no Android, basta abrir a carteira, Figura 3.2.5, clicar em Send ou Enviar.

Figura 3.2.5— Wallet Android

Na Tela de envio, Figura 3.2.6, clique no símbolo da câmera, e com a câmera ativada leia o QR Code da Tela do Computador

Figura 3.2.6 — Envio Electrum Android

Ao ler o código QR da tela do computador, ira aparecer no celular, figura 3.2.7, uma tela com os dados da transação, Similar a figura 3.2.3, verifique todos os dados, principalmente os endereços de destino e valores.

Figura 3.2.7 — Dados da Transação

Com os dados todos confirmados, basta clicar em Options (opções) e Sign (Assinar), figura 3.2.8 .

Figura 3.2.8 — Dados da Transação

Ele vai pedir a senha DESSE COSSIGNATÁRIO, figura 3.2.9, para autorizar a transação, bastar entrar com o PIN de 6 dígitos configurado na instalação da Carteira

Figura 3.2.8 — PIN

Se o PIN estiver correto, Pagamento Enviado!. Tudo certo, e a partir daqui vai como uma transação normal. Nesse caso, como e uma carteira 2 de 3, a assinatura da terceira parte não vai ser requerida.

Figura 3.2.9— Pagamento Enviado!

Obviamente também é possível iniciar a transação pelo Android e confirmar pelo PC, nesse caso só fazer o inverso, é bem intuitivo.

Apesar de parecer complexo de configurar, é apenas repetitivo, não complexo, mas é uma das maneiras mais seguras de guardar suas criptomoedas, sem depender de Bolsas, empresas, exchanges, etc… e funciona melhor que uma dupla autenticação comum por que são duas carteira completas que tem que assinar e autenticar juntas, e não só 6 números gerados por um algoritmo.

Qualquer duvidas, tem as fontes abaixo, as perguntas abaixo, ou me encontrem por ai em:

twitter.com/teerre
UIN: 531168
trr <at>tuta.io
OpenPGP Fingerprint: c134 c99f 2d0a 1055 34ca 3d78 e129 442a 44f3 3892

Fontes:
https://medium.com/@buddhasource/bitcoin-legacy-vs-segwit-wallet-address-what-is-the-difference-cb2e71ab8381
https://github.com/spesmilo/electrum
https://electrum.readthedocs.io/en/latest/multisig.html
https://bitcoinelectrum.com/creating-a-multisig-wallet/

--

--

TR Rocha
0 Followers

Especialista em musica ruim. Viciado em dados, e escreve umas linhas sobre segurança digital por esporte.