Шифрование в блокчейне: на пальцах

Шифрование в блокчейне на пальцах обложка

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

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

  1. P2P: где используются одноранговые сети
  2. Шифрование в блокчейне: на пальцах
  3. Блокчейн — цепочка блоков транзакций. Разбираем определение по словам
  4. Шифрование в блокчейне: зачем нужна цифровая подпись
  5. Принцип работы блокчейна: кто создает блоки
  6. Для каких целей и задач подходит блокчейн

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

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

В традиционной архитектуре «клиент-сервер» за безопасность отвечает сервер. Он выполняет следующие функции:

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

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

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

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

В середине 1650-х голландский ученый Христиан Гюйгенс обнаружил кольца Сатурна. Он не был уверен в правильности своих наблюдений, поэтому решил все перепроверить. Пока он занимался проверкой, его могли опередить другие ученые. Поэтому в одной из своих работ ученый написал сообщение:

aaaaaaacccccdeeeeeghiiiiiiillllmmnnnnnnnnnooooppqrrstttttuuuuu

Позже Христиан Гюйгенс перепроверил все данные и был готов рассказать об открытии. Он раскрыл, что в шифре содержались буквы исходной фразы, расставленные по алфавиту. Сама фраза была следующей:

Annulo cingitur, tenui plano, nusquam cohaerente, ad eclipticam inclinato

«Окружен кольцом тонким, плоским, нигде не подвешенным, наклоненным к эклиптике»

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

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

Почему выбрали алгоритм с хеш-функциями

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

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

Это односторонние функции. Самый просто пример такой функции — умножение. Если мы знаем только ответ, то не можем однозначно сказать какие два числа были умножены. Например, число 6 может быть произведением разных чисел: 6 и 1, 2 и 3, 12 и 0,5 или даже 47,2440945 и 0,127.

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

Это хеш-функции. Они преобразуют сообщения в хеши. Информацию в таком виде можно удобно и безопасно использовать в программировании.

Сообщение превращается в хеш
Надпись maff.io с помощью хеш-функции SHA-1 превращается в последовательность из 40-а знаков 

Сообщение может быть любого типа: текст, изображение, видео или звук. Чтобы с сообщением можно было проводить математические операции, его записывают в виде двоичного кода.

Изображение превращается в хеш
Логотип Maff с помощью хеш-функции SHA-256 превращается в последовательность из 64-х знаков

Хеш может состоять как из букв, так и из цифр. Какие цифры и буквы будут в хеше, а также сколько их будет, зависит от конкретной хеш-функции. Рассмотрим подробнее наиболее известную — SHA-256. 

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

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

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

Если не углубляться в технические детали, алгоритм работы можно описать следующим образом:

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

Попробовать закодировать текст и посмотреть как работает хеш-функция можно онлайн. Для примера закодируем два сообщения: «Maff.io» и «maff.io». SHA-256 популярна, в том числе потому, что кодирует сообщения моментально.

Принцип шифрования SHA-256
Два сообщения «Maff.io» и «maff.io» после кодирования SHA-256 сильно отличаются своим хешем.

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

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

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

Пример работы: транзакции в блокчейне

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

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

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

Что будет если изменить транзакцию в блокчейне
В списке транзакций заменили Tx2 на Tx0. Теперь хеш этого блока и всех последующих отличаются от действительной версии блокчейна

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

Заключение

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

Рекомендуем почитать

Комментариев пока нет, добавьте свой отзыв ниже.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *