Эта статья является кандидатом в добротные статьи

Zcash

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Zcash
Zcash-logo-black.png
Тип

Платёжная система

Автор

William Scott

Разработчик

Zerocoin Electric Coin Company (ZECC)

Написана на

С++[1]

Операционная система

Linux, Windows, macOS (модификации)[2][3]

Первый выпуск

28 октября 2016 года

Последняя версия

1.0.12

Сайт

z.cash

Zcash — криптовалюта с открытым исходным кодом, разработанная компанией Zerocoin Electric Coin Company[4], обеспечивающая конфиденциальность и выборочную прозрачность транзакций. Платежи Zcash публикуются в общедоступной цепочке блоков, но отправитель, получатель и сумма транзакции остаются приватными[5]. Торговый символ Zcash, ZEC, не является официальным ISO 4217. Минимальная передаваемая величина — 10−8 ZEC — получила название «затоши», по аналогии с «сатоши» — аналогичным количеством биткойна. Как и Биткойн, Zcash имеет фиксированный максимальный общий запас в 21 миллион единиц[6]. Среднее время формирования блока — 150 секунд (2,5 минуты)[7]. Впервые система анонсирована 20 января 2016 года[8][9].

Уровень анонимности Zcash отмечают многие известные компании и личности. Например, WikiLeaks начала принимать пожертвования в Zcash[10], Эдвард Сноуден назвал криптовалюту самой интересной альтернативной Биткойну[11], а Европол официально выразил обеспокоенность ростом популярности криптовалюты[12].

Другими популярными анонимными криптовалютами со схожим назначением являются Monero и Dash.

История[править | править вики-текст]

В 2014 году разработчиками Zerocoin из Университета Джона Хопкинса и группами криптографов из Массачусетского технологического института, Технологического института Израиля и Тель-Авивского университета был разработан протокол «Zerocash». Вместе они смогли улучшить первоначальный дизайн, сделав его более эффективным и более приватным.

« «Благодаря новому протоколу Zerocash, в отличие от Zerocoin, пользователи могут осуществлять прямые платежи друг другу
с помощью значительно более эффективного криптографического протокола, который скрывает не только происхождение, но и сумму платежа».
»

[13]

Проект Zcash был официально объявлен исполнительным директором Зуко Вилкоксом (Zooko Wilcox) (англ.) 20 января 2016 года как эволюция существующего проекта Zerocoin (работа Мэтью Грина, Яна Майера, Кристины Гарман, Авиэль Д. Рубин, в Университете Джонса Хопкинса, факультет компьютерных наук)[8].

С использованием нового протокола появилась самостоятельная криптовалюта Zcash (ZEC), переставшая быть «дополнением» к биткойну.

28 октября 2016 года Зуко Уилкоксом была проведена официальная «криптографическая церемония» запуска Zcash[14].

Особенности[править | править вики-текст]

Zcash является первой криптовалютой[15], основанной на криптографическом протоколе доказательства с нулевым разглашением. В логике работы протокола предполагается, что одна из взаимодействующих сторон способна убедиться в достоверности математического утверждения, не имея при этом никакой другой информации от второй стороны[16]. Фактически Zcash является первой по-настоящему анонимной криптовалютой, так как можно подтвердить, что транзакция была совершена, но нет возможности узнать сумму, отправителя и получателя[17].

Программное обеспечение Zcash выдаёт ряд случайных значений, которые принимаются в качестве исходных параметров. Также оно генерирует фрагменты криптографического ключа, которые вместе могут использоваться для генерации новых ZEC. На церемонии запуска 28 октября было продемонстрировано, как происходит создание и распространение этих фрагментов криптографического ключа так, что сам ключ никогда не оказывается доступен целиком[18].

Протокол Zcash не сохраняет информацию о том, с какого адреса была проведена транзакция, на какой адрес было зачисление и какова сумма; виден только факт совершения транзакции. Информация о транзакции в блокчейне может быть открыта или скрыта по желанию пользователей, что является отличительной чертой Zcash[19].

Принцип работы[править | править вики-текст]

zk-SNARK[править | править вики-текст]

