Функции PrivateSend и InstantSend

Функция PrivateSend

В этой документации описывается использование Dash Core для анонимной отправки DASH. Функция PrivateSend, которая в релизе RC4 клиента DarkCoin называлась DarkSend и была переименована на PrivateSend в мае 2016 года, представляет собой надёжный метод запуска последовательности транзакций (так называемое «смешивание»), таким образом, что во время создания транзакции PrivateSend для внешнего наблюдателя не представляется возможным отследить источник финансирования. Это предоставляет вашим DASH те же анонимные свойства, которые дают наличные деньги, снятые с банкомата. Процесс смешивания и деноминации является беспрепятственным, автоматическим и не требующим вмешательства со стороны пользователя. Текущая реализация PrivateSend в кошельке Dash Core позволяет смешивать любое количество DASH для последующего использования в транзакциях PrivateSend. Начиная с декабря 2018 года и по настоящее время PrivateSend недоступна в других кошельках Dash.

Знание точного количества раундов смешивания PrivateSend, используемого в любой представленной транзакции PrivateSend, имеет количественный эффект основанный на уверенности, которую может иметь злоумышленник при попытке угадать источник транзакции PrivateSend. По этой причине рекомендуемое (и установленное по умолчанию) количество раундов смешивания PrivateSend равно четырем.

Подробнее теоретическую часть и о процессах функции PrivateSend вы можете почитать здесь.

Конфигурация

  1. Откройте ваш кошелёк Dash Core, нажмите Настройки и выберите Параметры. Перейдите на вкладку Кошелёк.

    ../../_images/privatesend-options.png
  2. Далее в строке Количество раундов PrivateSend введите значение 1-16, от 1 до 16. Каждый раунд PrivateSend выполняет одну деноминированную транзакцию по перемещению средств. Увеличение числа раундов увеличивает общий уровень анонимности, уменьшая вероятность обнаружения с помощью сговора в узле. 16 - самое большое количество раундов, которое на данный момент доступно.

    ПРИМЕЧАНИЕ: Для предотвращения злоупотребления системой, в среднем за один из десяти раундов смешивания с помощью мастернод взимается комиссия в размере 0,0001 DASH.

  3. Введите целевое значение в поле Сумма постоянно анонимизированных DASH. Это значение задаёт сниженный предел конечной суммы средств, подлежащих анонимизации. В зависимости от того, как клиент разбивает баланс вашего кошелька, вы можете получить деноминированные входы, общая сумма которых превышает целевую сумму. В этом случае клиент будет использовать все существующие деноминированные входы в процессе PrivateSend. Окончательная анонимизированная сумма может быть выше целевой, но должна быть близкой к ней.

  4. Нажмите OK для сохранения настроек.

  5. При открытии кошелька функция PrivateSend по умолчанию отключена. Она запустится только после того, как вы зададите количество раундов и сумму DASH для смешивания в настройках и нажмёте кнопку Начать перемешивание на вкладке Обзор кошелька.

Начало перемешивания

Процесс PrivateSend начинается нажатием на кнопку Начать перемешивание на вкладке Обзор кошелька Dash Core. Смешивание становится возможным, как только будут выполнены следующие условия:

  • Кошелёк содержит достаточное количество неанонимизированных средств для создания минимально необходимых номиналов
  • Функция PrivateSend в диалоговом окне «Параметры» не отключена пользователем
  • Целевое значение анонимизированных средств в диалоговом окне «Параметры» больше нуля

Если кошелёк зашифрован (что настоятельно рекомендуется), то вам будет предложено ввести фразу пароль вашего кошелька. Установите галочку возле пункта Разблокировать кошелёк только для перемешивания PrivateSend, чтобы разблокировать кошелёк только для процесса перемешивания.

../../_images/mixing-password.png

Ввод пароля только для активации смешивания для функции PrivateSend

После этого ваш кошелёк будет разблокирован, и начнётся процесс смешивания PrivateSend. Кошелёк останется разблокированным до тех пор, пока смешивание PrivateSend не будет завершено, после чего он будет заблокирован автоматически.

../../_images/mixing.png

