Відмінністю системи Біткоїн від інших грошових систем є децентралізація. Цю відмінність необхідно осягнути розумом, щоб зрозуміти її перевагу та значення. Завдяки децентралізації в системі Біткоїни, ви є одноособовим власником біткоїн рахунку, тільки ви, і більше ніхто, маєте доступ до керування вашими біткоїнами. Ваші біткоїни в системі Біткоїн – це істині права власності на гроші. Тому відповідальність за ваші біткоїни лежить тільки на вас. Вам необхідно записати та ретельно зберігати seed-фразу, на основі якої генерується безліч ваших біткоїн рахунків… Багато людей, які чують ці особливості системи Біткоїн не надають їм значення, або не вірять, або не розуміють що і як працює. Андреас Антонопулос пояснює, як працює seed-фраза.
Підпишіться на youtube канал Школи Біткоїн натиснувши кнопку
Запитання Антонопулосу: “Як працюють seed-фрази? Для мене це, як магія.”
Я думаю, що це сказав Артур Кларк: “Будь-які передові технології не відрізняються від магії для цивілізації, яка не настільки розвинена.” І я думаю, що це одна із цікавих речей в криптографії. Велика частина математики, яка знаходиться в криптогафії, здається магічною, і потрібен час, щоб звикнути до неї і зрозуміти, як вона працює.
Давайте визначимо, що таке seed-фраза. Seed фраза – це набір слів. Ці слова кодують певну кількість випадковості. Випадковість представляє собою число, і це число представлено словами, але ці слова просто кодування цього числа. Що це означає? Якщо ви використовуєте стандарт BIP39, він складається із 2048 слів. Цей словник із 2048 слів був ретельно підібраний таким чином, щоб слова не здавалися схожими, і ви завжди можете зрозуміти, яке слово ви дивитесь тільки з перших чотирьох букв. Таким чином, чотири букви дають унікальне слово, але вони не мають значення. Важливо те, що у вас 2048 слів. Подумайте про кожне, як про символ. І якщо у вас є, наприклад, 12 seed слів, то рядок цих дванадцяти слів кодує 2048^12 (2048 в 12 ступені) можливих чисел.
Кожне слово представляє собою приблизно одинадцять бітів інформації в бінарному коді і ви можете використати їх, щоб побудувати ключ за принципом seed. Seed складає 128 біт – якщо у вас є 12 слів, чи 256 біт – якщо ви маєте 24 слова. І з цього 128-бітного чи 256-бітного номера ваш гаманець генерує закриті ключі через багаторазовий процес хешування. У випадку BIP39 алгоритм хешу застосовується 2000 раз разом з паролем, який є опціональним для створення відкритого ключа, і цей ключ потім знову використовується з хеш-функцією для створення серії закритих ключів, і вже закритий ключ з серії може використовуватися для створення транзакції. Таким чином, ви починаєте з числа, створеного із 128 біт, це число кодується у вигляді 12 англійських слів зі словника із 2048 слів, потім ці слова розтягуються через хеш-алгоритм, щоб отримати ще довший номер, який використовується як ваш закритий ключ, зазвичай це 512-бітове число, і воно використовується знову з повторним хешуванням для створення приватного ключа і вашого біткоїн-рахунку.
Фактично, це дерево приватних ключів – ієрархічний детермінований гаманець або гаманець HD. Кожний з цих закритих ключів може згенерувати відкритий ключ і адрес (ваш біткоїн рахунок), і ви можете робити транзакції.
Якщо ви вводите seed-фразу в новий гаманець, він зможе відтворити весь попередній процес і відтворити всі ваші приватні ключі.
Є безкінечна кількість приватних ключів, які можна отримати із seed фрази в повній послідовності, тому ваш гаманець почне з самого початку – перегляду блокчейну, щоби побачити, чи були ці ключі використані дивлячись на адреси і чи мали вони коли-небудь баланс або транзакцію, пов’язану з ними, і він завершить перегляд щойно знайде 20 порожніх послідовних адрес, які ви ніколи не використовували і ніколи не отримували. Ось як імпортуються seed слова. Все це є частиною двох стандартів: bip39 для seed слів і bip32 для ієрархічних детермінованих гаманців.
Питання до Антонопулоса: Самі слова не вибрані вами, слова в seed фразі виробляються із випадкового 128-бітного чи 256-бітного числа. І коли ми говоримо “випадковий” що це означає? Чи означає це “істинний випадковий”, чи “криптографічно безпечний генератор псевдовипадкових чисел”, чи це “генератор псевдовипадкових чисел”?
Це залежить від багатьох факторів, ви можете згенерувати ентропію seed будь-яким вподобаним способом, ви можете використати процес, який використовує квантові флуктуації для створення дійсно випадкового числа, але для більшості цілей – криптографічно захищений генератор псевдовипадкових чисел, наприклад, той, який надається вашим комп’ютерним обладнанням, і з достатньою рандомністю, наприклад, ви наводите курсор миші і вводите текст на клавіатурі і т.д. ви створите достатню ентропію і випадковість для виробництва seed.
Теоретично якщо ви хочете, ви можете взяти декілька кубиків, які добре збалансовані, добре розроблені і перевірені, і помістити їх в коробку для взуття, і струснути їх разом; таким чином ви створите 128-бітне випадкове число. І потім ми можемо закодувати це число seed фразою з 12 англійських слів. У специфікації немає вимог про те, як треба створювати випадковість.
Запитання до Антонопулоса: “Чи можна імпортувати seed в інший гаманець?”
Так, один з найважливіших атрибутів seed слів, полягає в тому, що, якщо вони засновані на підтримуючих стандартах, таких як bip39, то їх можна перенести з будь-якого сумісного гаманця bip39 у будь-який інший сумісний гаманець з bip39. Ви можете імпортувати seed і гаманець знайде всі ваші транзакції і ключі. Ви можете одночасно імпортувати один і той же seed в декілька гаманців, і використовувати їх одночасно. Але, звісно, пам’ятайте, що seed фраза надає доступ до ваших коштів, тому будьте дуже обережні. Чим більше місць використовується для зберігання, і чим більше місць де ви їх розмістите, тим більше можливостей для відновлення, але в той же час збільшується ймовірність, що вас пограбують і ви втратите гроші.