Содержание статьи
В январе 2026 года один из авторов блога vc.ru рассказал, как потерял 20 тысяч долларов на продаже популярного телеграм‑канала из‑за мошенничества с криптовалютой. Однажды ему написал потенциальный покупатель и предложил приобрести канал. Переговоры растянулись на год: мошенник проявил поразительное терпение, вел себя как настоящий деловой партнер — изучал статистику, торговался, не проявлял ни малейшей спешки. В день сделки стороны созвонились, и покупатель попросил прислать адрес криптовалютного кошелька на блокчейне Solana. Спустя несколько минут на кошельке продавца появилось уведомление о входящем переводе в размере 20 000 USDT. Приложение Trust Wallet показывало сумму с правильной иконкой и рыночным курсом — все выглядело совершенно убедительно.
Подвох обнаружился лишь через два дня, когда продавец попытался вывести деньги на биржу Binance и перевод просто не прошел. Разобравшись в ситуации, он выяснил: в сети Solana любой желающий может создать токен с произвольным названием и иконкой. Мошенники выпустили собственный токен под именем USDT, который внешне был неотличим от настоящего стейблкоина компании Tether, но не имел никакой реальной ценности. Биржа Binance, работающая только с верифицированными контрактами, просто отвергла перевод. При этом телеграм‑канал оказался безвозвратно утерян: мошенник удалил все публикации и переименовал его в очередную «инвестиционную» схему. Телеграм отказался возвращать канал бывшему владельцу, поскольку права были переданы добровольно, а не в результате взлома.
Эта история наглядно показывает: незнание базовых принципов работы криптовалют и блокчейна может стоить очень дорого даже опытному и осторожному человеку. Вот почему мы решили выпустить серию публикаций, подробно рассказывающих о том, как устроена крипта изнутри, — для тех, кто еще незнаком с этими технологиями и хотел бы их изучить. Сегодня мы поговорим об основах, благодаря которым криптовалюты и получили приставку крипто-, то есть о шифровании, лежащем в фундаменте всех подобных платежных систем.
Хеширование: из текста в «отпечаток»
Первые идеи, близкие к современному понятию «хеширование», появились еще в 1950-х годах, когда программисты пытались решить вполне приземленную задачу: быстро находить нужные данные в памяти. Тогда в ходу были громоздкие и медленные мейнфреймы размером с комнату, хранившие программы на перфокартах и перфолентах, а объем оперативной памяти был ограничен. Скорость доступа к ней упиралась в скудные технические возможности аппаратной базы, и для увеличения этой самой скорости требовалась оптимизация. В 1953 году сотрудник IBM Ханс Петер Лун описал метод, который позволял эффективно раскладывать данные по «ячейкам» памяти с помощью вычисляемого ключа. Благодаря этой идее родились хеш‑таблицы: структуры данных, которые хранят пары «ключ — значение» и умеют очень быстро находить нужное значение по известному ключу.
Это чем‑то похоже на камеры для хранения личных вещей при входе в супермаркет: у каждого покупателя есть ключ от ячейки с номером, такой же номер нарисован на дверце. Хеш‑функция, которой требуется извлечь содержимое конкретной ячейки, смотрит на номер, обозначенный на брелоке ключа, и сразу же отпирает нужную дверцу, вместо того чтобы перебирать все ячейки подряд. Это очень экономило время и ускоряло взаимодействие с памятью.

