Zcash | |
---|---|
| |
Тип | Платёжная система |
Автор | William Scott |
Разработчик | Zerocoin Electric Coin Company (ZECC) |
Написана на | С++[1] |
Операционная система | Linux, Windows, macOS (модификации)[2][3] |
Первый выпуск | 28 октября 2016 года |
Последняя версия | 1.0.14 |
Сайт | 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].
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].
Записка (note) — это кортеж, состоящий из платёжного ключа, значения (исчисляется в затоши), обнуляющего сета и случайной битовой последовательности — ловушки передачи. Записка означает, что значение может быть потрачено получателем, у которого есть ключ расходов , соответствующий платёжному ключу . При отправке записки публично доступна только принадлежность указанным значениями, что позволяет сохранить конфиденциальность самого значения и получателя, в то время как принадлежность используется доказательством нулевого разглашения для проверки существования записки в блокчейне[25].
В фиксированный момент времени каждой полной ноде соответствует некоторый набор блоков, которые образуют дерево, в котором каждый узел связан с родительским с помощью заголовка блока hashPrevBlock. Путь от корня до узлов, проходящий через последовательность валидных блоков, удовлетворяющих правилам консенсуса, называется валидной цепочкой блоков[26].
Каждый блок в цепочке содержит одну или несколько транзакций. Ввод добавляет значения в пул, вывод удаляет из пула; как и в Биткойне, остаток в пуле является вознаграждением майнеров. Правило консенсуса здесь таково: остаточное значение в открытом пуле должно быть неотрицательно[27].
Каждой транзакции соответствует исходное состояние дерева. Состояние описывается деревом передачи записок, обнуляющим сетом и структурами, аналоги которых есть у Биткойна (например, UTXO[28]).
По состоянию на ноябрь 2017 года размер блокчейна составлял 8,5 GB[7].
JoinSplit-описание — это часть данных транзакции, описывающая передаваемое значение. JoinSplit является одним из основных параметров технологии zk-SNARK, характерный только для Zcash. JoinSplit-описание основано на JoinSplit-утверждениях (но не отождествляется с ними), используемых для верификации zk-SNARK. Каждое новое JoinSplit-описание зависит от выходного значения в предыдущем блоке[29].
Дерево передачи записок — это инкрементное дерево Меркла заданной глубины, в котором хранятся записки, создаваемые JoinSplit. По аналогии с UTXO, оно используется для описания текущего значения и возможности его использовать, но отличие от UTXO в том, что это дерево не защищает от двойных трат[30].
Каждая полная нода создает обнуляющую функцию, логически связанную с каждым состоянием дерева. Обнуляющая функция состоит из обнуляторов, которые можно так же найти в JoinSplit-описаниях. Обнуляторы обязаны быть уникальными, потому что именно они защищают от двойных трат, соответственно, к ним применимо следующее правило: обнулятор не должен повторяться ни в транзакции, ни в пределах валидной цепочки блоков[30].
Эмиссия в Zcash происходит так же, как и в Биткойн — при создании новых блоков. Награда за создание блока состоит из двух частей — награды, выделенной майнеру в транзакциях, и так называемой награды основателей, которая составляет 20 % стоимости блока в первые 4 года существования Zcash, а в итоге будет составлять 10 % объёма всех выпущенных ZEC[31].
Эта статья входит в число добротных статей русскоязычного раздела Википедии. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .