// Содержание

6 ноября 2026 года в криптовалюте Zcash около $15 млн стало невозможно потратить. Чьи это деньги, не знает никто: ни разработчики, ни биржи, ни сама сеть. Монеты лежат в Sprout — самом первом приватном пуле Zcash. Его запустили почти ровно десять лет назад. В 02:34 по Гринвичу сеть перестала принимать старый тип перевода, а только им и можно было достать деньги из Sprout. Внутри остались 12 224 ZEC. Sprout для того и строили, чтобы прятать владельцев и суммы, поэтому снаружи видна одна цифра: общий остаток.

Самое странное в этой истории другое. В марте 2026 года в том же пуле лежало 25 424 ZEC, и их почти списали как потерянные навсегда. За предыдущие пятнадцать месяцев счёт почти не менялся. Потом у пула появилась дата закрытия, и за несколько месяцев из него вышла половина монет. Деньги, которые считались мёртвыми, просто ждали.

Деньги, рождённые у костра

Zcash запустили 28 октября 2016 года как биткоин, у которого есть режим невидимки. В биткоине каждый перевод виден всем: с какого адреса, на какой, сколько. В Zcash можно положить монеты в «защищённый пул». Если упростить, это общее непрозрачное хранилище внутри сети: монеты входят в него и выходят, а что внутри и чьё, не видно. Сеть видит только доказательство, что перевод честный. Кто кому и сколько отправил, остаётся тайной.

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

У этой математики был неприятный побочный продукт. Чтобы запустить систему, один раз требовалось создать общие параметры. По ходу дела появлялись данные, которые сами разработчики называли «токсичными отходами». Сохрани их кто-нибудь — и он мог бы печатать сколько угодно фальшивых монет, а никто бы и не заметил.

Решение придумали почти театральное. Ключ собирали шесть человек на шести станциях в разных местах. Каждый вносил свой кусочек секрета. Стоило хоть одному участнику уничтожить свой — и «отходы» было уже не восстановить. Журналистка IEEE Spectrum Морген Пек наблюдала за станцией в Боулдере, штат Колорадо. Компьютер для неё купили новым в Денвере, вынули из него беспроводную карту и жёсткий диск, промежуточные результаты записывали на одноразовые DVD, комнату снимали пять камер.

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

В Колорадо обошлись без горелки, зато с размахом. Основатель Zcash Зуко Уилкокс, его брат За и жена брата уничтожали технику на заднем дворе в Лонгмонте при свете автомобильных фар. Брат резал системный блок Lenovo болгаркой, Зуко бил по корпусу кувалдой, обломки полетели в костёр, политый жидкостью для розжига. Пахло плавленым пластиком. «Вот поэтому, дети, 23 октября у нас фейерверк», — пошутил Зуко для будущих поколений.

Чтобы секрет нельзя было восстановить, компьютер церемонии разбили кувалдой и бросили в костёр
Чтобы секрет нельзя было восстановить, компьютер церемонии разбили кувалдой и бросили в костёр

Ошибка, о которой знали четверо

Костёр защищал от одной угрозы: от человека, который припрятал «отходы». От ошибки в самой математике он не защищал.

Вечером 1 марта 2018 года Ариэль Габизон, криптограф Zcash Company (она и разрабатывала Zcash), готовился к докладу на научном семинаре и нашёл дыру в схеме, по которой собирали параметры. Из-за неё в опубликованной записи церемонии оказались лишние элементы. С этой записью на руках можно было подделать доказательство и выпустить в Sprout сколько угодно монет. Незаметно.

Об ошибке сначала знали четыре человека: Габизон, криптограф компании Шон Боу, её глава Зуко Уилкокс и технический директор Натан Уилкокс. Запись церемонии убрали из открытого доступа и сослались на случайность. Исправление спрятали в большое плановое обновление Sapling, и 28 октября 2018 года оно заработало. Даже инженеры, по словам компании, не знали, что именно они выкатывают. Запись церемонии потом восстановили с DVD и выложили снова, а об ошибке рассказали только в феврале 2019 года.

