cryptoseed 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.it.md ADDED
@@ -0,0 +1,224 @@
1
+ # 🛡️ cryptoseed
2
+
3
+ 🌍 **Select Language / Selecione o Idioma:**
4
+ [Português](./README.md) | [English](./README.en.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Italiano](./README.it.md) | [Türkçe](./README.tr.md) | [Русский](./README.ru.md) | [简体中文](./README.zh.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [עברית](./README.he.md)
5
+
6
+
7
+ **cryptoseed** è una libreria di classe aziendale, leggera e ad alte prestazioni sviluppata in **JavaScript Puro** (Node.js) progettata per la diagnosi, la validazione e il recupero di frasi mnemotiche (*seed phrases*) crittografiche che sono andate perse, disordinate o digitate con errori di ortografia.
8
+
9
+ Sviluppata all'interno dell'ecosistema di sicurezza e infrastruttura di **b2 wallet** ([better2better](https://better2better.net), sotto la guida di [diegooris](https://diegohorantunes.web.app/)), la libreria è stata progettata per fornire a sviluppatori e analisti di sicurezza la massima robustezza, un'elevata velocità di ricerca e una precisione storica chirurgica nella derivazione degli indirizzi su **39 blockchain ed ecosistemi diversi**. Tutto questo operando in modo autonomo al 100%, senza dipendenze di compilazione nativa C/C++ o pacchetti esterni che potrebbero compromettere la portabilità del build.
10
+
11
+ ---
12
+
13
+ ## 📅 Variazioni di BIP Supportate e Cronologia Storica
14
+
15
+ Per recuperare i fondi con precisione, non basta solo conoscere le parole; è necessario comprendere le specifiche tecniche e l'anno in cui è stato creato il portafoglio. **cryptoseed** implementa e rispetta rigorosamente gli standard storici (BIP).
16
+
17
+ ### 🔍 Tabella degli Standard BIP Implementati e Allineati
18
+
19
+ | BIP | Nome | Implementazione e Supporto in **cryptoseed** |
20
+ | :---: | :--- | :--- |
21
+ | **BIP-32** | *Hierarchical Deterministic Wallets* | **Supporto Completo.** È la base dell'albero di derivazione HD. Consente al motore di derivare infiniti percorsi di chiavi pubbliche/private (`xprv`/`xpub`) a partire da un singolo seed master utilizzando matematica pura delle curve ellittiche tramite il nostro motore di chiavi. |
22
+ | **BIP-39** | *Mnemonic Code* | **Supporto Completo.** Lo standard più comune del settore. Supporta frasi di **12, 15, 18, 21 o 24 parole** con verifica dell'integrità (*checksum*) integrata da 4 a 8 bit e dizionari in **10 lingue** diverse. |
23
+ | **BIP-43** | *Purpose Field* | **Supporto Completo.** Rispetta la struttura che ha introdotto il campo di scopo (`m / purpose'`) nella parte superiore dell'albero dei percorsi, garantendo che il motore indirizzi correttamente ai portafogli multiuso. |
24
+ | **BIP-44** | *Multi-Account* | **Supporto Completo.** Lo standard di percorso di derivazione più comune del settore: `m/44'/coin_type'/account'/change/address_index`. Utilizzato di default per Bitcoin Legacy, Ethereum, EVM, Solana Legacy, TRON, Cardano Legacy, ecc. |
25
+ | **BIP-45** | *Multisig HD* | **Allineamento dei Percorsi.** Utilizzato per portafogli multifirma su percorsi di scopo `m/45'`. Se si sta recuperando un seed individuale che fa parte di una configurazione multisig BIP-45, il motore deriva normalmente le singole chiavi private da questo percorso. |
26
+ | **BIP-47** | *Payment Codes* | **Compatibilità del Seed.** Codici di pagamento riutilizzabili e privati (come i portafogli Samourai). Il backup dei portafogli che utilizzano BIP-47 è un seed BIP-39 standard da 12 o 24 parole. **cryptoseed** recupera questo seed master perfettamente. |
27
+ | **BIP-48** | *Multisig Structure* | **Compatibilità.** Struttura multisig avanzata basata su BIP-43 utilizzando il percorso `m/48'/coin_type'/...`. Compatibile per recuperare il seed master che firma queste transazioni multifirma. |
28
+ | **BIP-49** | *Nested SegWit* | **Supporto Completo.** Indirizzi di transizione Bitcoin che iniziano con il carattere `3` (formato P2SH-P2WPKH), derivati sotto il percorso ufficiale `m/49'/0'/0'/0/index`. |
29
+ | **BIP-84** | *Native SegWit* | **Supporto Completo.** Indirizzi Bitcoin moderni ad alte prestazioni che iniziano con `bc1q` e Litecoin che iniziano con `ltc1` (formato Bech32), derivati sotto `m/84'/0'/0'/0/index` (e `m/84'/2'/...` per LTC). |
30
+ | **BIP-85** | *Child Seeds* | **Compatibilità Concettuale.** Consente a un seed master BIP-39 di generare nuovi sub-seed sicuri (da 12 o 24 parole) per altri portafogli sotto percorsi come `m/85'/...`. Se il seed perso è un seed figlio derivato da BIP-85, il motore lo recupererà come un qualsiasi normale seed BIP-39. |
31
+ | **BIP-86** | *Taproot* | **Supporto Completo.** Indirizzi Bitcoin di ultima generazione (Schnorr/Taproot) che iniziano con `bc1p` (Bech32m), derivati sotto il percorso standard `m/86'/0'/0'/0/index`. |
32
+
33
+ ---
34
+
35
+ ## ⚡ Perché è stato creato cryptoseed?
36
+
37
+ Quando ho avuto bisogno di recuperare portafogli per clienti e amici dell'ecosistema **b2 wallet** / [better2better](https://better2better.net), mi sono reso conto che gli strumenti esistenti erano troppo complessi (richiedevano compilazioni nativa in C++ che rompevano Node) o non comprendevano la transizione storica delle blockchain. Ho creato questa libreria per offrire le seguenti soluzioni:
38
+
39
+ 1. **Zero Dipendenze Native (Pure JS):** Funziona senza grattacapi su Windows, Linux o macOS. Eccellente per compilarlo in esecutivi portabili tramite `pkg`.
40
+ 2. **Tecnologia di "Ritaglio delle Lettere" (Prefix Fallback):** Ho scritto un algoritmo che, in caso di inserimento di una parola errata come `engino`, taglia la parola lettera per lettera (`e-n-g-i-n-o` -> `e-n-g-i-n` -> `engine`) per identificare automaticamente la parola più probabile nel dizionario ufficiale.
41
+ 3. **Gestione Intelligente delle Parole Perse:** Se l'algoritmo trova una parola sconosciuta senza corrispondenza di prefisso nel dizionario, la converte automaticamente in un carattere jolly (`*`) per testare tutte le possibilità del dizionario una ad una in modo automatizzato.
42
+ 4. **Potatura Precoce dei Rami (Early Branch Pruning):** Ho sviluppato il motore di ricerca con potatura precoce basata su vincoli (parole obbligatorie ed escluse - NOK), evitando che la CPU calcoli miliardi di permutazioni inutili.
43
+ 5. **Bypass del Checksum Integrato:** Poiché i seed BIP-39 contengono checksum, il codice scarta il **99.6%** di tutte le combinazioni generate prima ancora di tentare calcoli pesanti di curve ellittiche, risparmiando 1000 volte il tempo della CPU.
44
+
45
+ ---
46
+
47
+ ## 🛠️ Funzionalità di Recupero e Ingegneria di Ricerca
48
+
49
+ Sviluppato originariamente nel **2023** como strumento proprietario esclusivo per l'ecosistema di **b2 wallet** ([better2better](https://better2better.net)), **cryptoseed** è stato aperto al pubblico per offrire un'infrastruttura di recupero scientificamente superiore alle soluzioni ordinarie del mercato. Il motore di ricerca presenta le seguenti capacità e distinzioni tecnologiche:
50
+
51
+ ### 🎯 Classificazione degli Stati per Parola
52
+ A differenza degli script di recupero basilari, l'assistente interattivo consente di configurare lo stato di fiducia di ogni singola parola del seed mnemone utilizzando tre classificazioni:
53
+ * **✔️**: La parola e la sua posizione esatta nella frase sono confermate. Il motore blocca questa parola e concentra la sua potenza di calcolo esclusivamente sugli altri slot.
54
+ * **🔀**: La parola è nota per appartenere alla frase, ma la sua posizione è errata o incerta. Il motore considera dinamicamente questa parola per permutazioni sicure solo sugli slot disponibili, evitando così test ridondanti.
55
+ * **🎲**: La parola è totalmente sconosciuta, persa o illeggibile. Il motore testa automaticamente e in modo esaustivo tutte le possibilità del dizionario corrispondente.
56
+
57
+ ### 📊 Pre-trattamento e Stime di Fattibilità
58
+ Prima di spendere energia informatica, il motore analizza la frase e i vincoli forniti per mostrare un quadro matematico dettagliato:
59
+ * **Spazio di Ricerca Lordo**: Mostra il totale matematico esatto delle combinazioni teoriche basate sulla tua configurazione.
60
+ * **Potatura dell'Albero (Checksum & Filtri)**: Indica quante combinazioni rimangono dopo l'applicazione di filtri logici immediati (come i checksum o le esclusioni di parole NOK), riducendo drasticamente il volume di derivazioni di chiavi.
61
+ * **Proiezioni dei Tempi di Scansione**: Confronta in tempo real le stime dei tempi di scansione utilizzando una connessione media (API pubbliche) rispetto a una connessione locale ultra-rapida (nodi RPC locali).
62
+ * **Avviso di Infattibilità**: Il motore avverte l'utente in modo trasparente se la complessità configurata richiede risorse di supercalcolo, evitando così blocchi hardware inutili.
63
+
64
+ ### 🌐 Molteplici Motori di Validazione e Formati
65
+ L'ecosistema supporta diverse strutture crittografiche con regole di validazione specifiche:
66
+ * **Motore BIP-39**: Supporto completo per seed da **12, 15, 18, 21 e 24 parole**, applicando una validazione di checksum integrata per eliminare il **99.6%** delle false combinazioni prima di qualsiasi derivazione.
67
+ * **Motore Electrum**: Validazione e derivazione mappate esattamente sulle regole esclusive dei seed mnemotici Electrum (sia Legacy che Modern).
68
+ * **Motore Electron Cash**: Adattamento preciso della logica di derivazione e validazione del checksum dell'ecosistema Bitcoin Cash.
69
+ * **Modalità Senza Validazione (Forza Bruta)**: Generatore grezzo di derivazione senza filtri di checksum, ideale per formati legacy proprietari o seed personalizzati non standard, garantendo la massima copertura di ricerca.
70
+
71
+ ### 🧩 Risoluzione di Casi Complessi Combinati
72
+ Il motore risolve problemi combinati complessi in una singola esecuzione, tra cui:
73
+ * Una o mais parole completamente perse in posizioni note o sconosciute.
74
+ * Parole note con un ordine completamente mescolato.
75
+ * Scenari misti (es. seed in cui mancano alcune parole mentre le parole note non sono nel giusto ordine).
76
+ * Scelta del profilo di ricerca: **Massima Velocità** (con checksum e vincoli) o **Massima Copertura** (forza bruta matematica globale).
77
+
78
+ ---
79
+
80
+ ## ⚙️ Installazione
81
+
82
+ ### Installazione Globale (Per eseguire l'utility CLI interattiva direttamente nel terminale)
83
+ ```bash
84
+ npm install -g cryptoseed
85
+ ```
86
+
87
+ ### Installazione Locale (Per importare la logica nel tuo progetto Node)
88
+ ```bash
89
+ npm install cryptoseed
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 🛡️ Come usare nel codice (API JavaScript)
95
+
96
+ La libreria fornisce esportazioni pulite e ben strutturate per l'integrazione immediata delle logiche di sicurezza di **b2 wallet** nella tua applicazione:
97
+
98
+ ```javascript
99
+ const { wordlists, searchEngine, addressDeriver, typo } = require('cryptoseed');
100
+
101
+ // 1. Correggere un errore ortografico usando il "Ritaglio delle Lettere"
102
+ const dizionario = wordlists.bip39.it || wordlists.bip39.en;
103
+ const parolaConErrore = "*";
104
+ const suggerimenti = typo.getPrefixSuggestions(parolaConErrore, dizionario);
105
+ console.log("Parola dedotta:", suggerimenti); // Ritorna [ 'engine' ]
106
+
107
+ // 2. Derivare l'indirizzo pubblico reale per MetaMask (EVM)
108
+ const seed = "cabin engine harvest fiction witness walnut ladder tumble insect fox notable spoon";
109
+ const indirizzoEth = addressDeriver.deriveAddress(seed, 'metamask', 'ETH', 0);
110
+ console.log("Indirizzo Ethereum:", indirizzoEth);
111
+
112
+ // 3. Derivare un indirizzo personalizzato usando la crittografia di B2 Wallet
113
+ const indirizzoB2 = addressDeriver.deriveAddress(seed, 'b2wallet', 'BTC', 0);
114
+ console.log("Indirizzo Bitcoin su B2 Wallet:", indirizzoB2);
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 💻 CLI Interattiva
120
+
121
+ Basta digitare il comando principale nel terminale e seguire l'assistente:
122
+ ```bash
123
+ cryptoseed
124
+ ```
125
+
126
+ ### Comandi di Aiuto e Informazioni Storiche
127
+
128
+ * **Aiuto rapido (`-h` o `--help`):** Mostra la guida all'uso e le opzioni della riga di comando.
129
+ ```bash
130
+ cryptoseed --help
131
+ ```
132
+ * **Compendio Informativo (`-i` o `--info`):** Mostra un riepilogo storico completo di ogni blockchain supportata, i percorsi standard usati per anno e i portafogli compatibili. Ottimo per scoprire dove potrebbero essere conservati i vecchi fondi!
133
+ ```bash
134
+ cryptoseed --info
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 🧮 La Matematica Dietro e Limiti di Fattibilità
140
+
141
+ Se hai perso il tuo seed, devi essere realista sulle probabilità. Ho programmato il motore per mostrare avvisi realistici prima di iniziare qualsiasi ricerca pesante:
142
+
143
+ ### Tabella delle Combinazioni BIP-39 (Dizionario di 2048 Parole)
144
+
145
+ | Parole Perse | Calcolo delle Combinazioni | Totale Possibilità | Fattibilità Reale |
146
+ | :---: | :---: | :---: | :--- |
147
+ | **1 Parola** | $2048^1$ | **2.048** | **Completamente Fattibile** (Frazioni di secondo su qualsiasi CPU) |
148
+ | **2 Parole** | $2048^2$ | **4.194.304** | **Fattibile** (Pochi secondi con il nostro motore ottimizzato) |
149
+ | **3 Parole** | $2048^3$ | **8.589.934.592** | **Molto Pesante** (Fattibile se si conoscono le posizioni o si hanno vincoli) |
150
+ | **4 Parole** | $2048^4$ | **17.592.186.044.416** | **Non Fattibile** per computer comuni (richiederebbe settimane/mesi) |
151
+ | **5 Parole** | $2048^5$ | **36.028.797.018.963.968**| **Matematicamente Impossibile** (Richiederebbe supercomputer) |
152
+
153
+ ---
154
+
155
+ ## 📊 Matrice di Blockchain e Portafogli Supportati (39 Reti)
156
+
157
+ Di seguito è riportato l'elenco completo e dettagliato di tutte le 39 reti ed ecosistemi supportati nativamente dal motore di derivazione di **cryptoseed**, garantendo la compatibilità retroattiva e contemporanea:
158
+
159
+ | Ecosistema / Rete | Simbolo | Percorso di Derivazione Predefinito (HD Path) | Portafogli di Riferimento Compatibili |
160
+ | :--- | :---: | :--- | :--- |
161
+ | **Bitcoin** | BTC | `m/84'/0'/0'/0/i` (Native SegWit)<br>`m/49'/0'/0'/0/i` (Nested SegWit)<br>`m/44'/0'/0'/0/i` (Legacy)<br>`m/86'/0'/0'/0/i` (Taproot) | B2 Wallet, Electrum, Trust Wallet, Ledger, Trezor |
162
+ | **Ethereum** | ETH | `m/44'/60'/0'/0/i` | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
163
+ | **BNB Chain** | BNB | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
164
+ | **Polygon** | MATIC | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
165
+ | **Arbitrum** | ARB | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
166
+ | **Optimism** | OP | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
167
+ | **Avalanche** | AVAX | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, Core, MetaMask, Trust Wallet, Ledger, Trezor |
168
+ | **Base** | BASE | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
169
+ | **Fantom** | FTM | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
170
+ | **Cronos** | CRO | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
171
+ | **Harmony** | ONE | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet |
172
+ | **Gnosis Chain** | GNOSIS | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
173
+ | **Solana** | SOL | `m/44'/501'/0'/0'` (Phantom Standard)<br>`m/44'/501'/0'/0/i` (Sollet/Legacy) | B2 Wallet, Phantom, Sollet, Solflare, Trust Wallet |
174
+ | **Cardano** | ADA | `m/1852'/1815'/0'/0/i` (Shelley Native)<br>`m/44'/1815'/0'/0/i` (Byron Legacy) | Yoroi, Daedalus, Eternl, Lace |
175
+ | **TRON** | TRX | `m/44'/195'/0'/0/i` | B2 Wallet, TronLink, Trust Wallet, Ledger, Trezor |
176
+ | **Waves** | WAVES | `m/44'/5741564'/0'/0/i` | Waves Keeper, Waves Client |
177
+ | **Stellar** | XLM | `m/44'/148'/0'/0/i` | Lobstr, Stellar Wallet, Ledger |
178
+ | **Ripple** | XRP | `m/44'/144'/0'/0/i` | Toast Wallet, Xumm, Ledger, Trezor |
179
+ | **Polkadot** | DOT | `m/44'/354'/0'/0'/0'` (Substrate Path) | Polkadot.js, Talisman, Fearless |
180
+ | **Kusama** | KSM | `m/44'/434'/0'/0'/0'` (Kusama Path) | Polkadot.js, Talisman, Fearless |
181
+ | **Cosmos** | ATOM | `m/44'/118'/0'/0/i` | Keplr, Cosmostation, Ledger |
182
+ | **Osmosis** | OSMO | `m/44'/118'/0'/0/i` | Keplr, Cosmostation, Ledger |
183
+ | **Secret Network** | SCRT | `m/44'/529'/0'/0/i` | Keplr, Cosmostation |
184
+ | **Injective** | INJ | `m/44'/60'/0'/0/i` (Keccak-256) | Keplr, MetaMask, Leap |
185
+ | **Hedera** | HBAR | `m/44'/3030'/0'/0/i` | Hashpack, Blade Wallet |
186
+ | **NEM** | XEM | `m/44'/43'/0'/0/i` | NEM Wallet |
187
+ | **Chia** | XCH | `m/44'/8444'/0'/0/i` | Chia Wallet |
188
+ | **Tezos** | XTZ | `m/44'/1729'/0'/0/i` | Temple, Kukai, Ledger |
189
+ | **Algorand** | ALGO | `m/44'/283'/0'/0'/0'` | Pera Wallet, Defly Wallet |
190
+ | **Near** | NEAR | `m/44'/397'/0'/0'/0'` | MyNearWallet, Sender Wallet |
191
+ | **Sui** | SUI | `m/44'/784'/0'/0'/0'` | Sui Wallet, Suiet, Trust Wallet |
192
+ | **Aptos** | APT | `m/44'/637'/0'/0'/0'` | Petra Wallet, Pontem, Martian |
193
+ | **Litecoin** | LTC | `m/84'/2'/0'/0/i` (Native SegWit)<br>`m/44'/2'/0'/0/i` (Legacy) | B2 Wallet, Electrum LTC, Trust Wallet, Ledger |
194
+ | **Dogecoin** | DOGE | `m/44'/3'/0'/0/i` | B2 Wallet, Multidoge, Trust Wallet, Ledger, Trezor |
195
+ | **Bitcoin Cash** | BCH | `m/44'/145'/0'/0/i` | B2 Wallet, Electron Cash, Trust Wallet, Ledger |
196
+ | **Dash** | DASH | `m/44'/5'/0'/0/i` | B2 Wallet, Dash Core, Trust Wallet, Ledger |
197
+ | **Zcash** | ZEC | `m/44'/133'/0'/0/i` | B2 Wallet, Trust Wallet, Ledger |
198
+ | **Kaspa** | KAS | `m/44'/111111'/0'/0/i` | Kaspium, Kaspa Web Wallet |
199
+ | **Monero** | XMR | `m/44'/128'/0'/0/i` | Cake Wallet, Monerujo, GUI Wallet |
200
+
201
+ ---
202
+
203
+ ## 🛠️ Prestazioni: Nodo RPC Locale vs API Pubblica
204
+
205
+ Al termine di ogni ricerca, **cryptoseed** salva un rapporto di recupero dettagliato sul disco (`resultado_recuperacao_[timestamp].txt`) e fornisce una stima reale della velocità delle query per verificare se i seed trovati possiedono fondi on-chain:
206
+
207
+ * **Query tramite API Pubbliche (50ms per richiesta):** Utile solo se si dispone di pochissimi seed candidati ($<100$). Risente della latenza di internet e del blocco dei limiti di frequenza delle richieste.
208
+ * **Query tramite Nodo RPC Locale (0.1ms per richiesta):** Il percorso ideale per ricerche robuste ($>1000$ seed). Riduce il tempo totale di scansione fino a **500 volte** eseguendo la ricerca localmente sulla propria macchina.
209
+
210
+ ---
211
+
212
+ ## 🎓 Easter Egg dell'era Satoshi (2009 - 2010)
213
+
214
+ Se si tenta di selezionare nell'assistente che il portafoglio è stato creato nel o prima del **2010**, il programma interromperà l'esecuzione e svelerà un segreto storico: **In questa era di genesi, le frasi seed mnemoniche NON esistevano!**
215
+ Il client originale di Satoshi Nakamoto (Bitcoin-Qt) utilizzava chiavi private casuali memorizzate nel file binario `wallet.dat`. Se hai perso quel file, nessuna frase di parole potrà mai recuperare i fondi, poiché il seed deterministico semplicemente non era ancora stato inventato!
216
+
217
+ ---
218
+
219
+ ## 🛡️ Licenza, Sicurezza e Governance
220
+
221
+ Questa libreria viene eseguita al **100% offline e localmente** sulla tua macchina. Il codice è aperto, pulito e non effettua alcuna richiesta di rete per trasmettere le tue parole o chiavi private. La sicurezza prima di tutto.
222
+
223
+ * **Licenza:** MIT (Creato nel 2023)
224
+ * **Crediti:** Progetto **b2 wallet** / [better2better](https://better2better.net) / [diegooris](https://diegohorantunes.web.app/).
package/README.ja.md ADDED
@@ -0,0 +1,224 @@
1
+ # 🛡️ cryptoseed
2
+
3
+ 🌍 **Select Language / Selecione o Idioma:**
4
+ [Português](./README.md) | [English](./README.en.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Italiano](./README.it.md) | [Türkçe](./README.tr.md) | [Русский](./README.ru.md) | [简体中文](./README.zh.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [עברית](./README.he.md)
5
+
6
+
7
+ **cryptoseed** は、紛失、順序の入れ替わり、またはスペルミスで入力された暗号資産の暗号化ニーモニックシードフレーズ(*seed phrases*)の診断、検証、および復旧のために設計された、**純粋な JavaScript** (Node.js) で開発された軽量かつ高性能なエンタープライズクラスのライブラリです。
8
+
9
+ **b2 wallet**([diegooris](https://diegohorantunes.web.app/) の指導の下、[better2better](https://better2better.net) が運営するセキュリティおよびインフラエコシステム)の下で開発されたこのライブラリは、開発者やセキュリティアナリストに最大限の堅牢性、超高速検索、および **39 の異なるブロックチェーンとエコシステム**におけるアドレス導出の外科的な歴史的正確性を提供するように設計されています。これらはすべて、ビルドのポータビリティを損なう可能性のあるネイティブな C/C++ コンパイル依存関係や外部パッケージなしで、100% 自律的に動作します。
10
+
11
+ ---
12
+
13
+ ## 📅 サポートされている BIP バリエーションと歴史的タイムライン
14
+
15
+ 資金を正確に復旧するには、単に単語を知っているだけでは不十分です。技術的な仕様とウォレットが作成された年を理解する必要があります。**cryptoseed** は、歴史的な標準(BIP)を厳格に実装し、準拠しています。
16
+
17
+ ### 🔍 実装および調整された BIP 標準一覧表
18
+
19
+ | BIP | 規格名 | **cryptoseed** における実装およびサポート状況 |
20
+ | :---: | :--- | :--- |
21
+ | **BIP-32** | *Hierarchical Deterministic Wallets* | **完全サポート。** HD 導出ツリーの数学的基盤です。私たちのキーエンジンを介して純粋な楕円曲線数学を使用し、単一のマスターシードから公開鍵/秘密鍵(`xprv`/`xpub`)の無限のパスをエンジンが導出できるようにします。 |
22
+ | **BIP-39** | *Mnemonic Code* | **完全サポート。** 業界の共通標準。**10 の異なる言語**の辞書と、統合された 4〜8 ビットのチェックサム(*checksum*)検証により、**12、15、18、21、または 24 語**のフレーズをサポートします。 |
23
+ | **BIP-43** | *Purpose Field* | **完全サポート。** パスツリーの最上部で目的フィールド(`m / purpose'`)を導入した構造に準拠し、エンジンが多目的ウォレットに正しくルーティングできるようにします。 |
24
+ | **BIP-44** | *Multi-Account* | **完全サポート。** 業界で最も一般的な導出パス標準:`m/44'/coin_type'/account'/change/address_index`。Bitcoin Legacy、Ethereum、EVM 互換チェーン、Solana Legacy、TRON、Cardano Legacy などにデフォルトで使用されます。 |
25
+ | **BIP-45** | *Multisig HD* | **パスの整合。** 目的パス `m/45'` のマルチシグウォレットに使用されます。BIP-45 マルチシグ設定の一部である個別のシードを復旧する場合、エンジンはこのパスから通常通りに個別の秘密鍵を導出します。 |
26
+ | **BIP-47** | *Payment Codes* | **シード互換性。** 再利用可能でプライベートなペイメントコード(Samourai ウォレットなど)。BIP-47 を使用するウォレット的のバックアップは、標準の 12 語または 24 語の BIP-39 シードです。**cryptoseed** はこのマスターシードを完璧に復旧します。 |
27
+ | **BIP-48** | *Multisig Structure* | **互換性。** パス `m/48'/coin_type'/...` を使用した BIP-43 に基づく高度なマルチシグ構造。これらのマルチシグトランザクションを署名するマスターシードの復旧に対応しています。 |
28
+ | **BIP-49** | *Nested SegWit* | **完全サポート。** 公式パス `m/49'/0'/0'/0/index` の下で導出される、文字 `3` で始まるビットコインの移行アドレス(P2SH-P2WPKH 形式)。 |
29
+ | **BIP-84** | *Native SegWit* | **完全サポート。** `m/84'/0'/0'/0/index`(LTC の場合は `m/84'/2'/...`)の下で導出される、`bc1q` で始まるモダンで高性能なビットコインアドレス、および `ltc1` で始まるライトコインアドレス(Bech32 形式)。 |
30
+ | **BIP-85** | *Child Seeds* | **概念的互換性。** BIP-39 マスターシードが、`m/85'/...` のようなパスの下で他のウォレット向けに新しい安全なサブシード(12 語または 24 語)を生成できるようにします。紛失したシードが BIP-85 によって導出された子シードである場合、エンジンは通常の BIP-39 シードと同様にそれを復旧します。 |
31
+ | **BIP-86** | *Taproot* | **完全サポート。** 標準パス `m/86'/0'/0'/0/index` の下で導出される、`bc1p` で始まる次世代ビットコインアドレス(Schnorr/Taproot 署名)(Bech32m 形式)。 |
32
+
33
+ ---
34
+
35
+ ## ⚡ なぜ cryptoseed が作成されたのか?
36
+
37
+ **b2 wallet** / [better2better](https://better2better.net) エコシステムのお客様や友人のためにウォレットを復旧する必要があったとき、既存のツールは過度に複雑(Node を破損させるネイティブな C++ コンパイルが必要)であるか、ブロックチェーンの歴史的な変遷を理解していないかのどちらかであることに気づきました。私は以下のソリューションを提供するためにこのライブラリを作成しました:
38
+
39
+ 1. **ネイティブ依存関係ゼロ (Pure JS):** Windows、Linux、または macOS 上で問題なく動作します。`pkg` を使用してポータブルな実行可能ファイルをコンパイルするのに最適です。
40
+ 2. **「文字スライス」テクノロジー (Prefix Fallback):** `engino` のような誤った単語を入力した場合、公式辞書から最も可能性の高い単語を自動的に特定するために、単語をキャラクターごとにスライスする(`e-n-g-i-n-o` -> `e-n-g-i-n` -> `engine`)アルゴリズムを作成しました。
41
+ 3. **スマートな紛失単語処理:** 辞書にプレフィックスの一致がない未知の単語をアルゴリズムが検出した場合、辞書のすべての可能性を自動的に 1 つずつテストするために、それを自動的にワイルドカード(`*`)に変換します。
42
+ 4. **早期の枝刈り (Early Branch Pruning):** 制約(必須単語および除外単語 - NOK)に基づく早期の枝刈りを備えた検索エンジンを開発し、プロセッサが何十億もの無駄な組み合わせを計算するのを防ぎました。
43
+ 5. **統合されたチェックサムバイパス:** BIP-39 シードにはチェックサムが含まれているため、コードは重い楕円曲線計算を試みる前に、生成されたすべての組み合わせの **99.6%** を破棄し、CPU 時間を 1000 倍節約します。
44
+
45
+ ---
46
+
47
+ ## 🛠️ 復旧機能と検索エンジニアリング
48
+
49
+ もともと **2023** 年に **b2 wallet** ([better2better](https://better2better.net)) エコシステム専用のツールとして開発された **cryptoseed** は、市場の一般的なソリューションに比べて科学的に優れた復旧インフラを提供することを目的として一般公開されました。検索エンジンは以下の機能と技術的な利点を備えています:
50
+
51
+ ### 🎯 単語ごとの状態分類
52
+ 単純な復旧スクリプトとは異なり、インタラクティブなウィザードでは、3つのセマンティック分類を使用して、シード内の各単語の信頼状態を個別に構成できます:
53
+ * **✔️**: 単語とそのシード内の正確な位置が確認されています。エンジンはこの単語を固定し、処理能力を残りのスロットのみに集中させます。
54
+ * **🔀**: 単語は既知でありセットに属していますが、その位置が正しくないか不確実です。エンジンは、利用可能な空きスロットでの安全な順列についてのみこの単語を動的に処理し、無駄なテストを回避します。
55
+ * **🎲**: 単語が完全に失われているか、判読不能です。エンジンは、対応する形式の辞書内のすべての可能性を自動的かつ網羅的にテストします。
56
+
57
+ ### 📊 前処理と実現可能性の見積もり
58
+ 計算エネルギーを消費する前に、エンジンは提供された制約とシードを分析し、詳細な数学的パネルを表示します:
59
+ * **生検索スペース**: 構成された構造が持つ理論的な組み合わせの正確な数学的合計を表示します。
60
+ * **ツリーの枝刈り (チェックサムとフィルター)**: チェックサムや NOK 単語制約などの論理フィルターを適用した後に残る組み合わせの数を報告し、重いキー導出の計算量を大幅に削減します。
61
+ * **スキャン時間の予測**: 平均遅延接続(パブリック API)と高性能ローカル接続(ローカル RPC ノード)を使用したリアルタイムのスキャン時間予測を比較します。
62
+ * **実行不可能性の警告**: 構成された複雑さがスーパーコンピューターのパワーを必要とする場合、エンジンはユーザーに透過的に警告し、ユーザーのハードウェアが無駄にロックされるのを防ぎます。
63
+
64
+ ### 🌐 複数の検証エンジンと形式
65
+ エコシステムは、形式固有の検証ルールを持つ異なる暗号構造をサポートしています:
66
+ * **BIP-39 エンジン**: **12、15、18、21、および 24 語**のシードをサポートし、導出前に誤った仮説の **99.6%** を排除するために統合された整合性チェック(*checksum*)を適用します。
67
+ * **Electrum エンジン**: Electrum シード(Legacy および Modern)の独自のルールに基づく検証と導出。
68
+ * **Electron Cash エンジン**: Bitcoin Cash エコシステムの導出およびチェックサム検証ロジックの正確な移植。
69
+ * **検証なしモード (総当たり)**: チェックサムチェックのない生導出エンジン。独自のレガシー形式や非標準のカスタムシードに最適で、最大の検索範囲を保証します。
70
+
71
+ ### 🧩 複雑な複合状況の解決
72
+ エンジンは、1 回の実行で以下の高難度の問題を解決します:
73
+ * 既知または未知の位置で完全に失われた 1 つ以上の単語。
74
+ * 順序が混ざり合った既知の単語。
75
+ * 混合シナリオ(例:単語が欠落しており、同時に既知の単語の順序も崩れている場合)。
76
+ * 検索プロファイルの選択:**最高速度**(チェックサムと制約を使用)または**最大範囲**(広範な数学的総当たり)。
77
+
78
+ ---
79
+
80
+ ## ⚙️ インストール
81
+
82
+ ### グローバルインストール(インタラクティブな CLI ツールをターミナルで直接実行する場合)
83
+ ```bash
84
+ npm install -g cryptoseed
85
+ ```
86
+
87
+ ### ローカルインストール(Node プロジェクトにロジックをインポートする場合)
88
+ ```bash
89
+ npm install cryptoseed
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 🛡️ コードでの使用方法(JavaScript API)
95
+
96
+ このライブラリは、アプリケーションに **b2 wallet** のセキュリティロジックを即座に統合するための、クリーンでよく構造化されたエクスポートを提供します:
97
+
98
+ ```javascript
99
+ const { wordlists, searchEngine, addressDeriver, typo } = require('cryptoseed');
100
+
101
+ // 1. 「文字スライス」を使用してスペルミスを修正する
102
+ const dictionary = wordlists.bip39.ja || wordlists.bip39.en;
103
+ const wordWithError = "*";
104
+ const suggestions = typo.getPrefixSuggestions(wordWithError, dictionary);
105
+ console.log("推測された単語:", suggestions); // [ 'engine' ] を返します
106
+
107
+ // 2. MetaMask (EVM) の実際の公開鍵アドレスを導出する
108
+ const seed = "cabin engine harvest fiction witness walnut ladder tumble insect fox notable spoon";
109
+ const ethAddress = addressDeriver.deriveAddress(seed, 'metamask', 'ETH', 0);
110
+ console.log("Ethereum アドレス:", ethAddress);
111
+
112
+ // 3. B2 Wallet の暗号化技術を使用してカスタムアドレスを導出する
113
+ const b2Address = addressDeriver.deriveAddress(seed, 'b2wallet', 'BTC', 0);
114
+ console.log("B2 Wallet 上の Bitcoin アドレス:", b2Address);
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 💻 インタラクティブ CLI
120
+
121
+ ターミナルでメインコマンドを入力し、ウィザードに従うだけです:
122
+ ```bash
123
+ cryptoseed
124
+ ```
125
+
126
+ ### ヘルプおよび歴史に関するコマンド
127
+
128
+ * **クイックヘルプ (`-h` または `--help`):** 使用ガイドとコマンドラインオプションを表示します。
129
+ ```bash
130
+ cryptoseed --help
131
+ ```
132
+ * **情報コンペンディウム (`-i` または `--info`):** サポートされている各ブロックチェーンの完全な歴史的要約、年別に使用されている標準の HD パス、および互換性のあるウォレットを表示します。古い資金がどこに保管されているかを見つけるのに最適です!
133
+ ```bash
134
+ cryptoseed --info
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 🧮 その数学的背景と実現可能性の限界
140
+
141
+ シードを紛失した場合、復旧の確率について現実的になる必要があります。負荷の高い検索を開始する前に、現実的な警告を表示するように検索エンジンをプログラムしました:
142
+
143
+ ### BIP-39 組み合わせ表(2048語の辞書)
144
+
145
+ | 紛失した単語の数 | 組み合わせの計算 | 合計の可能性 | 実際の実現可能性 |
146
+ | :---: | :---: | :---: | :--- |
147
+ | **1 語** | $2048^1$ | **2,048** | **完全に可能**(任意の CPU で 1 秒の数分の一) |
148
+ | **2 語** | $2048^2$ | **4,194,304** | **可能**(最適化されたエンジンにより数秒) |
149
+ | **3 語** | $2048^3$ | **8,589,934,592** | **非常に重い**(単語の位置がわかっているか、制約がある場合は可能) |
150
+ | **4 語** | $2048^4$ | **17,592,186,044,416** | **実行不可能**(一般的な PC では数週間または数ヶ月かかります) |
151
+ | **5 語** | $2048^5$ | **36,028,797,018,963,968**| **数学的に不可能**(スーパーコンピュータが必要) |
152
+
153
+ ---
154
+
155
+ ## 📊 サポートされているブロックチェーンとウォレットのマトリクス(39ネットワーク)
156
+
157
+ 以下は、**cryptoseed** 導出エンジンによってネイティブにサポートされているすべての 39 のネットワークとエコシステムの詳細なリストであり、後方互換性および現代の互換性を保証します:
158
+
159
+ | エコシステム / ネットワーク | シンボル | デフォルトの導出パス (HD Path) | 互換性のある参照ウォレット |
160
+ | :--- | :---: | :--- | :--- |
161
+ | **Bitcoin** | BTC | `m/84'/0'/0'/0/i` (Native SegWit)<br>`m/49'/0'/0'/0/i` (Nested SegWit)<br>`m/44'/0'/0'/0/i` (Legacy)<br>`m/86'/0'/0'/0/i` (Taproot) | B2 Wallet, Electrum, Trust Wallet, Ledger, Trezor |
162
+ | **Ethereum** | ETH | `m/44'/60'/0'/0/i` | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
163
+ | **BNB Chain** | BNB | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
164
+ | **Polygon** | MATIC | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
165
+ | **Arbitrum** | ARB | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
166
+ | **Optimism** | OP | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
167
+ | **Avalanche** | AVAX | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, Core, MetaMask, Trust Wallet, Ledger, Trezor |
168
+ | **Base** | BASE | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
169
+ | **Fantom** | FTM | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
170
+ | **Cronos** | CRO | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet, Ledger, Trezor |
171
+ | **Harmony** | ONE | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Trust Wallet |
172
+ | **Gnosis Chain** | GNOSIS | `m/44'/60'/0'/0/i` (EVM) | B2 Wallet, MetaMask, Rabby, Trust Wallet, Ledger, Trezor |
173
+ | **Solana** | SOL | `m/44'/501'/0'/0'` (Phantom Standard)<br>`m/44'/501'/0'/0/i` (Sollet/Legacy) | B2 Wallet, Phantom, Sollet, Solflare, Trust Wallet |
174
+ | **Cardano** | ADA | `m/1852'/1815'/0'/0/i` (Shelley Native)<br>`m/44'/1815'/0'/0/i` (Byron Legacy) | Yoroi, Daedalus, Eternl, Lace |
175
+ | **TRON** | TRX | `m/44'/195'/0'/0/i` | B2 Wallet, TronLink, Trust Wallet, Ledger, Trezor |
176
+ | **Waves** | WAVES | `m/44'/5741564'/0'/0/i` | Waves Keeper, Waves Client |
177
+ | **Stellar** | XLM | `m/44'/148'/0'/0/i` | Lobstr, Stellar Wallet, Ledger |
178
+ | **Ripple** | XRP | `m/44'/144'/0'/0/i` | Toast Wallet, Xumm, Ledger, Trezor |
179
+ | **Polkadot** | DOT | `m/44'/354'/0'/0'/0'` (Substrate Path) | Polkadot.js, Talisman, Fearless |
180
+ | **Kusama** | KSM | `m/44'/434'/0'/0'/0'` (Kusama Path) | Polkadot.js, Talisman, Fearless |
181
+ | **Cosmos** | ATOM | `m/44'/118'/0'/0/i` | Keplr, Cosmostation, Ledger |
182
+ | **Osmosis** | OSMO | `m/44'/118'/0'/0/i` | Keplr, Cosmostation, Ledger |
183
+ | **Secret Network** | SCRT | `m/44'/529'/0'/0/i` | Keplr, Cosmostation |
184
+ | **Injective** | INJ | `m/44'/60'/0'/0/i` (Keccak-256) | Keplr, MetaMask, Leap |
185
+ | **Hedera** | HBAR | `m/44'/3030'/0'/0/i` | Hashpack, Blade Wallet |
186
+ | **NEM** | XEM | `m/44'/43'/0'/0/i` | NEM Wallet |
187
+ | **Chia** | XCH | `m/44'/8444'/0'/0/i` | Chia Wallet |
188
+ | **Tezos** | XTZ | `m/44'/1729'/0'/0/i` | Temple, Kukai, Ledger |
189
+ | **Algorand** | ALGO | `m/44'/283'/0'/0'/0'` | Pera Wallet, Defly Wallet |
190
+ | **Near** | NEAR | `m/44'/397'/0'/0'/0'` | MyNearWallet, Sender Wallet |
191
+ | **Sui** | SUI | `m/44'/784'/0'/0'/0'` | Sui Wallet, Suiet, Trust Wallet |
192
+ | **Aptos** | APT | `m/44'/637'/0'/0'/0'` | Petra Wallet, Pontem, Martian |
193
+ | **Litecoin** | LTC | `m/84'/2'/0'/0/i` (Native SegWit)<br>`m/44'/2'/0'/0/i` (Legacy) | B2 Wallet, Electrum LTC, Trust Wallet, Ledger |
194
+ | **Dogecoin** | DOGE | `m/44'/3'/0'/0/i` | B2 Wallet, Multidoge, Trust Wallet, Ledger, Trezor |
195
+ | **Bitcoin Cash** | BCH | `m/44'/145'/0'/0/i` | B2 Wallet, Electron Cash, Trust Wallet, Ledger |
196
+ | **Dash** | DASH | `m/44'/5'/0'/0/i` | B2 Wallet, Dash Core, Trust Wallet, Ledger |
197
+ | **Zcash** | ZEC | `m/44'/133'/0'/0/i` | B2 Wallet, Trust Wallet, Ledger |
198
+ | **Kaspa** | KAS | `m/44'/111111'/0'/0/i` | Kaspium, Kaspa Web Wallet |
199
+ | **Monero** | XMR | `m/44'/128'/0'/0/i` | Cake Wallet, Monerujo, GUI Wallet |
200
+
201
+ ---
202
+
203
+ ## 🛠️ パフォーマンス:ローカル RPC ノード vs 公開 API
204
+
205
+ 各検索の終了時に、**cryptoseed** は詳細な復旧レポートをディスクに保存し(`resultado_recuperacao_[timestamp].txt`)、見つかったシードがオンチェーンで資金を持っているかどうかを検証するために必要なクエリ速度の現実的な予測を提供します:
206
+
207
+ * **公開 API によるクエリ(リクエストあたり 50ms):** 候補シードが極めて少ない場合($<100$)にのみ有用です。インターネットの遅延やリクエストレート制限の影響を受けます。
208
+ * **ローカル RPC ノードによるクエリ(リクエストあたり 0.1ms):** 大規模な検索($>1000$ シード)にとって理想的なアプローチです。自身のマシンでローカルに実行することにより、総スキャン時間を最大 **500 分の 1** に短縮できます。
209
+
210
+ ---
211
+
212
+ ## 🎓 サトシ時代のイースターエッグ (2009 - 2010)
213
+
214
+ アシスタントでウォレットが **2010年以前**に作成されたことを選択しようとすると、プログラムは実行を停止し、歴史的な秘密を明らかにします:**この創世記(ジェネシス)の時代、ニーモニック復旧シードフレーズは存在していませんでした!**
215
+ サトシ・ナカモトのオリジナルのクライアント(Bitcoin-Qt)は、バイナリファイル `wallet.dat` に保存されたランダムな秘密鍵を使用していました。このファイルを紛失した場合、決定論的なシードはまだ発明されていなかったため、いかなる単語のフレーズも資金を復旧することはできません!
216
+
217
+ ---
218
+
219
+ ## 🛡️ ライセンス、セキュリティ、およびガバナンス
220
+
221
+ このライブラリは、お使いのマシンで **100% オフラインかつローカル**に動作します。コードはオープンでクリーンであり、単語や秘密鍵を送信するためのネットワークリクエストは一切行いません。セキュリティ第一。
222
+
223
+ * **ライセンス:** MIT (2023年に開発)
224
+ * **クレジット:** **b2 wallet** / [better2better](https://better2better.net) / [diegooris](https://diegohorantunes.web.app/) プロジェクト。