Falls es hier Leute gibt, die ein bisschen Ahnung von Python haben und mir helfen wollen: Das hier hat mir ChatGPT nach ein bisschen herumprobieren gebaut.
Es gibt keine Fehlermeldung und er läuft das Skript auch durch, aber es funktioniert nicht. Er sagt immer „Das fehlende Wort konnte nicht gefunden werden.“ Ich habe zum Test einen neuen Seed generiert und mir eine neue Walletadresse anzeigen lassen, weswegen ich weiß, dass er das Wort hätte finden müssen.
Was ich wollte, was das Skript macht: Es versucht jedes Wort der BIP39 Wordlist als zweites Wort im Seedphrase und schaut dann, ob unter einer der ersten 5 generierten Walletadressen die Wallet mit der Endung ***4gc5l dabei ist. Wie gesagt: Er findet sie nicht.
Was habe ich nicht beachtet?
Keine Sorge: Der Seed und die Walletadresse sind valide. Dieser ist aber nicht mein ‚persönlicher‘ Seed.
import hashlib
import hmac
from mnemonic import Mnemonic
from bitcoinlib.keys import HDKey
known_words = ['abandon', 'solve', 'exit', 'weather', 'flower', 'hero', 'mind', 'put', 'myth', 'kite', 'rescue', 'assist', 'mouse', 'someone', 'bachelor', 'man', 'merge', 'trip', 'admit', 'inside', 'stadium', 'drip', 'mean'] # Liste der bekannten Wörter
missing_word_position = 2 # Position des fehlenden Wortes in der Seed-Phrase
# Laden der BIP-39-Wordlist
with open('bip39_wordlist.txt', 'r') as f:
bip39_wordlist = [line.strip() for line in f]
def check_address(address):
expected_addresses = ['bc1qqgfqj23gsrv8wthv2lwe5c8ptjze6peyk4gc5l'] # Liste der erwarteten Adressen
if address in expected_addresses:
return True
else:
return False
def generate_addresses(seed):
# Hier implementieren Sie die Logik zur Generierung der Bitcoin-Adressen im aezeed-Format
# Verwenden Sie die lnd-Dokumentation und die Unterstützung der lnd-Community, um die korrekte Logik zu finden
# Beispielcode zum Generieren von Bitcoin-Adressen mit bitcoinlib:
addresses = []
for address_index in range(5):
address_extended_key = hmac.new(seed, bytes([address_index]), hashlib.sha256).digest()
# Ableitung des HD-Schlüssels aus dem Extended Key
hd_key = HDKey.from_seed(address_extended_key)
# Generierung der Bitcoin-Adresse aus dem HD-Schlüssel
address = hd_key.address()
addresses.append(address)
return addresses
def find_missing_word():
for missing_word in bip39_wordlist:
seed_phrase = known_words[:missing_word_position] + [missing_word] + known_words[missing_word_position:]
m = Mnemonic("english")
seed = m.to_seed(" ".join(seed_phrase))
addresses = generate_addresses(seed)
for address in addresses:
if check_address(address):
return " ".join(seed_phrase)
return None
# Aufrufen der Funktion zum Finden des fehlenden Wortes
missing_word = find_missing_word()
if missing_word is not None:
print("Das fehlende Wort wurde gefunden:", missing_word)
else:
print("Das fehlende Wort konnte nicht gefunden werden.")
Ich muss wahrscheinlich warten, bis irgendwann ein Tool für meinen Fall verfügbar ist.