A few days ago I decided to download Bitcoin Core so I can use it as full node, to help the network and also as my main wallet.

Since then I keep reading a lot of people saying that you shouldn't use a full node as your wallet but I can't figure out why.

Is there any good reason not to do this?

  • 1
    No not unless you are an expert or advanced user. It will probably cause more problems than it's worth in terms of space or bandwidth. – Chloe Mar 17 '17 at 0:27
up vote 1 down vote accepted

The only reasons are the syncing time and storage requirement (which can be lowered from about 200GB to 1GB by pruning). A week or so to sync first, then depending on how often you use it, it'll take a some minutes sync. These are major pain in the ass and because of these I would put it into the category of "good reason to not use as a personal wallet". I would definitely not suggest this to my grandma. However I can live with it, and indeed I use it as my main wallet.

If you're not using a full node for your wallet, you're not using Bitcoin, and won't get the benefits Bitcoin provides over fiat currency. You might as well be using PayPal in that case, except with a random anonymous person in place of a regulated company...

So, always use a full node.

  • 1
    If you use a wallet that only scans the blockchain then you don't need the whole database and it can also keep the wallet keys local so there is also no anonymous person either. – Chloe Mar 17 '17 at 0:25
  • If you only scan the blockchain then you don't know it's actually valid, and you are not secure. You are then trusting the random anonymous person to have validated it for you, and if they haven't, you may be trusting invalid blocks and not actually receiving payments you think you are. Having the wallet keys locally doesn't help if those keys don't really control any bitcoins. So sorry, you're wrong: a full node you control is absolutely needed to be secure and get Bitcoin's benefits. – Luke-Jr Mar 18 '17 at 2:55
  • Clearly this is not the whole picture. There are many benfits to running a full node, but there are also many benefits to using cold storage. Resist the platitudes, truth lies in the nuance. Do your research, if you're using bitcoin as a long term storage of wealth, heavily consider if you want to be doing so on a full node or something not connected to the network. What if you're transacting on a smartphone? Sometimes you can route those payments to your full node? None of the answers in this space are as simple as "always use a full node" (yet) so be skeptical when see this. – Parth Mehrotra 2 days ago

It's ok to use it for small amounts and as your "hot" wallet if you don't mind the sync time. But desktops are very susceptible to viruses which can steal your coinz. Just as it's ok to do the same with a mobile wallet (smart phone) or cloud wallet (Coinbase, etc). But for larger amounts (In my case over $500 worth), it's best to create air-gapped BIP38 paper wallets or get a Trezor or Ledger hardware wallet. Store your recovery phrase is a few very safe places.

Should I use a full node as my main wallet?

Yes, it can be the right tool for the right job. Always use security best practices.

Is there any good reason not to do this?

Yes. Compare to the hardware wallet for help.

Hardware Wallet

For the sake of argument, take the hardware wallet (hw) as the best wallet. Besides standard functionality (create transaction, generate address, handle encryption) shared among wallets, what sets the hw apart from others is the level of protection for the private key (prv).

The whole point of TREZOR is being more secure than a traditional web wallet or desktop bitcoin application.

It employs PIN, single purpose, and limited attack surface in its zero trust design.

In other words, the prv is stored inside a closed box, and only permits controlled access. There is physical separation (air gap) between the prv and the bitcoin network.

With this separation, the hw is offline by definition. It does not require a connection (here it shares similarities with a paper wallet). It is single purpose, in that chain services aren't its responsibility, and it doesn't offer more services from a app store

Another result of the packaging is portability. Like Android wallets on mobile, it is easier to carry the hw in your pockets.

Finally a less obvious point is purchase price, and its relation to commercial support. I've been in a real-life situation where I argued for not paying, and using open source software. There can be a tradition of paying for software. There can be regulatory rules that require SLAs and software support. There can be the stigma of open source, and a perception that closed proprietary software is more secure.

To summarize, reasons against full-node Bitcoin Core wallet:

  1. You want 2FA / PIN access control
  2. You want to separate the private key from the bitcoin network
  3. You want offline wallet operations
  4. You want mobile travel size
  5. You want to pay for commercial support

One Alternative

To add another piece to the conversation, consider the Go language alternative of Bitcoin Core which separates the wallet from the chain as explained by the documentation:

One key difference between btcd and Bitcoin Core is that btcd does NOT include wallet functionality and this was a very intentional design decision. See the blog entry here for more details. This means you can't actually make or receive payments directly with btcd. That functionality is provided by the btcwallet .....

Where the blog entry goes on to elaborate:

Multiple users, each with their own devices and wallets, can authenticate and connect to a shared btcd server.

The next blog post continues:

To put it another way, separating wallet from chain provides the convenience and speed of Simplified Payment Verification (SPV) clients, while keeping most of the benefits and security of running a full-node Bitcoin implementation.

So the primary motivations are concerned with scalability, and consolidating blockchain for multi-user/device scenarios. Where the immediate tangible gain for a user's experience is in the form of SPV convenience and speed.

Conversely then, running a full-node Bitcoin with integrated wallet means sacrificing some convenience and speed for wallet-only functionality. To repeat, for more than just wallet functionality a full-node is good. You want to explore alternatives to full-node configuration when wallet convenience and speed are your highest priority.

Food for Thought

For contrast think of the paper wallet, arguably the least convenient, slowest wallet. That does not mean we avoid using paper wallets. To the contrary, the paper wallet has a very specific and important purpose. When you rank security as your priority, the paper wallet can become your first choice. So just because a full-node setup is slower and inconvenient to a dedicated SPV wallet does not automatically make a full-node a bad wallet.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.