С ростом популярности внедрения блокчейн, возникают проблемы, связанные с безопасностью данной технологии. Таким образом, у людей увеличивается интерес к пониманию алгоритмов безопасности блокчейна. Если вы хотите узнать о том, какие алгоритмы используются в блокчейне для обеспечения безопасности, вы попали на нужную статью.
Что такое блокчейн?
Блокчейн – это цепочка связанных между собой данных, которые записаны в блоках. Удобно думать о нём как о неизменяемом односвязном списке, которая совместно используется узлами компьютерной сети. В качестве базы данных блокчейн хранит произвольную (чаще всего небольшую) информацию в цифровом формате. Для широкой публики блокчейн наиболее известен своей важной ролью в системах криптовалюты для обеспечения безопасной и децентрализованной записи транзакций. Новшество блокчейна заключается в том, что он гарантирует точность и безопасность записи данных и вызывает доверие без необходимости использования доверенной третьей стороны – так, что система может работать автономно.
Как работает блокчейн?
Цель блокчейна - позволить записывать и распространять цифровую информацию, но не редактировать. Таким образом, блокчейн является основой неизменяемых реестров или записей транзакций, которые нельзя изменить, удалить или уничтожить.
![](https://habrastorage.org/getpro/habr/upload_files/3b9/f20/e93/3b9f20e938cd5443662f09e419e0e9ca.png)
Блокчейн предлагает гарантию безопасного, распределенного и прозрачного обмена информацией любого рода между двумя сторонами. Например, в случае криптовалют эта информация однозначно определяет транзакцию между пользователями – её автора и получателя, тем самым гарантируя безопасность самой транзакции. Однако многие люди сомневаются в том, как блокчейн обеспечивает безопасность для всех участников.
В основе работы блокчейна лежат методы криптографии и механизмы консенсуса наряду с другими алгоритмами для обеспечения надежной безопасности. В следующих абзацах мы разберем эти алгоритмы.
Алгоритмы криптографии
Блокчейн представляет собой постоянно растущую коллекцию записей, называемых блоками. При любом другом подходе, нежели чем в современных блокчейнах, по мере роста сети было бы сложно гарантировать, что вся информация в цепочке блоков защищена от любых нежелательных угроз. Поэтому криптография - одно из основных требований блокчейна.
В большинстве случаев применения в современном мире криптография используется для шифрования при передаче данных по незащищённым каналам связи. Предлагается платформа для настройки протоколов и методов, позволяющих избежать вмешательства третьих лиц в доступ и получение информации о данных в личных сообщениях в процессе коммуникации. Если мы рассмотрим сеть Bitcoin, то увидим, что она не использует шифрования. Блокчейн Биткойна представляет собой открытую распределенную базу данных, поэтому нет и необходимости в его шифровании. Все данные передаются через ноды в незашифрованном виде, что позволяет незнакомым людям взаимодействовать через сеть Биткойна.
В случае блокчейна, криптография позволяет создать систему, в которой изменение старых блоков группой злоумышленников становится фактически невозможным.
1. Цифровая подпись
Цифровая подпись – это криптографический алгоритм, работающий на основе асиметричного шифрования: с помощью закрытого ключа автор (он же – единственный владелец этого ключа) может подписать любое сообщение. Подпись чаще всего осуществляется над хэшированными данными, содержащимися в сообщении. Затем с помощью открытого ключа (который предоставляется в публичный доступ) любой пользователь может убедиться в том, что именно держатель ключа подписал сообщение. В случае блокчейна пользователь подписывает любую исходящую от него транзакцию своим закрытым ключом. Получатель, как и любой другой участник сети, может расшифровать транзакцию убедиться в том, что транзакция и вправду исходила от данного отправителя, используя открытый ключ, предоставленный отправителем.
За счёт цифровых подписей становится невозможным потратить средства пользователя без его ведома, так как без его закрытого ключа транзакция не получит правильную подпись и вследствие не будет принята сетью нод, учавствующих в блокчейне. При этом невозможность подделки подписи (проще говоря, подбора закрытого ключа) обеспечивается сложностью взлома алгоритма асинхронного шифрования, который лежит в основе выбранного способа подписи.
Например, в биткойне реализован алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm). ECDSA— это криптографическая схема для создания цифровых подписей с помощью открытого и закрытого ключей.
Для генерации открытого ключа нужно: сгенерировать секретный ключ → секретный ключ домножить на generation point (точка на кривой) → открытый ключ.
Операция умножения представляет собой точечное умножение, которое отличается от обычного. Важно отметить, что точечное деление не поддается расчету, так что открытый ключ не может быть использован для получения секретного ключа, что и делает схему ECDSA такой безопасной.
![](https://habrastorage.org/getpro/habr/upload_files/400/893/a85/400893a85da579ca1214cbefbe21eec1.png)
2. Хэширование
Хеширование — это процесс преобразования массива входных данных произвольной длины в (выходную) битовую строку фиксированной длины. Перед объединением транзакций в блоки каждая транзакция должна хэшироваться. Добавляемый в блок хэш составляется на основе данных, записанных в данном блоке. Помимо хэша самого блока, в него добавляется хэш предыдущего блока, за счёт чего и создаётся связанная последовательность блоков. Алгоритмы хэширования, используемые в блокчейне обеспечивают так называемый лавинный эффект – даже небольшое изменение хэшируемых данных приводит к значительному изменению хэща. Следовательно, изменение, сделанное в любой уже выполненной транзакции, будет генерировать совершенно другой хэш, который затем изменит хэши всех последующих блоков.
Свойства хэш-функций:
а) Выход хэш-функции всегда детерминированный, то есть при передаче в одну и ту же хэш-функцию одних и тех же входных данных, выход всегда будет одинаковым
б) Выход хэш-функции - это случайная односторонняя функция
в) У двух одинаковых хэш-значений не может быть два разных сообщения
г) Небольшое изменение входных данных настолько сильно меняют хэш-значение, что новое и старое значение кажутся некоррелирующими
Эти свойства и определяют полезность хэш-функций. Всегда возможно отследить менялся ли тайно файл, который мы передаем. А также свойство (б) означает, что входные данные нельзя предсказуемым образом сформировать для получения определенного выхода. Это дает возможность использовать в качестве подтверждения определенной информации без раскрытия самой информации.
В Биткойне в основном хэш-функцию SHA-256. Хэш - это большое число, и для того чтобы майнер мог отправить блок в сеть, хеш этого блока должен быть ниже определенного порогового значения. Поскольку хэширование - это случайный процесс, найти валидный хэш можно только путем интенсивного угадывания.
Решение о валидации каждого нового блока принимается большинством нод, учавствующих в сети. Таким образом, чтобы произвести модификацию блокчейна, около 51% системы должны согласиться с этим – тем самым будет возможно подтверждение любой невалидной транзакции. Этот процесс называется «атакой 51%». Сложность этой атаки заключается в том, что группе нежелателей необходимо завладеть контроль над более чем 51% вычислительных устройств в сети, что для больших блокчейнов практически невозможно.
3. Peer-to-peer network
В крупных корпорациях огромное количество личных данных пользователей хранится на отдельных устройствах, что увеличивает риск потери данных в случае взлома, неправильного обращения или потери системы. Блокчейн намерен устранить эту зависимость от центральной власти. Для этого блокчейн работает таким образом, что узлы в системе блокчейна могут подтверждать легитимность транзакции вместо третьей стороны.
Транзакции между клиентами, такие как отправка и прием цифровых денег, передаются каждому узлу в сети. Узлы обеспечивают надежность транзакции до того, как она будет задокументирована как блок в цепочке блоков, за счёт проверки прошлых транзакций отправителя, чтобы убедиться, что он / она не тратил дважды или не тратил больше средств, чем они приобретают.
Позже протоколы соглашения, такие как проверка работы и подтверждение ставки, отправляются майнерами. Эти протоколы позволяют узлам прийти к соглашению о порядке и сумме транзакций. Когда транзакция проверяется, она распределяется в виде блока в цепочке блоков. Защита пользователей расширяется за счет децентрализованного характера блокчейна и отсутствия необходимости в центральном органе.
4. Proof of work
Proof-of-work - это данные, которые позволяют любому узлу проверить, что тот, кто создал этот блок, выполнил значительный объем вычислительной работы. Другими словами, ни один узел не может создать действительный блок без выполнения неопределенного, но значительного объема работы. Создание любого блока требует определенного количества вычислительной мощности и любой другой узел может проверить, что эта мощность была потрачена тем, кто создал блок.
В отличие от транзакций, система proof-of-work, необходимая для каждого блока, позволяет нам найти удобное решение: поскольку каждый блок требует определенного объема работы, вполне естественно, что единственный действительный блокчейн - это тот, в котором больше всего блоков. Подумайте об этом: если система Proof-of-Work работает, потому что каждый блок требует определенного объема работы (и времени), сложнее всего сломать самый длинный набор действительных блоков. Если бы злонамеренный узел или группа узлов попытались создать другой набор допустимых блоков, всегда выбирая самый длинный блокчейн, им всегда приходилось бы повторять большее количество блоков (поскольку каждый узел указывает на предыдущий, изменяя один блок принудительно изменяет все блоки после него).
Заключение
В заключение отметим, что довольно сложно найти лучшие алгоритмы безопасности блокчейна. Алгоритмы адаптированы для решения конкретных проблем с учетом определенных входных данных. Алгоритмы криптографии, такие как цифровые подписи и хеширование, помогают защитить информацию от третьих лиц. Алгоритмы консенсуса помогают обеспечить целостность участников и транзакций в сети блокчейн.
Таким образом, довольно сложно выбрать конкретный алгоритм для защиты безопасности в блокчейн. Хотя блокчейн по своей сути безопасен, неизменен и прозрачен, алгоритмы необходимы для обеспечения всех этих характеристик!
Список литературы:
Rejwan, B.S. Algorithms And Security Concern In BlockchainTechnology:A Brief Review / B.S. Rejwan, K. Amer, U.F. Muhammad. – Vicarage St, Luton. – 14 с.
Geroni, D. Blockchain Security Algorithms Used To Protect The Blockchain Security / D. Geroni, K. Amer, U.F. Muhammad. – : , 2021. – 14 с.
Бахвалова, Е.А. Исследование алгоритмов консенсуса для блокчейн-платформ / Е.А. Бахвалова, В.А. Судаков, U.F. Muhammad. – Москва : ИПМ им.М.В. Келдыша РАН, 2021. – 16 с.