10857
10 мин

Что такое хэш в блокчейне?

Что такое хэш в блокчейне?

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

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

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

Что такое блокчейн? Объясняем простыми словами
Похожая статья

Что такое блокчейн? Объясняем простыми словами

Читать статью

Что такое хэширование?

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

Алгоритм хэширования

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

Представьте себе, что у вас есть юридический договор — документ из нескольких страниц, в котором подробно описано соглашение между двумя сторонами. Вы применяете хэш-функцию (например, SHA-256) к этому документу. Эта функция обрабатывает весь текст договора, независимо от его длины и сложности. В результате появляется уникальная строка символов фиксированной длины. Например, этот хэш может выглядеть так: 3f786850e387550fdab836ed7e6dc881de23001b.

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

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

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

Как работает хэширование в криптовалюте?

Давайте рассмотрим процесс хэширования на примере работы сети Bitcoin.

Bitcoin использует алгоритм SHA-256 (Secure Hash Algorithm 256-bit).

Заголовок Блока

Каждый новый блок содержит заголовок (с англ. Block Header), тело (с англ. Block Body), в которое входит список транзакций (с англ. List of Transactions), а также другую служебную информацию.

Заголовок блока (c англ. Block Header) – это важный компонент, структурированный набор информации, с которым майнеры “манипулируют”, чтобы найти правильный хэш нового блока. Давайте более подробно рассмотрим данные, которые включаются в заголовок блока в сети Bitcoin:

  1. Версия Блока (c англ. Version): 4-байтовое число, которое указывает на текущую версию блока.
  2. Предыдущий хэш Блока (c англ. Previous Block Hash): 32-байтовый хэш предыдущего блока в цепочке. Это критически важный аспект безопасности блокчейна, так как этот процесс создает непрерывную взаимозависимую цепочку, где каждый блок криптографически связан со своим предшественником.
  3. Корень Меркла (c англ. Merkle Root): 32-байтовый хэш, который представляет корень дерева Меркла.
  4. Временная метка (c англ. Timestamp): 4-байтовое число, которое отображает время создания нового блока.
  5. Целевая сложность (c англ. Target Difficulty/Difficulty Index): 4-байтовое число, которое определяет условия сложности. Она регулируется сетью и нацелена на то, чтобы новый блок создавался в среднем каждые 10 минут.
  6. Случайное число (c англ. Nonce): 4-байтовое число, которое подбирают майнеры. Они многократно изменяют Nonce и пересчитывают хэш-значение, чтобы найти подходящий, соответствующий условиям сложности.
Что такое майнинг криптовалют?
Похожая статья

Что такое майнинг криптовалют?

Читать статью

Создание нового блока включает в себя объединение этих нескольких элементов со случайным числом (Nonce) и последующее применение алгоритма хэширования (например, SHA-256) к этой комбинации.

 Версия Блока (с англ. Version)

+

Предыдущий хэш Блока (с англ. Previous Block Hash)

+

Корень Меркла (с англ. Merkle Root)

+

 Временная Метка (с англ. Timestamp)

+

Целевая Сложность (с англ. Target Difficulty)

+

Случайное число (с англ. Nonce)

хэширование (например с помощью SHA-256)

=

Хэш

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

«Хэшрейт» (с англ. Hash Rate) — это общая вычислительная мощность сети или, количество хэшей в секунду, которые вычисляет устройство для майнинга. Этот показатель отображает эффективность и производительность устройств для майнинга. Измеряется в хэшах в секунду (H/s). 

Этот показатель является ключевым индикатором “силы” сети. Она так же измеряется в таких единицах, как килохэш в секунду (KH/s), мегахэш в секунду (MH/s), гигахэш в секунду (GH/s), терахэш в секунду (TH/s) и так далее, увеличиваясь по мере роста вычислительной мощности. В случае Биткойна речь идет о EH/s (экзахэшах/сек).

