В основі самостійності Біткойна лежить контроль над вашими приватними ключами. Без цього ви, по суті, передаєте контроль над своїми коштами комусь іншому. Як кажуть, “Не ваші ключі, не ваші монети.” Для тих, хто не знайомий з технічними основами Біткойна, парадоксальним аспектом є “де” насправді знаходиться ваш Біткойн. Коли люди думають про гаманець, вони уявляють “місце, де я зберігаю свої гроші.” Насправді, ваш гаманець Біткойна не “містить” ваш Біткойн; він лише зберігає ваші приватні ключі. Ваш Біткойн існує як записи даних в блокчейні, які підтримуються всіма учасниками мережі. Коли ви витрачаєте свої біткоїни, ви пропонуєте оновлення даних блокчейну. Приватний ключ - це спосіб протоколу забезпечити, що тільки ви можете авторизувати оновлення блокчейну, яке витрачає ваш Біткойн.
Отже, що таке ваші приватні ключі? Це просто неймовірно великі числа. Ось приватний ключ у двійковому вигляді:
256 випадкових 1 та 0. Це випадкове число є тим, що врешті-решт захищає вашу Біткойн. Можливо, це не виглядає як багато, але його випадковість гарантує безпеку вашого гаманця. Існує майже стільки ж можливих приватних ключів Біткойн, скільки атомів у видимому всесвіті. Це кількість чисел, які комп'ютер мав би порахувати, щоб згенерувати та каталогізувати всі потенційно можливі приватні ключі. Доки процес, що використовується для генерації ключів, є справді випадковим, ваші ключі будуть в безпеці.
Ось як виглядає приватний ключ у шістнадцятковій формі (бінарний використовує дві цифри для кодування числа, 1 і 0, шістнадцятковий використовує 16 цифр, 0-9 і A-F):
Формат WIF був тим, як усі взаємодіяли з їхніми приватними ключами в ранні дні Біткойна. У цю еру ви могли згенерувати один приватний ключ за раз, а потім згенерувати з нього публічний ключ. Процес генерації публічного ключа в основному полягає в множенні дуже великих чисел, але є і дещо більше. Усі публічні ключі є точками x і y на графіку, який показує дуже-дуже велику криву, що повертається сама на себе.
На кривій графіка, у випадку Біткойна Secp256k1, є точка, яку називають “генераторною точкою”. Цю генераторну точку можна вважати “базовою точкою” кривої Secp256k1. Вона є невід'ємною частиною процесу генерації ключів та підписування з ними. Ось генераторна точка кривої Біткойна:
Щоб згенерувати публічний ключ з вашого приватного ключа, ви берете приватний ключ, який ви згенерували, і множите його на точку генератора. Ось і все. Це тепер встановлює точку на графіку з математичним зв'язком до приватного ключа, який ви згенерували, про який знаєте тільки ви.
Ось неконденсований публічний ключ, що показує точки x та y:
Досить часто “стискають” публічні ключі в рідкісному випадку, коли ви взаємодієте з ними, щоб просто зберегти x-координату з байтом, який вказує, чи є y-координата від'ємною чи додатною. Це значно скорочує його:
Коли ви підписуєте транзакцію своїм приватним ключем, це знову ж таки зводиться до простого множення. Генеруючи випадкове число (, нонс ) і використовуючи його разом зі своїм приватним ключем для множення хешу транзакції, яку ви підписуєте, це виробляє підпис (, що складається з двох значень, r та s ). Це дозволяє комусь запустити алгоритм для перевірки того, що повідомлення було підписано відповідним приватним ключем, не розкриваючи цей ключ. Те, що забезпечує, щоб тільки ви могли авторизувати витрати вашого Біткойна, - це, по суті, множення дуже, дуже великих чисел.
Якщо ви раніше не були дуже знайомі з цими концепціями, все це, напевно, здається дещо лякаючим. Бінарний? Шістнадцяткові? Графічні точки? Як зробити резервну копію WIF?
Оскільки були розроблені більш інтуїтивні способи обробки цих даних, більшість користувачів не знайомі з цими складними форматами. Ви, напевно, більше досвідчені з словесними насіннями, також відомими як фрази насіння.
BIP 39 Мнемонічні насіння
Мнемонічні насіння або фрази насіння були створені для вирішення проблеми взаємодії з вашими приватними ключами.
Як ми обговорювали раніше, приватні ключі в кінцевому рахунку є просто довгим рядком одиниць і нулів, які випадковим чином генеруються. Уявіть, що ви намагаєтеся зробити копії цього і впевнитися, що не помиляєтеся при його транскрипції:
Все, що потрібно, це одна помилка при копіюванні однієї цифри, щоб зробити резервну копію ваших ключів марною. Тут на допомогу приходять мнемонічні насіння. 256 підряд 1 і 0 — це не зручний для людини спосіб взаємодії з чутливою інформацією. Неправильне записування цього номера означає втрату доступу до вашого рахунку.
вантажівка оновити лють осел пам'ятати ноутбук реформувати деталь поділити біль тому що товстий
Це набагато простіше, чи не так? Лише 12 слів. То як це працює, переходячи від купи випадкових 1 і 0 до рядка слів, що насправді мають сенс для вас? Схема кодування, така як двійкова або шістнадцяткова!
Кожне з цих 12 слів у попередньому мнемонічному насінні є двійковим числом у схемі кодування, яка відображає конкретні рядки одиниць і нулів на слова. Якщо ми знову поглянемо на попередній приклад 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
Існує 2048 слів, кожне з яких відображається на специфічний 11-значний рядок з 1s і 0s, що робить його зручним для людей, щоб взаємодіяти зі своїми приватними ключами. Коли ви генеруєте випадкове число для свого приватного ключа, ваш гаманець розбиває це число на частини з 11-значних двійкових чисел і відображає їх на мнемонічному словнику BIP 39. Це все ще те саме велике число, але тепер ви можете читати його як англійські слова. Оскільки ваш мозок набагато більше звик до цього формату, ніж до довгих рядків 1s і 0s, це суттєво зменшує ймовірність того, що ви запишете щось неправильно і втратите свій Біткойн у процесі.
Ви, можливо, помітили, що в сиродовому бінарному кодуванні слова seed вище є чотири цифри (, які стоять самостійно, а останнє “слово” насправді складається лише з 8 цифр. Це контрольна сума, щоб забезпечити дійсність фрази насіння. Коли ви генеруєте своє випадкове число, недостатньо цифр, щоб точно відобразити його на 12 ) або 24( слів. Гаманець кодує існуючі цифри, які він згенерував, і бере перші цифри хешу, щоб додати їх наприкінці вашого випадкового числа. Це дає вам достатньо цифр, щоб відобразити на останнє слово.
Це останнє слово дозволяє вам виконати перевірку безпеки копій вашого насіння. Якщо ви введете своє мнемонічне насіння неправильно в гаманці, контрольна сума не відповідатиме. Кожне насіння, що складається з 12 або 24 слів, має кілька потенційно дійсних слів контрольної суми, але якщо останнє слово не відповідає контрольній сумі правильного насіння, ваш гаманець попередить вас, що воно недійсне. Це дає людям інтуїтивний, але все ж математичний спосіб забезпечити правильність їх резервних копій, на відміну від складного процесу переписування та резервного копіювання сирих двійкових чисел.
Вибір конкретних слів зі списку зайшов настільки далеко, що жодне з 2048 слів не має перших чотирьох букв однаковими. Це було зроблено, щоб знизити ймовірність того, що люди припустяться помилок при транскрипції, плутаючи схожі слова і в результаті отримуючи неправильний резервний запис своїх приватних ключів.
Переклад цих слів у набір кількох публічних/приватних ключів досить простий. Ваш мнемонічний насіння береться та хешується з використанням SHA512, що генерує хеш з 512 окремих 1 і 0. Половина цього виходу використовується як фактичний приватний ключ, а інша половина використовується як вхід для SHA512 з індексним номером та існуючим публічним або приватним ключем для генерації нової пари ключів. Ви можете робити це стільки разів, скільки хочете, щоб згенерувати нові публічні/приватні ключі, які можуть бути відновлені з вашої єдиної мнемонічної фрази.
Це гарантує, що ви можете керувати своїми приватними ключами найпростішим і найнадійнішим способом з найменшими шансами на помилку, яка призведе до втрати ваших грошей. І все це було зроблено за допомогою математики! Сподіваємося, тепер ви добре розумієте, чому люди кажуть, що Біткойн – це гроші, “захищені математикою.”
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Розуміння ваших Біткойн ключів: слова насіння Bip39
В основі самостійності Біткойна лежить контроль над вашими приватними ключами. Без цього ви, по суті, передаєте контроль над своїми коштами комусь іншому. Як кажуть, “Не ваші ключі, не ваші монети.” Для тих, хто не знайомий з технічними основами Біткойна, парадоксальним аспектом є “де” насправді знаходиться ваш Біткойн. Коли люди думають про гаманець, вони уявляють “місце, де я зберігаю свої гроші.” Насправді, ваш гаманець Біткойна не “містить” ваш Біткойн; він лише зберігає ваші приватні ключі. Ваш Біткойн існує як записи даних в блокчейні, які підтримуються всіма учасниками мережі. Коли ви витрачаєте свої біткоїни, ви пропонуєте оновлення даних блокчейну. Приватний ключ - це спосіб протоколу забезпечити, що тільки ви можете авторизувати оновлення блокчейну, яке витрачає ваш Біткойн.
Отже, що таке ваші приватні ключі? Це просто неймовірно великі числа. Ось приватний ключ у двійковому вигляді:
110001011011001011110111100000101000100000010001001111010111011010101110111001111111111110101011101001011101001110100111001110010100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101011001101101010
256 випадкових 1 та 0. Це випадкове число є тим, що врешті-решт захищає вашу Біткойн. Можливо, це не виглядає як багато, але його випадковість гарантує безпеку вашого гаманця. Існує майже стільки ж можливих приватних ключів Біткойн, скільки атомів у видимому всесвіті. Це кількість чисел, які комп'ютер мав би порахувати, щоб згенерувати та каталогізувати всі потенційно можливі приватні ключі. Доки процес, що використовується для генерації ключів, є справді випадковим, ваші ключі будуть в безпеці.
Ось як виглядає приватний ключ у шістнадцятковій формі (бінарний використовує дві цифри для кодування числа, 1 і 0, шістнадцятковий використовує 16 цифр, 0-9 і A-F):
E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A
І ось як приватний ключ виглядає в не стиснутому форматі імпорту гаманця (WIF):
5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G
Формат WIF був тим, як усі взаємодіяли з їхніми приватними ключами в ранні дні Біткойна. У цю еру ви могли згенерувати один приватний ключ за раз, а потім згенерувати з нього публічний ключ. Процес генерації публічного ключа в основному полягає в множенні дуже великих чисел, але є і дещо більше. Усі публічні ключі є точками x і y на графіку, який показує дуже-дуже велику криву, що повертається сама на себе.
На кривій графіка, у випадку Біткойна Secp256k1, є точка, яку називають “генераторною точкою”. Цю генераторну точку можна вважати “базовою точкою” кривої Secp256k1. Вона є невід'ємною частиною процесу генерації ключів та підписування з ними. Ось генераторна точка кривої Біткойна:
G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
Щоб згенерувати публічний ключ з вашого приватного ключа, ви берете приватний ключ, який ви згенерували, і множите його на точку генератора. Ось і все. Це тепер встановлює точку на графіку з математичним зв'язком до приватного ключа, який ви згенерували, про який знаєте тільки ви.
Ось неконденсований публічний ключ, що показує точки x та y:
04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED
Досить часто “стискають” публічні ключі в рідкісному випадку, коли ви взаємодієте з ними, щоб просто зберегти x-координату з байтом, який вказує, чи є y-координата від'ємною чи додатною. Це значно скорочує його:
02C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158
Коли ви підписуєте транзакцію своїм приватним ключем, це знову ж таки зводиться до простого множення. Генеруючи випадкове число (, нонс ) і використовуючи його разом зі своїм приватним ключем для множення хешу транзакції, яку ви підписуєте, це виробляє підпис (, що складається з двох значень, r та s ). Це дозволяє комусь запустити алгоритм для перевірки того, що повідомлення було підписано відповідним приватним ключем, не розкриваючи цей ключ. Те, що забезпечує, щоб тільки ви могли авторизувати витрати вашого Біткойна, - це, по суті, множення дуже, дуже великих чисел.
Якщо ви раніше не були дуже знайомі з цими концепціями, все це, напевно, здається дещо лякаючим. Бінарний? Шістнадцяткові? Графічні точки? Як зробити резервну копію WIF?
Оскільки були розроблені більш інтуїтивні способи обробки цих даних, більшість користувачів не знайомі з цими складними форматами. Ви, напевно, більше досвідчені з словесними насіннями, також відомими як фрази насіння.
BIP 39 Мнемонічні насіння
Мнемонічні насіння або фрази насіння були створені для вирішення проблеми взаємодії з вашими приватними ключами.
Як ми обговорювали раніше, приватні ключі в кінцевому рахунку є просто довгим рядком одиниць і нулів, які випадковим чином генеруються. Уявіть, що ви намагаєтеся зробити копії цього і впевнитися, що не помиляєтеся при його транскрипції:
110001011011001011110111100000101000100000010001001111010111011010101110111001111111111110101011101001011101001110100111001110010100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101011001101101010
Все, що потрібно, це одна помилка при копіюванні однієї цифри, щоб зробити резервну копію ваших ключів марною. Тут на допомогу приходять мнемонічні насіння. 256 підряд 1 і 0 — це не зручний для людини спосіб взаємодії з чутливою інформацією. Неправильне записування цього номера означає втрату доступу до вашого рахунку.
вантажівка оновити лють осел пам'ятати ноутбук реформувати деталь поділити біль тому що товстий
Це набагато простіше, чи не так? Лише 12 слів. То як це працює, переходячи від купи випадкових 1 і 0 до рядка слів, що насправді мають сенс для вас? Схема кодування, така як двійкова або шістнадцяткова!
Кожне з цих 12 слів у попередньому мнемонічному насінні є двійковим числом у схемі кодування, яка відображає конкретні рядки одиниць і нулів на слова. Якщо ми знову поглянемо на попередній приклад 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 00010011110 01010011011
Існує 2048 слів, кожне з яких відображається на специфічний 11-значний рядок з 1s і 0s, що робить його зручним для людей, щоб взаємодіяти зі своїми приватними ключами. Коли ви генеруєте випадкове число для свого приватного ключа, ваш гаманець розбиває це число на частини з 11-значних двійкових чисел і відображає їх на мнемонічному словнику BIP 39. Це все ще те саме велике число, але тепер ви можете читати його як англійські слова. Оскільки ваш мозок набагато більше звик до цього формату, ніж до довгих рядків 1s і 0s, це суттєво зменшує ймовірність того, що ви запишете щось неправильно і втратите свій Біткойн у процесі.
Ви, можливо, помітили, що в сиродовому бінарному кодуванні слова seed вище є чотири цифри (, які стоять самостійно, а останнє “слово” насправді складається лише з 8 цифр. Це контрольна сума, щоб забезпечити дійсність фрази насіння. Коли ви генеруєте своє випадкове число, недостатньо цифр, щоб точно відобразити його на 12 ) або 24( слів. Гаманець кодує існуючі цифри, які він згенерував, і бере перші цифри хешу, щоб додати їх наприкінці вашого випадкового числа. Це дає вам достатньо цифр, щоб відобразити на останнє слово.
Це останнє слово дозволяє вам виконати перевірку безпеки копій вашого насіння. Якщо ви введете своє мнемонічне насіння неправильно в гаманці, контрольна сума не відповідатиме. Кожне насіння, що складається з 12 або 24 слів, має кілька потенційно дійсних слів контрольної суми, але якщо останнє слово не відповідає контрольній сумі правильного насіння, ваш гаманець попередить вас, що воно недійсне. Це дає людям інтуїтивний, але все ж математичний спосіб забезпечити правильність їх резервних копій, на відміну від складного процесу переписування та резервного копіювання сирих двійкових чисел.
Вибір конкретних слів зі списку зайшов настільки далеко, що жодне з 2048 слів не має перших чотирьох букв однаковими. Це було зроблено, щоб знизити ймовірність того, що люди припустяться помилок при транскрипції, плутаючи схожі слова і в результаті отримуючи неправильний резервний запис своїх приватних ключів.
Переклад цих слів у набір кількох публічних/приватних ключів досить простий. Ваш мнемонічний насіння береться та хешується з використанням SHA512, що генерує хеш з 512 окремих 1 і 0. Половина цього виходу використовується як фактичний приватний ключ, а інша половина використовується як вхід для SHA512 з індексним номером та існуючим публічним або приватним ключем для генерації нової пари ключів. Ви можете робити це стільки разів, скільки хочете, щоб згенерувати нові публічні/приватні ключі, які можуть бути відновлені з вашої єдиної мнемонічної фрази.
Це гарантує, що ви можете керувати своїми приватними ключами найпростішим і найнадійнішим способом з найменшими шансами на помилку, яка призведе до втрати ваших грошей. І все це було зроблено за допомогою математики! Сподіваємося, тепер ви добре розумієте, чому люди кажуть, що Біткойн – це гроші, “захищені математикою.”