Разработчики Zcash активировали обновление Ironwood на высоте блока 3 428 143 в рамках сетевого апгрейда NU6.3, заменив шифрованный пул Orchard на формально верифицированную альтернативу. Замена последовала за открытием исследователем Тейлора Хорнби бесконечной (infinity) уязвимости в Orchard в конце мая, которая теоретически допускала риск создания поддельных ZEC без возможности обнаружить это. Уязвимость в одном из ключевых механизмов приватности Zcash привела, как описали разработчики, к «спринту в режиме военного времени» для развертывания полного замещения вместо патча.
Hornby обнаружил уязвимость Orchard с бесконечностью в конце мая
Тейлор Хорнби, исследователь Shielded Labs, обнаружил уязвимость Orchard infinity bug в конце мая. Ошибка находилась глубоко внутри схемы (zero-knowledge circuit) Orchard и создавала теоретический риск чеканки поддельных ZEC без оставления каких-либо публично обнаруживаемых следов. Не появилось никаких свидетельств того, что уязвимость когда-либо использовалась. После того как информация стала публичной, ZEC потерял более половины своей стоимости.
Аварийные патчи, развернутые в начале июня, временно отключили Orchard. Исправленная схема поступила через хардфорк NU6.2 в течение пяти дней. Разработчики заявили, что математически невозможно с уверенностью доказать, что скрытая инфляция никогда не происходила внутри старого пула, поэтому полная замена стала единственным способом восстановить верифицируемую целостность предложения.
Сооснователь Shielded Labs Зуко Уилкокс изначально предложил полностью заменить Orchard. Далее последовало примерно 60 дней согласованной разработки силами Shielded Labs, Zcash Open Development Lab (ZODL), Project Tachyon, Valar Group и Zcash Foundation. Исполнительный директор ZODL Джош Свихарт заявил, что инженеры его организации внесли 82% объединённых изменений в репозитории протокола и кошелька Zcash в ходе работы по замене.
Ironwood ввёл отдельную систему учёта и заметки с квантовым восстановлением
Ironwood ввёл полностью отдельную систему учёта со своим деревом коммитментов заметок (note commitment tree), множеством нуллификаторов (nullifier set) и пулом значения цепочки (chain value pool). Такая структура позволяет любому узлу независимо отслеживать новый защищённый пул от всего, что было до него.
Обновление установило публичную контрольную точку учёта, которую проект описал как «турникет». Средства могут покидать Orchard через этот турникет, но механизм математически предотвращает выход большего значения, чем было законно внесено в старый пул. Любые гипотетически поддельные монеты, отчеканенные внутри Orchard до или во время окна уязвимости, будут навсегда «заперты» там и не смогут загрязнить учёт предложения Ironwood.
Новый пул включил заметки с квантовым восстановлением по ZIP 2005. Эта функция не делает транзакции Zcash квантово защищёнными сегодня — для этого в будущем всё ещё потребуется разработать и активировать отдельный протокол восстановления. Обновление NU6.3 сделало Zebra обязательной реализацией узла, завершив поддержку старого ПО zcashd в сети.
Project Tachyon завершил формальную верификацию на 2 700 теорем
Project Tachyon завершил машинно-проверяемое математическое доказательство вместе с разработчиками Zcash. Написанное на языке программирования Lean, доказательство состоит более чем из 2 700 теорем, разработанных более чем за месяц тремя командами исследователей и криптографов. Доказательство формально подтверждает, что Ironwood не может создавать недетектируемые поддельные ZEC при заявленных допущениях дизайна.
Доказательство охватывает компоненты, необходимые для целостности балансов: систему доказательств с нулевым разглашением (zero-knowledge proof system) Ironwood, правила его схем (circuit rules) и учёт на уровне журнала (ledger-level accounting). Сооснователь Zcash Шон Боуз заявил: «Межкомандное сотрудничество только что навсегда изменило историю Zcash, устранив все источники недетектируемых ошибок подделки из нового протокола Ironwood».
Формальная верификация охватывает целостность балансов, но не распространяется на отдельные гарантии приватности Ironwood. Надёжность предложения и транзакционная приватность — это разные свойства, и доказательство рассматривает только первое.
Трекер миграции показывает, что 40 207 ZEC перемещены в Ironwood
Orchard перешёл в фазу «только выход». Пул больше не принимает новую защищённую активность, но пользователи по-прежнему могут выводить средства по своему усмотрению. Согласно трекеру миграции Zcash, примерно 40 207 ZEC переместились в Ironwood с момента активации. Примерно 3,6 млн ZEC всё ещё находятся в Orchard в ожидании миграции.
На пике Orchard учитывал почти 88% предложения защищённых токенов Zcash, согласно данным The Block, при этом оставшуюся часть составляли более старые пулы Sapling и Sprout.
FAQ
Что такое обновление Zcash Ironwood?
Ironwood — это обновление сети Zcash, которое заменило уязвимый защищённый пул Orchard на формально верифицированный защищённый пул. Оно активировалось на высоте блока 3 428 143 в рамках хардфорка NU6.3.
Почему было необходимо обновление Ironwood?
Апгрейд требовался, потому что в конце мая в пуле Orchard была обнаружена бесконечная (infinity) уязвимость, создававшая теоретический риск создания недетектируемых поддельных ZEC. Разработчики заявили, что математически невозможно доказать, что уязвимость никогда не использовалась, поэтому потребовалась полная замена, а не только опора на патч.
Что происходит со средствами, которые всё ещё находятся в пуле Orchard?
Orchard перешёл в фазу «только выход». Пользователи по-прежнему могут выводить из него средства, но пул больше не принимает новые защищённые транзакции. Примерно 3,6 млн ZEC остаются в Orchard в ожидании миграции в Ironwood, в то время как около 40 207 ZEC уже переместились через это.