Шість речей, які біткойнери повинні знати про приватні ключі

Приватні ключі були одним з основних компонентів Біткойна з моменту появи його першого опису в 2008 році. В основному, гаманці захищають користувача від необхідності розуміти, що таке приватні ключі та як вони працюють. Незважаючи на це, більшість користувачів все одно рано чи пізно стикаються віч-на-віч з приватними ключами і занадто часто це закінчується неприємно.
Біткойн: Захищена система обміну повідомленнями
Незважаючи на те, що Біткойн більш відомий як платіжна система, під шаром всього цього працює захищена система обміну повідомленнями, побудована поверх Інтернету. Замість передачі е-мейлів, текстів, або веб-сторінок, мережа Біткойна займається обробкою повідомлень передачі цінності, званихтранзакціями. Приватні ключі відіграють ключову роль у підтвердженні даних повідомлень, ідентифікації відправників та одержувачів, а також захисту мережі.
Приклад допоможе нам проілюструвати проблеми, з якими здатний впоратися приватний ключ. Уявіть, що Аліса хоче заплатити Бобу 10 біткойнів. Вона починає з того, що створює транзакцію, позначаючи Боба як одержувача платежу та 10 біткойнів як суму, яку зібралася переслати. Потім, Аліса повідомляє про цю транзакцію всіх користувачів Біткойн-мережі.

Далі, Алісі необхідно знайти спосіб запобігти стороннім змінам у транзакції, а також створення транзакцій від її імені.
Біткойн вирішує ці проблеми з допомогою системи, званої криптографією публічного ключа. Ця система використовує два шматочки інформації для автентифікації повідомлень. Публічний ключ ідентифікує одержувача та відправника і може передаватися іншим людям. Приватний ключ використовується у зв'язці з публічним для створенняпідпису до повідомлення, що не підробляється. Прив'язаний ключ варто тримати в секреті. Громадський і приватний кюлчі пов'язані математично.

Запам'ятавши цю інформацію, можна дізнатися про шість важливих речей про приватні ключі, які варто пам'ятати, поки користуєшся Біткойном.
1. Приватний ключ – це просто номер
Приватний ключ Біткойна - це просто число від одного до 10 77 . Це може здаватися не таким вже й великим обсягом для вибору, проте при практичному застосуванні він нескінченний.
Якби ви могли перебирати один трильйон приватних ключів за секунду, вам знадобилося б більше мільйона віків нашого всесвіту, щоб прорахувати їх усі. Навіть гірше, тільки відображення цих ключів могло б заощадити більше енергії, ніж виробляє сонце за 32 роки. Цей обсяг ключів відіграє фундаментальну роль у захисті мережі Біткойна.
Оскільки приватні ключі містять безліч цифр у своєму десятковому вираженні, було розроблено альтернативний формат, названий як «Формат Імпорту Гаманця», або WIF. Цей формат починається з цифри 5 і містить послідовність літер та цифр. Наприклад, ось приватний ключ, відображений у форматі WIF:
2. Транзакції – це Повідомлення, підписані приватним ключем
Для запобігання підробці Біткойн вимагає від кожної транзакції наявності цифрового підпису. Цей підпис, як і приватний ключ, є просто числом, вибраним з дуже широкого спектру чисел. Програма гаманець генерує підпис шляхом математичної обробки транзакції разом із правильним приватним ключем.
Така система працює тому, що будь-хто, хто має транзакцію з підписом, може підтвердити автентичність повідомлення. Так чи інакше підпис транзакції практично неможливо підробити. Єдиний спосіб створити правильнутранзакцію – це використовувати правильний приватний ключ.

