Follow

Стандарт сід-фрази для Bitcoin, також відомий як BIP-39 (Bitcoin Improvement Proposal 39), є одним з найпоширеніших і використовується для генерації приватних ключів з мнемонічної фрази. Цей стандарт дозволяє користувачам створювати легко запам'ятовувані та безпечні резервні копії їхніх криптовалютних гаманців.

### Основні аспекти BIP-39:

1. **Мнемонічна фраза**: Сід-фраза складається з 12, 15, 18, 21 або 24 слів. Ці слова вибираються з заздалегідь визначеного словника, що складається з 2048 слів.

2. **Генерація сід-фрази**:
- Сід-фраза генерується випадковим чином.
- До випадково згенерованих біт додається контрольна сума.
- Ці біти розбиваються на групи по 11 біт, які потім перетворюються в слова з словника.

3. **Перетворення мнемонічної фрази в сід**:
- Використовується функція PBKDF2 (Password-Based Key Derivation Function 2) для перетворення мнемонічної фрази і (необов'язкового) пароля в сід.

4. **Детерміновані гаманці (BIP-32)**:
- Сід-фраза використовується для створення головного (master) приватного ключа і ланцюга (chain) коду, що дозволяє генерувати ієрархічно детерміновані (HD) ключі.
- Цей процес описується в стандарті BIP-32.

### Приклад мнемонічної фрази:

```plaintext
abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
```

### Генерація сід-фрази і ключів за допомогою бібліотеки `bip39`:

Ось приклад на JavaScript:

1. Встановіть бібліотеки `bip39` і `bitcoinjs-lib`:

```sh
npm install bip39 bitcoinjs-lib
```

2. Використовуйте наступний скрипт для генерації сід-фрази і ключів:

```javascript
const bip39 = require('bip39');
const bitcoin = require('bitcoinjs-lib');

// Генерація випадкової мнемонічної фрази
const mnemonic = bip39.generateMnemonic();
console.log('Mnemonic:', mnemonic);

// Перетворення мнемонічної фрази в сід
const seed = bip39.mnemonicToSeedSync(mnemonic);
const root = bitcoin.bip32.fromSeed(seed);

// Генерація першої адреси і приватного ключа
const path = "m/44'/0'/0'/0/0";
const child = root.derivePath(path);
console.log('Address:', bitcoin.payments.p2pkh({ pubkey: child.publicKey }).address);
console.log('Private Key:', child.toWIF());
```

### Важливі застереження:

1. **Безпека**:
- Зберігайте вашу мнемонічну фразу в безпечному місці.
- Не передавайте її нікому.
- Використовуйте офлайн методи для генерації і збереження сід-фрази, щоб уникнути витоку інформації.

2. **Резервне копіювання**:
- Записуйте мнемонічну фразу на папір або інший фізичний носій.
- Зберігайте резервні копії в різних безпечних місцях.

Дотримання цих стандартів і рекомендацій допоможе забезпечити безпеку ваших криптовалютних активів.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.