Как криптовалюты используют криптографию?

Руководство для начинающих по криптографии
Когда протокол Bitcoin был запущен в 2009 году, миру была представлена новая система валют, которая обеспечивается и выпускается совершенно иным способом, нежели традиционные деньги.
Фиатные валюты, такие как доллар США или японская иена, обеспечиваются доверием к существующей банковской системе и выпускаются соответствующими центральными банками каждой страны. Любая новая валюта вводится в обращение на основе гибкой денежно-кредитной политики, определяемой правительством каждой страны. В некотором смысле, фиатные валюты подкрепляются доверием к финансовой мощи отдельных стран и вооруженным силам, защищающим эту мощь.
Bitcoin, с другой стороны, и впоследствии все криптовалюты, созданные после запуска Bitcoin, обеспечиваются и выпускаются с использованием научной практики «криптографии» .
В конечном итоге, Bitcoin работает на основе заранее определенной, контролируемой компьютером денежно-кредитной политики, которую не может изменить ни одно лицо, компания или правительство. Вместо того чтобы доверять правительству или учреждениям, пользователи Bitcoin доверяют криптографии и прозрачному набору правил протокола, которые позволяют ему надежно функционировать независимо от его рыночной цены или рыночных настроений.

Что такое криптография?
Криптография — это наука о шифровании и дешифровании информации. Короче говоря, это практика изменения сообщения таким образом, чтобы только отправитель и предполагаемый получатель или получатели могли его понять.
Если бы зашифрованное сообщение было перехвачено кем-то, кроме предполагаемого получателя, криптография сделала бы практически невозможным для перехватчика понять, какую информацию оно содержало.
Один из самых ранних примеров криптографии относится к VII веку до нашей эры, когда древние греки оборачивали вокруг палок кожаные полоски с написанными на них секретными сообщениями — метод шифрования, известный как скитала. После разматывания на кожаной полоске появлялась полоса из букв, которую мог расшифровать только человек с похожей палкой такого же диаметра.
Во время войны криптография играла жизненно важную роль в обеспечении безопасности связи, которая могла быть перехвачена между разрозненными силами. Во Второй мировой войне использование криптографии для расшифровки зашифрованных нацистских радиопередач с помощью шифровальной машины Enigma оказалось решающим в прекращении вторжения в Европу.
Перенесемся в наши дни, и криптография теперь играет фундаментальную роль в безопасности и выпуске криптовалют, таких как Bitcoin.
Криптография является важным компонентом криптовалют, используемым для:
- Создания ключевых пар криптокошельков
- Выпуска новых Bitcoin посредством процесса майнинга
- Цифровой подписи транзакционных сообщений
Как Bitcoin использует криптографию?
Безопасность сети
Общая сумма вычислительных ресурсов, направленных на майнинг Bitcoin, помогает защитить сеть от кибератак. Это коллективно известно как «хешрейт» сети. Чем больше майнеров в сети, тем выше хешрейт и тем больше вычислительной мощности требуется для подавления сети большинством в 51%.
Атака 51% является одной из самых больших угроз для публичных блокчейн-сетей. Вредоносные агенты, которые могут объединить достаточно ресурсов для контроля по крайней мере 51% хешрейта блокчейна, получают возможность блокировать входящие транзакции, изменять порядок транзакций и совершать двойные траты средств. Однако, делая процесс вычислительно сложным, сеть Bitcoin предотвращает захват контроля над сетью недобросовестными участниками.
Неизменность
Хеширование SHA-256 также отвечает за неизменность транзакций на основе блокчейна.
Как только транзакции объединяются в новые блоки и проверяются всеми другими участниками сети, каждое сообщение транзакции хешируется с использованием криптографического алгоритма SHA-256.
Эти уже хешированные транзакции затем систематически хешируются попарно для создания так называемого «дерева Меркла» (Merkle Tree). Пары транзакций хешируются вместе до тех пор, пока в конечном итоге все транзакции в блоке не будут представлены одним значением хеша. Это единственное значение становится корнем Меркла (Merkle Root) и хранится в заголовке блока.
Поскольку хеши являются детерминированными, то есть один и тот же вход всегда будет создавать одно и то же уникальное выходное значение, любая попытка злоумышленников изменить блок транзакций приведет к совершенно новому значению Merkle Root. Другие участники системы смогут увидеть измененный Merkle Root по сравнению с действительным блоком и отклонить его, единогласно предотвращая искажение данных.
Бездоверительная работа
Детерминированная природа криптографических алгоритмов позволяет пользователям сети совершать транзакции с биткоином без необходимости в доверенном посреднике для проверки и обработки платежей.
Благодаря децентрализации и отсутствию участия человека транзакции могут обрабатываться значительно быстрее, а комиссии часто намного ниже, чем в традиционных банковских решениях.
Какую криптографию использует Bitcoin?
Генерация приватных и публичных ключей
Bitcoin использует криптографию на эллиптических кривых (ECC) и алгоритм безопасного хеширования 256 (SHA-256) для генерации публичных ключей из соответствующих им приватных ключей.
Публичный ключ используется для создания адреса криптокошелька для получения входящих транзакций, тогда как приватный ключ необходим для подписи транзакций и подтверждения владения средствами.
Вы можете представить приватный ключ как ваш ПИН-код банковской карты, а публичный ключ — как номер вашего банковского счета. Злоумышленнику нужны оба, чтобы нанести ущерб вашим финансам.
Приватный ключ — это важнейшая часть ключевой пары, и он хранится в криптокошельке. Технически, криптокошелек хранит доступ человека к его криптосредствам, а не саму криптовалюту. Сами средства — это просто записи данных, зафиксированные в блокчейне, которые могут быть идентифицированы и разблокированы с помощью ключей, хранящихся в вашем кошельке.
Криптография на эллиптических кривых
ECC — это использование специальной математической кривой, которая является горизонтально симметричной. Если провести любую линию через эту кривую, она пересечет фигуру максимум в трех точках. ECC является важной частью криптовалюты и позволяет пользователям генерировать публичный ключ.
Чтобы сгенерировать пару ключей Bitcoin, вам сначала необходимо создать приватный ключ.
Приватный ключ биткоина — это случайно сгенерированное 256-битное число (от 1 до 2²⁵⁶, или два в степени двести пятьдесят шесть — невероятно большое число!). В таких сервисах, как Kraken, это число создается автоматически при настройке нового криптокошелька.
Затем публичный ключ генерируется из этого числа с использованием умножения на эллиптической кривой. Это включает взятие начальной точки на эллиптической кривой (известной как генераторная точка) и умножение ее на случайное число приватного ключа для получения новой точки на кривой.
Эта новая точка становится публичным ключом с определенными координатами x и y. Найти приватный ключ, зная публичный, почти невозможно из-за того, насколько трудно было бы угадать случайное 256-битное число. Вероятность угадать его составляет примерно один к 150 000 миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов.
Теоретически, квантовому компьютеру с более чем 13 000 000 физических кубитов потребовался бы один день, чтобы найти это число. На сегодняшний день один из самых передовых квантовых компьютеров в мире, процессор IBM Eagle, обладает всего 127 кубитами (или 0,00097% от необходимого количества кубитов).
Другими словами, системы, используемые криптовалютами, по крайней мере на данный момент, полностью безопасны.
SHA-256
Для создания адреса биткойн-кошелька координаты x и y проходят через алгоритм SHA-256.
Эта криптографическая хеш-функция была разработана и опубликована Агентством национальной безопасности США (АНБ) в 2001 году и, по сути, превращает любые входные данные (в данном случае, координаты открытого ключа) в уникальный код фиксированной длины в 256 бит.
Этот код представлен в 64-символьном шестнадцатеричном формате, содержащем комбинацию цифр от 0 до 9 и букв A-F.
Криптографические функции ECC и SHA-256 известны как “односторонние” или “детерминированные” функции. Это означает, что они работают только в одном направлении и не могут быть обращены для раскрытия исходных входных данных.
Хотя возможно создать открытый ключ из закрытого ключа, невозможно обратить процесс и раскрыть закрытый ключ. То же самое относится к попыткам выяснить, какой открытый ключ был использован для создания адреса биткойн-кошелька. Только владелец открытого ключа обладает этой информацией и может использовать её для доказательства владения адресом биткойн-кошелька.
Нужен лучший способ понять это? Представьте, что кто-то смешал различные цветные краски из, как мы уже отмечали, 150 000 миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов миллиардов вариантов, чтобы создать один уникальный цвет.
Если бы вы знали точные количества нужных красок, вы смогли бы воспроизвести тот же самый цвет. Но что, если бы нет? Попытка обратить процесс была бы почти невозможной.
По сути, так работают эти односторонние криптографические функции, и именно это позволяет их входным данным быть неузнаваемыми по сравнению с выходными.
Эмиссия нового биткойна
Новые единицы биткойна поступают в обращение через процесс, называемый майнингом.
Майнинг является частью механизма консенсуса Proof-of-Work, используемого блокчейном Биткойна для выбора честных участников для добавления новых блоков данных.
Это делается с помощью хеширования SHA-256. Тысячи сетевых волонтёров – известных как узлы-майнеры – соревнуются друг с другом, используя компьютеры, специально созданные для генерации триллионов хешей в секунду.
Майнеры сначала берут заголовок блока – часть, которая содержит всю информацию верхнего уровня о блоке, включая его временную метку, целевое значение, которое майнеры должны превзойти, и другие ключевые компоненты – из самого последнего блока в цепочке и корректируют число, называемое nonce.
Nonce — это мнемоническое сокращение, обозначающее число, используемое только один раз. Это часть заголовка блока, которую можно изменить для создания нового хешированного значения.
Цель криптографического майнингового соревнования проста. Майнеры используют свои машины для автоматической корректировки числа nonce в заголовке блока и пропускают его через алгоритм хеширования SHA-256 для получения значения.
Тот майнер, который произведет значение, имеющее такое же или большее количество нулей в начале по сравнению с целевым значением, выигрывает соревнование. Если значение не превосходит целевое значение, майнеры снова корректируют число nonce, повторно хешируют заголовок блока и получают новое значение.
Этот процесс повторяется, пока кто-нибудь не добьётся успеха.
Вновь добытый биткойн награждается каждому успешному майнеру на основе фиксированного графика эмиссии, заранее запрограммированного в исходном коде Биткойна его создателем, Сатоши Накамото.
Криптография играет жизненно важную роль в обработке биткойн-транзакций и обеспечении безопасности сети посредством процесса майнинга. Вы можете ознакомиться со статьей Kraken Learn Center Что такое майнинг биткойна?, чтобы узнать больше.
Цифровые подписи
Цифровые подписи имеют решающее значение для того, чтобы отправители могли доказать владение соответствующим приватным ключом для определенного публичного ключа, не раскрывая свой приватный ключ никому.
Bitcoin использует алгоритм цифровой подписи на эллиптических кривых (ECDSA) для криптографического одобрения и отправки транзакций из криптокошелька.
Это включает в себя то, что отправитель берет хэшированное сообщение транзакции – которое включает адрес кошелька получателя, отправляемую сумму BTC, любые прикрепленные комиссии и откуда изначально поступил Bitcoin – добавляет к нему свой приватный ключ и создает цифровую подпись, используя другой односторонний математический процесс.
Более конкретно, это включает процесс, аналогичный вышеупомянутому созданию публичного ключа из приватного ключа, с добавлением нескольких дополнительных шагов.
Создается случайное число (аналогичное приватному ключу), которое затем умножается на ту же точку-генератор, которая использовалась для создания публичного ключа кошелька, чтобы создать новую точку на эллиптической кривой. Назовем это Точкой А.
X-координата Точки А затем умножается на приватный ключ отправителя и добавляется к хэшированному сообщению транзакции. Все это затем делится на случайное число, сгенерированное в начале, чтобы получить новое значение. Это значение служит цифровой подписью.
Чтобы проверить цифровую подпись, получатель выводит две точки на эллиптической кривой. Сначала сообщение делится на значение цифровой подписи, чтобы получить точку-генератор. Затем X-координата точки-генератора делится на значение цифровой подписи, чтобы получить вторую точку на кривой.
Наконец, проведение линии через эти две точки приводит к третьей и последней точке на эллиптической кривой. Эта конечная точка должна иметь точно такую же X-координату, как и Точка А, тем самым доказывая, что цифровая подпись была создана с использованием правильного соответствующего приватного ключа.
К счастью, цифровой криптокошелек выполняет весь этот процесс верификации автоматически, без какого-либо вмешательства со стороны пользователя.
Почему криптография важна?
Криптография играет существенную роль не только в защите криптовалютных сетей от коррупции, но и в предоставлении неопровержимых средств доказательства владения средствами, не заставляя пользователей отказываться от конфиденциальной информации своего приватного ключа.
Без нее криптовалютные сети, вероятно, были бы вынуждены полагаться на доверенных, централизованных посредников для защиты своей информации и облегчения платежей — что полностью противоречит децентрализованной природе публичных криптовалют на основе блокчейна.
Теперь, когда вы понимаете технологию, лежащую в основе криптовалют, пришло время начать работу с самой прозрачной и надежной биржей цифровых активов.
Начать использовать Kraken
Готовы сделать следующий шаг в своем криптопутешествии с надежной и прозрачной биржей? Нажмите кнопку ниже, чтобы начать работу с Kraken уже сегодня!