0

We have a situation now where the vast majority of software I have installed on my computer (Windows 10, since there are no other supported versions of Windows) are either aging one-man freeware applications which haven't changed almost at all for the last 20 years, or open source projects of typically similar stagnation. I can sense the frustration from both of these groups, many of which have entirely abandoned/dropped their projects. Countless are in a seemingly perpetual state of very slowly dying, and all too many are what can best be described as "undead".

As these probably honest idealists watch the years go by with essentially no donations coming in, nobody buying their commercial licenses/support, and big companies just stealing their work without giving any credit and with no regard to the license, then make tons of money from it, and especially now with the Bitcoin price ever increasing to crazy new heights, I can very much imagine that even the most good-hearted but struggling, disillusioned freeware/FOSS developer at the very least has the recurring thought:

Ah! Screw this! Eight million unassigned/unresolved bugs, zero donations for the last 15 years, not one license purchased by any company ever, nothing but demands and rude users... and XYZ has just used my software to make a fortune... I've had it! I'm going to push a piece of malware in the next update so that all those people will get all their wallet.dat files uploaded to me, of course using proxies! Hah! I estimate that at least a few of them will own Bitcoin and have Bitcoin Core running. And those who don't won't ever notice anything anyway! Bwahahahaha! Within a few weeks, I'll be relaxing on my own tropical island, drinking colorful drinks at the beach! No more slaving away at this keyboard for nothing! You'll see! Just you wait... rubs hands with a twisted facial expression

You may say that they have a reputation to uphold and people who do this tend to be very honest and would never seriously get tempted to steal. Sure. But it's still very possible. The more the price goes up, the more scared I become to just see "0.00" balance in Bitcoin Core the next time I look at it. Let's face it: there is zero security in practice. I'm trusting complete strangers every second my PC is powered on to not steal from me. There is no possible reasonable way for me or anyone else to possibly somehow "go through" others' programs, if they even provide source at all, and then locally compile everything. It just isn't reality, even for the most hardcore geeks.

They could even have planted the malware long ago, but are actively waiting until the day Bitcoin is worth over X amount to go through with this. Perhaps they already have detected how many of their users have Bitcoin wallets on their machines, and how much they contain. They can precisely calculate the risk in advance and decide that it's finally worth it to go through with it. And if ever confronted, they can just give the same excuse that all these companies always do when they leak customer data: it was "a bug/technical glitch/we got hacked/we take your privacy very seriously blablabla..." It's not like the "gone evil" developer who does this is going to be standing with a black cape, twirling his moustache while mocking his victim with clever one-liners. He would just be gone, just like our coins. They would deny any involvement, even if it's known exactly who runs the software project or is primarily responsible. (Which is not always the case.)

Even Microsoft themselves (or told by the government) could decide to just have me pay a little "Bitcoin tax" with their next Windows update. And then claim that it was a bug, or that I'm lying. Have you ever tried to get in touch with anyone at Microsoft who isn't a robot, and who actually understands a single word of English? It's impossible, even for a developer. Nobody would ever hear me complain, and even less would believe me.

Here's the problems I have with all predicted solutions:

  • "Use a dedicated computer (maybe Raspberry Pi) running Linux just for Bitcoin Core stuff." -- Very impractical. I don't have the physical space, plus it would be a horrible pain to actually make any transactions/use it. They also make it impossible in practice to encrypt Linux running on a RPI. (Long story...)
  • "Use a hardware wallet." -- Costs money to buy, difficult to get home, are not as secure as one would think, also very impractical (though less so), and most of all: it is basically hard proof to the authorities (and burglars) that you own Bitcoin. Plus the recent leak of home addresses and other personal data of tons of customers of Ledger makes it impossible for me to ever trust that company...
  • "Print them onto paper and keep the papers in a fireproof safe." -- Again a massive problem with authorities, and once seized, there is zero security since the private keys are right there on the paper. Or if the fireproof safe isn't as fireproof as expected...
  • "Let a third party store your coins for you! Trust the cloud! Web 3.0! Just log in with your Google account!" -- This one doesn't even deserve a comment...
  • "Use anti-virus and keep your software and OS patched blabla..." -- The issue is not trusting those... both in the sense that they might be malicious themselves, or through incompetence allow others to break in to my system via their broken software.
  • "Use an app in your phone." -- Please... don't...
  • "Use Quebes OS." -- Well, I tried, but it doesn't even install on my hardware. My experience with that OS is that it's very frustrating to use, when it does run. Perfect in theory, though. I wish something like that "really" existed, and ran on secure hardware.
  • "Just be careful." -- This is nonsensical advice. There is no possible way to know or prevent if any given EXE is going to do something bad when it's running unhindered on my host OS. "Being careful" means nothing if, at the end of the day, you are still required to execute a program on your machine which is not completely sandboxed. And sandboxing is apparently the most difficult problem ever to exist, since nobody ever manages to do it properly...
  • "Use a VM!" -- Well, I do, for some things which I really don't trust on my main OS. However, this is extremely cumbersome and tiresome, and I can't run everything in a VM. I simply have to trust several entities on my host OS which may at any moment decide to "go rogue". Unless there is something which I haven't heard of which solves everything neatly and perfectly...

What to do? If I feel this scared at $40k USD Bitcoin, what kind of nervous wreck will I be when it reaches $1,000,000 per Bitcoin?

I just don't see any solution. I've through extremely long and hard about this and tried so many things, both in reality and inside my head, and none of them work out. I know they are either not secure or so cumbersome that life becomes a massive chore. There's also the problem of having very little physical space and basically only one computer.

1

Unfortunately, good security isn't always easy.

In this case, your worry is not unjustified, and it is why most security-conscious users will recommend never having privkeys touch an online device. This is, at minimum, required to mitigate against the sort of software-based attacks you've outline above. IF you have an online computer that holds privkeys and is receiving software updates, then you are indeed at increased risk of theft.

The usual ways to deal with this include:

  • Running a wallet on an offline computer (eg a raspberry pi with electrum is a very low-cost and space-efficient way to accomplish this)
  • Using a hardware wallet produced by a well-known and trusted manufacturer
  • Using multi-signature wallets, so that an attacker would have to compromise multiple devices / wallets before they could steal funds

Your objections seem to be about poor user experience of these methods, which is fair. There is a lot of nuance to each of these methods, and they are indeed more cumbersome than just loading up some wallet onto your insecure device, but security is always going to be a game of trade-offs, with no 'one-size-fits-all' sort of solution available. It probably isn't a great idea to secure $20 worth of bitcoin with a $100 hardware wallet, but it probably is a great idea to secure $20,000 worth of bitcoin with a $100 raspberry pi setup (even accounting for the day or two of time you might spend setting the pi up and learning how to run it).

Also worth mentioning: you can compartmentalize your security. Consider the option of setting up a 'cold storage' method that is cumbersome but very secure, and use it for long-term storage of coins you don't plan on spending anytime soon. At the same time, keep a small amount of coins in a less-secure wallet, such that if a malicious software update leads to theft, you haven't lost much. This is analogous to keeping most of your cash in a secure bank, while carrying maybe a couple hundred dollars in your wallet. You certainly wouldn't want to carry your life savings around in your pocket every day, after all!

Of course I do hope that solutions with increasingly better UX will exist in the future, but in any case, you can't have your cake and eat it too. Security takes work, you need to decide how much work you find worth it to undertake.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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