Comment by embedding-shape

18 days ago

> Hardware wallets are not a solution to self-custody.

Nothing in this world tends to be "the solution", everything has tradeoffs.

Say you want to do self-custody, what is then the best option? "Don't do self-custody" obviously isn't the solution, as the core use case here is self-custody, so what in your opinion is a better way, than hardware wallets?

If there is nothing better today than hardware wallets, then for now, they are "one of the better solutions" for how to do self-custody, even with the current tradeoffs. But again, I'm eager to hear what the alternatives are.

There is no solution yet.

From a bird's-eye perspective, 3 things are needed: Create a key, derive an address from the key, store the key.

Creating a key safely is possible with dice. You would probably create a seed phrase instead of a key directly, but for this discussion it is the same.

Deriving an address from the key is hard and I have not yet seen a good protocol on how to do it. I have read through a bunch of descriptions of how people do it and they are all weak and brittle. The most popular seems to be "I order a hardware wallet and follow the instructions that come with it". But even people who put a lot of thought into it come up with weak and brittle approaches. I would think there is a way to do it safely. But I have never seen a description of one yet. It might involve multiple computers, multiple software implementations and a hell of a lot of work to create a multisig that is not prone to a single attack vector.

Storing the key is probably the hardest. The most popular way seems to be to store it in a drawer or a safe. So now those coins are just as safe as a piece of gold would be. Or they use a multisig and store the keys in multiple locations. Quite painful. As you have the ongoing problem of keeping those locations accessible and safe at the same time.

  • > There is no solution yet.

    Again, "best solution we have available" for self-custody is hardware wallets, so we're back to square one.

    Imagine if I tried to discuss and argue about things like this on a TypeScript submission? "No, this won't actually solve the problems of TS" I say, "What is the solution then?" someone asks me and I reply "There is no real solutions to those problems, just use Clojure, problems avoided!", completely missing the point.

  • How is multisig "quite painful" in your opinion?

    • Say you've done everything right and used 3 coldcards spread across 3 geographic locations using 2of3 multisig.

      You're feeling pretty proud of yourself, your coins are super safe.

      Then it turns out the RNG in the coldcard mk2 was badly/maliciously implemented and is completely insecure. You need to move your coins right now.

      You can probably see the issue

      2 replies →

> Say you want to do self-custody, what is then the best option?

A $5 USB stick with Tails on it. You can make as many clones as you want, so no need for a recovery phrase. It's not specialized hardware, so there's no incentive for anyone to look for money on it (plus it's encrypted). If you want to be extra tinfoil hat, make sure you only plug it into an air-gapped machine and copy any output (address, transaction hex etc.) onto another USB.

  • thats what I did. But that simply is just too complicated for the average consumer.

    The reality is that normal people need to have a simpler solution they can trust. For nerds like us booting up tails and creating cold storage paper wallets is fine but definitely a solution for the general public