Блокчейн

Доверенная среда TEE и ZK-доказательство: разные гарантии вычислений

TEE изолирует исполнение в аппаратной среде, а ZK доказывает корректность утверждения без раскрытия секрета. Сравниваем модели доверия, проверку, приватность и типовые ограничения.

Доверенная среда TEE и ZK-доказательство: разные гарантии вычислений

Короткий ответ: TEE и ZK решают разные задачи доверия. TEE помещает программу и данные в аппаратно изолированную среду и может выдавать аттестацию о ее состоянии. ZK-протокол позволяет предъявить доказательство, что утверждение или вычисление корректно, не раскрывая секретные входные данные. В одном случае доверие связано с процессором и его цепочкой аттестации, в другом – с криптографической схемой и корректностью реализации.

Обе технологии встречаются в блокчейн-приложениях, приватных вычислениях и сетях доказывания. Сравнивать их по общему тезису «защищает данные» недостаточно. Нужно выяснить, что наблюдает оператор, какое свойство проверяет внешний участник, как обрабатываются сбои и кто может получить исходные данные.

Как работает доверенная среда

Trusted Execution Environment – изолированная область исполнения, создаваемая аппаратными механизмами процессора. Код внутри нее получает ограниченную среду, а платформа может сформировать отчет о загрузочном измерении или конфигурации. Удаленная сторона проверяет подпись и параметры аттестации, чтобы решить, доверять ли конкретному экземпляру программы.

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

TEE обычно дает высокую производительность для общего назначения, поскольку код исполняется на процессоре в обычной программной форме. Однако модель полагается на аппаратную реализацию и корректность всей цепочки поставки. Уязвимости процессоров, побочные каналы, ошибки аттестации и неправильные границы между защищенной и обычной памятью могут уменьшить гарантии. Аппаратная аттестация – свидетельство измеренного состояния, а не независимое доказательство безошибочности бизнес-логики.

Что именно доказывает ZK

Zero-knowledge proof позволяет доказывающей стороне подтвердить проверяющей стороне некоторое утверждение, не раскрывая лежащий в основе секрет. В вычислительном сценарии утверждение обычно фиксирует: программа с определенными правилами получила такой вход и выдала результат, удовлетворяющий заданному условию. Проверяющему не нужно повторять весь расчет или получать исходные данные, но он должен знать проверяемую схему и публичные параметры.

Для корректного протокола существенны полнота, надежность и свойство нулевого знания. Полнота означает принятие корректного доказательства. Надежность ограничивает шанс убедить проверяющего в ложном утверждении. Нулевое разглашение должно не позволять вывести из доказательства лишнее о witness, то есть секретном свидетельстве. Если приложение раскрывает лишние публичные входы или строит схему с неверными ограничениями, сам термин ZK не исправит дизайн.

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

Разница в главном объекте доверия

При TEE вопрос звучит так: «Выполнялся ли разрешенный код в приемлемой аппаратной среде, и можно ли доверять производителю и аттестации?» При ZK вопрос иной: «Проверяется ли математическое доказательство утверждения для нужной программы, и безопасна ли криптографическая схема?» TEE может подтвердить, что конкретный измеренный код запущен в среде. ZK может дать проверяемое утверждение о вычислении без доверия к оператору как к честному исполнителю, если соблюдены предположения протокола.

Приватность также различается. TEE может видеть открытые данные во время исполнения, хотя стремится закрыть их от операционной системы и оператора инфраструктуры. ZK не раскрывает свидетельство проверяющему, если circuit и протокол действительно сохраняют zero-knowledge. Но транзакционные метаданные, публичные адреса и время взаимодействия могут оставаться видимыми в обоих вариантах.

Эти системы не обязательно конкурируют. Например, TEE может ускорить предварительный расчет, а ZK-доказательство подтвердить результат независимому смарт-контракту. Или TEE может хранить ключи, а доказательство ограничить действия сервера. Комбинация снижает зависимость от одного компонента, но добавляет код, операционные роли и новые способы отказа.

Таблица сравнения

ВопросTEEZK-доказательство
Что проверяетсяАппаратная аттестация и измеренное окружениеКриптографическое доказательство заданного утверждения
Кто может видеть открытый входИзолированный код внутри доверенной средыДоказывающий; проверяющий получает доказательство и публичные входы
Основное допущениеБезопасность аппаратуры, аттестации и реализацииКриптографические предположения, корректная схема и реализация
ПроизводительностьПодходит для общего исполнения, но с ограничениями средыСоздание доказательства может быть тяжелым, проверка зависит от системы
Типичный рискПобочные каналы, отзыв ключей, ошибки платформыОшибка схемы, настройки, цепочки параметров или верификатора

Таблица показывает общие свойства, а не рейтинг конкретных реализаций. TEE разных производителей и ZK-схемы имеют разные параметры безопасности. В реальном проекте проверяйте официальные спецификации и аудиты именно выбранной версии.

Что спросить у проекта

  • Какие данные находятся в открытом виде, где они появляются и как долго существуют?
  • Как именно пользователь или контракт проверяет аттестацию либо ZK-доказательство?
  • Кто управляет ключами, параметрами, обновлениями кода и списком разрешенных измерений?
  • Какие сценарии отказа предусмотрены, если prover, оператор TEE или источник данных недоступен?
  • Независимо ли проверяется результат на цепи, или пользователь должен доверять централизованному API?

Для TEE нужно узнать, где хранится ключ, как происходит его ротация и что происходит при отзыве аттестации. Для ZK – зафиксированы ли публичные входы, соответствует ли verifier опубликованной схеме и кто проверял circuit. В обоих случаях полезно изучить процедуру обновления: незаметная смена кода способна изменить реальные гарантии продукта.

Связь с блокчейном и приватными вычислениями

Блокчейн может быть местом проверки результата, но не обязательно исполняет исходную задачу. Пользователь может отправить доказательство в контракт, который проверит условие и обновит публичное состояние. В TEE-приложении цепь может проверять подпись аттестации или доверять подписанному сообщению уполномоченного оператора. Последний сценарий требует отдельного рассмотрения риска ключей и доступности.

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

Похожая осторожность нужна при оценке вычислений над закрытым входом. FHE шифрует данные так, что некоторые операции выполняются над шифротекстом, и это снова иная модель. TEE, ZK и FHE отвечают на разные вопросы. Иногда их комбинируют, если приложение готово платить за сложность и может обосновать каждое дополнительное предположение.

Практический вывод

Выбирайте TEE, если нужны универсальные вычисления и проект готов поддерживать аппаратную модель доверия, проверку аттестации и эксплуатационные процедуры. Выбирайте ZK, когда можно точно сформулировать проверяемое утверждение и требуется проверка без передачи секрета внешней стороне. Сравнивайте стоимость, скорость, метаданные, ключи, обновления и отказоустойчивость. Термин «защищенные вычисления» слишком широк, чтобы сам по себе подтвердить безопасность приложения.