Статус: Решено — требуется обязательное обновление
Краткий обзор
2 июля 2026 года команда разработчиков Ghost обнаружила уязвимость на уровне консенсуса в механизме проверки транзакций Ghost Core, которая позволяла создавать в ходе транзакции больше монет GHOST, чем было обеспечено их входными данными. Проблема устранена в версии Ghost Core v0.23.1.0; сеть успешно прошла процедуру скоординированного отката и хард-форка, в результате чего все блоки, содержащие следы использования данной уязвимости, были признаны недействительными.
Всем операторам узлов, стейкерам и биржам-партнерам необходимо обновиться до версии v0.23.1.0, чтобы оставаться в актуальной цепочке блокчейна. Пользователям десктопного кошелька достаточно закрыть и снова запустить приложение — последняя версия основного ПО (ядро core) будет загружена автоматически. Пользователям SHELTR никаких действий предпринимать не нужно. Если вы используете основной кошелек (core wallet), вам потребуется скачать последнюю версию с GitHub.
Общие сведения
Ghost поддерживает конфиденциальные (скрытые) суммы транзакций с использованием обязательств Педерсена и доказательств диапазона Bulletproofs наряду со стандартными прозрачными выходами. Для обеспечения целостности реестра каждая транзакция должна соблюдать закон сохранения стоимости: сумма средств, входящих в транзакцию, должна быть больше или равна сумме средств, выходящих из неё, плюс комиссия — независимо от того, являются ли эти средства прозрачными или конфиденциальными.
Уязвимость (обзор)
Уязвимость не затрагивала доказательства принадлежности диапазону (range proofs) в протоколе Bulletproofs; криптографические доказательства работали корректно. Ошибка содержалась в механизме учёта на уровне транзакции, обеспечивающем соблюдение принципа сохранения стоимости.
Проверка, гарантирующая, что стоимость прозрачных выходов покрывается стоимостью прозрачных входов, не срабатывала для определённых комбинаций типов входов и выходов. Транзакция, сформированная таким образом, чтобы содержать одновременно конфиденциальный и прозрачный выходы, могла обойти это ограничение, создавая больше стоимости, чем было предоставлено на входах.
Влияние
Используя этот метод, было создано приблизительно 2 000 000 000 GHOST — при максимальном лимите предложения в 55 000 000 GHOST — начиная с блока 1 572 595.
Нативная цепочка Ghost: Скоординированный откат (ниже) аннулировал каждый блок, содержащий эту активность, полностью удалив созданные монеты из канонической цепочки.
Polygon / wGHOST: часть эксплуатируемого предложения была переведена в Polygon как wGHOST и поступила в обращение до заморозки рынков. Поскольку эти токены смешивались с обычной внутрисетевой торговлей, точное количество, перешедшее из рук в руки, точно определить невозможно. Вместо попытки отслеживания каждого токена компенсация осуществляется путем перевыпуска из предварительного снимка (snapshot, см. ниже), что напрямую компенсирует потери законным владельцам.
Устранение проблемы
Исправление (v0.23.1.0). Проверка транзакций теперь обеспечивает соблюдение принципа сохранения стоимости для всех комбинаций типов входов и выходов, устраняя имевшуюся уязвимость.
Откат и хард-форк. Блоки, начиная с высоты 1 572 595, отклоняются как недействительные. Поскольку отклонение первого недействительного блока делает недействительной всю цепочку последующих блоков, обновленные узлы автоматически выполняют реорганизацию, возвращаясь к блоку 1 572 594 без необходимости ручного вмешательства. Транзакции, использованные для эксплойта, в канонической цепочке отсутствуют.
Wrapped GHOST (wGHOST) — Polygon
Часть похищенных средств была использована для искусственного увеличения объёма wGHOST в сети Polygon, в результате чего их количество достигло примерно 500 000 000. Поскольку Polygon является независимой сетью, отменить эти действия так же, как это было сделано с основным блокчейном Ghost, невозможно. Вместо этого:
- Текущий контракт wGHOST выводится из эксплуатации и признается недействительным.
- В сети Polygon будет развернут новый контракт wGHOST.
- Добросовестные держатели получат новые токены wGHOST в соотношении 1:1 на основе снимка состояния сети (snapshot), сделанного на блоке Polygon № 89552320 (2 июля 2026 г.). Этот снимок был зафиксирован до появления каких-либо токенов wGHOST, полученных в результате взлома, поэтому все балансы, зафиксированные на этом блоке, считаются легитимными.
Если вы владели токенами wGHOST на момент создания снимка состояния сети (на блоке 89552320), вам не нужно предпринимать никаких действий. Новые токены будут начислены автоматически после запуска нового смарт-контракта. Текущий контракт wGHOST выводится из обращения — не покупайте и не продавайте эти токены, а также не предоставляйте для них ликвидность. Токены wGHOST, полученные после указанного блока, не подлежат обмену в соотношении 1:1. Сроки проведения аирдропа будут объявлены дополнительно.
Хронология (UTC)
- 2 июля 2026 г. — В сети зафиксирована активность, связанная с эксплуатацией уязвимости; сама уязвимость выявлена. Операции по внесению средств и торговля на партнёрских биржах приостановлены.
- 2–8 июля 2026 г. — Разработка, проверка и тестирование исправления.
- 8 июля 2026 г. — Исправленная версия передана команде и прошла проверку.
- 9 июля 2026 г. — Выпущен релиз Ghost Core v0.23.1.0; выполнены откат состояния сети и хард-форк.
Что нужно сделать
Это обязательное обновление. Немедленно обновитесь до версии Ghost Core v0.23.1.0:
https://github.com/ghost-coin/ghost-core/releases/tag/v0.23.1.0
Узлы, работающие на устаревших версиях, останутся в недействительной цепочке и не смогут взаимодействовать с сетью.
Благодарности
Уязвимость была выявлена и устранена командой разработчиков Ghost.
Мы благодарим наших партнёров — криптовалютные биржи — за оперативную реакцию и приостановку операций по депозитам и торговле, а также выражаем признательность нашему сообществу за терпение и поддержку в ходе решения проблемы.
Оригинал статьи на английском языке: https://ghostprivacy.medium.com/ghost-core-v0-23-1-0-security-incident-report-0852f678ac58

