Книга: Блокчейн. Схема новой экономики
Назад: Приложение А Основные сведения о криптовалютах
Дальше: Приложение Б Применения блокчейна – список от компании Ledra Capital

Краткий экскурс в асимметричную криптографию

Когда кошелек инициализируется или создается впервые, автоматически генерируется адрес, а также открытый и закрытый ключи. В основе биткойна лежит механизм асимметричного шифрования, в котором открытый ключ распространяется свободно, а закрытый ключ надо держать при себе.
Программа формирует биткойн-адрес, выбирая случайное число и создавая пару «открытый и закрытый ключи». На данный момент для создания ключей используется алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm.) Ключи в паре математически связаны и проверяются в процессе расходования биткойнов. Закрытый ключ генерируется автоматически, но для создания биткойн-адреса нужны дополнительные операции. Биткойн-адрес – не просто открытый ключ, а результат его преобразования для повышения эффективности использования. Ключ обрабатывается с применением дополнительных протоколов шифрования (таких, как SHA-256 и RIPEMD-160), хеширования (преобразования строки символов в более короткое значение фиксированной длины или ключа, представляющего исходную строку) и служебных операций (удаления похожих символов, например строчной «L» и заглавной «I», нуля и заглавной буквы «O», добавления контрольной суммы в конец адреса и цифры-идентификатора в начало адреса – в большинстве биткойн-адресов это цифра «1», которой отмечают обычные адреса биткойн-сети).
Практически нереально, хотя и теоретически возможно, что двое разных пользователей сгенерируют одинаковые бит-койн-адреса. В этом случае оба смогут тратить деньги с этого адреса. Шансы возникновения такой ситуации исключительно малы, а вероятность несовпадения адресов очень высока и оценивается в 99,9999999999 %. Кошелек биткойнов может содержать много адресов (одна из иногда используемых мер безопасности состоит в генерации и использовании нового адреса для каждой транзакции) и соответствующих им закрытых ключей, которые хранятся в файле кошелька. Закрытые ключи математически связаны со всеми биткойн-адресами, сгенерированными в кошельке.
Закрытые ключи биткойна обычно являются 256-разрядными числами (хотя в некоторых кошельках длина может варьироваться от 128 до 512 разрядов) и представлены в одной или нескольких формах. Вот пример закрытого ключа (https:// en.bitcoin.it/wiki/Private_key) в шестнадцатеричном формате (256 разрядов соответствуют 32 байтам или 64 шестнадцате-ричным символам из диапазона 0–9, A – F):

 

E9 87 3D 79 C6 D8 7D C0 FB 6A 57 78 63 33 89 F4
45 32 13 30 3D A6 1F 20 BD 67 FC 23 3A A3 32 62

 

Вот еще один пример закрытого ключа и соответствующего открытого адреса:

 

Закрытый ключ: 791866703012990464368584129364204170766
60923359050732094116068951337164773779

 

Открытый биткойн-адрес: 1EE8rpFCSSaBmG19sLdgQLEWuDai YVFT9J

 

Вычислить закрытый ключ, соответствующий открытому клю чу, невозможно из-за однонаправленности операции хеширования (или природы другого применяемого для вычисления этого значения механизма), а также непомерно высокой стоимости этой операции (нужен колоссальный объем вычислительных ресурсов на время, намного превышающее время подтверждения транзакции). Для получения биткойнов достаточно адреса, а для отправки нужна пара из открытого и закрытого ключей.
Назад: Приложение А Основные сведения о криптовалютах
Дальше: Приложение Б Применения блокчейна – список от компании Ledra Capital