Шифрование в блокчейне

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

Зачем шифровать данные в блокчейне

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

В традиционных и понятных нам системах «клиент-сервер» за безопасность отвечает сервер компании, которая обеспечивает безопасность хранения денежных средств ( Сервер банка) Он выполняет следующие функции:

1. Обеспечивает доступ пользователей к данным.
Именно сервер хранит логины и пароли своих клиентов, проверяет пользователя, прежде чем дать ему доступ к сети.

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

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

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

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

Алгоритм с хеш-функциями

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

Пример такой функции — умножение. Если мы знаем только ответ, то не можем однозначно сказать, какие два числа были умножены.

Например, Х * У = 6

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

Такой набор символов (Хэш) может состоять как из букв, так и из цифр. Какие цифры и буквы будут в хеше, а также сколько их будет, зависит от выбранной хеш-функции.

Рассмотрим подробнее наиболее известную — SHA-256, которая также используется в блокчейне DecimalChain.

Как работает хеш-функция SHA-256

Хэш-функция SHA-256 используется и в блокчейне биткоина. SHA означает «безопасный алгоритм хеширования»‎, а число 256 — объём кеша в битах.

Работа хеш-функции SHA-256 концептуально напоминает создание отпечатков пальцев. Чтобы идентифицировать человека, не надо знать всю информацию о нём: достаточно знать отпечаток его пальца. SHA-256 вычисляет такой «отпечаток» у текстов, видео, изображений, музыки и других видов информации.

Алгоритм работы можно описать следующим образом:

  1. На вход поступает сообщение — файл размером до 2 млн терабайт.
  2. Выполняются математические преобразования.
  3. На выходе получается хеш — 64-значное число.

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

Набор из букв и цифр в хеше — это одно 64-значное число, записанное в 16-ричной системе счисления. Чтобы найти два разных сообщения с одинаковым хешем, придётся перебирать их тысячелетиями, поэтому если два сообщения имеют одинаковый хеш, то будьте уверены: сообщения одинаковые.

Транзакции в блокчейне

Без хеш-функций существование блокчейна было бы невозможно.

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

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

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

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

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

Автор: Рената Димова