Счета с несколькими подписями на Namada

Счета с несколькими подписями (мультисигмы) - это счета в системе Namada, позволяющие использовать несколько подписей. Наличие мультисигм имеет множество преимуществ, включая, помимо прочего, следующие:

  • Повышенная безопасность

  • Возможность совместного использования кошельков

  • Лучшие возможности восстановления.

По этой причине все счета в Namada по умолчанию являются счетами с несколькими подписями.

Инициализация мультиподписного счета

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

Для генерации такого ключа используется следующий метод:

namadaw key gen \
--alias my-key1

Может быть сгенерирован и второй ключ (что будет полезно при работе с мультисигмами):

namadaw key gen \
--alias my-key2

Также может быть сформирован implicit адрес:

namadaw address gen \
--alias my-address

Инициализация счетов на Namada осуществляется следующим способом:

Счет без мультисигмы (с одной подписью)

Мультисиг счет (не менее 2 подписывающих лиц)

Представление транзакции с несколькими подписями

Для того чтобы отправить транзакцию с несколькими подписями, необходимо сначала создать офлайн-транзакцию.

Построение автономной транзакции

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

Аргумент --dump-tx позволяет пользователю сделать это. Необходимо указать папку, в которую будет сбрасываться транзакция.

Это можно сделать следующим образом:

Это означает, что транзакция построена и готова к подписанию.

В указанной папке будет создан файл .tx. Этот файл содержит шестнадцатеричное представление байтов транзакции. Этот файл может быть использован для подписания транзакции.

Подписание транзакции

Следующий шаг - подписание транзакции. my-key1 может подписать транзакцию следующим способом:

Обратите внимание, что на этом этапе транзакцию может подписать любое количество ключей --signing-keys. В результате будет получено несколько подписей, которые могут быть использованы для отправки транзакции.

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

Сохраним его в качестве псевдонима:

Убедитесь, что транзакция подписана не менее чем k из n ключей, где k - минимальное количество подписей, необходимое для отправки транзакции, а n - общее количество ключей. В данном примере k=2 и n=2.

Затем допустим, что в результате подписания создается еще одна подпись, которую мы сохраняем в псевдониме SIGNATURE_TWO.

Отправка транзакции

Последним шагом является отправка транзакции. Это можно сделать с помощью следующего метода:

Обратите внимание на отсутствие запятых в аргументе --signatures. Это связано с тем, что аргумент представляет собой список файлов, а не список подписей. Также обратите внимание на папку tx_dumps. Это папка, в которую была сброшена транзакция, как указано в параметре --output-folder-path на предыдущем шаге.

Изменение порога мультисигмы

Существует возможность изменить порог мультиподписи счета. Это можно сделать следующим образом:

Проверить правильность обновления порога можно, выполнив команду:

В результате чего будет получен порог 1, а также два открытых ключа.

Изменение открытых ключей учетной записи multisig

Существует возможность изменить открытые ключи учетной записи multisig. Это можно сделать следующим образом:

Это приведет к изменению открытых ключей multisig-аккаунта с my-key1 и my-key2 на ключи my-key3, my-key4 и my-key5 (при условии, что они существуют в кошельке).

Публичные ключи, указанные в аргументе --public-keys, станут новыми подписантами мультисигмы. Список должен представлять собой список открытых ключей, разделенных запятыми и не содержащий пробелов. В списке должно быть не менее 1 открытого ключа, а длина списка должна быть не меньше порога счета multisig.

Last updated