Как Bitcoin использует криптографию

0 0

Криптография — это область математики, охватывающая множество различных методов обеспечения цифровой безопасности и конфиденциальности. Шифрование и дешифрование, хеш-функции и алгоритмы цифровой подписи — все это предметы исследований в области криптографии. Bitcoin называют криптовалютой, потому что в нем применяются криптографические методы для реализации децентрализованной денежной системы и полностью цифровых одноранговых (p2p) платежей между пользователями.

Bitcoin — далеко не единственная технология, в которой используется криптография. Сегодня все, кроме разве что самых простейших электронных устройств, используют ту или иную форму криптографии для защиты чувствительной информации и проверки цифровой идентичности. Защищенные паролем телефоны и компьютеры, правительства, телекоммуникационные сети, банки, социальные сети и многое другое — везде для обеспечения безопасности данных используется криптография.

Шифрование и дешифрование

Шифрование — это процесс преобразования данных в секретный непонятный код, такой, чтобы понять заложенную в нем информацию могли только определенные стороны. Процесс шифрования преобразует исходные данные, или открытый текст, в секретный код, шифротекст. Обратный процесс — дешифрование — преобразует шифротекст обратно в открытый текст.

Шифрование используется практически во всех цифровых устройствах и сервисах для защиты данных от посторонних и злоумышленников. Сильное шифрование позволяет пользователям безопасно пользоваться интернетом, надежно защищать свои данные паролями и обмениваться конфиденциальными сообщениями.

Есть множество схем шифрования различных типов и различного уровня безопасности. В большинстве случаев для шифрования и дешифрования данных используется один или несколько ключей. Тип и необходимое количество ключей зависят от схемы шифрования. Некоторые схемы шифрования считаются защищенными даже от квантовых компьютеров, другие же показали себя небезопасными и от обычных компьютеров или человеческих вычислений.

Шифрование и Bitcoin

Сама сеть Bitcoin и ее база данных не используют шифрования. Блокчейн Биткойна представляет собой открытую распределенную базу данных, поэтому нет и необходимости в его шифровании. Все данные передаются через ноды в незашифрованном виде, что позволяет незнакомым людям взаимодействовать через сеть Биткойна.

Но некоторые bitcoin-сервисы требуют большей безопасности и конфиденциальности. Чтобы безопасно хранить секретные ключи пользователей, большинство bitcoin-кошельков защищают свои данные с помощью различных схем шифрования. Например, Bitcoin Core для шифрования своего кошелька использует стандарт AES (Advanced Encryption Standard). Это тот же алгоритм шифрования, что использует для своей секретной информации Агентство национальной безопасности США. AES считается чрезвычайно безопасным. Чтобы расшифровать кошелек Bitcoin Core, пользователь должен ввести свой пароль, который используется в качестве ключа расшифровки.

Хеш-функции

Криптографическая хеш-функция — это математическая функция, которая принимает на вход любые данные, а на выходе выдает данные с определенными свойствами. Существует множество различных хеш-функций, но все они обладают этими основными характеристиками, делающими их чрезвычайно полезными не только для Биткойна, но и для многих цифровых систем. Выход хеш-функции называется хешем или дайджестом и представляет собой большое число, обычно представленное в виде строки букв и цифр в шестнадцатеричной системе счисления.

Если входные данные для хеш-функции могут варьироваться бесконечно, то выход ее всегда имеет определенную длину. Длина выхода зависит от того, какая хеш-функция используется. Например, SHA-256, входящая в семейство хеш-функций Secure Hashing Algorithm, всегда выдает на выходе 256 бит данных, вне зависимости от длины входных данных.

Выход криптографической хеш-функции является также детерминированным, то есть при передаче в одну и ту же хеш-функцию одних и тех же входных данных, выход всегда будет одинаковым. Однако если во входных данных изменить хотя бы один символ или байт, то новый выход никоим образом не будет напоминать старый.

Это свойство во многом определяющее для полезности хеш-функций, поскольку позволяет быстро проверять сколь угодно большие данные. Например, если у Элис есть большой файл и она хочет убедиться, что он не был тайно изменен, она может сравнить текущий хеш файла с хешем, сохраненным после своей последней проверки. Если файл не изменялся, то два этих хеша будут совпадать. Однако любое, даже самое незначительное, изменение входного файла приведет к изменению практически всех символов хеша.

