Hey everyone! Hope you're all good. There’s been some buzz in the collectibles area about our keys and their creation methods lately.
I posted this in that thread, but figured I'd share it here since the original script is linked here.
So today, I'm gonna walk you through generating secure 30 and 22 character Bitcoin minikeys in base57 and base32 formats.
I got this AI response regarding the security of a base32 minikey:
I've fiddled with different key generation stuff and found this script on here ages ago. It used a random function that wasn’t crypto-secure at all.
I revamped this script to implement the crypto-safe random.SystemRandom() found in Python's standard library, and I've whipped up three new versions.
One for base57 keys, another for base32, and the last one specifically for 22 character base32 minikeys.
Base57 characters: 23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Base32 characters: 23456789ABCDEFGHJKLMNPQRSTUVWXYZ
What do you need?
SKILL! This isn’t a set-it-and-forget-it system; it takes concentration and precision. An air-gapped system using macOS or a Linux distro. A copy of bitaddress.org's source code. Plus, these three Python scripts.
Check out the results generated in base57 and base32.
**UPDATE: Just added a script for 22 character base32 minikeys below.**
Multiple AI sources have confirmed that even a 22 character base32 minikey can't be cracked anytime soon.
Wouldn't this method reduce entropy?
If I'm not mistaken a character of a minikey contains 5 bits.
Which is 110bits lesser than the standard 256 bit of security.
There's a reason minikeys normal standard of 30 character wasn't widely adopted.
If I want shorter keys , i can just settle with BIP39 seedphrase.
I thought bitaddress.org was outdated? and many use python ecdsa library.
On using AI for Feedback, the first time I used an AI
It told me Batman would defeat Superman so I lost interest.
I only skimmed your thread, but why did you create Base57 format when Base58 already exist? What are the benefits (for collectible, physical coin and similar goods) you haven't mentioned yet?
Hey thanks for the interest It does reduce entropy, I had exact quotes from gpt and grok but don't recall off the top of my head. They still said no way to easily crack a 22 character key, but hey lets test it out if anyone wants to!
Agreed! It's a HOW-TO not a YOU SHOULD for sure heheh The main reason I wrote this how-to is to provide a working AND secure way if anyone wants to create their own minikeys, as previously mentioned the original was using a non crypto-safe function. We also had a creator use a compromised version of walletexplorer recently and some funding was swiped as a result.
I would disagree that bitaddress.org is outdated, it works exactly as designed and is an invaluable tool to have in your arsenal just in case.
Hey if batman can't get any kryptonite, who can? Thanks again buddy
Hey buddy thanks for the interest:) The base57 eliminates the "1" from base58. It's just another layer of protection to ensure you can easily identify the characters in the private key when it's time to do so.
Do you remember source or reason why each character of minikey have 5 bits or minikey as whole only have 110 bits? From naive calculation, the possible combination is quite higher than 2^110.
I thought Base58 supposed to solve the problem of similar character identification[1]. But i guess that's not the case.
[1] https://learnmeabitcoin.com/technical/keys/base58/
The 110 bits came from his characters been 22 and 5bits per character would yield 110Bits.
I guess I over simplified it
I thought minkeys used used same base as native Segwit base32.
Hence my 5 bits per character
So in summary the normal entropy his idea is implementing would be
Still lower than a standard minikey.
Hey it's hard to tell sarcasm in text so I will just say that yes, most here will probably know based on base58 it's a 1 in their key, however, if you're considering the scenario of keys for your kids or others who don't know anything about bitcoin, you don't want them to have any issues when the time comes, so eliminating that (is it a 1 an I an l ??) just seems logical to me. Also the font used is important, but not so much when you reduce the base. Thanks again buddy