На ілюстрації вище показано дві транзакції від Аліси до Боба. Перша відправляє 10 біткойнів, друга - 2. Один приватний ключ веде до генерації двох унікальних підписів.
На відміну від фізичного підпису, який ви можете поставити на чеку, підпис транзакції змінюється, якщо хоч трохи змінилася сама транзакція. Як саме зміниться підпис передбачити не можна, таким чином тільки особа, яка володіє приватним ключем, зможе надати правильний підпис.
3. Будь-хто, хто володіє вашими приватними ключами, може вкрасти ваші кошти
Будь-яка транзакція, яка має правильний підпис, буде прийнята мережею Біткойна. Одночасно, будь-яка особа, яка володіє вашим приватним ключем, може створити правильну транзакцію. Ці два факти з'єднані разом означають, що хтось, хто знає ваш приватний ключ, може вас обікрасти.
Багато шляхів відкриті злодіям, які прагнуть приватних ключів. Два найпопулярніші шляхи – носії пам'яті (флеш-карти) та канали комунікацій. Тому слід дотримуватися суворих заходів при транспортуванні та зберіганні приватних ключів.
Програмні гаманці зазвичай зберігають приватні ключі у "файлі гаманці" на основному жорсткому диску. Гаманці зазвичай зберігають цей файл у стандартній, широко відомій директорії, роблячи його ідеальною метою для вірусів, спрямованих проти власників критивалют.
Щоб протистояти загрозі, програмні гаманці пропонують можливість зашифрувати файл гаманця. Будь-який зломщик, який отримав доступ до файлу гаманця, потім повинен буде розшифрувати його. Складність цього завдання залежить від якості шифрування та сили використаного пароля. Файли гаманців можуть бути зашифровані безліччю програм-гаманців, вам потрібнопросто встановити пароль.

Запобігання випадковому витоку приватних ключів – головне завдання “холодного сховища”. За детальною інформацією звертайтесь сюди.
4. Адреси виводяться з публічних ключів, які самі виводяться із приватних ключів
Публічний ключ Біткойна виводиться проведенням чітко визначених математичних операцій, описаних з допомогою Еліптичної Криптографії, з приватним ключем. Як і приватний ключ, публічний ключ це просто велика кількість.
Взаємодія між приватним та публічним ключами є прикладом математичної функції із секретом – її легко виконати в одному напрямку, але практично неможливо виконати у зворотному. Така односпрямованість лежить у центрі моделі безпеки Біткойна.
Публічні ключі, як і приватні, можуть бути скорочені, з метою зробити їх зручнішими для дисплеїв і клавіатур. Адреса - результат застосування багатоступінчастої трансформації по відношенню до публічного ключа. Це дає рядок з літер та цифр, зазвичай із цифрою “1” на початку.
5. Безпека залежить від вибору хорошого приватного ключа
Наприклад, уявіть, що ми хочемо використовувати приватний ключ, який легко запам'ятати. Цифра 1 - і легко запам'ятати, і дійсний приватний ключ Біткойна. Але як безпечний він практично?
Протиставте простоту цієї схеми ситуації, де приватний ключ був обраний чудовим генератором випадкових чисел. Без даних про те, яким може бути ключ, повторення брутфорс атаки стане єдиним варіантом. Але, як ми вже переконалися, здійснення такого плану неможливе.
Що може статися, якщо генератор випадкових чисел був зовсім випадковим? Наприклад, якщо підсумкові приватні ключі були сконцентровані навколо постійного значення ввузькому проміжку?

На жаль, не завжди легко визначити, яка фраза є небезпечним мозковим гаманцем, а яка безпечним. Атакуючі можуть використовувати цю невизначеність і недосвідченість нових користувачів для крадіжки коштів. Наприклад, злодій міг би скомпілювати величезну базу даних простих і поширених фраз і паролів. Така база даних може містити трильйони записів або більше, але все одно буде доступною до всеосяжного пошуку з мінімальними обчислювальними витратами.
Безпечні приватні ключі генеруються з більшим рівнем непередбачуваності, таким чином їх не можна вгадати ні до ні після генерації.
6. Приватні ключі (типу) переносяться
У більшості випадків гаманець не показує вам процес генерації, використання та зберігання приватних ключів. Проте, приватні ключі можуть бути видимими час від часу. Коли таке трапляється, розуміння приватних ключів та того, як вони взаємодіють із вашим конкретним софтом, стає важливим.
Паперові гаманці є найпоширенішим шляхом, яким приватні ключі потрапляють за межі програмних гаманців. Незважаючи на те, що вони зазвичай різноформатні, суть будь-якого паперового гаманця – це надрукований приватний ключ.

Якщо одна програма гаманець стане несправною (простіше кажучи, застаріє -прим. пер.), приватні ключі можна експортувати до іншої програми. Така процедура порятунку відкриває другий основний шлях, за допомогою якого користувач може візуально ознайомитися з приватним ключем. Така процедура полягає у відновленні стану програмного гаманця через файл бекапа.
Біткойн можерозглядатись як відкрита система обміну повідомленнями, захищена криптографією публічних ключів. На відміну від інших систем, захищених парами логінів та паролів, Біткойн захищений за допомогою цифрових повідомлень-підписів, створюваних унікальним приватним ключем. Така єдина точка доступу створює дуже високий рівень безпеки під час генерації, використання та зберігання приватних ключів.