Thanks to a grant from the Zcash Foundation, the ZecPaperWallet offline paper wallet generator for Sapling addresses is now ready for first beta release, so please help test it out!
You’ll need to install Rust and compile zecpaperwallet. See instructions here, but the summary is:
git clone https://github.com/adityapk00/zecpaperwallet.git
cd zecpaperwallet/cli
cargo build --release
You are now ready to test it out! To generate a single address:
./target/release/zecpaperwallet
To generate a PDF with 3 addresses
./target/release/zecpaperwallet -z 3 --format pdf zecpaper-output.pdf
The UI frontend for this is being built, and should also be available next week. What other features would you like to see? If you run into issues or want to see other features, please let me know!
The unfortunate thing about paper wallets is that they generally have to be printed. Many printers store data of the documents that are printed. In my opinion, this makes paper wallets unsafe to use for large amounts.
Similar to computers, printers have both volatile memory (like computer RAM) which gets lost when you turn the printer off and non-volatile memory (like computer hard drives) which sticks around until it’s deleted. … Non-volatile memory is what you need to worry about if you just printed a confidential document / paper wallet
Let’s compare this to the ZEC wallet. The unfortunate thing about ZEC wallets is that they don’t have a password neither are encrypted in anyway.
The ZEC desktop wallets are just stored on the PC, unsecured!
In my opinion, this makes deskotp wallets way more unsafe than a paper wallet. I mean IF someone has accessto your printer he would as much have access to your PC. IF this would be the case it would be more easier to gain access to the ZEC desktop wallets than to the memory of the printer.
Now if we talk about public printing services it’s a NO-Go anyway. It would be the same like having a desktop ZEC wallet on a PC used in an internet cafe.
This said, if we compare both i can’t see how the paper wallet is more unsafe than an anyway unsecured ZEC desktop wallet?!?!
You know what I thought of? If I make a arm64 binary, then you can buy a Raspberry Pi + Cheap printer for a total of $80, generate + print a paper wallet, then destroy the Raspberry Pi and the printer.
That way, you have a paranoid-level offline zcash private key for “just” ~$80. That would be cool!
I wanted to display the viewing key as well, but since zcashd doesn’t have support for it yet, I decided to hold off. I’ll add it right after zcashd adds full support for view keys
@adityapk00 Is it possible to add support for BIP39 or something similar? I know that is what ledger uses for t addresses and it would be nice if this was an option.
zecpaperwallet uses BIP39 for sapling addresses (It prints out the seed and the BIP39 path). It doesn’t use it for t-addresses intentionally, since that is the behavior of the underlying zcashd (HD addresses for sapling, random addresses for t-addrs)
I thought about doing BIP39 for t-addresses as well, but thought it might get confusing since it is different from zcashd.