Zcash (ZEC) использует доказательство с нулевым разглашением для обеспечения полностью анонимных транзакций. Протокол позволяет пользователю выбирать, должна ли транзакция быть анонимной или нет. Протокол Zcash в основном разработан компанией Electric Coin Company и фондом Zcash Foundation.

История Zcash

С момента запуска в конце октября 2016 года у Zcash была короткая, но насыщенная событиями история. Буква Z в названии означает Zero и указывает на происхождение валюты. Все началось несколькими годами ранее, в 2013 году, с работы американского компьютерного ученого Мэтью Грина и двух его студентов. Грин и его соратники изучили биткоин на предмет анонимности его пользователей и пришли к выводу, что с помощью методов добычи данных и анализа трафика можно определить тенденции во множестве транзакций по переводу средств на блокчейне биткоина и таким образом, по крайней мере в принципе, статистически определить платежные операции по всем счетам пользователя. В качестве контрмеры Грин предложил ввести дополнительный криптографический протокол, названный Zerocoin, и который должен гарантировать немалую анонимность биткойна.

Zerocoin изначально не является самостоятельной криптовалютой, а лишь протоколом, который может анонимизировать транзакции Bitcoin. Но в 2016 году появилась Zcoin (XZC), которая первоначально называлась Moneta и представляла собой отдельную систему Zerocoin. Вскоре после этого появилась Zoin (ZOI) как форк Zcoin. Стало очевидно, что у Zerocoin есть проблемные аспекты, которые делают протокол уязвимым. Поэтому в 2013 году была создана Zerocash как улучшенная версия Zerocoin. Компания Zerocoin Electric Coin Company, к которой на начальном этапе принадлежал Мэтью Грин и позже была переименована в Zcash Company, отвечает за Zerocash. Компания занималась дальнейшим развитием Zerocash и внедрением протокола в виде самостоятельной криптовалюты. Результатом этих усилий стал Zcash.

Как работает Zcash?

Компонент Zero в названии этих протоколов и монет не является ни совпадением, ни маркетинговой идеей. Повышенная анонимность систем достигается с помощью определенной процедуры, так называемой Zero-Knowledge-Proof.

Основной принцип объясняется просто: если у Алисы есть секретная часть информации, например, комбинация для открытия сейфа, а Борис должен проверить, что она обладает этой информацией, не получая ее самостоятельно, она откроет сейф, не дав Борису увидеть комбинацию цифр, а затем снова его закроет. В этом сценарии Алиса является проверяющим, а Борис – верификатором. В случае Zcash эта процедура реализована в виде так называемых zk-SNARK. Это Zero-Knowledge Succinct Non-Interactive Argument of Knowledge, где Zero-Knowledge – это процедура доказательства, Succinct означает «короткий» и относится к быстрой выполнимости, а Non-Interactive означает, что проверяющий не должен ничего делать сам, а должен только один раз получить аргумент знания от проверяющего, чтобы выполнить процедуру.

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

Несмотря на то, что Zcash является дальнейшим развитием Zerocoin, ссылка на первоначальную отправную точку Bitcoin все еще заметна. Мало того, что общее количество ZEC составит 21 миллион, как в случае с Bitcoin, так еще и концепция структуры валюты понимается как «Bitcoin + анонимность». На самом деле, спрос на функцию создания личности и присвоения имени в Zcash очень низкий: анонимизация является необязательной, и система управляет открытыми и анонимными транзакциями в различных пулах, прозрачно и экранировано.

Что касается производительности, то картина неоднозначная: Zerocoin считалась печально известной и медленной. Zcash решил эту проблему и обеспечивает быстрое проведение транзакций, но требует огромных баз данных размером в гигабайты для подбора при использовании zk-SNARKs. Дополнительная анонимность также отрицательно сказывается на безопасности. Предшественник Zerocoin страдал от атак, например, в 2017 году, когда 370 тысяч поддельных XZC были сгенерированы путем эксплуатации ошибки в программном обеспечении и обменены на внушительную сумму в 400 биткоинов. Кстати, эта концепция не встретит особой любви со стороны контролирующих органов, поскольку степень анонимности, достигаемая Zerocoin и Zcash, делает эти методы кандидатами на отмывание денег и незаконные денежные переводы.