Экранированные переводы
В Namada экранированные переводы осуществляются с помощью пула Multi-Asset Shielded Pool(открывается в новой вкладке) (MASP). MASP представляет собой схему с нулевым знанием (zk-SNARK(открывается в новой вкладке)), которая расширяет схему Zcash Sapling(открывается в новой вкладке), добавляя поддержку отправки произвольных активов. Все активы в пуле имеют одинаковый набор анонимности, это означает, что чем больше транзакций выдается MASP, тем сильнее гарантии приватности.
Использование MASP
Если вы знакомы с Zcash, то набор операций, которые вы можете выполнять с помощью MASP, аналогичен:
Экранированные переводы: от прозрачных до экранированных адресов
Экранированные переводы: экранированные на экранированные адреса
Неэкранированные переводы: от экранированных к прозрачным адресам
Мы различаем два вида ключей:
Spending Key(далее ключ расходов) - это тип закрытого ключа, который позволяет любому пользователю, владеющему им, расходовать баланс связанного с ним адреса. Для экранированных адресов владение ключом расходов также позволяет пользователю просматривать баланс адреса и данные о транзакциях.
Viewing Key(далее ключ просмотра) позволяет любому пользователю, владеющему им, просматривать и раскрывать информацию о транзакциях. Он является производным от ключа Spending Key и имеет тот же псевдоним.
Экранированные переводы
Для осуществления экранированного перевода пользователь должен иметь прозрачный счет с некоторым балансом токенов.
Генерация ключа траты
Новый ключ можно сгенерировать случайным образом:
Эта команда также сгенерирует соответствующий Viewing Key, имеющий тот же псевдоним
Создание нового платежного адреса
Для создания платежного адреса на основе своего расходного ключа можно выполнить следующие действия:
При выполнении этой команды каждый раз генерируется свой платежный адрес. Платежные адреса можно использовать или отбрасывать по своему усмотрению, а любые связи между адресами не могут быть расшифрованы другим пользователем без ключа расходования средств.
Отправить перевод на экранированный счет
Получив платежный адрес, можно перевести остаток средств с прозрачного счета на экранированный:
Просмотр баланса
После того как перевод был передан, подтвержден и исполнен на блокчейне, можно просмотреть баланс своего расходного ключа:
Экранированные переводы
После того как у пользователя появился защищенный баланс, он может быть переведен на другой защищенный адрес:
Неэкранированные переводы
Возможен также перевод остатка на прозрачный счет:
Экранированный адрес/генерация ключей
Генерация ключа траты
Когда клиент генерирует расходный ключ, для него автоматически создается ключ просмотра. Ключ расходования выступает в качестве "источника" любого перевода с любого полученного от него экранированного адреса. Ключ просмотра может определять общее количество неизрасходованных банкнот, которые разрешено расходовать ключу расхода.
Генерация платежных адресов
Платежные адреса могут быть получены как от ключей расходования, так и от ключей просмотра. Платежный адрес выступает в качестве адреса назначения, по которому все поступившие на этот адрес токены могут быть потрачены соответствующим ключом расходования. Потратить и просмотреть баланс платежного адреса может только ключ расходования и ключ просмотра платежного адреса соответственно. Ниже приведены примеры того, как могут быть сгенерированы платежные адреса:namadaw masp gen-addr --alias my-pa1 --key my-sk
Ручное добавление ключей/адресов
Также можно вручную добавлять ключи трат, ключи просмотра и адреса платежей в исходном виде. Это можно продемонстрировать с помощью приведенных ниже команд.
Проведение экранированных операций
Экранирование транзакций
Для того чтобы экранировать токены с прозрачного адреса, пользователь должен сначала сгенерировать экранированный платежный адрес, для которого у него есть ключ расходования. Затем можно осуществить перевод с прозрачного адреса на вновь созданный экранированный платежный адрес. После завершения этого процесса новые токены считаются "экранированными". Комиссия за газ взимается с адреса-источника, осуществляющего перевод на экранированный платежный адрес. Экранирование токенов может быть выполнено следующим образом:
Снятие защиты с транзакций
Снятие экранирования - это процесс перевода остатков токенов из экранированного набора в прозрачный. Когда пользователь осуществляет перевод с экранированного счета (с использованием соответствующего ключа расходования) на прозрачный счет, вновь переведенные средства считаются "неэкранированными". Плата за газ взимается с адреса подписанта (который по умолчанию должен соответствовать целевому адресу). После завершения транзакции ключ-расходник больше не сможет расходовать переведенную сумму. Ниже приведен пример выполнения неэкранированной транзакции:
Экранированные транзакции
Экранированные переводы осуществляются с одного экранированного счета на другой. С точки зрения пользователя это практически эквивалентно прозрачному переводу токенов, за исключением того, что комиссия за газ оплачивается лицом, подписавшим транзакцию. Команда для выполнения экранированного перевода приведена ниже:
Просмотр экранированных балансов
Ключ просмотра, являющийся производным от ключа трат, позволяет любому пользователю, владеющему этим ключом, просматривать остатки, привязанные к соответствующему ключу трат. С помощью этого ключа просмотра можно как расшифровать весь баланс соответствующего ключа просмотра, так и запросить его подмножество:
Вывод списка экранированных ключей/адресов
Кошелек способен вывести список всех хранящихся в нем ключей трат, ключей просмотра и платежных адресов. Ниже приведены примеры запросов к хранилищу кошелька:
Поиск экранированных ключей/адресов
Кошелек способен найти любой ключ траты, ключ просмотра или платежный адрес, если указать его псевдоним. Ниже приведены примеры запросов к хранилищу кошелька:
Last updated