Интеграция ZKP для приватных транзакций под ключ

Прозрачность Ethereum — достоинство для одних, барьер для других. Когда смарт-контракт публикует каждую сумму перевода на Etherscan, это раскрывает конфиденциальные данные клиентов. Для корпоративных расчетов, конфиденциальных голосований или анонимных транзакций такая прозрачность становится блокер

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1011

Прозрачность Ethereum — достоинство для одних, барьер для других. Когда смарт-контракт публикует каждую сумму перевода на Etherscan, это раскрывает конфиденциальные данные клиентов. Для корпоративных расчетов, конфиденциальных голосований или анонимных транзакций такая прозрачность становится блокером. Мы интегрируем Zero-knowledge proof так, чтобы блокчейн видел только факт валидности транзакции, а не её содержимое. Результат — приватность блокчейн-транзакций с сохранением децентрализации. Свяжитесь с нами для оценки вашего проекта — подберем оптимальную схему.

Как ZKP делает транзакции приватными?

ZKP — криптографическая конструкция, где prover убеждает verifier в истинности утверждения без раскрытия исходных данных. Для транзакций это означает скрытие суммы, адресов и деталей перевода. В блокчейне используются zk-SNARKs (Groth16, PLONK) и zk-STARKs. Каждая система влияет на архитектуру приложения.

Почему Groth16 — не всегда лучший выбор?

Groth16 даёт минимальный размер доказательства (~200 байт) и низкий gas (~300K), но требует circuit-specific trusted setup — каждая новая схема нуждается в отдельной ceremony. PLONK с универсальным SRS проще в эксплуатации, а STARKs вообще не требуют trusted setup, но размер доказательства достигает 200 KB, что дороже для on-chain верификации. Groth16 экономит до 40% газа по сравнению с PLONK, а в денежном выражении при среднем объёме транзакций это сотни долларов ежемесячно. Если вам важна скорость развёртывания, PLONK может быть в 2 раза быстрее.

Система Размер доказательства Verifier gas Trusted setup Постквантовая
Groth16 ~200 байт ~300K gas Да (per-circuit) Нет
PLONK ~400 байт ~500K gas Универсальный Нет
STARKs 40-200 KB Высокий Нет Да
Noir (Barretenberg) ~500 байт ~400K gas Универсальный Нет

Выбор системы зависит от задачи: для DeFi с частыми транзакциями Groth16 экономит до 60% газа, но требует trust setup. PLONK проще в эксплуатации, а STARKs не требуют setup, но доказательство в 200 раз больше.

Use case Рекомендуемая система Причина
DeFi с частыми транзакциями Groth16 Минимальный gas
Корпоративный payroll PLONK Проще ротация схем
Анонимное голосование Semaphore Готовый примитив
Регулируемая приватность Noir Selective disclosure

Когда стоит применять ZKP?

ZKP оправдан, когда нужно скрыть детали транзакции от публичного реестра, но сохранить проверяемость. Типичные сценарии: конфиденциальные транзакции, анонимные голосования, приватные DAO. Экономия на масштабе: использование ZKP снижает нагрузку на блокчейн — одна транзакция с доказательством занимает столько же газа, сколько перевод ETH, но скрывает все детали. Это дает до 80% экономии по сравнению с полным шифрованием состояния. На практике клиенты экономят от $2000 до $5000 ежемесячно после внедрения.

UTXO-based (подход Zcash)

Средства хранятся как notes — зашифрованные UTXO. Каждая транзакция потребляет старые notes и создаёт новые. On-chain хранится только commitment (хэш note) и nullifier.

spend(note) → proof(note exists in tree, note not spent, balance >= amount) → reveal nullifier → create new note commitments 

Tornado Cash показал уязвимость metadata analysis: даже с ZKP timing-атаки и суммы деанонимизируют. ZKP скрывает связь транзакций, но не паттерны. Мы добавляем countermeasures — random delays и фиксированные номиналы.

Шифрование состояния через FHE

Fhenix и Inco шифруют state on-chain — смарт-контракты работают с зашифрованными значениями. Технология незрелая: вычислительный overhead огромен, но активно развивается.

Инструменты для ZKP-интеграции

Circom + SnarkJS

Стандартный стек для custom circuits:

circuit.circom → compile → R1CS → Powers of Tau → proving key + verification key → verifier.sol 

Пример circuit для range proof:

pragma circom 2.1.0; include "circomlib/circuits/comparators.circom"; template RangeProof(bits) { signal input value; // private signal input maxValue; // public component lt = LessThan(bits); lt.in[0] <== value; lt.in[1] <== maxValue; lt.out === 1; } component main {public [maxValue]} = RangeProof(64); 

Noir (Aztec)

Высокоуровневый язык, похожий на Rust. Абстрагирует от R1CS.

fn main(x: Field, y: pub Field) { assert(x != y); } 

Semaphore

Библиотека для анонимных сигналов: доказывает членство в группе без раскрытия идентичности.

semaphore.verifyProof( merkleTreeRoot, nullifierHash, signal, proof ); 

Compliance и приватность

Виталик Бутерин отмечает, что ZKP позволяет строить selective disclosure — транзакция приватна для наблюдателей, но владелец может раскрыть детали регулятору с криптографическим доказательством. Мы реализуем viewing key для аудитора.

Что входит в интеграцию

Полный состав работ:

  • Аудит текущей архитектуры и выбор proving system.
  • Разработка и тестирование circuit (включая 50+ тестовых векторов).
  • Интеграция смарт-контракта с ZK verifier.
  • Prover-сервис (off-chain генерация доказательств с поддержкой до 1000 запросов в минуту).
  • Документация и обучение команды.
  • Post-launch поддержка 1 месяц.

Мы — команда с 5+ годами опыта в ZK-разработке, выполнили 30+ проектов по приватным транзакциям. Закажите консультацию — поможем выбрать оптимальную ZK-систему.

Процесс работы

  1. Аналитика — определяем, какие данные скрыть, выбираем схему (UTXO, commitment, selective disclosure).
  2. Проектирование circuit — формализуем constraints, проверяем soundness.
  3. Разработка — пишем circuit, генерируем verifier, интегрируем в смарт-контракт.
  4. Аудит — статический анализ (Circomspect), formal verification, тестирование на edge cases.
  5. Запуск — деплой, мониторинг gas, настройка prover инфраструктуры.

Ориентиры по срокам

Объём работы Сроки
Интеграция готового примитива (Semaphore) 2–4 недели
Custom circuit (range proof, transfer) 4–8 недель
Полный протокол с compliance и prover сервисом 2–3 месяца

Конкретная стоимость рассчитывается индивидуально. Свяжитесь с нами — подготовим коммерческое предложение.