Структура транзакций Zcash
Все новости про Zcash в социальной сети «X» (бывший Twitter) | Интересные видео про Zcash на YouTube
Paige Peterson | Ноябрь 23, 2016
С момента успешного запуска Zcash, который состоялся 28 октября, у майнеров и пользователей возник большой интерес к вопросу о конфиденциальности и сохранности личной информации. Важно понимать, что ключевым фактором при отправке и получении ZEC является использование скрытых и открытых адресов. Понимание принципа использования этих двух разновидностей адресов дает возможность осознанного выбора между ними.
Структурные элементы транзакции
Основными понятиями, на которые обращает внимание пользователь при произведения транзакции, являются адрес отправки и получения, баланс на счёте и взимаемая комиссия. Есть и более сложные компоненты, которые подробно описаны в спецификации к протоколу, так что мы не будем рассматривать их в данной статье. Но в следующей статье мы расскажем о дополнительном поле “memo field”, которое используется при отправке на скрытый адрес.
Схема транзакции Zcash
На диаграмме выше показана схема отправки и получения Zcash в контексте процесса транзакции. Использование скрытого адреса, как при отправке, так и при получении, требует создания доказательства с нулевым разглашением, что позволяет проверить зашифрованные данные транзакции не раскрывая их. (Более детальное описание данного процесса будет изложено в следующем посте, который мы посвятим внутренним механизмам транзакций между скрытыми адресами.) Скрытые адреса, или как еще их называют «z-addr», как правило начинаются с буквы «z». Для проведения транзакции с использованием открытых адресов потребуется вмешательство такого инструмента, как “Transparent Value Pool” (или TVP), и в этом случае данные о транзакции будут доступны общественности. Открытые адреса начинаются с «t» и их часто называют «t-addrs». Комиссия за транзакцию также проходит через TVP и, следовательно, записывается в блокчейн. Но при использовании скрытого адреса, даже не смотря на то, что комиссия всегда отражена в транзакции, сумма и сам адрес остаются скрытыми, как показано на картинке ниже.
Скриншот транзакции между скрытыми адресами с обозревателя блоков Zcash
Изменение адреса
Как и в других протоколах на основе блокчейна, если вы захотите отправить сумму, отличную от имеющихся на вашем балансе транзакций, то это может потребовать отправки всего баланса, а также создания еще одного адреса для получения сдачи. Конечно, можно использовать адрес отправки для получения сдачи. Но так делать не рекомендуется, это опрометчивый шаг — использовать один публичный, видимый всем, адрес для отправки и получения. Поэтому создание нового адреса для каждой транзакции прочно вошло в практику. Стоит все же заметить, что этот способ сохранения конфиденциальности данных о транзакции довольно тривиален и не обеспечивает достаточный уровень безопасности.
К счастью, при отправке ZEC со скрытого адреса эти данные остаются конфиденциальными, поэтому допустима обратная отправка сдачи на тот же адрес. В системе Zcash при использовании скрытых адресов все транзакции выглядят идентично, и повторное использование закрытого адреса не обладает уязвимостями, которые возникают при повторном использовании открытых адресов.
Транзакции между скрытым и открытым адресами
Отправка ZEC между скрытыми и открытыми адресами
В системе Zcash ZEC представляет собой единицу баланса, которая отличается от полностью публичных криптовалют (основанных на блокчейне) тем, что баланс ZEC обладает различными свойствами, которые зависят от типа адреса, на котором хранятся деньги в данный момент и от типа адреса, с которого они пришли. Если сумма хранится на открытом адресе, то баланс виден всем остальным. Вне зависимости от того, на какой тип адреса будут отправлены деньги с открытого адреса, это также будет видно окружающим. Зато отправка с открытого адреса на скрытый сделает последующую транзакцию со скрытого более безопасной и разорвет связь между открытыми адресами. И это очень важно, особенно на первых этапах становления ZEC, т.к. многие кошельки (чаще их мобильные версии) пока еще не поддерживают скрытые адреса из-за высоких системных требований. Об этом читайте наш предыдущий пост, посвященный системным требованиям и ограничениям.
Скриншот транзакции из обозревателя блоков Zchain, когда сумма ZEC скрыта
На картинке показан пример транзакции с открытого на закрытый адрес. Как видно, процесс отправки на скрытый адрес отражается на его балансе. Однако, не возможно понять, была ли совершена транзакция на один или несколько закрытых адресов.
И наоборот, при отправке с закрытого на открытый адрес, баланс скрытого адреса останется в тайне. Также в тайне останется количество скрытых адресов, с которых сумма будет отправлена на открытый. Но полученная на открытый адрес сумма будет видна и отражена в блокчейне.
Дальнейшие публикации о более сложных видах транзакций и о защите конфиденциальности
Следует обратить внимание, что данные примеры не описывают более сложные транзакции, когда отправление или получение коинов происходит сразу при помощи обоих типов адресов. Но по крайней мере мы попытались объяснить общие принципы пересылки между двумя адресами. В ближайшее время выйдет статья о внутренних процессах работы скрытых адресов, в которой будет еще больше информации о связи транзакций между собой, защите конфиденциальности и будут описаны более сложные транзакции. Мы хотим увеличить частоту использования скрытых адресов. Здесь можно посмотреть статистику. Ведь не смотря на то, что транзакции со скрытыми адресами требуют большого количества ресурсов, это окупается за счет высокого уровня безопасности, что в свою очередь является лучшим достижением Zcash как криптовалюты.
Метки: конфиденциальность, объяснения, транзакции
Все новости про Zcash в социальной сети «X» (бывший Twitter) | Интересные видео про Zcash на YouTube
Вы можете поддержать автора проекта pro.zcash:
(для отправки доната на данный адрес требуется
кошелёк с функционалом экранированных транзакций)