Интерфейс PrivateSend после нажатия кнопки Начать перемешивание. Обратите внимание, что Статус должен быть Включён.

PrivateSend начнёт создавать транзакции, и ваш баланс PrivateSend будет постепенно увеличиваться. Этот процесс может занять некоторое время, поэтому проявите терпение. Вы можете отслеживать подробности этого процесса, как описано в следующем разделе

Любое из следующих действий приведет к прерыванию процесса смешивания. Поскольку транзакции являются неделимыми (они либо выполняются полностью, либо не выполняются вообще), в любом случае должно быть возможно безопасное прерывание смешивания PrivateSend.

  • Нажатие кнопки «Остановить перемешивание» на вкладке «Обзор»
  • Закрытие программы до того, как смешивание PrivateSend завершено
  • Отправка средств PrivateSend из кошелька до того, как раунды PrivateSend завершены
  • Отключение функции PrivateSend до завершения процесса

Наблюдение за смешиванием

Если вы хотите наблюдать за деталями процесса PrivateSend, вам необходимо активировать некоторые дополнительные функции кошелька. Отправляйтесь в Настройки, выберите Параметры и перейдите на вкладку Кошелёк. Проверьте наличие галочек возле пунктов Включить функции контроля монет и Включить расширенный интерфейс PrivateSend.

../../_images/privatesend-settings.png

Активация расширенных опций для функции PrivateSend в настройках кошелька Dash Core

Это позволит вам отслеживать процесс и видеть, какие отдельные операции PrivateSend выполняются в фоновом режиме.

../../_images/mixing-progress.png

Отслеживание процесса PrivateSend

Поскольку смешивание PrivateSend создаёт много новых адресных ключей для отправки и получения анонимных номиналов, может появиться предупреждение, когда количество оставшихся ключей станет низким. В таком случае не стоит беспокоиться, поскольку кошелёк по мере необходимости будет просто создавать больше ключей. Однако эти ключи не будут существовать ни в каких предыдущих резервных копиях вашего кошелька. По этой причине важно снова создать резервную копию своего кошелька после окончания процесса смешивания.

Также вы можете следить за процессом выполнения функции PrivateSend просматривая транзакции, созданные процессом перемешивания на вкладке Транзакции.

../../_images/privatesend-transactions.png

Транзакции, созданые PrivateSend на вкладке «Транзакции»

Следующая таблица описывает относящиеся к функции PrivateSend транзакции, которые отображены в столбце «Тип» вкладки Транзакции:

Тип транзакции PrivateSend Описание транзакции
PrivateSend создаёт входы для обеспечительных монет (Перемешивание) Средства из кошелька перемещены на входы обеспечения, которые будут использованы для совершения платежей по обеспечению. Это сделано для минимизации отслеживаемости залогов.
PrivateSend создаёт номиналы (Перемешивание) Средства кошелька были разбиты на номиналы PrivateSend (Шаг 1 здесь)
Создание номиналов PrivateSend (Перемешивание) Транзакция была отправлена мастерноде для принятия участия в сессии смешивания (Шаг 3 здесь)
Платёж PrivateSend за создание обеспечительных монет (Перемешивание) Выполнен запрос на создание обеспечительных монет для смешивания. В ~10% случаев для сеансов смешивания за это взимается комиссия для предотвращения спам-атак.
PrivateSend (Траты) Перемешанные средства были использованы для отправки другому пользователю. Примечание: в отличие от 4-х предыдущих типов транзакций, в этой транзакции не применялся процесс смешивания.

Вы также можете использовать функцию контроля монет, чтобы посмотреть, какие адреса содержат смешанные номиналы, готовые для использования в транзакциях PrivateSend. Перейдите на вкладку Отправить вашего кошелька и нажмите Входы, чтобы просмотреть возможные входные адреса ваших транзакций. Вы увидите, что на каждом адресе содержатся данные о номиналах смешанных DASH и информация о том, сколько раундов смешивания завершено. Эта эффективная комбинация адресов затем используется в качестве входных данных в транзакциях PrivateSend без особых изменений, так как сумма в транзакции PrivateSend должна быть округлена, чтобы полностью использовать все входы. Текущий минимальный баланс для ввода, используемого в транзакции PrivateSend, составляет 0.00100010 DASH.

