Закрытый ключ — это большой (256-битный) секретный номер, который позволяет разблокировать и отправить биткойн. Это единственный реальный способ доказать, что вы владелец. Закрытый ключ служит только для того, чтобы доказать, что вы являетесь владельцем определенного адреса криптовалюты. Когда у вас есть контроль над закрытым ключом, у вас есть возможность совершить транзакцию и потратить активы, связанные с этим адресом. Закрытый ключ — это то, чем вы никогда не должны делиться с физическим или юридическим лицом В Биткойне и многих других криптовалютах закрытый ключ представляет собой 256-битное число. Однако это не тот формат, в котором он отображается. 256-битное число представляется в виде шестнадцатеричного числа. Шестнадцатеричная — это обозначение, в котором используются только числовые буквы 0—9 и A—F. Это облегчает чтение данных, выраженных в шестнадцатеричном формате.
Пример;
E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262
Для чего используется закрытый ключ?
Закрытый ключ используется для выполнения необратимых транзакций. Это ключ к тому, чтобы тратить свои биткойны кому угодно и в любом кафе, ресторане или отправлять
биткойны
. Эти транзакции зашифрованы и как если бы они были подписаны. И для каждой транзакции эти подписи уникальны, даже если они сгенерированы из одних и тех же закрытых ключей. Эта функция делает невозможным их копирование. Владелец закрытого ключа может безопасно использовать один и тот же закрытый ключ снова и снова.
Как сгенерировать закрытый ключ?
В Биткойне закрытый ключ — это случайное число от 1 до 2²⁵⁶. Чтобы сгенерировать наш закрытый ключ, нам нужен способ генерации случайного числа. Для этого нам нужно использовать криптографически защищенный генератор чисел. Генератор чисел криптографически безопасен, когда сгенерированное число не может быть определено или неизвестно, как оно было выбрано. Использование генераторов идентификационных номеров подвергает ваш закрытый ключ риску быть известным.
1. Сгенерировать случайный набор данных
Для закрытого ключа Биткойна нам нужен криптографически защищенный генератор чисел. Чтобы выполнить это требование, нам нужно сгенерировать случайный набор данных, затем мы преобразуем эти данные в число.
Пример;
AofidowXhk&))@:@9727929Hcks&&&(nkhgiowiwj919283’@bnwkiHhVjKihUNnkllswiwi9@/93938’bbndkk!( İkjqlwlw188020$n€icrypexHbnk
2. Преобразование случайных данных в 256-битное число
Теперь, когда у нас есть случайный набор данных, мы можем использовать SHA256 для преобразования нашего случайного набора данных в 256 бит. SHA256 обрабатывает входные данные любой длины, наши случайные данные и служит для генерации 256-битного дайджеста или хэша.
Хэш SHA256 наших случайных данных: 3133293B7827ED422EA95FF7E6B92145FAA6A22DE1896043F457306AF4CF5B42
Наш хэш в SHA256 представлен в шестнадцатеричном формате и содержит 64 символа. Каждый символ в хеше представляет собой 4 бита.
3. Верификация
Теперь, когда мы сгенерировали криптографически безопасное 256-битное случайное число, последнее, что нам нужно сделать, это проверить, находится ли наше число между 1 и 2²⁵⁶. Наша цифра намного меньше, чем лимит биткоина, который составляет 2²⁵⁶, хотя он очень большой. Это означает, что наш номер удобен и теперь может быть использован в качестве закрытого ключа в Bitcoin.
4. Укажите закрытый ключ
В Биткойне каждый закрытый ключ в основной сети начинается с «5». Это упрощает идентификацию закрытого ключа. Нам нужно добавить 5 к началу шестнадцатеричного числа, чтобы наш закрытый ключ начинался с «80».
803133293B7827ED422EA95FF7E6B92145FAA6A22DE1896043F457306AF4CF5B42
5. Предотвратите опечатки и преобразуйте шестнадцатеричный код в Base58
Чтобы избежать еще больших опечаток, нам нужно преобразовать закрытый ключ из шестнадцатеричного в Base58. Base58 удаляет легко неправильно понимаемые буквенно-цифровые символы O, O, L и I. В результате получается 58 символов, которые можно использовать для представления нашего закрытого ключа.
Вот наш преобразованный закрытый ключ Base58, который содержит требуемую цифру «5» для каждого закрытого ключа в Биткойне.
5JBxKqYKzzoHrzeqwp6zXk8wZU3Ah94ChWAinSj1fYmyJvJS5rT (Вы можете подвергнуться атакам, если будете использовать этот номер в частном порядке)
Есть сайты, которые генерируют для вас случайные числа. Одним из них является random.org, генератор случайных чисел общего назначения, который используется чаще. Другой bitaddress.org создан специально для производства закрытых ключей Bitcoin.
Random.org помогает нам сгенерировать ключ. Этот сайт полезен тем, что они могут генерировать случайные байты. Но здесь может возникнуть несколько проблем. Random.org претендует на звание надежного производителя, но можно ли доверять сайту? Вы действительно уверены, что он сгенерирован случайным образом и надежен? Можем ли мы быть уверены, что владелец сайта не записывает результаты всех сгенерированных, особенно закрытых ключей? Ответ зависит от вас. Цель здесь состоит в том, чтобы вы могли сгенерировать полностью доверенный закрытый ключ. Когда вы ответите на эти вопросы, вы найдете самый надежный источник.
Bitaddress.org работает совершенно по-другому. Это открытый исходный код, поэтому вы можете видеть, что происходит за кулисами. Он находится на стороне клиента, вы можете скачать его и запустить, даже если нет подключения к Интернету. Так как же это работает? Вы должны перемещать мышь или нажимать случайные клавиши.
Как видите, существует множество способов генерации закрытых ключей. Они отличаются простотой и безопасностью.