Аккаунт — это учётная запись участника или группы участников ДАО VIZ, с помощью которой совершаются операции в блокчейне VIZ.
При создании аккаунта в качестве идентификатора ему присваивается выбранное участником уникальное имя длиной от 2 до 25 символов латинского алфавита. Двухсимвольные аккаунты зарезервированы за самыми первыми участниками VIZ и больше не присваиваются. Изменить имя аккаунта после создания невозможно.
Владельцы аккаунтов могут создавать аккаунты «второго уровня», а те, в свою очередь — третьего и т.д., которые отделяются от основного аккаунта (и последующих) точкой. Например, аккаунт @name (и только он) может создать аккаунт @subname.name, тот, в свою очередь, @subsubname.subname.name и т.д.
Аккаунт имеет четыре пары ключей (публичный и приватный):
-
- главный ключ,
- активный ключ,
- регулярный ключ,
- коммуникативный ключ.
Каждый публичный ключ должен быть создан из разных приватных ключей с использованием алгоритма на базе эллиптической криптографии для кривой secp256k1(такая же кривая используется в Bitcoin).
Ниже в таблице приведены
Каждый раз при отправке транзакции от имени аккаунта пользователь должен подписать её по алгоритму ECDSA одним из трёх приватных ключей, который соответствует главному, активному или регулярному публичному ключу. Коммуникативный ключ для отправки транзакций использоваться не может. Он используется для шифрования сообщений, например, в заметке с переводом токенов. При подписи стоит учитывать, что каждый ключ имеет свой уровень доступа, то есть разные ключи отвечают за разные типы транзакций.
Ниже в таблице описаны все ключи и операции, которые можно совершать с их помощью
Аккаунт с несколькими пользователями
Если пользователь знает главный приватный ключ конкретного аккаунта, то он может добавить к учетной записи других пользователей.
Существует два варианта, как это сделать. Первый — добавить к аккаунту еще один ключ (главный, активный или регулярный) и передать второму пользователю. Второй — прописать в своей учетной записи главную, активную или регулярную роль для другого аккаунта, то есть связать один аккаунт с другим. Отличие роли от ключей состоит лишь в том, что владельцы привязанного аккаунта для подписи транзакций будут использовать свои приватные ключи.
Отметим, что связывание аккаунтов — более гибкий способ добавления пользователей к главному аккаунту, так как, привязав один аккаунт, можно сразу же приписать полномочия группе людей.
Стоит учитывать, что пользователь, который получил дополнительный ключ, или аккаунт, которому приписана одна из трех ролей, при подписи транзакций от имени главного аккаунта ограничены только уровнем доступа ключа или роли. То есть, если пользователю выделен главный ключ или если аккаунту приписана главная роль, то и пользователь, и аккаунт смогут сами определять уровни доступа к главному аккаунту для других участников ДАО VIZ, и даже ограничить доступ первоначальному владельцу аккаунта.
Мультиподпись
Чтобы избежать злоупотребления полномочиями, можно для каждого уровня доступа установить весовой порог, по достижении которого можно отправить транзакцию, а каждому пользователю или привязанному аккаунту установить свой вес. Таким образом, для отправки транзакции будет необходима подпись нескольких пользователей, так, чтобы сумма их весов была не меньше весового порога. Такая схема подписи называется мультиподпись.
Примеры мультиподписи
Пусть в аккаунте с весовым порогом 100 прописано три пользователя: Алиса, Макс и Боб. У Боба вес 25, у Макса также 25, а у Алисы — 50. Тогда Бобу для отправки транзакции нужны ещё подписи Алисы и Макса, ведь только в этом случае суммарный вес подписавшихся будет равен весовому порогу аккаунта 100.
Аналогично нужно поступить Максу или Алисе, чтобы отправить транзакцию от имени аккаунта. Таким образом, никто не сможет отправить транзакцию без согласия всех участников, что позволяет избежать злоупотребления полномочиями со стороны любого из пользователей.
Если при том же распределении весов участников мультиподписи весовой порог установлен на уровне 75, то для проведения транзакции достаточно подписи Алисы (вес 50) и любого из других участников мультиподписи (с весом 25). При этом Макс (25) и Боб (25) без участия Алисы (50) подписать транзакцию не смогут.
Наградить автора поста