В последнее время технология блокчейн переживает бурный рост, способствуя революционным приложениям в различных отраслях.
Ключевым аспектом, который часто принимается как должное, является решающая роль криптографических хеш-функций в обеспечении основных свойств безопасности блокчейна.
Хэш-функции закладывают основу, на которой построена вся экосистема блокчейна. Без их функций не требующая доверия децентрализованная природа блокчейна была бы невозможна.
В этой статье мы рассмотрим принципы работы хеш-функций и их важнейшую важность для безопасности блокчейна.
Но сначала, что именно представляет собой криптографическая хеш-функция?
Что такое криптографическая хеш-функция?
Криптографическая хеш-функция — это алгоритм, который сопоставляет данные произвольного размера с битовой строкой фиксированного размера.
Эта битовая строка, хэш-значение или дайджест, представляет входные данные. Хеш-функции обладают четырьмя ключевыми свойствами, которые делают их полезными для блокчейнов:
Легко вычисляется
Вычислить хеш-значение для любых входных данных довольно просто. Однако математически невозможно получить исходные входные данные только по их хеш-значению.
Равномерное распределение
Значения хеша распределены случайным образом и уникальны даже при небольших изменениях входных данных. Никаких закономерностей, которыми мог бы воспользоваться злоумышленник, не существует.
Получить криптокарту UPay
Испытайте все преимущества онлайн-платежей и бесперебойных криптотранзакций.
РегистрацияОдносторонняя функция
С вычислительной точки зрения невозможно найти два разных входных набора данных, которые дают одинаковое значение хэш-функции, или реконструировать исходные входные данные из их значения хэш-функции.
Быстрое вычисление
Хэш-функции разработаны для очень быстрых и эффективных вычислений даже для больших объемов данных, поэтому их можно масштабировать для сетей блокчейнов.
К популярным криптографическим хеш-функциям, используемым в блокчейнах, относятся SHA-256, RIPEMD-160 и Keccak. Их свойства обеспечивают целостность и безопасность данных блокчейна несколькими важными способами.
Итак, как именно хеш-функции обеспечивают безопасность блокчейна? Существует несколько ключевых способов:
Поддержание целостности данных с помощью хэшей
В блокчейне каждая транзакция содержит такую информацию, как отправитель, получатель и сумма транзакции.
Эти данные транзакции хешируются с использованием криптографической функции для создания уникального идентификатора транзакции, известного как хэш транзакции.
Затем несколько транзакций объединяются в блок вместе с другими данными, например хэшем предыдущего блока.
Затем данные блока хешируются для создания хеша блока, который формирует идентификацию блока в цепочке.
Из-за свойств одностороннего и равномерного распределения любое изменение данных транзакции или блока, даже всего лишь одного бита, приведет к совершенно иному значению хэша.
Другие узлы сети могут легко проверить целостность блока, пересчитав его хэш на основе данных блока. Если хэши совпадают, это доказывает, что содержимое блока не было изменено или подделано с момента его добавления в цепочку.
Попытка изменить одну транзакцию приведет к сбою хэш-проверки и аннулированию всего блока.
Этот механизм хеширования обеспечивает гарантии целостности данных без необходимости наличия централизованного органа.
Узлы достигают консенсуса относительно корректного блокчейна, принимая только блоки с хешами, соответствующими критериям сложности сети. Честные узлы отклоняют и игнорируют любые недействительные, повреждённые или изменённые блоки.
Предотвращение двойных трат с помощью хешей
Помимо обеспечения целостности данных, хеш-функции помогают блокчейнам предотвратить двойные траты— одни и те же цифровые активы не могут быть потрачены более одного раза.
Когда пользователь инициирует транзакцию, входные данные должны ссылаться на неизрасходованные выходные данные предыдущих транзакций.
Входные данные включают в себя хэши выходных транзакций и данные подписи, подтверждающие право собственности.
Новая транзакция затем включается в блок, после чего указанные выходы помечаются как потраченные. Содержащие их транзакции теперь постоянно записываются в неизменяемый блокчейн.
Одностороннее свойство хешей означает, что злоумышленнику практически невозможно вычислить различные транзакции, хеш которых дает один и тот же выходной сигнал транзакции.
Это делает недействительными любые попытки двойной траты, поскольку узлы могут просто проверить, что входы не были ранее потрачены в цепочке.
Хэши гарантируют, что каждый уникальный результат транзакции может быть востребован только один раз, что позволяет поддерживать дефицитность и целостность цифровых активов.
Защита блокчейна с помощью доказательств
Блокчейны используют криптографические доказательства, построенные на основе хэш-функций, для достижения своей децентрализованной модели доверия и безопасности.
A система доказательства работы (PoW) как и в Bitcoin, здесь используется идея хэш-кеша — майнеры соревнуются за то, чтобы первыми найти одноразовое значение, которое в сочетании с данными блока и хэшированием удовлетворяет целевой сложности хэша сети.
Это требует огромных вычислительных ресурсов для многократного хеширования блока миллиарды раз с различными одноразовыми кодами, пока не будет найден корректный хеш. Это подтверждает, что работа по созданию блока была выполнена.
Сложность игры подстраивается под новый блок каждые 10 минут, что делает создание блока предсказуемым, но при этом сложным для подделки.
Другие блокчейны, такие как Ethereum, планируют перейти на модель доказательства доли владения (PoS), в котором валидаторы делают ставки и блокируют средства для проверки новых блоков.
В PoS валидаторы должны предоставить криптографическое доказательство, например, подписать свой проект блока новым секретным ключом. Доказательство проверяется с помощью открытого ключа валидатора, чтобы убедиться в его легитимности.
Хеш-функции лежат в основе этих доказательств, гарантируя невозможность изменения заголовков блоков, транзакций и других данных без нарушения самого доказательства. Они обеспечивают консенсус и процесс валидации, лежащие в основе децентрализованных блокчейн-сетей.
Получить криптокарту UPay
Испытайте все преимущества онлайн-платежей и бесперебойных криптотранзакций.
РегистрацияЗащита криптографических ключей с помощью хэшей
Помимо защиты данных блокчейна, хеш-функции также используются для защиты закрытых криптографических ключей.
При создании новый закрытый ключ, он объединяется со случайным значением соли и хэшируется несколько раз с использованием алгоритма типа PBKDF2.
Такое расширение ключа значительно усложняет злоумышленникам подбор паролей пользователей методом перебора или получение закрытых ключей. Это гарантирует, что ключи будет сложно восстановить даже в случае перехвата хешированных значений.
Подписи HMAC также объединяют криптографический ключ с хешированным содержимым сообщения для проверки целостности и подлинности сообщения.
Адреса блокчейна также получаются путём хеширования и кодирования открытого ключа. Односторонность означает, что, хотя любой может проверить платежи, отправленные на адрес, никто, кроме владельца, не может криптографически подписать транзакции, отправленные с этого адреса.
Хэши играют важную роль в обеспечении безопасности криптоэкономики за счет надежного и не поддающегося взлому создания ключей и управления ими.
Заключение
Подводя итог, можно сказать, что криптографические хеш-функции — это незамеченные герои, обеспечивающие безопасность и доверие сетей блокчейнов.
Их свойства, такие как простота вычисления и невозможность отмены или прогнозирования, лежат в основе целостности данных блокчейна и предотвращения двойных трат.
Хеши также обеспечивают механизмы консенсуса посредством доказательств выполнения работы и доли владения. Понимая, как работают хеш-функции и какую важную роль они выполняют, мы глубже понимаем безопасность блокчейна.

