Особенности аккаунтов с мультиподписью
Аккаунт с мультиподписью представляет собой мощный инструмент, полностью находящийся в вашем распоряжении. Но его следует использовать с осторожностью.
Важные моменты:
- После преобразования аккаунта в аккаунт с мультиподписью, возможность инициировать транзакции с этого аккаунта искореняется. Все операции с аккаунта мультиподписи должны быть инициированы одним из соподписантов. Их можно рассматривать как отношения между родителем и ребенком. Аккаунт подписанта является родительским, а аккаунт, который был превращен в счет с мультиподписью, — дочерним. Основной аккаунт имеет полный контроль над дочерним счетом, в то время как дочерний больше не имеет никакого контроля над своими средствами.
- Текущая реализация NEM с мультиподписью является «М-из-N», где, M может быть любым числом, равным или меньшим, чем N, то есть, 1/1, 1/3, 4/4, 4/9, 7/12 и так далее. NEM также позволяет «N-из-N» счета, то есть 1/1, 2/2, 5/5, 10/10 и так далее. Для активации транзакции необходимы все N подписей, но для редактирования такого аккаунта будет достаточно N-1 подписей. К примеру, для 3/3 аккаунта потребуется лишь 2 подписи для удаления или изменения третьего соподписанта.
- Создание аккаунта M/N возможно при количестве соподписантов не более 64. Но, как уже говорилось в предыдущем пункте, при утере контроля над L аккаунтами соподписантов возможны следующие последствия:
— при 1теряется возможность внесения изменений в аккаунт M/N, но по-прежнему можно осуществлять транзакции;
— при L>(N-M) произойдёт необратимая потеря доступа к средствам, находящимся на этом M/N аккаунте.
Подсказка
Если вы не хотите использовать любые существующие адреса (аккаунты) в качестве соподписанта, можно просто создать новый аккаунт.
Как создать аккаунт с мультиподписью
Если вы только начали пользоваться NEM, то скорее всего к вашему кошельку NCC привязан только один аккаунт. Тогда вам следует создать, по крайней мере, ещё один аккаунт. Один из этих аккаунтов инициирует преобразование другого в аккаунт с мультиподписью. Вам также необходимо иметь перечень адресов тех аккаунтов, которые наряду с вашим будут являться соподписантами.
При необходимости создания нового аккаунта, в левом верхнем углу экрана NCC рядом с адресом аккаунта можно увидеть значок шестерёнки, где необходимо выбрать пункт «Create New Account».
В окне, которое появилось далее, следует ввести метку для создаваемого аккаунта (будет отображаться только в вашем кошельке), пароль. После нажмите «Create». Вы можете создать в кошельке столько новых аккаунтов, сколько вам понадобится.
Внимание:
Аккаунт после преобразования его в аккаунт с мультиподписью теряет возможность самостоятельной отправки транзакций. Теперь транзакции будут нуждаться в подписи остальными соподписантами и инициированием транзакции одним из них.
Шаг 1
На картинке выше показано как Duncan Idaho решил сделать свой одноимённый аккаунт с мультиподписью «Duncan Idaho». Для этого ему необходимо создать ещё один аккаунт. В данном случае – «Leto A», который будет выступать в качестве соподписанта аккаунта с мультиподписью. При создании аккаунта с мультиподписью Duncan осознает результат утери контроля над первоначальным аккаунтом, с отправкой средств теперь только при наличии согласия (подписи) соподписантов.
Открыв аккаунт «Leto A», Duncan выбирает маленькую иконку в виде шестерёнки рядом с именем аккаунта и адресом и нажимает на неё. Появилось меню, в котором он выбирает «Convert other account to multisig».
Шаг 2
Ниже, в окне «Cosignatories addresses» он вносит аккаунты, которые будут выступать в качестве соподписантов. Среди этих аккаунтов должен присутствовать его аккаунт «Leto A». Получаем следующую картину (5/5 аккаунт).
Lady Jessica — TD5JO2-PBUH2S-Z3ECRR-O4XECI-4U2JQN-QJOO2Y-YWV5
Thufir Hawat — TD34VV-RIBR35-F6O536-QYGOOM-CS6F67-L35Q22-O22N
Chani — TC46UN-75KBAL-6QEEAB-EKREZC-Z7J7PD-5JZPJM-XWK3
Dr. Kynes — TBDCUQ-ZIJD4L-KX3ZPY-XEMONS-B62TJI-E4XMMQ-YVUE
NEM примет метки этих аккаунтов, если они были сохранены ранее в адресной книге.
Далее необходимо нажать кнопку «Convert».
Если все действия были выполнены правильно, то всплывет сообщение с подтверждением.
Поздравляем. Вы создали мультиподписной 5/5 аккаунт в NEM.
Когда мы теперь в любом аккаунте, связанном с аккаунтом «Duncan Idaho», посмотрим на транзакции, то увидим некоторые специальные символы рядом с ними.
Жёлтая скрепка означает, что создан MS аккаунт.
Зелёная M со знаком плюс означает входящую транзакцию с аккаунта с мультиподписью.
Серая M означает исходящую транзакцию в статусе ожидания подтверждения, и красная M — транзакция была отправлена.
Как отравить транзакцию с аккаунта с мультиподписью
Инициация транзакции
Каждый раз, при необходимости отправки транзакции с аккаунта «Duncan Idahо», пользователю придется использовать аккаунт «Leto A». Теперь любой из списка соподписантов сможет отправить транзакцию на таких же условиях.
Согласно следующего рисунка, транзакция создается «Dr. Kynes». В нашем примере аккаунт N-из-N, так что все соподписанты должны будут подписать транзакцию.
Doctor Kynes планирует перевести Stilgar 1000 XEM с аккаунта «Duncan Idaho». После того как в аккаунте «Dr. Kynes» будет выбран пункт «Send XEM», необходимо выделить «Duncan Idaho» как отправителя транзакции («Sender»). После заполнения всех полей нажимаем Send.
Теперь у нас есть незавершенная транзакция, которая висит в аккаунте Duncan и отмечена серой буквой M.
Подпись транзакции
В аккаунтах соподписантов, картина будет выглядеть несколько иначе. Каждый соподписант автоматически уведомляется о необходимости подписать транзакцию.
На сегодня такая фишка существует лишь в NEM. Давайте рассмотрим в качестве примера аккаунт «Chani». На главной панели NCC для аккаунта «Chani» мы видим в графе Amount запрос на подписание транзакции в и появившуюся зеленую кнопку «sign». Для того чтобы Stilgar получил 1000 XEM, необходимо получить подтверждение в виде подписи от всех соподписантов.
Что видит Duncan?
Duncan, также как и все остальные соподписанты, видит созданную Stilgar транзакцию, а также может отслеживать все этапы ее подписания.
На картинке видно, что сумма 1000 XEM отправленная Doctor Kynes, уже получили подписи, и получатель сию же минуту получит свои 1000 XEM.
Дополнительно
В NEM аккаунты с мультиподписью можно рассматривать как дочерние относительно родительских аккаунтов соподписантов, в плане их прав. Из этого вытекает ряд уникальных возможностей:
Передача аккаунтов
Если пользователю показалось, что приватный ключ от его аккаунта был скомпрометирован, вместо пересылки всех XEM и мозаик с этого аккаунта, он может просто сделать этот аккаунт мультиподписным, 1-из-1.
Передача Namespaces
При внесении данной заметки право собственности на имя (и соответственно право редактирования мозаик, ассоциированных с ним) не фиксируется напрямую в блокчейне, так как передача прав собственности на имя может планироваться позже.
В это же время существует возможность создания 1/1 аккаунта, который является делегированным аккаунтом своего основного аккаунта.
Благодаря уникальной архитектуре NEM, контроль над всеми транзакциями будет принадлежать основному аккаунту, а приватный ключ делегированного аккаунта будет приглушён.
NEM разрешает вносить изменения в списки соподписантов, а это свидетельствует о том, что пользователь может передавать все права на свой основной аккаунт, с которым связан делегированный аккаунт, любому стороннему лицу, сделав её новым соподписантом 1/1 аккаунта.
В конечном счете основной аккаунт третьего лица станет владельцем этого пространства имён со всеми вытекающими последствиями: будет предоставлена возможность редактирования мозаики, а также наличие полного контроля над этим аккаунтом.