Связанность транзакций (Transaction Linkability перевод)
КисельСтатья от 25 января 2017. Перевод от 10 августа 2021

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

Само по себе использование защищенных адресов при покупке чего-либо или при переводах между друзьями повышает и ваш уровень конфиденциальности! В примере выше, серия транзакций, где Боб использует защищенные адрес (строка b.) разрывает связь между Алиса и Кэрол.
Чтобы лучше понять этот механизм, мы сравнили две цепочки транзакций:
a. Алиса отправляет 15 ZEC (минус комиссия) на открытый адрес Боба, а Боб отправляет 10 ZEC на открытый адрес Кэрол
b. Алиса отправляет 15 ZEC (минус комиссия) на защищенный адрес Боба, и с защищенного адреса Боб отправляет 10 ZEC на открытый адрес Кэрол
Таким образом в цепочке b внешний пользователь не сможет узнать, что Алиса перевела Кэрол ZEC через Боба. Помимо этого, внешний пользователь даже не сможет понять, что Алиса переводила средства Бобу или, что Кэрол получила эти монеты от Боба. Поэтому если вы или ваши друзья используют открытые адреса, по тем или иным причинам, использование защищенного адреса (независимо от того, хотя они или нет) приведет к разрыву связанности транзакций, которая существовала бы при использовании исключительно публичных адресов.
Связывание перевода через сумму
Однако, описанный выше метод, где Боб разрывает связь между Алисой и Кэрол просто используя защищенный адрес не является надежной в 100% ситуаций.
Чтобы объяснить почему, давайте сначала обозначим важное свойство транзакции, которая включает в себя два типа адресов:
Когда открытый адрес отправляет ZEC на защищенный адрес (t → z) или, когда защищенный адрес отправляет ZEC на открытый адрес (z → t), сумма перевода, которая была отправлена или получена с открытого адреса становится публичной, даже если эти значения скрыты в части транзакции защищенного адреса.

В предыдущем примере мы рассматривали ситуацию где с защищенного адреса Боба переводится сумма отличная от той суммы, что Бобу прислала Алиса.
В этом примере мы рассматриваем условие, при котором Боб отправляет Кэрол всю сумму, которую получил от Алисы. Если публичный адрес Алисы отправил X монет, а публичный адрес Кэрол принял Y монет, при этом X равно Y (или X равно Y минус две стандартных комиссии за перевод), и значение X достаточно выделяется среди других переводов в Zcash блокчейне, то между Алисой и Кэрол можно будет найти связь.
Вы можете это заметить на картинке выше, где Алиса посылает 15 ZEC (минус 0.0001 комиссия) на защищенный адрес Боба, а защищенный адрес Боба посылает 14.9999 ZEC (минус 0.0001 комиссия) на публичный адрес Кэрол.
Эта связь может стать очевиднее, если транзакции от Алисы к Бобу и от Боба к Кэрол будут ближе друг к другу по времени.
Чтобы уменьшить риски появления связанности, Боб должен понимать, что он делает операцию перевода более явной для раскрытия, когда отправляет ту же сумму, что получил (Эта ситуация чаще всего проявляется, когда пользователь отправлять монеты между своими кошельками, то есть в этой схеме Алиса, Боб и Кэрол могут быть одним и тем же человеком). Zcash кошельки в будущем могут рассмотреть внедрение механизма, который позволит заметить потенциальную опасность “связывания” предыдущих и будущих транзакций при разрыве таких цепочек.
Уникальные значения комиссии
Большинство кошельков используют стандартное значение комиссии, которое будет уплачено майнерам (0.0001 ZEC). В статье про анатомию транзакций Zcash упоминалось, что значение комиссии всегда остается публичным (даже при использовании защищенных адресов). Но при использовании стандартного значения комиссии публичность этой информации мало что раскрывает, большее подозрение вызывают пользователи, использующие уникальные значения комиссии.
Поэтому используйте стандартное значение комиссии, так ваши адреса связать будет практически невозможно!
Уменьшение связанности при использовании только защищенных адресов
Хоть публичные адреса и сейчас предоставляют меньше хлопот над ресурсами, а также знакомую функциональность, благодаря популярным криптовалютам. Используя два типа адресов вы даете больше информации заинтересованным лицам, хотя нет никаких препятствий, чтобы использовать только защищенные адреса, тем самым повышая свою финансовую конфиденциальность. Если вам присылают публичный адрес - попросите пользователя прислать защищенный, это позволит укрепить общую конфиденциальность всего сообщества.
Команда разработчиков Zcash ставит своим приоритетом поддержку роста защищенных адресов и призывает сторонние сервисы добавлять возможность использования защищенных адресов. “Мы находимся только в начале этой захватывающей новой экосистемы и с нетерпением ждем, что со временем усилиться общая финансовая конфиденциальность” - Zcash core team.
Вступайте в Либертарианскую Партию России - lp-russia.org
Подписывайтесь на Петербургское отделение ЛПР - t.me/spblpr
Присылайте донаты, в том числе в криптовалюте - https://telegra.ph/Rekvizity-01-20