1 dev/Paper Wallets
TomZ edited this page 2023-04-29 23:09:19 +02:00

Part of doing a backup of your wallet is the concept where people create a so-called "paper wallet".

The idea is simply that we use the most common used medium, paper, and print something on there which at some time later can again be used to restore , and use, the funds. The benefit of using paper is that it is the ultimate offline tool. No need to worry about being hacked or having a virus, or even electricity.

Address Based

This has been used in Bitcoin for more than a decade. A paper is printed with typically a QR code for the private key. Hidden from casual inspection.
A second QR code is printed that is a typical payment address which allows easy topping up of the wallet.

Importing this requires scanning the private key and doing an import of the wallet.

Seed Based

Seeds are the basic of so called HD wallets, which Flowee Pay supports. It is similar to the previous address based one, except that this imports by seed instead of a single private key.

The advantage is that a lot more addresses can be used and thus the backup can be much more complex and complete.

Similar to the previous type, this requires importing of the wallet.

Transaction Based

A novel way of storing funds, it is different in that it is not address oriented. Instead it is a single transaction output (coin) that is backed up.

Funding is done before printing and the needed details are printed to construct a transaction that spends the funds to anywhere that the user wants to send it.

Not only is the private key printed, it also adds the spending txid and output-index and other details needed to not only build a spending transaction, but also sign it.

Advantage is that no indexer is needed to be consulted, no lengthy import of wallet is needed at all. The downside is that roughly twice the amount of data is needed to be stored in the QR.

Shamir's Secret Sharing

M This is a bit of a different beast. The idea is based on the writings from 1979, Wikipedia explains it like this:

Shamir's secret sharing (SSS) is an efficient secret sharing algorithm for distributing private information (the "secret") among a group so that the secret cannot be revealed unless a quorum of the group acts together to pool their knowledge. To achieve this, the secret is mathematically divided into parts (the "shares") from which the secret can be reassembled only when a sufficient number of shares are combined. SSS has the property of information-theoretic security, meaning that even if an attacker steals some shares, it is impossible for the attacker to reconstruct the secret unless they have stolen the quorum number of shares.

The paper wallet would then print one of those secrets and depending on the settings the user decided on to create the secrets, restoring them would require a minimum of 2 to be scanned.

The advantage of this is that you can give your family a key for safekeeping without them being able to restore the funds. A second version can be stored elsewhere, like for instance a notary.

There isn't really a standard for what data you can store with this for Bitcoin Cash, it probably would be good to document this and be compatible with others if we end up building this.