Paper Wallet support in bitcoin-core



Summary:

Dan Libby, in a proposal to the bitcoin-core software, suggested the addition of paper wallet functionality, starting with a single new RPC call: genExternalAddress [type]. He argues that although bitcoin-core is the most trusted and secure bitcoin implementation, paper wallet generation requires the use of third-party software or a website such as bitaddress.org. This presents the need for trust in additional code from a less-trusted and less peer-reviewed source. He suggests that the most ideal situation would be for one to personally audit this code but in practice, this rarely happens. In light of this, he proposes the implementation of an API called genexternaladdress ( "type" ), which returns a new Bitcoin address and private key for receiving payments. This key/address is intended for external usage such as paper wallets and will not be used by the internal wallet nor written to disk. The API provides enough functionality for any moderately skilled developer to create their own paper wallet creation script using any scripting language, or even for advanced users to perform using bitcoin-cli or debug console.He also suggests further steps that could be taken in this direction, including an RPC call to generate an external HD wallet seed, an RPC call to generate N key/address pairs from a given seed, and GUI functionality in bitcoin-qt to facilitate easy paper wallet generation (and printing) for end-users, complete with nice graphics, QR codes, etc. Luke Dashjr had earlier stated that paper wallets are a safety hazard, insecure, and generally not advisable. However, Dan Libby argues that the APIs he proposed have uses beyond paper wallets, and they can also be used by third-party wallets, or any number of reasons that individuals or devs might have to generate keys.


Updated on: 2023-06-12T21:23:48.486328+00:00