«Тело» блока хранит все транзакций, которые будут в него включены. Интересно, что, несмотря на теоретический верхний предел размера блока – исторически установленный на уровне 1 МБ, – фактический объем блока с точки зрения количества транзакций может варьироваться. Как правило, в блоке раньше могло храниться от 2 000 до 2 500 транзакций, учитывая их средний размер. А с обновлением Taproot этот лимит только увеличился. Данные транзакций стали более компактными, что позволило более эффективно использовать существующее пространство блоков.

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

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

Каждая транзакция в блоке сначала хэшируется индивидуально. Затем, хэши каждой транзакции объединяются и хэшируются вместе. Этот процесс так же включает в себя использование криптографической хэш-функции для преобразования данных транзакции в хэш фиксированного размера. Затем отдельные хэши транзакций объединяются в пары и хэшируются. Если количество транзакций нечетное, последний хэш дублируется и хэшируется сам с собой, чтобы создать четное количество хэшей. Этот процесс повторяется пока не останется только один хэш – Корневой, или корень Меркла (с англ. Merkle Root). Он является уникальным представлением всех транзакций в блоке и включается в заголовок блока. Дерево Меркла (с англ. Merkle Tree) позволяет эффективно и безопасно проверять содержимое каждой транзакции в блоке, включая id транзакции, и обеспечивает их целостность, так как любое изменение в одной транзакции приведет к появлению другого корня Меркла.

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

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

Роль хэширования в криптовалютах. Практическое применение хэширования в блокчейне

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

Суммируя, алгоритм хэширования присутствует в нескольких ключевых процессах:

  1. Хэширование Транзакций + Дерево Меркла: Все транзакции группируются в блок. Каждая отдельная транзакция подвергается хэшированию. Затем они объединяются в пары и снова хэшируются вместе. Этот процесс повторяется рекурсивно и хэши объединяются до тех пор, пока для всех транзакций в блоке не останется только один хэш, – корень Меркла. Этот корень Меркла является уникальным представлением всех транзакций в блоке и включается в заголовок.
  2. Хэширование Блока: После того как блок заполнен транзакциями и вычислен их корень Меркла, весь заголовок блока и значения в нем подвергаются хэшированию. Именно этот окончательный хэш и пытаются вычислить майнеры в процессе добычи криптовалюты.
  3. Майнинг (в контексте PoW): В процессе майнинга майнеры соревнуются в поиске определенного хэша, который соответствует определенным критериям, заданным уровнем сложности сети. Это предполагает многократное хэширование заголовка блока с различными значениями Nonce до тех пор, пока они не найдут хэш, соответствующий определенным критериям. Первый майнер, которому это удается, добавляет новый блок в блокчейн.
  4. Целостность Цепочки Блоков: Каждый новый блок в блокчейне содержит хэш предыдущего блока. Это создает цепочку блоков и обеспечивает целостность блокчейна. Любое изменение в транзакции приведет к изменению хэша не только блока, содержащего транзакцию, но и всех последующих блоков.
  5. Безопасность Сети: Когда майнер успешно добывает новый блок (т. е. находит правильный хэш, который отвечает критериям сложности сети), этот блок отправляется в сеть и передается узлам. Они проверяют достоверность нового блока с помощью хэширования.Эти проверки необходимы, чтобы блок соответствовал правилам сети и содержал только допустимые транзакции (т.е. они убеждаются, что они правильно отформатированы, подписаны и не было двойной траты. И если блок проходит все проверки, узлы принимают его и добавляют в свою копию блокчейна. Затем это согласие передается другим узлам, постепенно достигая консенсуса во всей сети.

Особенности хэш-функции блокчейна. Что такое устойчивая хэш-функция?

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

  • Любой объем информации – Одинаковая длина:

Чтобы понять, как это работает, возьмем текст:

Создание сети WB было реализовано в рамках разработки токена WhiteBIT Token (WBT), собственного актива криптобиржи WhiteBIT. Благодаря успешной реализации блокчейна WB Network, WBT обрел новое место жительства, став полноценной монетой WBT Coin (WBT).

Используем алгоритм SHA-256 и получаем: 8b91d751f2773738c1b38e9ad25440aca3e99d59947345ec47bb04e5d9ce6493. Длина текста может быть разной, но длина хэша всегда будет фиксированной.

  • Детерминированность: Одно и то же сообщение должно приводить к одному и тому же хэш-коду. Еще раз взгляните на пример хеширования выше. Любой кто применит функцию SHA-256 к этому же тексту, получит точно такой же хэш. Это свойство позволяет всем участникам достигать консенсуса.
  • Устойчивость к Коллизиям: Это означает, что практически невозможно найти два разных набора данных, которые создадут одинаковый хэш.

То есть, грубо говоря, исходные данные, например, «Привет, WhiteBIT!» и «Hello, World!» не будут иметь одинаковые хэш-значения. Вероятность получить из одинаковых входных данных одинаковый хэш должна быть близка к нулю. Устойчивость к коллизиям важна для гарантирования целостности и неподменности данных.

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

Чем хэширование отличается от шифрования?

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

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

Например:

Исходные данные: «Hello, World!»

Алгоритм: SHA-256

Значение: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

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

Исходные данные: «Привет, WhiteBIT!».

Алгоритм: SHA-256

Значение: 165e2b73f08b889a5e7bee32a8c992c9d1c18de5a7bb88c358ffab2eae130bd5

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

Для хэширования используются такие алгоритмы, как SHA-256 (например, в Bitcoin). А для шифрования – AES или RSA. Они так же отличаются между собой по длине данных, которые получаются на выходе. Хэширование производит выходные данные фиксированного размера, независимо от размера входного сигнала. Например, SHA-256 всегда выдает 256-битный хэш.

А для шифрования длина зашифрованного вывода прямо пропорциональна длине ввода.

Распространенные алгоритмы хэширования в блокчейне

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

  • SHA-256 (Secure Hash Algorithm 256-bit) — используется в Bitcoin (BTC), Bitcoin Cash (BHC), и других форках Bitcoin.
  • KECCAK (SHA-3) — используется в некоторых новых и менее распространенных реализациях блокчейна. Является одним из последних членов семейства алгоритмов безопасного хэширования.
  • Ethash — использовался в Ethereum (ETH), до его перехода на Proof-Of-Stake (PoS).
  • Scrypt — используется в Litecoin (LTC), Dogecoin (DOGE) и других альткоинах.
  • X11 — используется в Dash (DASH).

Заключение

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

WhiteBit icon
Начни криптоторговлю уже сегодня
Начать торговать на WhiteBIT

FAQ

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

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

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

Поделиться
Опубликовано
Author: WhiteBIT WhiteBIT
Весь мир криптовалют — у тебя в кармане
Всегда под рукой

Последние статьи

Что такое механизм консенсуса в блокчейне и криптовалютах?

При первом знакомстве с блокчейн технологией возникает ключевой вопрос: как сотни тысяч участников по все...

Цикл рынка криптовалют: практическое руководство для трейдеров

Рынок криптовалют не стоит на месте — он развивается, колеблется и цикличен. Знание, как распознавать сме...

Что такое Total Value Locked в криптовалюте (TVL): Все, что вам нужно знать

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

Что такое «криптовалюта как услуга» (CaaS) и как она работает?

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

Стратегии торговли криптовалютой для новичков и профессиональных трейдеров

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

Ещё новости

Перейти в раздел
Как использовать WhiteBIT-код?

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

Что такое криптовалюта? Рассказываем простыми словами

Рынок криптовалют может как падать, так и быть на подъеме. Сейчас очевидно, что технология блокчейн и циф...

Копитрейдинг в криптовалюте

Добро пожаловать в мир криптовалютного копитрейдинга. Эта статья — твое руководство, которое поможет поня...

Выгоды от использования криптовалют

Основным преимуществом использования криптовалют является простота совершения операций.

Что такое фундаментальный анализ в трейдинге криптовалютами?

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

Крипта может работать на тебя

Храни активы с Криптодепозитом и получай до 18.64% годовых. Минимум усилий — максимум профита.

Скачать приложение

отсканировать QR-код