Title: bip39 domande sceme Post by: babo on December 26, 2022, 11:09:03 AM - si puo creare un seed con una sola parola? esempio (sobrio sobrio sobrio sobrio... x12)
- creare un seed con le parole inglesi numero:2, 5, 7, 10, 12... eqiuvale a creare un seed con le medesime parole del dizionario.. italiano? sono dubbi che mi porto dietro da una vita, oggi sn al pronto soccorso e mi annoio, quindi studio Title: Re: bip39 domande sceme Post by: arulbero on December 26, 2022, 02:22:02 PM sono dubbi che mi porto dietro da una vita, oggi sn al pronto soccorso e mi annoio, quindi studio Spero non sia nulla di grave. - si puo creare un seed con una sola parola? esempio (sobrio sobrio sobrio sobrio... x12) - creare un seed con le parole inglesi numero:2, 5, 7, 10, 12... eqiuvale a creare un seed con le medesime parole del dizionario.. italiano? Le tue domande non sono stupide, dopo un breve ripasso https://learnmeabitcoin.com/technical/mnemonic le risposte sono: 1) sì (quasi, a parte l'ultima**) 2) no ho provato a inserire a mano una entropia banale qui: https://bip32jp.github.io/english/ Code: entropy : 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 comparando con altre lingue si ottengono risultati diversi: (stessa entropia, stessa sequenza numerica delle parole, ma diversi dizionari e quindi diverso seed finale): https://iancoleman.io/bip39/#italian https://iancoleman.io/bip39/#english https://iancoleman.io/bip39/#spanish Code: italiano: Quindi direi proprio che la funzione PBKDF2 fa l'hash della mnemonica intesa come stringa di parole, non fa direttamente l'hash delle 'posizioni' (cioè dell'entropia iniziale). I risultati, partendo dalla stessa entropia ma utilizzando diversi dizionari, sono pertanto diversi.* *EDIT 1: nell'esempio che ho fatto, questi sono i primi 3 indirizzi btc rispettivamente derivati (bip 44) dai 3 seed per le 3 lingue: italiano: 1Ad4nEriiHEHUDseZ2yVfUGS7fBZb1xkF5 -> https://www.blockchain.com/explorer/addresses/btc/1Ad4nEriiHEHUDseZ2yVfUGS7fBZb1xkF5 inglese : 1KBdbBJRVYffWHWWZ1moECfdVBSEnDpLHi -> https://www.blockchain.com/explorer/addresses/btc/1KBdbBJRVYffWHWWZ1moECfdVBSEnDpLHi spagnolo: 1EisMpzAj64HgFErbCoetANcZj4pQWoDxo -> https://www.blockchain.com/explorer/addresses/btc/1EisMpzAj64HgFErbCoetANcZj4pQWoDxo come si può vedere dai link, solo nel caso dell'indirizzo 'inglese' è presente un'attività passata, non è così invece per quello 'italiano' e per quello 'spagnolo'. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- **l'ultima parola dipende da un checksum aggiunto alla fine (sha256 dei bit dell'entropia, perciò l'ultima parola non è uguale alle altre e non puoi sceglierla nemmeno a caso; nell'esempio di sopra "angelo / art / ancla" corrispondono tutte e 3 alla posizione 103 dei rispettivi dizionari). https://github.com/bitcoin/bips/blob/master/bip-0039/italian.txt https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt https://github.com/bitcoin/bips/blob/master/bip-0039/spanish.txt **EDIT 2: visto che si ritagliano 11 bit dall'entropia iniziale per ogni parola, mentre per l'ultima parola si utilizzano solo 3 bit di entropia + 8 bit di cheksum, ogni volta che si prova a costruire una entropia 'artificiale' di soli 11 bit (tipo 00011100010 x 23 + 000) per costruire una sequenza di 24 termini utilizzando un'unica parola, c'è esattamente 1 sola possibilità su 256 (2^8) che anche l'ultima parola sia uguale alle precedenti; quindi è probabile che esistano alcune parole nella lista di 2048 parole che consentono di generare una sequenza costituita solo da quella parola (ultima parola compresa). ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Title: Re: bip39 domande sceme Post by: babo on December 26, 2022, 02:25:00 PM Grazie mi hai tolto un dubbio grande
Nulla di grave, mi sn chiuso un dito in auto ed è gonfio e fa male Unghia nera Vediamo se si è rotto Title: Re: bip39 domande sceme Post by: arulbero on December 27, 2022, 04:40:15 PM Incuriosito dai dubbi di babo, ho approfondito il punto accennato nell'EDIT 2,
sempre in risposta alla domanda "è possibile usare un seed utilizzando una sola parola?" Ho cercato quali erano le parole (o meglio: le posizioni) che permettevano di costruire una frase mnemonica costituita da un'unica parola che si ripete 24 volte. Ho costruito quindi un programmino python (con l'aiuto di ChatGPT) che per ognuna della 2048 parole possibili calcola il checksum (sha256 della sequenza: parola x 23) e controlla così se anche l'ultima parola viene a coincidere (per puro caso) proprio con la parola scelta all'inizio: Code: import hashlib Ho così verificato, in linea con la teoria, dopo aver effettuato tutti i 2048 tentativi possibili (ognuno con probabilità 1/256 di determinare gli ultimi 8 bit in modo tale da ottenere come ultima parola esattamente la stessa utilizzata per le prime 23) esistono esattamente 11 parole che permettono una costruzione di una mnemonica 'monotona': Code: 00010001010 -> 139 La parola numero 139 corrisponde nel dizionario: italiano: arnese -> https://github.com/bitcoin/bips/blob/master/bip-0039/italian.txt Code: mnemonica: arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese arnese inglese: bacon -> https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt Code: mnemonica: bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon bacon spagnolo: archivio -> https://github.com/bitcoin/bips/blob/master/bip-0039/spanish.txt Code: mnemonica: archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio archivio Al solito, solo l'address inglese: https://www.blockchain.com/explorer/addresses/btc/159ysWF6HKJHvzCFEkVvDnHNgBjkbqj6K4 mostra attività in passato. L'entropia (139 -> 00010001010 per 23 volte + 000 = 256 bit) corrispondente è : Code: 0001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000100010100001000101000010001010000 Per quanta riguarda le mnemoniche con 12 parole, poichè in quel caso si utilizzano solo 4 bit come check sum: https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc#table_4-5 una stima del numero di parole che permettono una sequenza ripetitiva è : 2048 * 1/16 = 128 parole (+ o meno, il dato reale non lo so, non ho fatto anche questa verifica). Da notare che se una parola può consentire una frase 'monotona' di lunghezza 24 non è detto che la stessa consenta anche la formazione di una frase monotona di lunghezza 12 (e viceversa), in quanto il cheksum dipende dallo sha256 dell'entropia, e passando da 256 bit a 128 bit il risultato cambia. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- In generale, vedendo come si costruisce la mnemonica a partire da una stringa di 256 bit,si può dire: 1) fissate le prime 23 parole, ci sono solo 8 parole che possono completare la frase, non 2048; sono 8 perchè dopo aver fissato 11 bit * 23 = 253 bit, avanzano solo 3 bit per 'impostare' l'ultima parola 2) nel caso di 12 parole (128 bit di entropia), fissate le prime 11 parole , ci sono 128 parole che possono completare la frase, non 2048. 3) le prime 23 parole su 24 (o 11 su 12) possono essere qualsiasi, anche ripetute, per l'ultima parola invece ci sono meno possibilità |