Найти тему
Nouspass

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

Оглавление

Криптография на повестке дня братва, сегодня на простом языком мы погрузимся в такие термины как (Весь разбор будет строиться на блокчейне биткоина):

  • Криптографические хэш функции
  • Не удаляемые записи, помеченные временем
  • Древо Меркла - заголовки блока
  • Ассиметричная криптография (Приватный и публичный ключ, цифровая подпись)

Криптографическая хэш функция:

-2

Что же это за функция такая?
Тут на самом деле все просто, криптографическая хэш функция - это инструмент, при помощи которого мы можем любую входную информацию, будь то цифра 1, видео, музыка или все тома война и мир преобразовать в определенной длины строку текста.
Что я подразумеваю под определенной длины строкой? То что неважно, является ли входная информация цифрой 1 или томами войны и мира, мы в обоих случаях получим ХЭШ (Возьмем в пример стандарт
SHA256) длинной в определенное кол-во символов:

4355a46b19d348dc2f57c046f8ef63d4538ebb936000f3c9ee954a27460dd865 (В этом хэше таиться цифра 1)

Ещё стоит упомянуть пять важных моментов:

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

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

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

Не удаляемые записи, помеченные временем:

-4

На этой каритнки вы можете увидеть структуру каждого блока в блокчейне биткоина. Сейчас мы более подробней разберем каждый из его аспектов.

Заголовок блока (верхушка блока), в нем хранится такая информация как:

  • хэш предыдущего блока - как я уже говорил, и повторю ещё раз, каждый блок ссылается к прошлому, вы можете увидеть это на картинки.
  • Корень Меркла - о нем дальше в статье.
  • Временная отметка (пометка или штамп) - время когда блок был создан.
  • Цель сложности - сложность растёт пропорционально загруженности сети проще говоря - чем больше майнеров тем труднее найти блок.
  • Nonce - это случайно число использующиеся только один раз, в статье про блокчейн я подробней говорил что это.

На нижнем уровне блока:

  • Список всех транзакций

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

Древо Меркла:

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

Вот основные + этой системы:

  • Эффективная масштабируемость.
  • Экономичность.
  • Проверка включения транзакций в определенный блок.
  • Базовая проверка платежа.

Древо Меркла:

-5

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

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

Ассиметричная криптография (Публичные и приватные ключи и цифровая подпись)

существует два метода криптографии:

-6

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

-7

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

На примере холодного некастодиального кошелька phantom:

-8
-9

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

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

Цифровая подпись - это хэш созданный на основе вашего приватного ключа + данных (К примеру транзакции о том что Паша переводит Никите 2 биткоина) В Биткоине для создания такого хеша используют Алгоритм Цифровой Подписи Эллиптической Кривой (ECDSA).

Так а теперь что бы было понятнее рассмотри на примере двух картинок как это устроено:

-10
  1. Мы создаём и отправляем сделку.
  2. она шифруется при помощи хэш функции SHA - 256.
  3. Алгоритм ECDSA берет полученный хэш + приватный ключи.
  4. На выходе получаем цифровую подпись.
  5. Под итог мы получаем транзакцию, в которой зашифрована информация об сделке + цифровая подпись.

Теперь когда наша транзакция отправлена в пулл памяти и доходит до момента проверки майнерами происходит следующее:

-11
  1. Цифровая подпись при помощи публичного ключа расшифровывается.
  2. Полученный хэш сравнивают с хэшем сделки.
  3. Если все сходится транзакция считается подлинной.

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

Заключение

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

-12