The cost of seed-based wallet recovery

Roger Taylor
Dec 21, 2019 · 6 min read

There are a few vocal people who see ElectrumSV no longer providing complete seed-based wallet recovery as a “f*ck you”. No matter how many times I explain that we are not dropping support for it, but that it does not work, they still feel entitled to something working that never really worked and blame us for taking something away.

My previous article laid all of the following out. This article is just rehashing that so that the people who cannot read and join the dots, can have it explicitly spelled out for them.

Why it appears to work now

Seed-based wallet recovery doesn’t really work now. Let’s be clear on that. It just appears to work. And the reason it appears to work is that ElectrumSV, and perhaps many of the other wallets, still only do simple payments. And all payments are using keys derived in a simple fashion from the seed words.

As long as wallets never do anything other than simple payments, seed-based wallet recovery can continue appearing to work.

Why it will stop appearing to work

I went into this in the previous article. We are on Bitcoin SV, not Bitcoin Core, for a reason. We want to do more than simple payments. The wallets, applications and services are starting to use real Bitcoin SV solutions like Paymail. Like smart contracts. R-puzzle-based payments. Dynamic derivations like those done with whitepaper 42. These are just the obvious cases, and nowhere near the full list.

Before payments were simple and predictable, it was possible to know what keys might have been used, and to locate most payments made for a wallet by looking at them all. Now, it is not. Any attempt to use seed-based wallet recovery will fail to find payments.

The path forward

There is no such thing as seed-based wallet recovery unless you never left the safe place of simple payments that Bitcoin Core constructed. At this time, on Bitcoin SV it does not exist. Anyone who complains about losing it, is effectively asking for one of three things:

  1. They want wallets to never change so that they can keep using it.
  2. They want us to slave away and make two wallets, one where they can live in the Bitcoin Core safe place and be sure it will still seem like it works for them, and the other the modern wallet where we take full advantage of the freedom of the realisation of the Bitcoin vision on Bitcoin SV.
  3. They want us to slave away and spend time building a potentially fragile replacement system where their wallet is backed up on chain, which effectively means we do not have time to make any of the changes that open up the Bitcoin SV frontiers to our users anyway.

The only realistic path forward for ElectrumSV is to do what we described in the previous article. See the “Future ElectrumSV usage” section. We covered all the bases there. We have limited time, and have to focus on the realistic stuff.

You can keep what you have now

People can continue to use ElectrumSV 1.2.5 indefinitely and more or less have working seed-based wallet recovery. But as time passes and the rest of the ecosystem builds in the wide open frontiers of possibility that is post-Genesis Bitcoin SV, the only people that people still using ElectrumSV 1.2.5 will be able to transact with will be themselves and the other six die-hard fundamentalists using it.

Those six die-hard fundamentalists will have to run their own compatible electrumx servers. They’ll also have to put work in to upgrade those electrumx servers to work with larger blocks and transactions. And so on. It looks so easy when you just download the wallet and use it, and other people are doing this for you.. paying that cost.

Who pays the cost?

ElectrumSV is an open source project to develop a wallet for Bitcoin SV. It has always allowed people to do a lot of things that other wallets do not, simply because that is part of our goals. We keep the gate open to people who are late arrivals or have older funds they haven’t touched in a long time, use hardware wallets or even have the physical Bitcoin things.

We’re not the old kind of open source project. The socialist one that did everything anyone wanted just because if someone could contribute a change, there was an implication that it had to be included. We’re a realistic one that has to focus on staying relevant, and also focus on employing our limited resources on the things that we can actually do. And this will also mean that in order to reduce the burden, we will exclude supporting things that are simply not worth it.

To demand that we always provide support for seed-based wallet recovery as it has worked in the past, is to effectively state that you think we are slaves who have to toil away and that our time and effort has no value to you. We told you why seed-based recovery won’t work, why it appears to work now, why it will stop appearing to work. Both here, and in the previous article. We even showed how there could be a new kind of seed-based wallet recovery in due course, if someone put the work in.

We are not willing to pay the cost of only working on a wallet that lives in the Bitcoin Core safe space and does nothing beyond simple payments, so that a few people can keep seed-based wallet recovery.

We are not willing to pay the cost of working on two wallets, one for these few people, and the other for the rest of the people that want to explore the frontiers of Bitcoin SV.

We cannot afford to pay the cost at this time of developing the replacement seed-based wallet recovery system. We just have to do the best we can in the meantime.

Are you willing to pay the cost?

Summing up

Seed-based wallet recovery only appears to work if you never leave the Bitcoin Core safe space.

We all would like a magical way to safely restore our wallets if we have to, using something that is almost a magic spell. Just repeat these dozen or so words in this order, and abracadabra, something is made out of nothing. But magic does not exist, and demanding it be made to exist but not being willing to do the work, or pay the cost, is not constructive at best.

Tokenized is devoting development resources to building out their own framework for a user’s wallet publishing it’s data on-chain, and being able to use it to do seed-based wallet recovery. But I suspect it’s going to be a burden on their development going forward. If you think we can do it because they are doing it, remember they are a funded company with at least a $5 million dollar pot. And if you think their framework is compatible with other wallets, it is very likely what you are saying is that every other wallet must do only what Tokenized allows the way they do it themselves. It is possible that only Tokenized can realistically support their system, and that any other wallet may need to do their own custom one. Is this the case? Who knows.

Above and in the previous article I stated that we would ideally do something similar when we get the time, but it does not currently exist for Tokenized and it does not currently exist for ElectrumSV. In the meantime we all have to make our choices, do we stay in the Bitcoin Core safe space, or do we move forward and engage with the ecosystem — without working seed-based wallet restoration for newer payments. Those that this angers, please do not vent to me. But we can discuss it if you don’t make demands and swear.

ElectrumSV is an open source project. There is no hosted ElectrumSV service which it uses, when we add API support for services, it will be possible to point them at any service that supports that API. We take pull requests. But talk to us first because we want to make sure that when we incorporate changes, we can afford to maintain them.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade