[...]
..... Another thing to note is that the attacker does not have an immediate indication that the correct passphrase was found, because ALL possible passphrases (even "wrong" ones) result in valid (albeit empty) wallets. So, the attacker will need to check the blockchain against ALL passphrase candidates, and reject those that result in empty wallets.
I don't really disagree with what you are saying here overall AlcoHoDL - however, there is a bit of a difference between entering a passphrase that leads to a previously used location versus one that leads to a bunch of empty wallets (that thereby presumptively would have to be created since the route had not previously been attempted).
In other words, if you enter in passphrase that leads to empty wallets, Trezor will provide a message:
"This hidden wallet is empty. To make sure you are in the correct hidden wallet, please type the passphrase again."
And it thereby allows you to enter the passphrase again to confirm or to just exit out.
There is another box that you can check that says: "I understand passphrases cannot be retrieved."
On the other hand, if you enter a valid passphrase that has value contained therein, it will not give any message or prompt, but just open up to the wallet and the balances of the various accounts therein will be shown.
Jay, you are essentially saying
exactly the same thing I'm saying, just in different words. When you type in a random passphrase and Trezor tells you that "This hidden wallet is empty", what Trezor does is go online and check that wallet against the blockchain. There is no other way for Trezor to know whether the wallet is empty or not. You can test this by connecting your Trezor to an offline computer (after cleaning browser cache). You'll see that there is no way for Trezor to differentiate between your "correct" passphrase and any other random passphrase. Also, there is absolutely no difference between "a passphrase that leads to a previously used location versus one that leads to a bunch of empty wallets (that thereby presumptively would have to be created since the route had not previously been attempted)". This is because every possible wallet that can result from every possible passphrase that you can type, already exists! There is no "creation process" because every possible wallet already exists! The passphrase you type is the last piece of the map that leads to that specific wallet, which is already waiting for you to access. Of course, the only passphrase that will lead to a non-empty wallet is your own "correct" passphrase. I'm putting "correct" in quotes, because there is no "right" or "wrong" passphrase, all are equivalent and all lead to existing wallets. So, there is absolutely no difference between your "correct" passphrase and any random passphrase, other than the fact that they lead to different wallets, with only the "correct" one containing your precious BTC.
For Trezor to be able to know which wallet is empty and which is not, it has to go online to check the blockchain, and this takes some time. It may be a few milliseconds, so near-instant for us, but this delay can be significant for a hacker who needs to test quadrillions of different combinations when brure-forcing your passphrase, even if it is done on a local copy of the blockchain.
Just to add to this, the probability of arriving at a
non-empty wallet, other than the one corresponding to your "correct" passphrase is, for all practical purposes
zero. This is like trying to crack Satoshi Nakamoto's private keys. It has been tried before by many, and has obviously failed. Math & science.
Anyway, I think I've over-described the above, maybe... When Andreas Antonopoulos realized and understood the above process, he was so impressed by its elegance that he nearly stopped eating and sleeping, and devoted his entire time reading more about Bitcoin and the blockchain. I think he said he lost 20+ pounds of weight in a short amount of time during that period.
[...]
It's a trade-off, with potentially dire consequences at either extreme. I choose the middle ground, i.e., a PIN and passphrase that are complex enough to deter even a seasoned thief/hacker, but memorable enough to reside in the neurons of my brain -- that last part could potentially be dangerous in case of amnesia or head injury.
Don't forget the dangers of hypnotism.. or gosh are there truth syrums that someone could put into your drink. and maybe you really don't want to know certain things without having to consult with some kind of way to put some pieces together.. but if you enter your pin or passphrase (or even your 12/24 words) enough, it might get committed to your short term and even long term memory.. is that a good thing or not?.. I do know that the longer I take to access some of my information, it can sometimes seem very complicated, even though I had previously thought (a couple years earlier) that I had created a pretty straight forward system.. but then does it really work..
By the way, I have a little bit of a story, and I am not sure how much I should tell, but I had a situation in which I needed the seed phrase that was supposed to be in three parts and I was missing one of the parts (for reasons), and so I knew that I had two back ups of the three parts, and so I called up a life-long friend, and he surely is not very technical and even though talked with him about bitcoin several times, his eyes glaze over while he is looking at how complicated his flip phone is or that he is trying to get his remote on his TV to work.. (he doesn't have internet).. but anyhow.. I called him up, and I asked him if he could go to the location in which one of the pieces was located, and I would give him the code to get in, and then I would give him instructions about how to get to it while we were on the phone live, and he said o..k.. and he would call me when he was at the location. It took about 5-10 minutes just to get to locating the place where the words were, and I told him that it would probably be 8 words, and he told me that it is only 4 words.. and then I remembered that it was a 12 word split up instead of a 24 word split.. and so when he read me the 4 words, he mentioned that one of the words was "xxcxxxxx", and I said that does not even sound like a real word, and he read it several times and told me that is what it says. I said o.k... so I wrote down the 4 words, and I told him that I would let him know if I had any problems in terms of getting access to the wallet that I was wanting to get, but I would have to do it in a few hours.
So when I put together all 12 words, and I typed in the "xxcxxxx" by the time I got to the second letter, there was already a suggestion that had the word to be "xxrxxxx".. so my friend could have had sworn that the word the one with the "c" and neither of us even thought about the word with the "r".. so sometimes simple mistakes can be figured out, but some kinds of more complicated mistakes might be a lot more difficult to resolve.
Oh.. and by the way,. the whole time my friend was telling me that he was not even going to try to remember anything that I was telling him.. a kind of courtesy message to say that he was recognizing and appreciating that I was sharing private financial information with him.. but part of the reason that I picked him to do it was that I already considered him to be someone who I could trust with that information and even more information than he might be comfortable knowing about.
Never thought of hypnotism... Never took it seriously if I'm totally honest... But maybe this is a valid concern. I guess this danger cannot be avoided, since, by definition, everything is in our brains, even the locations of the backups. It can be stressful and dangerous being your own bank... I guess maintaining OPSEC is the best approach for this.
Nice story. I've left keys (to locks) with friends and relatives for security purposes, but never my wallet seeds or passphrases/PINs. Maybe I should. We're getting older and accidents happen. I think a mega-pump to $200,000+/BTC will surely prompt me to change some things security-wise, perhaps splitting some wallets and arranging for a way for loved ones to access them in case something bad happens.
Edit: Fixed typo.