Основатель Zcash Зуко Уилкокс-О’Хирн выступает на 34-м Chaos Communication Congress в Лейпциге, декабрь 2017 года
Основатель Zcash Зуко Уилкокс-О’Хирн выступает на 34-м Chaos Communication Congress в Лейпциге, декабрь 2017 годаФото: Tobias Klenze / Wikimedia Commons · CC BY-SA 4.0

Следов атаки в блокчейне компания не нашла. Вывод она строила на детали, которая в этой истории ещё не раз пригодится. Sprout устроен как турникет. Что внутри, не видно, но сеть считает, сколько монет вошло в пул и сколько вышло. Если бы кто-то напечатал фальшивые монеты и вывел больше, чем туда положили, остаток пула ушёл бы в минус. Счётчик ни разу не опустился ниже нуля, и компания формулировала осторожно: пока остаток выше нуля, подделка не обнаружена.

Но у турникета есть предел. Он гарантирует, что фальшивки не просочатся наружу сверх того, что лежит в пуле. Но если подделка всё-таки была и её вывели, за недостачу расплатились бы последние держатели Sprout: настоящих монет внутри на всех уже не хватило бы.

Тот же счётчик сегодня показывает 12 224 ZEC.

Что внутри пула, не видно, но турникет считает каждую вошедшую и вышедшую монету
Что внутри пула, не видно, но турникет считает каждую вошедшую и вышедшую монету

Дверь закрыли снаружи

// Хроника

  1. Запуск Zcash. Приватные переводы работают только через пул Sprout.
  2. Криптограф Ариэль Габизон находит в Sprout ошибку, позволяющую печатать монеты.
  3. Обновление Sapling тихо закрывает ошибку.
  4. Компания раскрывает, что ошибка была.
  5. Обновление Canopy запрещает класть в Sprout новые деньги.
  6. Исследователь с помощью ИИ находит вторую дыру: узлы не проверяли транзакции Sprout.
  7. Обновление NU7 замораживает остаток пула: 12 224 ZEC.

После 2018 года Sprout стал устаревшей деталью. У Zcash появились пулы новых поколений, Sapling и затем Orchard: быстрее, легче, удобнее. Старая схема рядом с ними осталась лишней дверью для взломщика.

18 ноября 2020 года обновление Canopy запретило класть в Sprout новые деньги. Выводить по-прежнему было можно. В обосновании разработчики написали фразу, которая через шесть лет прозвучит почти пророчески: возможность других криптографических слабостей «нельзя полностью исключить».

Кто же всё это время держал там монеты? Обычных людей с приложением в телефоне среди них почти наверняка нет. Один из разработчиков Zcash (на форуме проекта он пишет под ником nuttycom) напомнил, что обычных кошельков для Sprout никогда не было. Пользоваться пулом могли только те, кто сам запускал полный узел сети: ранние майнеры, энтузиасты, первые инвесторы 2016–2017 годов. Часть из них, вероятно, давно забыла пароли. Другие просто перестали следить за Zcash, когда он подешевел.

Вторая дыра нашлась с помощью ИИ

В марте 2026 года выяснилось, что опасения были не напрасны. Исследователь Алекс Сол (ник Scalar) с помощью ИИ обнаружил: zcashd, основная программа узлов Zcash, с июля 2020 года вообще не проверяла доказательства в транзакциях Sprout. Майнер-злоумышленник мог бы увести из пула больше 25 000 ZEC, тогда около $6,5 млн.

Сообщение об ошибке пришло 23 марта, а через три дня крупнейшие майнеры уже поставили исправление. Атаки не было. Даже при худшем раскладе ущерб ограничил бы тот же турникет: украсть чужие монеты из пула было можно, напечатать новые сверх того, что лежало внутри, нельзя. Сол получил вознаграждение в 200 ZEC.

Для тех, кто хотел закрыть Sprout, этот случай стал главным доводом. Старый код почти никто не использует, поэтому почти никто его и не проверяет. А деньги в нём лежат настоящие.

Половина «мёртвых» монет ожила