Наконец, выход криптографической хеш-функции является случайной односторонней функцией. Это означает, что входные данные нельзя предсказуемым образом сформировать для получения определенного выхода. Кроме того, выход не отражает никакой информации о входе, а значит, его нельзя использовать для восстановления входных данных.

Это свойство полезно по нескольким причинам. Поскольку это односторонняя функция, хеш можно использовать в качестве подтверждения определенной информации без раскрытия самой информации. Кроме того, случайность выходов хеш-функций делает их полезными для используемой в Биткойне системы proof-of-work.

Хеширование и Bitcoin

В протоколе Биткойна для всех операций хеширования используется в основном SHA-256. Самое главное, с помощью хеширования реализуется механизм proof-of-work. Хеш представляет собой большое число, и для того чтобы майнер мог отправить блок в сеть, хеш этого блока должен быть ниже определенного порогового значения. А поскольку хеширование — это случайный и непредсказуемый процесс, найти валидный хеш можно только путем интенсивного угадывания.

Свойства хеш-функций обеспечивают также неизменность Биткойна. Внутри каждого блока строится дерево хешей (дерево Меркла) и через это вычисляется один хеш для всех транзакций в блоке. Это гарантирует неизменность каждой транзакции после включения ее в блок.

Кроме того, каждый блок гарантирует также неизменность предыдущих блоков. Это достигается путем включения в каждый новый блок хеша предыдущего блока, поэтому после добавления блока в блокчейн он уже не может быть изменен.

Цифровые подписи

Цифровая подпись похожа на подпись физическую, но гораздо более надежна и безопасна. Как и ее физический аналог, цифровая подпись связывает утверждение подписываемых данных и личность подписывающего лица. В отличие от физической, цифровую подпись нельзя скопировать и использовать в другом месте, поскольку цифровая подпись уникальна для каждого подписываемого фрагмента данных.

Цифровая подпись состоит из трех частей: подписываемых данных, открытого ключа подписанта и самой подписи. Данные могут быть любыми цифровыми — текст, картинка, аудиофайл и прочее. Открытый ключ — это псевдонимная форма идентификации, информирующая общественность о том, что данное сообщение подписал владелец соответствующего секретного ключа. Наконец, подпись — это математическое доказательство того, что владелец открытого ключа и соответствующего ему секретного ключа подписал в точности представленные данные.

Магия здесь в том, что секретный ключ необходим для создания подписи, но не требуется для ее проверки. Кто угодно может проверить валидность подписи, имея только открытый ключ, подпись и сообщение. Кроме того, поскольку подпись создается с использованием хеша подписываемых данных, проверяющий может быть уверен в том, что предоставленные данные после того, как были подписаны, не изменялись.

Цифровые подписи и Bitcoin

В Биткойне реализован алгоритм цифровой подписи, называемый ECDSA, основанный на эллиптической криптографии. ECDSA позволяет с помощью секретного ключа подписывать сообщения любого типа, но в Биткойне цифровые подписи чаще всего используются в транзакциях для отправки BTC.

Протокол Bitcoin позволяет отправлять части биткойна, называемые UTXO, на открытые ключи, так что разблокировать эти UTXO можно только с действительной подписью от соответствующего секретного ключа. Эта подпись публикуется в блокчейне, чтобы любой участник сети Bitcoin мог проверить соответствие подписи, открытого ключа и сообщения.

Благодаря такому дизайну, Bitcoin представляет собой абсолютно одноранговую — peer-to-peer — систему. То есть bitcoin-транзакции можно отправлять от плательщика получателю без участия каких-либо третьих сторон, принимающих на себя ответственность за хранение средств. Хоть майнеры и обрабатывают каждую транзакцию, они не могут создавать валидные подписи для принадлежащих другим людям BTC, а значит, не могут присвоить ни одного чужого BTC.

 

Источник: bitnovosti.com

Оставьте ответ

Ваш электронный адрес не будет опубликован.