Контроль над вашими особистими ключами є основою суверенітету Біткойна. Без цього ви якимось чином передаєте контроль над своїми грошима комусь іншому. Як каже прислів'я: "Немає ваших ключів, немає ваших монет". Один з заплутаних аспектів Біткойна для новачків стосується реального місця ваших біткойнів. Коли думають про гаманець, уявляють "місце, де я зберігаю свої гроші". Насправді, ваш гаманець Біткойн не "зберігає" ваші біткойни, він просто зберігає ваші приватні ключі. Ваші біткойни насправді є записами даних на блокчейні, підтримуваними всіма учасниками мережі. Коли ви хочете витратити свої біткойни, ви насправді пропонуєте оновлення даних, збережених у блокчейні. Приватний ключ є засобом, за допомогою якого протокол гарантує, що тільки ви можете дозволити оновлення блокчейну для витрати ваших біткойнів.
Отже, як виглядають ваші приватні ключі? Це просто дуже великі числа. Справді дуже великі. Ось як виглядає приватний ключ у бінарному форматі : _11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_ 256 одиниць і нулів випадкових. Це випадкове число, яке, в кінцевому рахунку, захищає ваші Біткойни. Це може не здаватися багато, але саме ця випадковість забезпечує безпеку вашого гаманця. Існує майже стільки ж можливих приватних ключів Біткойн, скільки атомів у спостережуваному всесвіті. Це кількість цифр, яку комп'ютер повинен пройти, щоб згенерувати і каталогізувати всі потенційно можливі приватні ключі. Доки процес генерації ключів дійсно випадковий, ваші ключі в безпеці.
Ось як виглядає приватний ключ у шістнадцятковому форматі ( двійковий формат використовує два знаки для кодування числа: 1 і 0, шістнадцятковий використовує 16, від 0 до 9 і від A до F) : _E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A_
І ось як виглядає приватний ключ у форматі імпорту неп compressed гаманця (WIF): _5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G_
Формат WIF був способом, яким всі взаємодіяли зі своїми приватними ключами на початку Біткойна. У той час ви могли генерувати один приватний ключ, а потім генерувати публічний ключ на його основі. Процес генерації публічного ключа в основному полягає у множенні дуже великих чисел, але це трохи складніше. Усі публічні ключі є точками x і y на графіку, що представляє дуже-дуже велику криву, яка згинається сама на себе.
На кривій графіка, у випадку Біткойна, є точка, що називається "генераторною точкою". Цю генераторну точку можна вважати "базовою точкою" на кривій Secp256k1. Це невід'ємна частина процесу генерації ключів та підпису з їх допомогою. Ось як виглядає генераторна точка кривої Біткойна: _G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798_
Щоб згенерувати публічний ключ з вашого приватного ключа, ви берете приватний ключ, який ви згенерували, і множите його на генераторну точку. Це так просто. Тепер точка на графіку буде встановлена з математичним співвідношенням з приватним ключем, який ви згенерували, який знаєте тільки ви.
Ось неконвертований публічний ключ, що показує точки x та y: _04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_
Публічні ключі дуже часто "стискаються" в рідкісних випадках, коли ви з ними взаємодієте, щоб просто зберегти координату x з байтом, що вказує, чи є координата y негативною або позитивною. Це суттєво зменшує їх: _04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_
Коли ви підписуєте транзакцію своїм приватним ключем, все зводиться до простої множення. Генеруючи випадкове число (nonce) і використовуючи його разом із своїм приватним ключем для значного множення хешу транзакції, яку ви підписуєте, ви створюєте підпис (, що складається з двох значень: r і s). Це дозволяє комусь виконати алгоритм для перевірки, що повідомлення було підписане відповідним приватним ключем, не розкриваючи цей ключ. Те, що гарантує, що тільки ви можете дозволити витрату ваших біткойнів, насправді є простою множенням дуже, дуже великих чисел.
Якщо ви не були знайомі з цими концепціями перед прочитанням цієї статті, все це може здаватися дещо лякаючим. Бінарний? Шістнадцятковий? Точки на графіку? Як зберегти WIF?
З тих пір, як були розроблені більш інтуїтивні методи для управління цими даними, більшість користувачів не знайомі з цими складними форматами. Ви, напевно, маєте досвід роботи з насінням слів, також відомими як фрази відновлення.
Мнемонічні зерна або фрази відновлення були створені для вирішення проблеми взаємодії з вашими приватними ключами.
Як ми вже бачили раніше, приватні ключі врешті-решт є довгим рядком одиниць і нулів, згенерованих випадковим чином. Уявіть, що ви намагаєтеся зробити їх копії та переконатися, що ви не зробили помилок при їх розшифруванні: _11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_
Одна єдина помилка при копіюванні лише однієї цифри, і ваша резервна копія ключів стає непотрібною. Ось тут на допомогу приходять мнемонічні фрази. 256 послідовних цифр 1 та 0 не є зручним способом взаємодії з конфіденційною інформацією. Неправильна транскрипція цього числа означає втрату доступу до вашого рахунку.
_вантажівка подовжити лють осел нагадати деталі реформи ноутбук розділити смуток тому що жир_
Це набагато легше керувати, чи не так? Лише 12 слів. Як це працює - перейти від набору випадкових одиниць і нулів до рядка слів, які насправді мають сенс для вас? Схема кодування, так само як бінарний або шістнадцятковий!
Кожне з цих 12 слів у вище наведеному мнемонічному насінні представляє двійкове число в схемі кодування, яка співвідносить певні послідовності 1 і 0 зі словами. Якщо повернутися до прикладу приватного ключа WIF, наведеного раніше, це просто число, закодоване в певній схемі кодування, у цьому випадку base 58, яка використовує всі цифри та літери алфавіту, за винятком 0 і 1, а також O та l (, враховуючи регістр ). Виняток цих символів було зроблено спеціально для того, щоб ймовірність помилок транскрипції була низькою через плутанину між 1 і літерою l або 0 і літерою O. bech32 та bech32m, які використовуються Segwit і Taproot, йдуть ще далі, використовуючи лише цей набір символів (qpzry9x8gf2tvdw0s3jn54khce6mua7l).
Пропозиція покращення Біткойн 39 (BIP 39) ввела стандартизовану схему кодування, де кожне слово в спеціально створеному словнику асоціюється за алфавітним порядком з двійковим числом від 00000000001 до 11111111111. Вище наведене демонстраційне насіння відповідає цьому :
У двійковій системі це виглядає так: 11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 000 10011110 0101001 1011
Всього є 2048 слів, кожне з яких пов'язане з конкретним рядком з 11 цифр одиниць і нулів, спеціально розробленим для того, щоб людям було легше взаємодіяти зі своїми секретними ключами. Коли ви генеруєте випадкове число для свого приватного ключа, ваш гаманець розрізає це число на частини з 11 двійкових цифр і співвідносить їх зі словником мнемонічних BIP 39. Це завжди одне й те саме велике число, але тепер його можна прочитати як слова французькою мовою. Оскільки ваш мозок набагато більше звик до цього формату, ніж до довгих рядків одиниць і нулів, це значно знижує шанси на те, що ви запишете щось неправильно і втратите свої Біткоїни в процесі.
Ви, можливо, помітили, що в сиродовому бінарному кодуванні насіння слів, наведеному вище, чотири цифри (1011) розташовані окремо, і останнє "слово" насправді має лише 8 цифр. Це контрольна сума для забезпечення правильності початкової фрази. Коли ви генеруєте випадкове число, недостатньо цифр, щоб точно відповідати 12 ( або 24) словам. Гаманець хешує існуючі цифри, які ви згенерували, і бере перші цифри з хешу, щоб додати їх в кінець вашого випадкового числа. Це дає вам достатньо цифр, щоб відповідати останньому слову.
Це останнє слово дозволяє вам виконати перевірку безпеки копій вашого насіння. Якщо ви неправильно введете мнемонічне слово в гаманці, контрольна сума не відповідатиме. Кожне насіння з 12 або 24 слів має кілька потенційно дійсних контрольних слів, але якщо останнє слово не відповідає контрольній сумі правильного насіння, ваш гаманець попередить вас про те, що воно недійсне. Це дає людям інтуїтивно зрозумілий, але математичний спосіб впевнитися, що їх резервні копії правильні, на відміну від незручного процесу дешифрування і збереження сирих двійкових чисел.
У підсумку, мнемонічні фрази BIP 39 пропонують більш зручний і безпечний спосіб управління вашими ключами Біткойн, зберігаючи при цьому математичну складність, яка лежить в основі безпеки системи. Ця інновація значно полегшила використання Біткойн для широкої публіки, сприяючи таким чином його зростаючій популярності.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Контроль над вашими особистими ключами є основою суверенітету Біткойна. Без цього ви якимось чином передаєте контроль над своїми грошима комусь іншому. Як каже прислів'я: "Немає ваших ключів, немає ваших монет". Один з заплутаних аспектів Біткойна для новачків стосується реального місця ваших біткойнів. Коли думають про гаманець, уявляють "місце, де я зберігаю свої гроші". Насправді, ваш гаманець Біткойн не "зберігає" ваші біткойни, він просто зберігає ваші приватні ключі. Ваші біткойни насправді є записами даних на блокчейні, підтримуваними всіма учасниками мережі. Коли ви хочете витратити свої біткойни, ви насправді пропонуєте оновлення даних, збережених у блокчейні. Приватний ключ є засобом, за допомогою якого протокол гарантує, що тільки ви можете дозволити оновлення блокчейну для витрати ваших біткойнів.
Отже, як виглядають ваші приватні ключі? Це просто дуже великі числа. Справді дуже великі. Ось як виглядає приватний ключ у бінарному форматі :
_11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_
256 одиниць і нулів випадкових. Це випадкове число, яке, в кінцевому рахунку, захищає ваші Біткойни. Це може не здаватися багато, але саме ця випадковість забезпечує безпеку вашого гаманця. Існує майже стільки ж можливих приватних ключів Біткойн, скільки атомів у спостережуваному всесвіті. Це кількість цифр, яку комп'ютер повинен пройти, щоб згенерувати і каталогізувати всі потенційно можливі приватні ключі. Доки процес генерації ключів дійсно випадковий, ваші ключі в безпеці.
Ось як виглядає приватний ключ у шістнадцятковому форматі ( двійковий формат використовує два знаки для кодування числа: 1 і 0, шістнадцятковий використовує 16, від 0 до 9 і від A до F) :
_E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A_
І ось як виглядає приватний ключ у форматі імпорту неп compressed гаманця (WIF):
_5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G_
Формат WIF був способом, яким всі взаємодіяли зі своїми приватними ключами на початку Біткойна. У той час ви могли генерувати один приватний ключ, а потім генерувати публічний ключ на його основі. Процес генерації публічного ключа в основному полягає у множенні дуже великих чисел, але це трохи складніше. Усі публічні ключі є точками x і y на графіку, що представляє дуже-дуже велику криву, яка згинається сама на себе.
На кривій графіка, у випадку Біткойна, є точка, що називається "генераторною точкою". Цю генераторну точку можна вважати "базовою точкою" на кривій Secp256k1. Це невід'ємна частина процесу генерації ключів та підпису з їх допомогою. Ось як виглядає генераторна точка кривої Біткойна:
_G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798_
Щоб згенерувати публічний ключ з вашого приватного ключа, ви берете приватний ключ, який ви згенерували, і множите його на генераторну точку. Це так просто. Тепер точка на графіку буде встановлена з математичним співвідношенням з приватним ключем, який ви згенерували, який знаєте тільки ви.
Ось неконвертований публічний ключ, що показує точки x та y:
_04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_
Публічні ключі дуже часто "стискаються" в рідкісних випадках, коли ви з ними взаємодієте, щоб просто зберегти координату x з байтом, що вказує, чи є координата y негативною або позитивною. Це суттєво зменшує їх:
_04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_
Коли ви підписуєте транзакцію своїм приватним ключем, все зводиться до простої множення. Генеруючи випадкове число (nonce) і використовуючи його разом із своїм приватним ключем для значного множення хешу транзакції, яку ви підписуєте, ви створюєте підпис (, що складається з двох значень: r і s). Це дозволяє комусь виконати алгоритм для перевірки, що повідомлення було підписане відповідним приватним ключем, не розкриваючи цей ключ. Те, що гарантує, що тільки ви можете дозволити витрату ваших біткойнів, насправді є простою множенням дуже, дуже великих чисел.
Якщо ви не були знайомі з цими концепціями перед прочитанням цієї статті, все це може здаватися дещо лякаючим. Бінарний? Шістнадцятковий? Точки на графіку? Як зберегти WIF?
З тих пір, як були розроблені більш інтуїтивні методи для управління цими даними, більшість користувачів не знайомі з цими складними форматами. Ви, напевно, маєте досвід роботи з насінням слів, також відомими як фрази відновлення.
Мнемонічні зерна або фрази відновлення були створені для вирішення проблеми взаємодії з вашими приватними ключами.
Як ми вже бачили раніше, приватні ключі врешті-решт є довгим рядком одиниць і нулів, згенерованих випадковим чином. Уявіть, що ви намагаєтеся зробити їх копії та переконатися, що ви не зробили помилок при їх розшифруванні:
_11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_
Одна єдина помилка при копіюванні лише однієї цифри, і ваша резервна копія ключів стає непотрібною. Ось тут на допомогу приходять мнемонічні фрази. 256 послідовних цифр 1 та 0 не є зручним способом взаємодії з конфіденційною інформацією. Неправильна транскрипція цього числа означає втрату доступу до вашого рахунку.
_вантажівка подовжити лють осел нагадати деталі реформи ноутбук розділити смуток тому що жир_
Це набагато легше керувати, чи не так? Лише 12 слів. Як це працює - перейти від набору випадкових одиниць і нулів до рядка слів, які насправді мають сенс для вас? Схема кодування, так само як бінарний або шістнадцятковий!
Кожне з цих 12 слів у вище наведеному мнемонічному насінні представляє двійкове число в схемі кодування, яка співвідносить певні послідовності 1 і 0 зі словами. Якщо повернутися до прикладу приватного ключа WIF, наведеного раніше, це просто число, закодоване в певній схемі кодування, у цьому випадку base 58, яка використовує всі цифри та літери алфавіту, за винятком 0 і 1, а також O та l (, враховуючи регістр ). Виняток цих символів було зроблено спеціально для того, щоб ймовірність помилок транскрипції була низькою через плутанину між 1 і літерою l або 0 і літерою O. bech32 та bech32m, які використовуються Segwit і Taproot, йдуть ще далі, використовуючи лише цей набір символів (qpzry9x8gf2tvdw0s3jn54khce6mua7l).
Пропозиція покращення Біткойн 39 (BIP 39) ввела стандартизовану схему кодування, де кожне слово в спеціально створеному словнику асоціюється за алфавітним порядком з двійковим числом від 00000000001 до 11111111111. Вище наведене демонстраційне насіння відповідає цьому :
камйон : 11101001001
продовжити : 10110110001
фурія : 01011110011
ане : 01000001001
нагадати : 10110101110
ноутбук : 01111101000
реформа : 10110100010
деталі : 00111100010
ділити : 11010010001
чарга : 01100110100
тому що : 00010011110
жир : 01010011011
У двійковій системі це виглядає так:
11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 000 10011110 0101001 1011
Всього є 2048 слів, кожне з яких пов'язане з конкретним рядком з 11 цифр одиниць і нулів, спеціально розробленим для того, щоб людям було легше взаємодіяти зі своїми секретними ключами. Коли ви генеруєте випадкове число для свого приватного ключа, ваш гаманець розрізає це число на частини з 11 двійкових цифр і співвідносить їх зі словником мнемонічних BIP 39. Це завжди одне й те саме велике число, але тепер його можна прочитати як слова французькою мовою. Оскільки ваш мозок набагато більше звик до цього формату, ніж до довгих рядків одиниць і нулів, це значно знижує шанси на те, що ви запишете щось неправильно і втратите свої Біткоїни в процесі.
Ви, можливо, помітили, що в сиродовому бінарному кодуванні насіння слів, наведеному вище, чотири цифри (1011) розташовані окремо, і останнє "слово" насправді має лише 8 цифр. Це контрольна сума для забезпечення правильності початкової фрази. Коли ви генеруєте випадкове число, недостатньо цифр, щоб точно відповідати 12 ( або 24) словам. Гаманець хешує існуючі цифри, які ви згенерували, і бере перші цифри з хешу, щоб додати їх в кінець вашого випадкового числа. Це дає вам достатньо цифр, щоб відповідати останньому слову.
Це останнє слово дозволяє вам виконати перевірку безпеки копій вашого насіння. Якщо ви неправильно введете мнемонічне слово в гаманці, контрольна сума не відповідатиме. Кожне насіння з 12 або 24 слів має кілька потенційно дійсних контрольних слів, але якщо останнє слово не відповідає контрольній сумі правильного насіння, ваш гаманець попередить вас про те, що воно недійсне. Це дає людям інтуїтивно зрозумілий, але математичний спосіб впевнитися, що їх резервні копії правильні, на відміну від незручного процесу дешифрування і збереження сирих двійкових чисел.
У підсумку, мнемонічні фрази BIP 39 пропонують більш зручний і безпечний спосіб управління вашими ключами Біткойн, зберігаючи при цьому математичну складність, яка лежить в основі безпеки системи. Ця інновація значно полегшила використання Біткойн для широкої публіки, сприяючи таким чином його зростаючій популярності.