Zcash шифрует содержимое защищённых транзакций. Для проверки достоверности использует криптографический протокол zk-SNARK (англ.) (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge), разработанный создателями криптовалюты на основе доказательства с нулевым разглашением. Протокол позволяет формировать безопасный реестр остатков без раскрытия соответствующих сторон или сумм, но при этом нельзя доказать, что транзакция не является обманом или воровством. Zcash также позволяет пользователям создавать публичные транзакции, аналогично транзакциям в Биткойн. Одной из особенностей Zcash является то, что отправка значений с защищённых адресов на открытые раскрывает информацию о балансе, в то время как отправка с открытых на защищённые сохраняет конфиденциальность[20][21].

Для того, чтобы обладать нулевым разглашением в Zcash, функция, определяющая истинность транзакции в соответствии с правилами сети, должна возвращать ответ о том, истинна ли транзакция или нет, без раскрытия какой-либо информации о выполненных действиях. Это достигается кодированием некоторых правил консенсуса сети в zk-SNARK. На высоком уровне zk-SNARK превращает то, что вы хотите доказать, в эквивалентную форму знания решения некоторых алгебраических уравнений[22]. Конструкции zk-SNARK могут быть применены в широком спектре приложений, обеспечивая достаточно высокую эффективность и разнообразную функциональность[23].

Ключи и адреса[править | править вики-текст]

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

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

Заметки[править | править вики-текст]

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

Блокчейн и транзакции[править | править вики-текст]

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

Каждый блок в цепочке содержит одну или несколько транзакций. Ввод добавляет значения в пул, вывод удаляет из пула; как и в Биткойне, остаток в пуле является вознаграждением майнеров. Правило консенсуса здесь таково: остаточное значение в открытом пуле должно быть неотрицательно[27].

Каждой транзакции соответствует исходное состояние дерева. Состояние описывается деревом передачи заметок, обнуляющим сетом и структурами, аналоги которых есть у Биткойна (например, UTXO[28]).

По состоянию на ноябрь 2017 года размер блокчейна составлял 8,5 GB[7].

JoinSplit[править | править вики-текст]

JoinSplit-описание — это часть данных транзакции, описывающая передаваемое значение. JoinSplit является одним из основных параметров технологии zk-SNARK, характерный только для Zcash. JoinSplit-описание основано на JoinSplit-утверждениях (но не отождествляется с ними), используемых для верификации zk-SNARK. Каждое новое JoinSplit-описание зависит от выходного значения в предыдущем блоке[29].

Дерево передачи заметок[править | править вики-текст]

Дерево передачи заметок — это инкрементное дерево Меркла заданной глубины, в котором хранятся заметки, создаваемые JoinSplit. По аналогии с UTXO, оно используется для описания текущего значения и возможности его использовать, но отличие от UTXO в том, что это дерево не защищает от двойных трат[30].

Обнуляющая функция[править | править вики-текст]

Каждая полная нода создает обнуляющую функцию, логически связанную с каждым состоянием дерева. Обнуляющая функция состоит из обнуляторов, которые можно так же найти в JoinSplit-описаниях. Обнуляторы обязаны быть уникальными, потому что именно они защищают от двойных трат, соответственно, к ним применимо следующее правило: обнулятор не должен повторяться ни в транзакции, ни в пределах валидной цепочки блоков[30].

Вознаграждение майнеру[править | править вики-текст]

Эмиссия в Zcash происходит так же, как и в Биткойн — при создании новых блоков. Награда за создание блока состоит из двух частей — награды, выделенной майнеру в транзакциях, и так называемой награды основателей, которая составляет 20 % стоимости блока в первые 4 года существования Zcash, а в итоге будет составлять 10 % объёма всех выпущенных ZEC[31].

Преимущества[править | править вики-текст]

  • Взаимозаменяемость. Между монетами нет различия, независимо от того, каким путем они были получены[32].
  • Невозможность компрометирования. История происхождения монеты не может быть установлена[32].
  • Математически гарантированная анонимность. Благодаря использованию протокола доказательства с нулевым разглашением о транзакции могут знать только отправитель и получатель[33].
  • Неотслеживаемость транзакций. Протокол zk-SNARK скрывает любые внешние данные, кроме временной отметки[34].