../../_images/privatesend-addresses.png

В диалоговом окне «Выбор монет» показаны адреса, содержащие смешанные балансы PrivateSend в разных номиналах

Оплата с помощью PrivateSend

Функцию PrivateSend для совершения платежей вы можете использовать только в случае, если вы уже смешали необходимое количество DASH для получения суммы, которую вам необходимо отправить. Поскольку процесс смешивания требует времени, его необходимо выполнить заранее, до создания транзакции отправки. Транзакция PrivateSend фактически такая же, как и любая другая транзакция на блокчейне, но она извлекается только из входных адресов, где номиналы были ранее смешаны для обеспечения анонимности средств. Поскольку для ввода суммы, которую вам необходимо отправить, обычно требуется несколько входных адресов, транзакция PrivateSend, как правило, занимает больше места (в килобайтах) на блокчейне и, следовательно, за неё будет взиматься повышенная плата.

Чтобы отправить платёж с использованием функции PrivateSend, отправляйтесь на вкладку Отправить кошелька Dash Core и активируйте опцию PrivateSend. Отображаемый баланс изменится и вместо общего баланса отобразится баланс PrivateSend. Затем в поле Получатель вы можете ввести адрес, а также добавить информацию в полях Метка и Количество и щёлкнуть Отправить, как это обычно делается. Ваш платёж будет округлён, чтобы полностью задействовать минимально возможное номинальное значение смешанного баланса (в настоящее время до ближайших 0,001 DASH). Вам будет предложено ввести ваш пароль и получить подробную разбивку структуры комиссии для PrivateSend перед отправкой.

../../_images/privatesend-send.png

Dash Core готов к отправке транзакции PrivateSend. Обратите внимание, что функция PrivateSend активирована, а количество, указанное к отправке меньше доступного на балансе PrivateSend.

InstantSend

Введение

В этой документации описывается, как использовать функцию InstantSend для немедленной отправки средств любому другому пользователю Dash в любой точке земного шара. Dash InstantSend поддерживается многими кошельками и поставщиками, включая (но не ограничиваясь) следующих:

  • Dash Core Wallet
  • Кошелёк Dash для Android
  • Кошелёк Dash для iOS
  • My Dash Wallet
  • Kraken
  • Bitrefill
  • и многие другие…

Подробнее теоретическую часть и о процессах функции InstantSend вы можете почитать здесь.

Оплата с помощью InstantSend

Устанавливая соответствующую галочку на транзакцию, функция InstantSend инициирует детерминированный выбор кворума из 10 мастернод для каждого входа, задействованного в InstantSend транзакции. Мастерноды проверяют вход, и если большинство определяет, что у него есть как минимум шесть подтверждений, то они принимают транзакцию. Затем вход фиксируется до тех пор, пока транзакция не будет подтверждена в шести добытых блоках, после чего этот выход может использоваться в качестве входа в другой транзакции InstantSend. Эти входы отличаются от входов, используемых в обычных транзакциях, деньги в которых могут быть потрачены после одного подтверждения независимо от того, получены ли DASH с помощью InstantSend или нет. Повышенная комиссия будет взиматься за транзакции InstantSend, согласно таблице комиссий. Обратите внимание, что кошелёк, получающий средства должен также быть уведомлён об InstantSend для возможности немедленно продолжить транзакцию или отобразить соответствующее уведомление о том, что транзакция должна считаться зафиксированной. Если получающий кошелёк не уведомлён об InstantSend, транзакция отобразится как обычная, и вам нужно будет ждать стандартных подтверждений.

Для совершения оплаты с помощью InstantSend, просто проверьте наличие галочки в соответствующем поле в вашем приложении. На следующих скриншотах показано, где найти эту опцию в Dash Core, iOS и Android кошельках.

../../_images/instantsend-android.png ../../_images/instantsend-ios.png
../../_images/instantsend-dashcore.png

Кошельки Dash демонстрирующие функцию InstantSend