В октябре 2024 года криптограф Дайра-Эмма Хопвуд предложила отключить Sprout совсем. Доводы были простые: пулом почти никто не пользуется, а его переводы обязан проверять каждый узел сети — лишняя мишень для атак. К тому же единственная программа с кошельком для Sprout уходила на покой.

В декабре 2024 года на форуме Zcash запустили опрос; в пуле тогда лежало 26 054 ZEC. Споры вышли жаркими. Один участник назвал заморозку «полным неуважением к ранним держателям, майнерам, инвесторам, приватности и неизменности». Другой беспокоился о тех, кто просто забыл про Zcash, и просил оставить «план Б», чтобы монеты можно было вернуть позже. Хопвуд отвечала, что вернуть их потом теоретически возможно. Но держателей, у которых ещё есть ключи, просила вывести деньги сейчас, пока работает старая программа. Остальных, по её словам, приходится, к сожалению, считать потерявшими ключи.

Дальше больше года ничего не происходило. К марту 2026 года остаток уменьшился всего на 630 монет.

Потом всё сдвинулось разом. С марта ZEC подорожал примерно впятеро, и забытая заначка стала стоить заметных денег. Обновление NU7 получило дату: сначала 5 ноября, затем точный номер блока. В сентябре предупреждения разошлись по криптовалютным СМИ, Зуко Уилкокс повторил их в X, участники форума просили всех проверить старые кошельки. За несколько месяцев из пула ушли 13 200 монет, больше половины того, что считалось пропавшим.

Это похоже на то, как государство выводит из оборота старые купюры. 8 ноября 2016 года, через одиннадцать дней после запуска Zcash, Индия объявила недействительными банкноты в 500 и 1000 рупий. Сдать их в банк разрешили до конца года. В итоге в банки вернулось 99,3% купюр. Срок работает лучше любых уговоров. Но с купюрами можно прийти в банк. С монетами из Sprout прийти некуда: у сети нет окошка, в котором кто-то посмотрит на человека и поверит ему.

Ключ сохранился, а замочной скважины больше нет
Ключ сохранился, а замочной скважины больше нет

Заморожено, но не сожжено

Формально 12 224 ZEC никуда не делись. Документ с предложением Хопвуд, ZIP 2003, подчёркивает, что монеты не сожжены и по-прежнему считаются выпущенными. Сеть просто больше не принимает транзакции, которыми их можно сдвинуть. Будущее обновление может вернуть старый формат или придумать другой способ забрать деньги. Но тот же документ честно предупреждает: возможность тратить средства Sprout «может так никогда и не вернуться».

Способы вернуть их уже обсуждают. Шон Боу, один из четверых, хранивших в 2018 году тайну ошибки, набросал механизм восстановления, но на день активации его никто не утвердил. На форуме ещё в 2024 году предлагали «последний вариант»: собрать остаток в одном кошельке и выдавать деньги тому, кто докажет, что владеет старым ключом, — снова через доказательство с нулевым разглашением. Сами авторы признавали, что выходит «вопиюще централизованно». Кто-то должен держать этот кошелёк, и этому кому-то придётся доверять.

Биткоину предстоит тот же спор

Zcash сделал то, о чём в биткоине пока только спорят. В апреле 2026 года разработчик Джеймсон Лопп и пять соавторов предложили BIP-361: через пять лет после принятия заморозить монеты на адресах, уязвимых для будущих квантовых компьютеров. Таких монет около 6 млн BTC, из них примерно 1,7 млн лежат на самых ранних адресах, в том числе монеты Сатоши Накамото. Логика та же, что у Zcash: лучше заморозить, чем ждать, пока их украдёт кто-то другой.

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

Предложение Лоппа встретили в штыки. Фил Гайгер из компании Metaplanet сформулировал главное возражение одной фразой: «Нам придётся украсть у людей деньги, чтобы их деньги не украли».

Криптовалюты обещали деньги, которые никто не может отнять: ни банк, ни государство, ни разработчики. История Sprout показывает, где это обещание кончается. Старый код однажды становится дырой, и сообществу приходится решать, что опаснее: оставить её открытой или закрыть вместе с чужими деньгами. Zcash выбрал второе и честно назначил срок. Больше половины монет успело выйти.

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