Приветствуем! Впервые на сайте 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!

Язык

Структура транзакций Zcash

Paige Peterson | Nov 23, 2016

С момента успешного запуска Zcash, который состоялся 28 октября, у майнеров и пользователей возник большой интерес к вопросу о конфиденциальности и сохранности личной информации. Важно понимать, что ключевым фактором при отправке и получении ZEC является использование скрытых и открытых адресов. Понимание принципа использования этих двух разновидностей адресов дает возможность осознанного выбора между ними.

Структурные элементы транзакции

Основными понятиями на которые обращает внимание пользователь при произведения транзакции являются адрес отправки и получения, баланс на счете и взимаемая комиссия. Есть и более сложные компоненты, которые подробно описаны в спецификации к протоколу, так что мы не будем рассматривать их в данной статье. Но в следующей статье мы расскажем о дополнительном поле “memo field”, которое используется при отправке на скрытый адрес.

A high-level skeleton diagram of a Zcash transaction

Схема транзакции Zcash

На диаграмме выше показана схема отправки и получения Zcash в контексте процесса транзакции. Использование скрытого адреса, как при отправке, так и при получении, требует создания доказательства с нулевым разглашением, что позволяет проверить зашифрованные данные транзакции не раскрывая их. (Более детальное описание данного процесса будет изложено в следующем посте, который мы посвятим внутренним механизмам транзакций между скрытыми адресами.) Скрытые адреса, или как еще их называют "z-addr", как правило начинаются с буквы "z". Для проведения транзакции с использованием открытых адресов потребуется вмешательство такого инструмента, как “Transparent Value Pool” (или TVP), и в этом случае данные о транзакции будут доступны общественности. Открытые адреса начинаются с "t" и их часто называют "t-addrs". Комиссия за транзакцию также проходит через TVP и, следовательно, записывается в блокчейн. Но при использовании скрытого адреса, даже не смотря на то, что комиссия всегда отражена в транзакции, сумма и сам адрес остаются скрытыми, как показано на картинке ниже.

A screenshot from Zchain block explorer showing sending ZEC between shielded addresses

Скриншот транзакции между скрытыми адресами с обозревателя блоков Zcash

Изменение адреса

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

К счастью, при отправке ZEC со скрытого адреса эти данные остаются конфиденциальными, поэтому допустима обратная отправка сдачи на тот же адрес. В системе Zcash при использовании скрытых адресов все транзакции выглядят идентично, и повторное использование закрытого адреса не обладает уязвимостями, которые возникают при повторном использовании открытых адресов.

Транзакции между скрытым и открытым адресами

A diagram showing differences between sending ZEC to and from shielded and transparent addresses

Отправка ZEC между скрытыми и открытыми адресами

В системе Zcash ZEC представляет собой единицу баланса, которая отличается от полностью публичных криптовалют (основанных на блокчейне) тем, что баланс ZEC обладает различными свойствами, которые зависят от типа адреса, на котором хранятся деньги в данный момент и от типа адреса, с которого они пришли. Если сумма хранится на открытом адресе, то баланс виден всем остальным. Вне зависимости от того, на какой тип адреса будут отправлены деньги с открытого адреса, это также будет видно окружающим. Зато отправка с открытого адреса на скрытый сделает последующую транзакцию со скрытого более безопасной и разорвет связь между открытыми адресами. И это очень важно, особенно на первых этапах становления ZEC, т.к. многие кошельки (чаще их мобильные версии) пока еще не поддерживают скрытые адреса из-за высоких системных требований. Об этом читайте наш предыдущий пост, посвященный системным требованиям и ограничениям.

A screenshot from Zchain block explorer showing sending ZEC from a transparent address to a shielded address

Скриншот транзакции из обозревателя блоков Zchain, когда сумма ZEC скрыта

На картинке показан пример транзакции с открытого на закрытый адрес. Как видно, процесс отправки на скрытый адрес отражается на его балансе. Однако, не возможно понять, была ли совершена транзакция на один или несколько закрытых адресов.

И наоборот, при отправке с закрытого на открытый адрес, баланс скрытого адреса останется в тайне. Также в тайне останется количество скрытых адресов, с которых сумма будет отправлена на открытый. Но полученная на открытый адрес сумма будет видна и отражена в блокчейне.

Further Notes on More Complex Transactions and Privacy Implications

Следует обратить внимание, что данные примеры не описывают более сложные транзакции, когда отправление или получение коинов происходит сразу при помощи обоих типов адресов. Но по крайней мере мы попытались объяснить общие принципы пересылки между двумя адресами. В ближайшее время выйдет статья о внутренних процессах работы скрытых адресов, в которой будет еще больше информации о связи транзакций между собой, защите конфиденциальности и будут описаны более сложные транзакции. Мы хотим увеличить частоту использования скрытых адресов. Здесь можно посмотреть статистику. Ведь не смотря на то, что транзакции со скрытыми адресами требуют большого количества ресурсов, это окупается за счет высокого уровня безопасности, что в свою очередь является лучшим достижением Zcash как криптовалюты.