:RU: В Cardano есть функция мульти делегирования

Перевод статьи https://cexplorer.io/article/cardano-has-a-multi-delegation-feature

Кошелек Lace позволяет пользователям делегировать ADA нескольким пулам из одного аккаунта. Той же функциональности можно достичь, создав несколько аккаунтов, что в настоящее время является широко распространенным методом. В этой статье мы объясним, как технически возможно мульти делегирование.

Кошельки - это всего лишь генераторы и хранители ключей

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

На изображении ниже вы можете видеть структуру вывода ключа, которая начинается с мнемоники. Красные ключи представляют собой приватные ключи/ключи подписи, а зеленые ключи - публичные ключи/ключи верификации.

image

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

Мастер-ключ можно использовать для создания нескольких аккаунтов, каждый из которых имеет свой собственный набор адресов и ключей. Аккаунт также является парой ключей, которая представляет ваш стейк в сети и позволяет вам делегировать его пулу.

Аккаунт может иметь несколько адресов и ключей делегирования, которые также являются парами ключей, производными от ключа аккаунта с разными ролями.

Адреса используются для получения и отправки денежных средств. Публичный ключ используется для генерации адреса, в то время как приватный ключ используется для подписи транзакций и, таким образом, подтверждения права собственности на средства.

Ключ делегирования используется как держателями монет (стейкерами), так и операторами пулов. В случае стейкеров адрес делегирования выводится из ключа делегирования. Приватный ключ используется для исполнения прав делегирования.

Оператор пула также использует ключ делегирования для генерации адреса делегирования и идентификатора (ID) пула. Идентификатор пула - это хеш публичного ключа делегирования. (прим. переводчика: тут автор допустил неточность, на самом деле идентификатор пула это хеш не публичного ключа делегирования, а публичного ключа оператора пула)

Адрес делегирования пользователя вставляется в сертификат делегирования в качестве источника монет ADA, которые будут делегированы пулу, идентифицируемому идентификатором пула. Сертификат делегирования связывает адрес делегирования с ключом делегирования пула.

Адрес делегирования используется как участниками, так и операторами для хранения и вывода вознаграждений за делегирование (с помощью приватных ключей).

Давайте сосредоточимся в основном на кошельках пользователей.

В рамках одного аккаунта кошельки обычно создают только один ключ делегирования и используют хеш публичного ключа делегирования, вставляя его в ссылки на все платежные адреса. Другими словами, все платежные адреса содержат одну и ту же ссылку на ключ делегирования.

На рисунке ниже вы можете видеть аккаунт с тремя платежными адресами (платежные адреса Shelley), ссылки на адреса делегирования которых ссылаются на один и тот же хеш, полученный из одного ключа делегирования. Обратите внимание, что адрес делегирования содержит счет для наград.

image

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

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

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

Делегирование ADA нескольким пулам

Кошелек Lace позволяет осуществлять несколько делегирований через один аккаунт. Lace генерирует несколько ключей делегирования из одного и того же ключа аккаунта, а также несколько платежных адресов. Несколько ключей делегирования (их хеши) связаны с разными платежными адресами.

Один платежный адрес может быть связан только с одним ключом делегирования. С одним и тем же ключом делегирования может быть связано несколько платежных адресов.

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

Если в существующем кошельке будут созданы новый ключ делегирования и платежный ключ (индекс 1 на нашем рисунке), на платежном адресе не будет монет ADA. Кошелек должен создать транзакцию, которая переводит часть монет ADA (UTXO) с адреса, который уже делегирован (старый платежный адрес с индексом 0 на нашем рисунке), на новый адрес и создать новый сертификат делегирования для нового ключа делегирования.

Теперь пользователь может выбрать два пула (два ID пула), которым он хочет делегировать свой стейк. Кошелек выполнит все необходимые действия и создаст все необходимые транзакции.

Благодаря тому факту, что для мульти делегирования использовался один аккаунт, право голоса не нарушается.

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

На рисунке ниже вы можете видеть, как 2 ключа аккаунта являются производными от одного мастер-ключа (по сути, два независимых пользовательских аккаунта). Каждый аккаунт имеет свой собственный ключ делегирования для платежного адреса (которых может быть больше).

Для каждого аккаунта необходимо создать сертификат делегирования и отправить его в сеть.

Подводные камни

Если вы собираетесь делегировать свои монеты нескольким пулам, следует знать о некоторых подводных камнях. Давайте предположим, что вы распределили свой стейк таким образом, что разделили 1000 ADA на 5 пулов, каждому из которых будет делегировано по 200 ADA.

Вы можете получать монеты ADA по одному адресу за раз. Если кто-то отправит вам 200 ADA, вы делегируете 400 ADA одному пулу и по-прежнему только 200 ADA всем остальным. Если вы хотите перераспределить портфель делегирования, вам придется сделать это вручную. Возможно, ваш кошелек поможет вам в этом.

Если вы отправляете кому-то 100 ADA, кошелек может принимать ADA с одного адреса, поэтому вы делегируете только 100 ADA одному из 5 пулов. Теоретически кошелек может принимать UTXO с 5 адресов, чтобы уменьшить стейк на 20 ADA из расчета на пул. Но сумма транзакции будет больше, а комиссия - выше. Каждый кошелек может предлагать различные варианты выбора адресов.

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

Вывод

Мульти делегирование выгодно для тех пользователей, которые хотят поддерживать несколько пулов, но не хотят создавать несколько мнемоник для кошельков (и передавать ADA между ними). Многие кошельки поддерживают создание нескольких аккаунтов. Кошелек Lace позволяет получать несколько ключей делегирования в рамках одного аккаунта. Это относительно новая функция в экосистеме.

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

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском языке можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano? Тогда приглашаем в наше уютное русскоязычное сообщество Cardano в Telegram. Оставайтесь на связи, все только начинается!