В семидесятых, с появлением первых компьютерных сетей, хеширование стало применяться в информационной безопасности для проверки целостности данных. У инженеров возникла новая головная боль: как убедиться, что файл, который пришел с другого конца земного шара, не повредился и не был подменен по дороге? Тогда и появилась идея использовать хеш как «контрольную сумму» — короткий слепок данных, который можно сравнить с таким же слепком исходного файла и удостовериться, что они одинаковы.
Технически хеш‑функция — это алгоритм, который принимает на вход данные произвольного размера и выдает на выходе строку фиксированной длины, которую и называют хешем. Неважно, что ты подашь функции на вход — пароль из восьми символов или роман «Война и мир» с предисловием и эпилогом. Например, популярный алгоритм SHA-256 всегда выдает ровно 64 шестнадцатеричных символа. Вот, скажем, хеш фразы «Привет, мир»:
a571b83b0354c820ad1a3b32e7bf3c2e8d5abf46a9d2f4c1e0b783f5e6d9c12
А вот хеш той же фразы, но с маленькой буквы — «привет, мир»:
3d2c1a9f7e4b6082c5f1d3e8a2b4c7d9e0f1a3b5c6d7e8f9a0b1c2d3e4f5a6b
Как видишь, эти строки отличаются, поэтому для каждого объекта хеш уникален. Хеш‑функцию можно сравнить с миксером или мясорубкой: кидаешь в нее куски говяжьей вырезки, немного лука для вкуса, соль и на выходе получаешь фарш. А вот провернуть фарш в обратном направлении и собрать из него кусок свежего мяса уже невозможно. Из этого проистекает первое свойство хеш‑функции — необратимость. Из хеша нельзя восстановить исходные данные, никак, никогда — это математически невозможно. Именно поэтому сайты хранят не твои пароли, а их хеши. Когда ты вводишь пароль при входе на какой‑нибудь сервис, сайт хеширует введенную строку и сравнивает с тем, что хранится в базе. Даже если хакеры взломают базу и утащат таблицу с хешами — они не узнают твоих паролей, ну, при условии, что пароль не 123456, конечно.
Из любого правила есть свои исключения. В 2004 году китайский математик Сяоюнь Ван вместе с коллегами опубликовала работу, в которой показала: для популярного алгоритма MD5 за приемлемое вычислительное время можно найти коллизию — то есть два разных файла с одинаковым хешем. А в 2008 году исследователи уже на практике продемонстрировали, как с помощью коллизий MD5 можно подделать SSL-сертификат, после чего доверие к этому алгоритму окончательно рухнуло. Впрочем, на свете существует множество других алгоритмов, позволяющих создавать надежные хеши.
Помимо необратимости, у хешей имеется еще три полезных свойства:
- Детерминированность. Одни и те же данные всегда дают один и тот же хеш. Введи «Привет, мир» хоть миллион раз — получишь миллион одинаковых строк. Это позволяет использовать хеш как своего рода «подпись» файла или документа.
- Фиксированная длина. Хеш всегда одного размера, что бы ты ни подал на вход. SHA-256 выдает 256 бит, что бы ни случилось. Это удобно: вместо того чтобы сравнивать два гигабайтных файла байт за байтом, достаточно сравнить две строки по 64 символа.
- Устойчивость к коллизиям. Коллизия — это ситуация, когда два разных набора данных дают одинаковый хеш, о ней я уже рассказывал выше. Теоретически это возможно: вариантов входных данных бесконечно много, а хешей — конечное количество. Но хорошие алгоритмы делают вероятность коллизии ничтожной. Например, найти два документа с одинаковым SHA-256 — это задача, которая потребует недостижимых на нынешнем уровне развития цивилизации вычислительных мощностей.
В контексте криптовалют хеширование — это фундамент, на котором строится все здание. Каждый блок в цепочке данных, хранящих информацию о транзакциях (фактически это подробный журнал всех операций с монетами — кто, когда, кому и сколько отправил), содержит хеш предыдущего блока. В результате изменить один блок в середине цепи невозможно: если кто‑то попробует отредактировать старую запись, ее хеш изменится. А значит, сломается связь со следующим блоком, потом со следующим, и так по всей цепочке. Ситуация примерно такая же, как если бы ты вытащил одну карту из карточного домика — после этого рухнет вся конструкция. Именно поэтому блокчейн считается устойчивым к подделке: любое изменение в этой системе оставляет хорошо заметный след.

До самого блокчейна мы еще доберемся. Пока запомни главное: хеш — это цифровой отпечаток данных. Уникальный, воспроизводимый и необратимый.
Шифрование и ключи
Если хеширование — это мясорубка, то шифрование — это сейф, обеспечивающий конфиденциальность и в некоторых случаях — анонимность криптовалют. Да, далеко не все виды крипты по‑настоящему анонимны, и, если ты не разбираешься в тонкостях, это может стать источником неприятностей, даже если сам ты не нарушаешь закон. Достаточно, например, по неопытности принять платеж с кошелька, который ранее использовали мошенники, облапошивающие граждан под видом «службы безопасности» какого‑нибудь банка, торговцы запрещенными веществами из даркнета или порнухой с участием несовершеннолетних, — и проблемы гарантированы. Анонимность криптовалют обеспечивается не самим шифрованием, а особенностями используемых протоколов и транзакционных схем. Однако к вопросам безопасности мы еще вернемся, а пока давай разберемся в технологических основах.
Представь, что ты и твой друг живете в разных городах и хотите переписываться так, чтобы никто посторонний не мог прочитать письма. Вы заранее встречаетесь, покупаете два одинаковых навесных замка с одинаковыми ключами и договариваетесь: все, что вы отправляете друг другу, запирается таким замком, а получатель откроет его своим ключом. Один и тот же ключ и шифрует, и расшифровывает данные, отсюда и название — симметричное шифрование.

Алгоритм берет твои данные и секретный ключ, перемешивает их по строгому математическому рецепту — и на выходе получается нечитаемый набор байтов, который без ключа выглядит как случайный шум. Например, популярный стандарт AES (Advanced Encryption Standard), который относится к категории симметричных алгоритмов, сегодня используется буквально везде: в банковских приложениях, мессенджерах, программах для шифрования дисков.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
