I have seen multiple people talk about rolling dice but adding the caveat that you can mess those up too. My question is how?
Lets assume:
You actually rolled a dice or dice at least 100 times
You verified the seed phrase that you created on multiple devices
How is that setup insecure?
I see quite a number of people looking into this at the moment. I checked for a match using a coin flip within Blue Wallet & the bip39 site at iancoleman.io. They matched up with the exact 12 word seed which is good to know.
I still think that even though it's a good practice to go through rolling dice or flipping coins, we still need to be able to trust the software generated wallets or Bitcoin just isn't going to work.
do the effort to verify
How would you verify a software wallet? Input the seed phrase into iancoleman.io and see what analysis it spits out?
Of course you would never use that particular seed, but after testing numerous times you might come to trust that the seed you generate is safe.
I do not recommend inputting anything ever into a website, but yeah, you can compare outputs from completely different software as a test.
Testing (with your own test cases, not some CI fixture suite you run) is verifying. Trusting is not testing. Like: you say you tested it then I don't do it because I trust you. Of course, you'll always have < 100% certainty because you'll have assumptions. But it would be good to minimize these, and track those that you cannot get rid of.
This might be off topic but we kinda need 12 word software wallets to just work if we want to grow the community.
It was a critical error and we're all shaken and emotional at the moment. But let's not forget that under a year ago someone moved 80k Bitcoin that was sitting in legacy wallets for 15 years.
I think that we miss the process maturity. The only processes we have is BIPs and some bespoke ones inside software repositories. Some institutionalized processes too, like the fuzzing efforts and maybe signet, that helped catching bugs early or ensuring functional improvement.
Let's not forget that BIP-39 was for a decade flagged as recommended against, but this has been removed (commit) a few weeks ago.
Like I said elsewhere, I think the best way to look at what is happening right now is that debt is being discovered. This is long-term good because don't want it simmering. Some debt will be defaulted on in the form of funds loss, this is bad, very bad. That per calle there are critical vulns found every hour now in their little kimi rush, means that hidden debt is a lot more common than anyone cared to imagine and/or admit.
I do think that we need good software solutions. But you cannot prove that something is without errors. You cannot guarantee it. You at most can rigorously test it and insure against any liability. But most of this is MIT licensed software where literally in the 2nd paragraph all liabilities are waved. So there is no incentive for any software developer to invest a couple of million into some scheme if you can just publish with a waiver.
I don't see it happening. Not now. And the tradeoffs I foresee in it potentially happening (imagine: certification mafia) are not something I'd expect anyone with a mg/L of cypherpunk in their blood to be really open to.
80k Bitcoin. Did I miss something?
https://decrypt.co/331939/one-biggest-bitcoin-whales-history-cashed-out-9-billion
Wow
Just a few pizzas, no sweat.
This guide is good: https://armantheparman.com/dicev2/ and you can use offline Tails to check the math
Just because the device shows you a valid seed after you input 100 dice rolls, doesn't guarantee the device actually used those rolls to generate the seed.
Shouldn't it be more desirable to come up with your own way (dice of various sides, coin flips, other) to pick one number in 2048. Just grab your own 11 or 23 numbers from the BIP-39 word list. You still need to calculate the 12th or 24th word which is a check sum. But it seems doing that (coming up with the 8 possible remaining words from the list of 2048 which can be used as the checksum word) may require less trust than making sure your dice rolls are actually used to generate the seed (as you point out). Then you can enter your 12 or 24 words into two different vendors hardware wallets (using the same derivation path) and confirm the first generated address is the same on both. Now you are confident your 12 or 24 words were in fact randomly generated, and the addresses being generated correspond to them as you expect they should.
Also a good option... 👍
Yes, exactly. Dice and a paper wordlist gives you a device independent seed. Or coinflips, or even just cutting up the wordlist and pulling words out of a hat.
isnt that mitigated by inputing the dice rolls into multiple offline places and getting the exact same seeds with the exact same receive addresses?
This is a solution to that problem... I don't understand why ppl still use Coldcard or other "wallets" to do the basic stuff...
You still need to input the words into a device/software.
Agree, but you are only calculating one word, and the device is offline. Generally, you randomly choose words, not the device...
And obviously the devices you verify the seed phrase on are offline
Assuming your setup is a HWW with an offline PC used for verification that the seed was generated correctly, I would add that:
__@_'-'
Because of an entropy vulnerability in these wallets that the attacker knew about, he can bypass all the security and steal your funds... In the end, you did the right thing 👍, it's Coldcard's fault for not discovering that vulnerability, and in the end, we users pay the price!
Real answer: rolling isn't the weak link, everything AFTER the roll is. Four ways 100 real rolls still end up compromised: 1) die bias — cheap dice aren't uniform, so your rolls lean toward certain faces, quietly cutting entropy below 256 bits. 2) miscounting rolls-to-bits during the base6-to-binary conversion. 3) off-by-one on the BIP39 wordlist index — silently gives you a DIFFERENT valid seed, no error thrown. 4) piping the conversion through some random tool instead of doing the math by hand. The dice were fine. The pipeline wasn't.