Приветствуем! Впервые на сайте Zcash?
The Zcash network is young, but evolving quickly! Sign up and we'll be in touch with monthly highlights on ecosystem growth, network development and how to get started with Zcash!

Язык

Улучшение zk-SNARK протокола конфиденциального вычисления

Sean Bowe, Ariel Gabizon and Ian Miers | Oct 31, 2017

zk-SNARKs – доказательствам с нулевым разглашением, которые являются ядром Zcash – требуется церемония генерации параметров которые будут использоваться при проверке любого заявления, для которого нужно создать доказательства. Хотя приватность zk-SNARK защищают безговорочно, если церемония будет скопроментирована, появится возможность фальсификации Zcash. Поэтому для нас очень важна безопасность генерации параметров церемонии.

В прошлом году, Zcash продемонстрировали выполнение церемонии, в которой используется протокол конфиденциального вычисления (MPC). У таких протоколов есть свойство, что только один участник должен быть не скомпрометирован, чтобы результаты вычисления сохранились в безопасности. Другими словами, для того, чтобы скомпрометировать церемонию, каждый из участников должен быть скомпрометирован.

Однако протокол, который мы использовали в ходе церемонии, рассчитан только на маленькую группку участников. Так как мы продолжаем обновлять Zcash, нам нужно выполнять больше таких установок, поэтому улучшение масштабируемости и производительности протокола важно для нас. Кроме того, проекты за пределами Zcash zk-SNARK могут решить задать собственные параметры, таким образом, мы хотели бы сделать и для них процедуру более простой и дешёвой.

Ариэль Габизон, Ян Майерс и я недавно опубликовали документ с подробностями нового протокола MPC который может быть масштабирован до практически бесконечного количества участников. В документе также описана усиленная конструкция эллиптической кривой, BLS12-381, о которой мы уже писали статью в блог.

MPC с заменой игроков

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

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

Две фазы

Оригинальный протокол MPC включает в себя три стадии вычислений. Участникам необходимо сначала действовать, а потом ждать своей очереди для перехлда к следующему этапу. Между первой и второй стадиями, очень дорогие быстрые преобразования Фурье. В результате, производительность оригинального протокола MPC является слабой.

В новом протоколе, мы сократили MPC до двух этапов. Кроме того, первый этап не имеет отношения к точной zk-SNARK схеме, и большая общая церемония может быть выполнена, что делает этот этап ценным для всех проектов, которые хотят использовать zk-SNARK. Второй этап не использует быстрые преобразования Фурье, и это значит, что MPC для Zcash и других проектов можно масштабировать для неограниченного числа участников без дорогих вычислений.

Нами сейчас внедряется первая фаза церемонии конфиденциального вычисления, написанной на Rust, которая использует новые BLS12-381 эллиптические кривые.

Итог

Этот новый протокол предоставляет гораздо более безопасные параметры церемонии генерации zk-SNARK:

  • Церемония может включать большее количество участников, при этом сохраняется свойство того, что только одному участнику достаточно быть честным, чтобы гарантировать безопасность параметров.
  • Это позволяет нам дать участникам существенную гибкость в том, что касается выбора аппаратного обеспечения и операционной системы, которую они хотят использовать. Как результат, это позволяет нам сократить количество зависимостей и кода, которые мы должны контролировать.
  • Значительно сокращается количество времени, которое участники должны потратить на церемонию, сокращается площадь поверхности атак и появляется возможность для большего количества участников.
  • Используется более сильная конструкция эллиптических кривых, что улучшает безопасность.

Мы в ближайшем будущем намерены поделиться дополнительными деталями о церемонии генерации параметров zk-SNARK.

zkSNARKs, cryptography, Parameter Generation | Просмотреть все тэги