Примечания[править | править вики-текст]

  1. Zcash - Internet money. Github.com. Проверено 22 ноября 2017.
  2. zcash4win v1.0.11. A zcash wallet and full node for Windows. Проверено 22 ноября 2017.
  3. zcash4mac v1.0.4. A zcash wallet and full node for macOS. Проверено 22 ноября 2017.
  4. Zcash - About. Проверено 22 ноября 2017.
  5. Эдвард Сноуден: Zcash решит проблему конфиденциальности Биткоина (ru-RU), Bits.Media (9 июня 2016). Проверено 18 октября 2017.
  6. Zcash, a Harder-to-Trace Virtual Currency, Generates Price Frenzy (en-EN), The New York Times (31 октября 2016). Проверено 18 октября 2017.
  7. 1 2 Zcash - цены и статистика. BitInfoCharts. Проверено 22 ноября 2017.
  8. 1 2 Zcash - Hello, World. Zcash Blog (20 января 2016). Проверено 30 октября 2017.
  9. Анонсирована криптовалюта Zcash, обеспечивающая анонимность транзакций (ru-RU), OpenNews (21 января 2016). Проверено 18 октября 2017.
  10. WikiLeaks начала принимать пожертвования в Zcash (ru-RU), CoinMarket.News (7 августа 2017). Проверено 16 октября 2017.
  11. Эдвард Сноуден: Zcash — самая интересная альтернатива биткойну (ru-RU), CoinMarket.News (30 сентября 2017). Проверено 16 октября 2017.
  12. Европол официально выразил обеспокоенность криптовалютами Zcash, Monero и Ether (ru-RU), CoinMarket.News (4 октября 2017). Проверено 16 октября 2017.
  13. Zerocash: Decentralized Anonymous Payments from Bitcoin (extended version), 2014, pp. 1.
  14. Morgen Peck. A Blockchain Currency That Beats Bitcoin On Privacy. IEEE Spectrum (18 ноября 2016). Проверено 30 октября 2017.
  15. Zcash - How zk-SNARKs work in Zcash. Проверено 30 октября 2017.
  16. Matthew Green Zero Knowledge Proofs: An illustrated primer.
  17. A Lesson in anonymity: Bitcoin, Dash, Monero and Zcash. Проверено 21 ноября 2017.
  18. Zcash - Parameter Generation. Проверено 21 ноября 2017.
  19. Hertig, Alyssa Hardly Anyone Seems to Be Using Zcash's Anonymity Features (англ.). Coindesk (Jan 13, 2017). Проверено 8 октября 2017.
  20. Zcash - Anatomy of A Zcash. Проверено 21 ноября 2017.
  21. Zcash - How Transactions Between Shielded Addresses Work. Проверено 21 ноября 2017.
  22. Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture. — 2015. — 19 мая. — С. 9.
  23. Zero-knowledge proofs, Zcash, and Ethereum. Проверено 21 ноября 2017.
  24. Pavel Tarasov, Hitesh Tewari Internet Voting Using Zcash. — С. 6.
  25. Zcash Protocol Specification, 2017, pp. 8.
  26. Zcash Protocol Specification, 2017, pp. 8-9.
  27. Zcash Protocol Specification, 2017, pp. 9.
  28. Unspent Transaction Output, UTXO. Bitcoin.org. Проверено 30 октября 2017.
  29. Zcash Protocol Specification, 2017, pp. 9-10.
  30. 1 2 Zcash Protocol Specification, 2017, pp. 10.
  31. Zcash founders might make $60 million in first year (en-EN), Medium.com (25 октября 2016). Проверено 18 октября 2017.
  32. 1 2 What Investors Should Know Before Trading Zcash. CoinDesk. Проверено 13 ноября 2017.
  33. New Digital Currency Zcash Promises Total Anonymity and Privacy. Bitcoin Magazine (17 февраля 2016). Проверено 13 ноября 2017.
  34. Zcash: Financial Privacy Heaven or a New Crime Facilitator?. Upcom.eu. Проверено 13 ноября 2017.

Литература[править | править вики-текст]