As the title suggests, I developed an easy to use script that generates a BIP39 mnemonic. I implemented it for fun. I don't plan to use it for real money. The script:# contact: apogio@proton.me from secrets import token_hex from hashlib import sha256
# read bip39 wordlist from file and import in a list bip39_wordlist_file = open("bip39_wordlist.txt", "r") bip39_wordlist = bip39_wordlist_file.read().split('\n')
# entropy entropy = bin(int(token_hex(16), 16))[2:] while len(entropy) != 128: entropy = bin(int(token_hex(16), 16))[2:] print('---------') print('ENTROPY: ') print('---------') print(entropy)
# calculate SHA256 sha256_hex = sha256(bytes.fromhex(hex(int(entropy,2))[2:])).hexdigest() sha256_bin = bin(int(sha256_hex, 16))[2:]
# calculate checksum checksum = sha256_bin[0:4]
# final seed to be converted into BIP39 mnemonic final = entropy + checksum
num_of_words = 12 word_length = len(final) // num_of_words
# calculate mnemonic res = [] for idx in range(0, len(final), word_length): res.append(final[idx : idx + word_length])
mnemonic = [] for idx in range(0, num_of_words): binary_place = res[idx] decimal_place = int(binary_place,2) mnemonic.append(bip39_wordlist[decimal_place])
print('\n-------------') print('BIP39 PHRASE: ') print('-------------') for w in range(0, len(mnemonic)): print(str(w+1) + ': ' + mnemonic[w])
How to run:1. Create a file on your machine (example mnemonic_gen.py). 2. Copy - paste the code from above. 3. Create a file on your machine, called bip39_wordlist.txt and copy-paste the wordlist into the file. 4. Make sure to have both files in the same directory. 5. Just run python mnemonic_gen.pySample output:--------- ENTROPY: --------- 11101110101000001011111101111000111100001001001100010000100001110011110100010011010100011000011001100100011111100100010111011100
------------- BIP39 PHRASE: ------------- 1: upgrade 2: album 3: taste 4: thrive 5: country 6: drum 7: violin 8: health 9: major 10: catalog 11: multiply 12: ride
Extra notes:1. The script uses secrets module to generate entropy. It is essentially a CSPRNG and is the recommended approach to generate pseudo-random numbers in Python. Internally, it makes use of os.urandom as well. 2. For best security, use it offline, by just running the script on an airgapped device. 3. This is not a complete wallet. You must import the seed phrase on an offline wallet that you like, in order to convert the BIP39 phrase into a seed and produce the corresponding xpriv and xpub. 4. This method is only recommended if you don't trust the entropy source of your device and you want to use CSPRNG on an airgapped computer though python libraries. 5. It is similar to Ian Coleman's BIP39 implementation, in a sense that they both must be executed offline. The difference lies in the libraries that are used, as Ian's implementation uses javascript, whereas the script above uses python libraries.
|
|
|
Seed phrase: net foot tissue chronic taste task furnace remember alcohol youth siege indoor This is from Ian Coleman: 1001010010101011010111111000101100010100001111011110001110111100000101111001010 1101011010000011000011111111011110010000000111001 You posted this 1001010010101011010111111000101100010100001111011110001110111100000101111001010 1101011010000011000011111111011110010000000111001 They are both the same. How did you produce it in Ian Coleman's site? When I enter the entropy that you mention it produces a different seed phrase... Perhaps I am doing something wrong, that's why I ask. EDIT: I have been using the "12 word seed length" from the dropdown. If I enter the "use raw entropy (3 words per 32 bits)", it produces a valid seed phrase. Sorry for that, I thought it was the same, because I want a 12 word seed phrase...
|
|
|
Hello, I am not entirely sure if this is the right place to post it. I have noticed an issue (inconsistency), in BIP39 mnemonic generation, between Ian Coleman's website and LearnMeABitcoinI have tried to generate a mnemonic, by feeding these websites with my own entropy (in binary format). They produce different mnemonics. In Ian Coleman's website I made sure to select a 12 word length mnemonic. So, naturally, I wanted to try and find out what is wrong... I generated the following entropy: 10010100101010110101111110001011000101000011110111100011101111000001011110010101101011010000011000011111111011110010000000111001 This entropy provided the following mnemonics: Ian Coleman's website: steel tiny neither hospital waste off essence cruise leaf antenna dawn bracket LearnMeABitcoin: net foot tissue chronic taste task furnace remember alcohol youth siege indoor Unless I am missing something here, do you have any thoughts?
|
|
|
Great! However, if we know how the seed phrase generation worked back then, we could implement a solution to brute force the missing words. The problem is, I am not aware of the way the used to generate the seed phrases from the entropy. IF (and ONLY IF) it's a BIP39:The algorithm is: 1. ENT = generate random bits as the entropy (128 bits) 2. B = parse ENT in SHA256 3. CHECK = retrieve the first 4 bits from B 4. FINAL = ENT + CHECK (appended) 5. MNEMONIC = split FINAL into 12 segments of 11 bits each. Convert the 11 bit numbers into decimals. Go to BIP39 wordlist and find in the words in the corresponding decimal places. So if you wanted to bruteforce it, you could theoretically brute force the missing bits. Let's move backwards, shall we? So since you have some of the words, you have something like this: MNEMONIC = [WORD 1] [WORD 2] [XXXXX] [XXXXX] [XXXXX] [XXXXX] [WORD 7] [WORD 8] [WORD 9] [WORD 10] [WORD 11] [WORD 12] So, if you find the words in BIP39 word list and get their decimal numbers, then you can convert the decimals to binaries and you will have something like this: FINAL = [10011001110] [01011111101] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [00000000111] [00110010111] [00011000000] [00000000111] [00111100111] [11000010101] So, now you can split the FINAL variable into ENT + CHECK (4 bits). It should look like this: FINAL = ENT + CHECK FINAL = ENT + [0101] FINAL = [10011001110] [01011111101] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [XXXXXXXXXXX] [00000000111] [00110010111] [00011000000] [00000000111] [00111100111] [1100001] + [0101] So, now the difficult part... 1. You must generate random bits for all the places where you have an X and parse the whole ENT through SHA256. 2. Then you must take the first 4 bits of the result and check if they are [0101]. Be careful! You will get more than one sequence that starts with 0101. But you will have a much narrower space to search into. 3. Then for every binary sequence that produces the correct checksum, you must produce the mnemonic again and try it to see if it produces your wallet. If it's Electrum's seed, I will leave it to someone more knowledgeable than me.
|
|
|
That only goes as far back as to version 1.8 from 2015. Electrum's GitHub releases date back to 0.56 from 2012 ( https://github.com/spesmilo/electrum/tags?after=0.57a). I am not sure if it's possible to find versions of the software that are older than that. I think anything older than 3.3.4 can't connect to servers anyway. It seems to me that the seed phrase perhaps isn't a BIP39 but a prior version of electrum's seed phrase. I think Electrum started using versioning in seed phrases since version 2.0 [1]. So, if this is correct, then OP perhaps owns a seed phrase that was produced without the current versioning system, so OP must try and find the old code to make it work. Am I right? [1] https://electrum.readthedocs.io/en/latest/seedphrase.html
|
|
|
OP I saw your initial post. Are you sure the phrase uses the BIP39 standard? Can you also give us an update of the words you know (or perhaps the one you have found during these 2 years) ? Let me guide your answer a little bit: word 1 - known word 2 - knownwords 3, 4, 5, 6 - you only know one word for positions 3 - 6 but don't know it's position, so you basically have 3 missing words in these positions?words 7, 8 - you know the words but don't know the positions, so you don't have any missing words, but only ther order missing? words 9, 10 - you know the words but don't know the positions, so you don't have any missing words, but only ther order missing?word 11 - known word 12 - knownNow one of the goals is to identify the right version of Electrum that I used during that time in Jan 2012 but in all the years I've been at this, I've not seen one clear answer. Thank you for giving me confirmation on some things and helping me theory craft some plausible suppositions of what might have been and might be.
Here are the older versions that are available for download: https://download.electrum.org/Unfortunately 2012 seems too long ago...
|
|
|
The numbers you have mentioned are the ones that have been found on this puzzle set. Is there really a reason for this post? I mean, do you really suppose that anyone would find the next hex number and instead of grabbing the 6.6 BTC they would tell you the number because you promised to give them 8 BTC ?
|
|
|
I've tried everything and I think the problem is that it doesn't recognize the microSD, I'll try with a different SD and I'll update you. Thank you
I see that you don't mention what type of storage you use. What disk do you have? Is it an HDD or and SSD? Are you certain that the problem is with the SD and not with the disk?
|
|
|
I have seen posts by Greg Maxwell but never knew to which extent he was involved with cryptography. What I am reading about him now is impressive.
Greg Maxwell is undoubtebly one of the most knowleadgeable people on the field. I really enjoy reading his posts. I have learnt a lot from him. We are lucky to have him. Of course the list is not limited to him. If I had to choose one of his papers that I really liked (to the point at which I could understand it): Simple Schnorr Multi-Signatures with Applications to Bitcoin G. Maxwell, A. Poelstra, Y. Seurin, P. Wuille, IEEE Designs Codes and Cryptography, 2019.
|
|
|
This is what makes Monero stand still and strong even if largest Exchanges remove it. There are a lot of Decentralized opportunities to convert Monero into other Cryptocurrencies. There is even Atomic Swap possibility between Monero and Bitcoin. There will in consequence ALWAYS be an option and a Market for it. I honestly doubt it is going any where unless Europe or The United States ban it. Even then, underground it will continue to thrive in my opinion. You can ban Open Source legally. But you can not stop Monero nor can you find its users easily.
If Coins like XRP get in this same mud Monero is in, it would die quickly and painfully. Look at Monero however. Every body hates on it all of a sudden but it is still on the rise. Monero simply can not die for now.
I honestly agree with you. Monero will be there for us, for a long time (I could say forever, but anyway). Monero persists some amazing features and it is a brilliant cryptocurrency privacy-wise. But if we dream of such a cryptocurrency to become widely adopted and more and more people to start using it, then I seriously doubt about it. The problem lies in getting higher adoption. Μost people follow the dark path created by governments and the media. They will not be able to escape the lie they have been immersed in and I take for granted that they will follow the logic that monero exists only for criminals. Simply because the media and governments say so. Not to mention the unimaginably strong bond of the average person with the modern economic system (banks, loans, FIAT money, inflation, etc.).
|
|
|
Date: Thu, 11 Jun 2009 22:24:25 +0100 From: Satoshi Nakamoto < satoshin@gmx.com> Subject: Re: Bitcoin To: mmalmi@cc.hut.fiThe site layout is looking nicer. More impressive looking. There are a lot of things you can say on the sourceforge site that I can't say on my own site. Even so, I'm uncomfortable with explicitly saying "consider it an investment". That's a dangerous thing to say and you should delete that bullet point. It's OK if they come to that conclusion on their own, but we can't pitch it as that. A few details: the FAQ says "see section 2.3", but the sections aren't numbered. Also, could you delete the last sentence on the FAQ "They are planned to be hidden in v0.1.6, since they're just confusing and annoying and there's no reason for users to have to see them." -- that's not really something I meant to say publicly. The links to sites to help set up 8333 port forwarding is great. favicon is a nice touch. Someone came up with the word "cryptocurrency"... maybe it's a word we should use when describing Bitcoin, do you like it?Sourceforge is so slow right now I can't even get the login page to load. Maybe due to the site reorg they just did. I'll keep trying and try to get you that logo stats thing. Quote by Satoshi himself. The "Bitcoin is not a cryptocurrency" narrative is just produced by bitcoin laser-eyed maxis who have no idea what bitcoin is but they learn to repeat some expressions that they hear because they sound fancy. We are bitcoiners too, but we have to keep our eyes open and distinguish the truth from the lies.
|
|
|
17 - apogio
Good luck guys
|
|
|
I also want to congratulate each and everyone of you.
Congrats to the organizers and the participants.
I am particularly happy for the winners in the "Discovery of the year" category, where I took the 4th place. Now that I am seeing the names: Joker_josue, PowerGlove, paid2, it is only normal that I didn't surpass them! The guys are amazing.
Special thanks to icopress and GazetaBitcoin. You facilitate our lives in here.
Finally: Foxpup, I don't know what to say lol. Congrats!
Lastly: o_e_l_e_o you have won a place in our hearts, apart from the obvious awards. You see... We miss you!
|
|
|
I wonder if it simply means the highest individual ten days puts together. Not necessarily the the ten days in a row with the best return. In that case I guess you can get a negative percentage so far this year when you take out the ten best days spread throughout the past two months. But if that is the case its a pretty arbitrary and meaningless graph since there is plenty of appreciation outside of just the top ten days, even if the graph says its negative. Because the top ten days could overlap on the price chart, like days from early January when Bitcoin shot from low $40k's to high $49k, and then days from February when Bitcoin shot from low $40k's to $52k, covering much of the same ground.
Well yes in that case it sounds reasonable. I believe it's what you say. But I wonder, if you get spare days, not being consecutive, how can someone get an aggregated percentage? Just by adding them together? For example: Day 1: 32% Day 2: -12% Day 3: 10% So, adding Day 1, Day 2 and Day 3 the percentage is 30%, but if you take these days consecutively and calculate the increase in the period from Day 1 to Day 3, then the percentage is 27.76%. So, in general, I don't know how percentages work when you want to calculate cumulative percentages.
|
|
|
Good info. Let me ask something though. I see that in the first picture, in 2024, in the section about the "return in the rest 255 days", it gives a negative percentage. Isn't it strange, since in 2024 Bitcoin has only gone up?
|
|
|
So, I'll talk later on about ways to make predictions on cryptocurrency rise. Apply the rules and make accurate predictions.
Most of the time in this forum, this is not necessary. But of course you are free to participate in such conversations here: https://bitcointalk.org/index.php?board=224.0Since all the ways to predict future value of an asset are speculative by nature, please make sure to post in the board I have sent above. Finally, predicting future prices won't give you any additional reputation. To be respected in the forum, you need to help people and construct good answers.
|
|
|
Look, you've done a misconceptions too.
Cryptocurrency ≠ Bitcoin
In fact, according to Satoshi himself, the word cryptocurrency was good. You can see this email from Satoshi to Marti Malmi (Sirius) for further info. I haven't read all the conversation, so I apologize if they concluded that the word wasn't appropriate, but according to the email above, Satoshi said: Someone came up with the word "cryptocurrency"... maybe it's a word we should use when describing Bitcoin, do you like it?
|
|
|
Friends, I have great news for you! In the very near future we will launch regular weekly raffles, by participating in which you can try your luck to win a custom Cryptosteel! Astonishing news icopress. You always take good care of your people. Thanks
|
|
|
Yes having seen the answer by BHC I believe that perhaps he is right. Adam Back couldn't have been Satoshi. Btw this conversation between all of us proves that we just speculate. I thought that Adam Back was Satoshi, but apparently he couldn't have been and I just changed my mind in a few minutes after reading the posts above. Nick Szabo is a good candidate indeed! In wayback machine again, 2006, why is there a link to a "Bitcoin" post from the future? How can such a thing have happened? It exists in I think it works the other way around. I mean if you look at the article that was written in 2010 (it's in Russian), it references BitGold, so I believe "Links to this post" links to articles that refer to BitGold.
|
|
|
I don't really care, like many others, who Satoshi is. The reddit post provides a funny speculation, which seems reasonable and of course you did well to create a topic just for fun. But god, we have tooooo many topics like this. Anyway!
Let's speculate once more (because we secretly like speculating):
If Nick Szabo is the whitepaper guy, how can we explain the brittish spelling? The brittish spelling is also curious, because if you observe the emails, Satoshi uses a ton of American English words, like "newbies" etc.
So, my speculation would be that Adam Back wrote the whitepaper and Nick Szabo wrote the code. And then, Nick Szabo was answering the emails etc.
|
|
|
|