Bem, o @alegotardo fez uma pergunta
aqui do que seriam os mult-sign, ou em português multi-assinaturas. Como ele sugeriu e como não me lembro de um tutorial aqui na aba em português, vamos deixar registrado um aqui.
Breve explicação:Normalmente, para que possamos gastar os fundos de um endereço devemos ter uma chave privada para assinar a transação deste endereço. Mas, e se por segurança você quer ter mais de uma chave privada para gastar os fundos de um endereço? Neste caso, se um ladrão encontrasse apenas uma das chaves privadas, não seria possível que ele gastasse os seus fundos.
Outra razão para utilizar endereços multi-assinados é você ter uma empresa com sócios. Você não quer que apenas uma pessoa gaste os fundos de uma empresa inteira a hora que lhe der na telha. A solução para isso é utilizar esse tipo de endereço.
Aplicações:
A
Bitcoin Wiki dá alguns exemplos de casos de uso de endereços multi-assinados:
1-de-2: Conta conjunta do marido e da esposa- a assinatura de qualquer um dos dois é suficiente para gastar os fundos.
2-de-2: Conta poupança do marido e da esposa - é necessário ambas as assinaturas para gastar os fundos, impedindo que um dos cônjuges gaste o dinheiro sem a aprovação do outro.
2-de-3: Conta de poupança dos pais para um filho - o filho pode gastar o dinheiro com a aprovação de um dos pais, e o dinheiro não pode ser retirado do filho, a menos que ambos os pais concordem.
2-de 2: Carteira com autenticação de dois fatores - uma chave privada está no seu computador principal e a outra no seu smartphone - os fundos não podem ser gastos sem a assinatura de ambos os dispositivos. Assim, um invasor precisa obter acesso aos dois dispositivos para roubar seus fundos.
2-de-3: Comprador/Vendedor utilizando um escrow - Se a transação ocorrer sem problemas, o comprador e o vendedor assinam a transação para encaminhar o dinheiro ao vendedor. Se algo der errado, eles podem assinar uma transação para reembolsar o comprador. Se não concordarem, ambos apelam para a terceira parte que julgará e fornecerá uma segunda assinatura à pessoa que considerar que merece. O escrow não pode roubar o dinheiro, pois eles têm apenas uma chave.
2-de-3: Um conselho de três diretores mantendo fundos para sua organização - esses fundos não podem ser gastos a menos que dois deles concordem. Transações maiores com várias assinaturas são possíveis para organizações maiores, como 3-de-5, 5-de-9, etc.
Como criar uma carteira multi-assinada na electrum:Ao criar uma nova wallet, selecione multi-signature wallet:
Selecione quantas pessoas dividirão a wallet e quantas serão precisas para gastar os fundos:
Adicione os cossignatários:
Se criar uma nova seed, será mostrada sua chave pública mestra:
Desse modo você não precisará informar sua seed para os outros cossignatários, apenas essa chave pública.
Adicionando os outros cossignatários:
A partir da chave pública:
Dá pra fazer o mesmo com a seed, mas uma pessoa precisaria saber a seed da outra, isso não é muito interessante neste caso.
O mesmo deve ser feito com os outros cossignatários (se houver).
Wallet criada:
Como fazer uma transação multi-assinada:
Vou usar a testnet do Bitcoin pra fazer essa brincadeira, recomendo ver esse tópico
aqui pra quem quer saber mais sobre a TestNet.
Estou com 2 das 3 carteiras abertas em meu pc, como podem ver, elas possuem o mesmo endereço de recebimento (peguei uns satoshis em um faucet testnet).
Primeiramente, vamos utilizar a Carteira A para começar a transação. Nesta etapa é só fazer o passo a passo de uma transação comum:
Ao Enviar, a Electrum exibirá essa mensagem:
Ou seja, não é possível transmitir a transação porque ela está apenas parcialmente assinada (de duas chaves, foi assinada por apenas 1).
Então vamos para a Carteira B finalizar essa transação. No print acima é possível ver que dá para salvar essa transação incompleta em um arquivo.
Já na carteira B carregue esse arquivo nessa opção:
Então, aparecerá a seguinte tela onde você poderá assinar (1) e posteriormente transmitir (2) a transação para a rede:
Fim.
Há de se lembrar que o processo de passar a transação para as outras carteiras podem ser feitos de diferentes modos, como um QR Code. E é importante lembrar que a assinatura pode ser feita por uma Hardware Wallet, pra quem tem.
Aqui está um vídeo explicativo de como funciona os endereços multi-assinados:
https://www.youtube.com/watch?v=yeLqe_gg2u0E um vídeo do Andreas Antonopoulos:
https://www.youtube.com/watch?v=cAP2u6w_1-kPra parte técnica de como funciona, deixo pros amigos que sabem bem mais que eu explicarem