A few days ago, I had a brief conversation with @o_e_l_e_o and the subject we discussed was how we can increase our security (private key/seeds)
(...)
The irony of fate, I was looking some topics on the Portuguese board and i find an excellent tutorial, "
how we can create a multi-signed wallet using Electrum."I found this a very interesting topic, this can be useful for a user who wants to increase their security. I will translate and share it with you guys!
ps: I'm just translating (portuguese > english),
I'm not the creator, all credits go to the user @Loganota -
ORIGINAL TOPIC - "Como criar uma carteira multi-assinada na Electrum" ps (2): I'm not a native english speaker, if I made some mistakes, please let me know so I can correct the translation, thanks
"how we can create a multi-signed wallet using Electrum."Well, @alegotardo asked a question
here about what mult-signs are, or in Portuguese multi-signatures . As he suggested and as I don't remember a tutorial here in the Portuguese tab, let's record one here.
Brief explanation:Normally, in order for us to spend funds from an address, we must have a private key to sign the transaction from that address. But, what if for security you want to have more than one private key to spend funds from an address? In this case, if a thief found only one of the private keys, it would not be possible for him to spend his funds.
Another reason to use multi-signed addresses is if you have a business with partners. You don't want just one person to spend an entire company's funds whenever they feel like it. The solution to this is to use this type of address.
Applications:
The
Bitcoin Wiki gives some examples of use cases for multi-signed addresses:
1-of-2: Husband and Wife's Joint Account - Signing either of them is enough to spend the funds.
2-of-2: Husband and Wife Savings Account - Both signatures are required to spend the funds, preventing one spouse from spending the money without the other's approval.
2-of-3: Parents Savings Account for a Child - The child can spend the money with the approval of one of the parents, and the money cannot be taken from the child unless both parents agree.
2-of 2: Wallet with two-factor authentication - one private key is on your main computer and the other on your smartphone - funds cannot be spent without signing both devices. Thus, an attacker needs to gain access to both devices to steal your funds.
2-of-3: Buyer/Seller using an escrow - If the transaction goes smoothly, the buyer and seller sign the transaction to forward the money to the seller. If something goes wrong, they can sign a transaction to refund the buyer. If they do not agree, both appeal to the third party who will judge and provide a second signature to the person they deem worthy. The escrow cannot steal the money as they only have one key.
2-of-3: A board of three directors holding funds for your organization - these funds cannot be spent unless two of them agree. Larger transactions with multiple signatures are possible for larger organizations such as 3-of-5, 5-of-9, etc.
How to create a multi-signed wallet on electrum:When creating a new wallet, select multi-signature wallet:
Select how many people will share the wallet and how many will be needed to spend the funds:
Add cosigners:
If you create a new seed, your master public key will be shown:
That way you won't need to inform your seed to the other co-signers, just this public key.
Adding the other co-signers:
From the public key:
You can do the same with the seed, but one person would need to know the other's seed, this is not very interesting in this case.
The same must be done with the other co-signers (if any).
Wallet created:
How to make a multi-signed transaction:
I'm going to use Bitcoin testnet to make this joke, I recommend seeing this topic
here for those who want to know more about TestNet.
I have 2 of the 3 wallets open on my pc, as you can see, they have the same receiving address (I got some satoshis in a testnet faucet).
First, let's use Wallet A to start the transaction. In this step, just do the step by step of a common transaction:
When Submitting, Electrum will display this message:
That is, it is not possible to transmit the transaction because it is only partially signed (out of two keys, it was signed by only 1).
Then we go to Portfolio B to finalize this transaction. In the print above you can see that you can save this incomplete transaction in a file.
In wallet B, load this file in this option:
Then, the following screen will appear where you can sign (1) and later transmit (2) the transaction to the network:
End.
It must be remembered that the process of passing the transaction to the other wallets can be done in different ways, such as a QR Code. And it's important to remember that the subscription can be done by a Hardware Wallet, for those who have it.
Here's a video explaining how multi-signed addresses work:
https://www.youtube.com/watch?v=yeLqe_gg2u0And a video by Andreas Antonopoulos:
https://www.youtube.com/watch?v=cAP2u6w_1-kFor the technical part of how it works, I'll leave it to friends who know much more than I do to explain