Короткий ответ: fully homomorphic encryption, или FHE, позволяет вычислительной системе выполнять определенные операции непосредственно над шифротекстом. Исполнитель получает результат, не видя исходное значение. Это не означает, что любое приложение становится приватным автоматически: набор доступных операций, стоимость, управление ключами и раскрытие результата требуют отдельного проектирования.
Обычное шифрование защищает данные при хранении и передаче, но приложение обычно расшифровывает их перед обработкой. FHE меняет модель: вычисление производится над зашифрованными значениями, а владелец ключа расшифровывает итог. Для блокчейна это интересно там, где участникам нужна общая проверяемая система, но нельзя публиковать каждый баланс или параметр сделки.
Что значит вычислять над шифротекстом
Упрощенная схема состоит из трех действий. Пользователь шифрует входные значения своим публичным ключом и передает шифротекст приложению. Программа выполняет поддерживаемые криптографической схемой операции, не получая открытые числа. Затем зашифрованный результат возвращается владельцу ключа либо проходит предусмотренную протоколом процедуру расшифрования.
Ключевое свойство можно выразить как соответствие: расшифрование результата вычисления над шифротекстом дает тот же или допустимо близкий результат, который получился бы при операции над открытыми исходными данными. Для некоторых схем арифметика точная в заданном модульном пространстве; для других результат вычислений с вещественными числами приближенный. Это влияет на выбор схемы и допустимую погрешность.
Гомоморфность не превращает зашифрованные данные в универсальный язык исполнения. Например, ветвление программы по скрытому условию может быть сложным или невозможным в привычном виде. У вычислений есть глубина, объем и стоимость, а схема и библиотека задают ограничения. Даже корректная программа может оказаться слишком медленной или дорогой для непосредственного исполнения в каждом блоке.
Какие задачи может решать FHE
Наиболее понятные сценарии связаны с агрегированием и анализом. Несколько пользователей могут зашифровать значения, а сервис – вычислить сумму или статистику, не получая отдельные записи в открытом виде. Для финансового приложения это может означать обработку приватного параметра сделки или расчет на скрытых данных. Для машинного обучения – применение выбранной модели к зашифрованному входу при существенных требованиях к производительности.
В блокчейне сам консенсус обычно не исполняет тяжелую криптографическую операцию так же легко, как обычное сложение публичных чисел. Поэтому системы комбинируют компоненты: специализированные узлы рассчитывают над шифротекстом, контракт хранит состояние или координирует доступ, а смарт-контракт проверяет разрешенные переходы. Архитектура зависит от того, кому принадлежат ключи и кто вправе раскрыть или расшифровать итог.
Отдельная проблема – публичная наблюдаемость цепи. Если входной шифротекст и результат видны всем, то содержимое все еще может оставаться секретным, но метаданные, адреса, частота операций и связь между транзакциями могут раскрывать поведение. FHE защищает значение, которое обрабатывается, однако само по себе не скрывает сетевую активность, время операции или факт взаимодействия.
Операции, точность и цена
Популярные семейства схем рассчитаны на разные типы вычислений. Например, BFV и BGV подходят для арифметики над целыми числами в модульном представлении, а CKKS поддерживает операции над зашифрованными вещественными или комплексными значениями с приближенной точностью. Это разные инженерные компромиссы, а не переключатели с одинаковым поведением. Погрешность CKKS нужно включать в спецификацию приложения и тесты.
У операций есть вычислительная цена, объем шифротекста и ограничения по глубине умножений. В некоторых схемах для контроля накопления шума требуется обновление шифротекста, иногда называемое bootstrapping. Такие шаги повышают стоимость вычисления. Поэтому разработчики стараются сокращать число операций, перестраивать алгоритм и выполнять только ту часть приложения, где конфиденциальность оправдывает накладные расходы.
Важно отличать вычисление от доказательства его правильности. Шифрование скрывает вход, но не всегда убеждает остальных участников, что узел выполнил разрешенную программу корректно. Для проверки могут понадобиться доказательства, протокол совместного контроля ключей или другие криптографические средства. Это увеличивает сложность, зато не требует слепо доверять одному исполнителю.
Ключи, доступ и раскрытие результата
Если один пользователь единолично владеет ключом, он получает возможность расшифровать результат и обычно контролирует доступ к нему. В совместном приложении могут использоваться разделение ключа и threshold-расшифрование: участники предоставляют доли только при выполнении установленного условия. Это распределяет доверие, но требует надежного протокола, доступности участников и четких правил восстановления после потери доли.
До внедрения FHE стоит определить, что именно скрывается и кому разрешено увидеть итог. Например, приложение может защищать частные заявки, но раскрывать победителя аукциона после закрытия окна. Такое раскрытие является правилом продукта, а не свойством шифра. Нужно заранее определить, как обрабатываются ошибочные входы, повторные запросы, обновление ключей и запросы аудиторов.
Системы blind computation, например описанные в обзоре Nillion, используют другие модели обработки конфиденциальных данных. Сравнивать нужно конкретную схему угроз: кто видит данные, от кого защищает криптография, как подтверждается корректность и что происходит при отказе узла. Название технологии не заменяет модель доверия.
FHE, ZK и TEE решают разные задачи
FHE позволяет вычислять, не раскрывая вход вычислителю. ZK-доказательство позволяет доказать утверждение о вычислении или данных без раскрытия самого секрета. Эти свойства иногда объединяют, но они не эквивалентны. Доказывать можно, например, что результат соответствует корректному исполнению программы, а шифрование скрывает входы.
TEE изолирует выполнение внутри аппаратной доверенной среды. Оператор может получить свидетельство аттестации о загруженном коде и окружении, однако модель опирается на безопасность процессора, корректность аттестации и обработку побочных каналов. FHE переносит доверие на криптографические предположения и реализацию схемы. Разбор другого подхода к конфиденциальным вычислениям есть в обзоре Fhenix, а проект на основе TEE представлен в материале о Phala Network.
В блокчейне технологии могут дополнять друг друга: шифротекст скрывает вход, доказательство связывает результат с правилами контракта, а аппаратная среда ускоряет отдельную операцию. Каждый компонент добавляет собственные предположения, стоимость и точки отказа. Хороший дизайн явно показывает их пользователю и аудитору.
Как оценивать FHE-проект
- Найдите документацию используемой схемы и выясните, точная ли арифметика или приближенная.
- Проверьте, кто держит ключи, как выполняется расшифрование и кто может изменить правила доступа.
- Попросите измерения именно для заявленной нагрузки, включая размер транзакции, время расчета и стоимость проверок.
- Уточните, где доступен исходный код, какие версии библиотек применяются и проходил ли контракт независимый аудит.
- Разделите конфиденциальность данных, корректность результата и доступность сервиса: это разные свойства.
Не следует делать вывод о применимости только по слову FHE в презентации. Спросите, какая операция выполняется над закрытыми значениями, кем расшифровывается итог и какие сведения остаются публичными. Сравните прототип с похожим направлением Inco Network по документации и открытым ограничениям, а не по обещанию универсальной приватности.
Итог
FHE – это способ считать над зашифрованными значениями, сохраняя их закрытыми от вычислительной стороны. Он полезен для конкретных задач, где конфиденциальность оправдывает дополнительную стоимость. Перед использованием нужно проверить схему, точность, доступ к ключам, производительность и раскрытие метаданных. В блокчейне к этому добавляются комиссии, проверка корректности и правила обновления контрактов. Технология расширяет инструментарий приватности, но не снимает необходимость спроектировать весь поток данных.



