{"id":13505,"url":"\/distributions\/13505\/click?bit=1&hash=ca3734639136826288c9056e5c8fa03a05e87c4060ae84df200f2c90f5262470","title":"\u0412\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a? \u0410 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435 \u043a\u043e\u0434\u0430?","buttonText":"\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c","imageUuid":"f5f0e11f-fefd-52f5-8712-82164a59b7ce","isPaidAndBannersEnabled":false}

Эпизод 4: Что такое хэш в блокчейн?

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

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

Алгоритм хэширования - это функция, которая преобразует любые данные в строку, называемую хэшем. Представьте себе черный ящик с надписью "Sha-256". У ящика есть вход и выход. Все, что мы знаем об этом ящике, это то, что на вход можно подавать любые данные. Поэтому мы напишем на листе бумаги "Hello World" и введем эти данные в ячейку Sha-256. Блок потребляет эти входные данные и выдает строку фиксированной длины в 256 бит.

Если мы продолжим вводить листы бумаги с надписью "Hello World", выходной сигнал останется тем же. Если мы немного изменим входные данные, скажем, добавим запятую между словами "Hello" и "World", выходной результат станет совершенно другим! Его длина по-прежнему составляет 256 бит, но он совсем не похож на исходный вывод до добавления запятой. Можно считать, что эта коробка представляет алгоритм хэширования, в частности SHA-256, а выход коробки представляет хэш.

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

В сочетании эти два свойства позволяют хэшам выступать в качестве отпечатков пальцев или практически уникальных идентификаторов данных. Хеши используются повсеместно в Интернете, например, в GitHub используются Identicons для создания уникальной фотографии профиля каждого нового пользователя. Хеши также широко используются в блокчейн. Когда новый блок добавляется в блокчейн, он ссылается на хэш предыдущего блока, а затем новый блок сам хэшируется. Благодаря этому процессу для изменения истории блокчейна требуется пересчитать все блоки и их хэши. Я объясню этот процесс более подробно в одной из следующих статей. Хеши также используются в блокчейне в структурах данных, называемых "деревьями Меркле", для более сжатого представления данных о транзакциях. Популярные алгоритмы хэширования в блокчейне включают Sha-256 и Keccak-256. Число 256 означает, что длина хэшей всегда составляет 256 бит.

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

Нас удобно читать в Телеграм.
Блокчейн Адвокат - пишем про блокчейн, смарт-контракты, web3, криптотех и ИИ.

0
2 комментария
Техклимат

Похоже на шифрование. Выходной сигнал складывается с шифрующим (последовательность 1,0), получается третий.

Ответить
Развернуть ветку
Техклимат

Чтобы расшифровать, нужно знать последовательность шифрующего сигнала.

Ответить
Развернуть ветку
Читать все 2 комментария
null