Эта страница автоматически переведена с английского.Автоматический перевод.

Switch to EnglishView in EnglishСообщить об ошибке переводаПредложить исправление

Назад к урокам

Глава 3 - пройдено 0 из 10 тестов

Хеш (hash): цифровой отпечаток

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

  • Объяснить, как работает криптографический хеш и почему важен лавинный эффект
  • Описать, как Merkle root связывает блок со всеми его транзакциями

Краткие ответы

Что такое хеш в биткоине (Bitcoin)?

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

Что такое Merkle root?

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

Почему в системе биткоин (Bitcoin) нельзя изменить историю?

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

Односторонние цифровые отпечатки

Криптографический хеш (hash) создаётся хеш-функцией, которая принимает любые входные данные — слово, изображение, целую энциклопедию — и возвращает дайджест фиксированного размера. Этот процесс односторонний: вы можете проверить, что входные данные дают этот дайджест, но на практике вы не сможете восстановить исходные данные по дайджесту. В системе биткоин (Bitcoin) используется алгоритм SHA-256, который возвращает 256 бит, обычно записываемых как 64 шестнадцатеричных символа. Для получения хеша блока и идентификатора транзакции он применяется дважды (SHA-256d).

Лавинный эффект

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

Merkle root

Транзакции в блоке не хешируются для заголовка по отдельности. Сначала попарно хешируются идентификаторы транзакций, затем объединяются в пары полученные результаты, и это повторяется, пока не останется один хеш: Merkle root. Заголовок блока содержит версию, этот корень, хеш предыдущего блока, время, целевую сложность и nonce. Если изменить любую транзакцию, изменится и Merkle root, что приведёт к изменению хеша заголовка, нарушит связь с последующими блоками и обесценит выполненную для них работу.

История с защитой от незаметных изменений

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

Попробуйте сами

SHA-256(message)7cf8bc4722ad70673b7e077edbb85fc46f3226b66903e640b87762042e631e3e
SHA-256(message + !)e00eecf8a59899c733dec40d454045ed1473cedd7f7b0713ad692a18bba33e77

После добавления одного символа изменилось 116 битов из 256.

Главные выводы

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

Вспомните и примените

Измените один символ в демонстрации. Что изменится и чего хеш не доказывает?

Проверьте своё объяснение

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

Проверка знаний

Вопрос 1 из 3

Кто-то редактирует одну транзакцию внутри блока, находящегося на глубине 100 блоков. Что выдаёт это изменение?

Вопрос 2 из 3

Когда вы хешируете документ, меняете одну запятую и хешируете его снова, что происходит с дайджестом?

Вопрос 3 из 3

Что фиксирует Merkle root блока?

Ключевые термины

Источники

Проверено 25 октября 2026 г. · не является финансовой рекомендацией