1. Криптографические примитивы и устройство распределенного реестра
Введение в курс: Блокчейн как технология доверия
Добро пожаловать в «Полный курс по блокчейну: от криптографии до DeFi». Мы начинаем наше путешествие с фундаментальных основ. Многие считают блокчейн сложной магией или просто инструментом для спекуляций, но в его основе лежит строгая математика и элегантная логика.
В этой первой статье мы разберем «кирпичики», из которых строится любой блокчейн: криптографические хеш-функции, пары ключей и структуру связанных блоков. Без понимания этих примитивов невозможно разобраться ни в биткоине, ни в смарт-контрактах Ethereum.
Что такое криптографический примитив?
Криптографические примитивы — это низкоуровневые алгоритмы, которые используются для создания протоколов криптографической защиты. Представьте, что вы строите дом. Примитивы — это не сам дом и даже не стена, это кирпичи, цемент и арматура. В блокчейне мы используем два главных «материала»: хеш-функции и асимметричное шифрование.
Хеш-функции: Цифровой отпечаток пальца
Самым важным понятием в блокчейне является хеширование. Хеш-функция — это математический алгоритм, который преобразует входные данные произвольного размера в строку фиксированной длины.
!Иллюстрация того, как любые данные преобразуются в строку фиксированной длины.
Математически это можно записать так:
Где — это полученный хеш (результат), — сама хеш-функция, а — входное сообщение (данные).
Ключевые свойства хеш-функций для блокчейна:
В большинстве блокчейнов (например, в Bitcoin) используется алгоритм SHA-256. Он выдает строку длиной 256 бит (64 символа в шестнадцатеричном формате).
Асимметричная криптография: Ключи от всех дверей
Второй кит, на котором стоит блокчейн — это криптография с открытым ключом (асимметричная). В классической (симметричной) криптографии для шифрования и расшифровки используется один и тот же пароль. Но как передать пароль собеседнику через интернет, чтобы его не перехватили?
Асимметричная криптография решает эту проблему, используя пару ключей:
* Закрытый ключ (Private Key): Хранится в строжайшем секрете. Это ваша «подпись» и доступ к средствам. * Открытый ключ (Public Key): Можно показывать всем. Это ваш «адрес» или «номер счета».
!Визуальная метафора работы пары ключей: шифрование и цифровая подпись.
Электронная цифровая подпись (ЭЦП)
В блокчейне мы редко шифруем данные (они обычно публичны). Мы используем ключи для аутентификации. Когда вы отправляете транзакцию, вы должны доказать сети, что эти биткоины принадлежат вам, не раскрывая свой закрытый ключ.
Процесс создания подписи выглядит так:
Где — цифровая подпись, — алгоритм подписи, — сообщение (детали транзакции), а — ваш закрытый ключ.
Любой участник сети может проверить вашу подпись, используя ваш открытый ключ:
Где — результат проверки (истина или ложь), — алгоритм проверки, — сообщение, — подпись, — открытый ключ. Если равно «истина», значит, транзакция действительно подписана владельцем закрытого ключа.
Устройство распределенного реестра (DLT)
Теперь, когда у нас есть инструменты (хеши и ключи), мы можем построить структуру данных. Блокчейн — это частный случай технологии распределенного реестра (Distributed Ledger Technology).
Представьте обычную банковскую книгу (реестр). В ней записано: «Алиса перевела Бобу 100 рублей». Эта книга хранится на сервере банка. Если хакер взломает сервер, он может переписать историю.
В блокчейне копия этой «книги» хранится у тысяч участников одновременно. Но как убедиться, что у всех записано одно и то же?
Анатомия блока
Данные в блокчейне группируются в блоки. Блок — это контейнер для транзакций. У каждого блока есть заголовок, который содержит метаданные.
!Схематичное изображение содержимого блока и его связи с предыдущим.
Основные элементы заголовка блока:
Цепочка блоков (The Chain)
Именно поле Previous Block Hash превращает набор блоков в цепочку (chain). Каждый новый блок содержит в себе цифровой отпечаток предыдущего.
Математически связь блоков можно описать рекурсивно:
Где — хеш текущего блока , — хеш-функция, — данные текущего блока, а — хеш предыдущего блока .
Почему это гарантирует неизменность?
Представьте, что злоумышленник хочет удалить транзакцию из блока №10, когда сеть уже строит блок №100.
Таким образом, изменение старой записи требует пересчета всех последующих блоков. В системах с защитой Proof-of-Work (о которой мы поговорим в следующих статьях) это требует колоссальных вычислительных мощностей, что делает атаку экономически бессмысленной.
Заключение
Мы разобрали фундамент: * Хеш-функции гарантируют целостность данных. * Цифровые подписи гарантируют аутентичность (авторство) транзакций. * Связанный список блоков делает историю неизменяемой.
Но остается открытым вопрос: кто имеет право создать новый блок и как тысячи компьютеров договариваются о том, какая версия истории правильная? Об этом мы поговорим в следующей статье, посвященной механизмам консенсуса.