Алгоритмы безопасности блокчейн

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

Что такое блокчейн?

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

Как работает блокчейн?

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

image-loader.svg

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

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

1. Алгоритмы криптографии

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

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

2. Цифровая подпись

Цифровая подпись — это криптографический алгоритм, работающий на основе асиметричного шифрования: с помощью закрытого ключа автор (он же — единственный владелец этого ключа) может подписать любое сообщение. Подпись чаще всего осуществляется над хэшированными данными, содержащимися в сообщении. Затем с помощью открытого ключа (который предоставляется в публичный доступ) любой пользователь может убедиться в том, что именно держатель ключа подписал сообщение. В случае блокчейна пользователь подписывает любую исходящую от него транзакцию своим закрытым ключом. Получатель, как и любой другой участник сети, может расшифровать транзакцию убедиться в том, что транзакция и вправду исходила от данного отправителя, используя открытый ключ, предоставленный отправителем.

За счёт цифровых подписей становится невозможным потратить средства пользователя без его ведома, так как без его закрытого ключа транзакция не получит правильную подпись и вследствие не будет принята сетью нод, учавствующих в блокчейне. При этом невозможность подделки подписи (проще говоря, подбора закрытого ключа) обеспечивается сложностью взлома алгоритма асинхронного шифрования, который лежит в основе выбранного способа подписи. Например, в случае алгоритма на эллиптических кривых Ed25519 сложность взлома заключается в трудности решения задачи дискретного логарифмирования — подбора числа d такого, что для некоторых точек кривой G, Q выполнятся dG = Q. Так как в случае Ed25519 число d находится в диапазоне до 2255–19, то взлом закрытого ключа d при наличии открытого ключа Q становится практически невыполнимым для классических компьютеров.

3. Хэширование

Перед объединением транзакций в блоки каждая транзакция должна хэшироваться. Добавляемый в блок хэш составляется на основе данных, записанных в данном блоке. Помимо хэша самого блока, в него добавляется хэш предыдущего блока, за счёт чего и создаётся связанная последовательность блоков. Алгоритмы хэширования, используемые в блокчейне (в большинстве случаев это keccak) обеспечивают так называемый лавинный эффект — даже небольшое изменение хэшируемых данных приводит к значительному изменению хэща. Следовательно, изменение, сделанное в любой уже выполненной транзакции, будет генерировать совершенно другой хеш, который затем изменит хеши всех последующих блоков.

Решение о валидации каждого нового блока принимается большинством нод, учавствующих в сети. Таким образом, чтобы произвести модификацию блокчейна, около 51% системы должны согласиться с этим — тем самым будет возможно подтверждение любой невалидной транзакции. Этот процесс называется «атакой 51%». Сложность этой атаки заключается в том, что группе нежелателей необходимо завладеть контроль над более чем 51% вычислительных устройств в сети, что для больших блокчейнов практически невозможно.

4. Peer-to-peer network

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

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

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

5. Proof of work

Proof-of-work — это данные, которые позволяют любому узлу проверить, что тот, кто создал этот блок, выполнил значительный объем вычислительной работы. Другими словами, ни один узел не может создать действительный блок без выполнения неопределенного, но значительного объема работы. Создание любого блока требует определенного количества вычислительной мощности и любой другой узел может проверить, что эта мощность была потрачена тем, кто создал блок.

В отличие от транзакций, система proof-of-work, необходимая для каждого блока, позволяет нам найти удобное решение: поскольку каждый блок требует определенного объема работы, вполне естественно, что единственный действительный блокчейн — это тот, в котором больше всего блоков. Подумайте об этом: если система Proof-of-Work работает, потому что каждый блок требует определенного объема работы (и времени), сложнее всего сломать самый длинный набор действительных блоков. Если бы злонамеренный узел или группа узлов попытались создать другой набор допустимых блоков, всегда выбирая самый длинный блокчейн, им всегда приходилось бы повторять большее количество блоков (поскольку каждый узел указывает на предыдущий, изменяя один блок принудительно изменяет все блоки после него).

Заключение

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

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

© Habrahabr.ru