Криптографические примитивы в блокчейне: часть I

Криптографические примитивы в блокчейне: часть I

25 марта 2022 г.

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



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


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


Хеш-функция — это любая криптографическая хеш-функция. Однако не все криптографические хеш-функции являются хэш-функциями.



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


Другие важные особенности криптографических хеш-функций включают в себя:


  • Детерминированные: они должны быть в первую очередь детерминированными, что означает, что при наличии хеш-функции «h» и определенного сообщения «m» она всегда будет генерировать один и тот же дайджест h(m). Мы должны иметь возможность применять хеш-функцию 'h' к одному и тому же сообщению несколько раз и всегда получать один и тот же дайджест сообщения.

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

  • Скрытие: Зная данное сообщение m1 и его дайджест h(m1), невозможно предсказать дайджест для другого сообщения m2. Выходные данные хеш-функции должны усложнять прогнозирование ее входного значения.

  • Дружественность к головоломкам: заданы x и y, где x — это сообщение, а y — результат хеш-функции, мы можем найти ak такое, что хеш x, соединенный с k, возвращает ay, и это y должно иметь определенные характеристики. Он невероятно популярен для решения того, что известно как головоломка майнинга в одной из цепочек блоков, таких как биткойн, и построен на одном важном столпе, известном как доказательство работы.

  • Односторонние функции: при заданном x найти h(x) довольно просто. Как упоминалось ранее, оно должно быть эффективно вычисляемым, а это означает, что h(x) может быть чрезвычайно эффективно получено из x. Однако мы не можем определить x при любом h(x), следовательно, это критическая характеристика. Это одна из причин, по которой они известны как криптографические хеш-функции, и очень важно, чтобы мы всегда выполняли это условие при их использовании в контексте блокчейна.

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


Конечно, это самоочевидно, но можно показать, что даже при наличии только 70 человек вероятность того, что два человека имеют одинаковый день рождения, достигает вероятности 0,999, и даже при наличии только 23 человек вероятность достигает аналогичной вероятности. Может показаться, что число людей, необходимое для достижения этой вероятности, довольно велико, но это не так: даже меньшее число людей могло бы достичь этой вероятности очень быстро. Конечно, парадокс дня рождения устанавливает верхнюю границу устойчивости к столкновениям.


Мы обсуждаем парадокс дня рождения не в том смысле, что существует только 365 или 366 возможных значений, а скорее очень большое количество возможных значений дайджестов сообщений, поэтому мы генерируем дайджесты очень большой длины, например 256 бит, и для хэш-функции, которая производит n битов вывода, где n равно 256, можно математически подтвердить, что злоумышленник должен выполнить 2n/2 хеш-операций на случайных входных данных, чтобы получить совпадающие выходные данные с вероятностью более 0,98.



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


**
**Еще одно важное применение хэшей — это дайджест сообщения, что означает, что если h(x) и h(y) одинаковы, мы можем с уверенностью предположить, что x равно y, или в Проще говоря, мы можем с уверенностью предположить, что исходные сообщения также одинаковы, а дайджесты фактически являются уникальными представлениями исходных сообщений, поэтому мы можем запомнить только хеш-значение, а не все сообщение. Для длинного документа с определенными уникальными атрибутами нам не нужно запоминать весь текст, чтобы использовать его позже, вместо этого мы можем создать дайджест, который можно использовать для запоминания этого конкретного сообщения. Поскольку выходные данные хеш-функции имеют заданную длину, мы можем просто сравнить дайджесты, чтобы проверить, идентичны ли два исходных длинных документа.


Последние мысли


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


Читайте больше таких статей:


  1. Технология блокчейна в 90 словах

  1. Как цифровая демократия расширяет возможности современной экономики авторов

  1. Не взаимозаменяемые токены (NFT): руководство для начинающих


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE