Учётные записи (аккаунты)
Учетная запись представляет собой ресурс в Aptos Blockchain, который может отправлять транзакции. Каждая учетная запись идентифицируется конкретным 32-байтовым адресом учетной записи и является контейнером для модулей и ресурсов языка программирования Move.
Введение
Состояние каждой учетной записи включает в себя код и данные:
Код: модули Move содержат код (объявления типов и процедур), но не содержат данных. Процедуры модуля кодируют правила обновления глобального состояния блокчейна.
Данные: ресурсы Move содержат данные, но не код. Каждое значение ресурса имеет тип, объявленный в модуле, опубликованном в распределенной базе данных блокчейна.
Учетная запись может содержать произвольное количество ресурсов Move и модулей Move.
Первоначальная настройка учетной записи
Учетная запись Aptos содержит ссылку на адрес учетной записи, которая представляет собой 32-байтовое значение. Адрес учетной записи является производным от первоначального публичного ключа (ключей) проверки для этой учетной записи. В частности, адрес учетной записи представляет собой 32-байтовый криптографический хэш SHA-3 256 начального публичного ключа (ключей) проверки, объединенный с байтом идентификатора схемы подписи. Блокчейн Aptos поддерживает две схемы подписи: Ed25519 и MultiEd25519 (для транзакций с несколькими подписями). Приватный ключ учетной записи необходим для подписания транзакций.
Каждая учетная запись также хранит sequence_number, который представляет собой порядковый номер следующей транзакции для предотвращения атак повторными транзакциями. Данный порядковый номер инициализируется значением 0 во время создания учетной записи.
Ключи аутентификации
Каждая учетная запись хранит ключ аутентификации. Этот ключ аутентификации позволяет владельцам учетных записей менять свои приватные ключи, связанные с учетной записью, без изменения адреса, на котором размещена их учетная запись. Во время ротации ключ аутентификации обновляется на основе вновь сгенерированной пары (пар) приватных и публичных ключей.
Аутентификация с одной подписью
Чтобы сгенерировать ключ аутентификации и адрес учетной записи:
Создайте пару ключей: создайте новую пару ключей (
pubkey_A,privkey_A). Aptos Blockchain использует схему PureEdDSA по кривой Ed25519, как определено в RFC 8032.Получите 32-байтовый ключ аутентификации: получите 32-байтовый ключ аутентификации
auth_key = sha3-256(pubkey_A | 0x00), где | обозначает конкатенацию.0x00это 1-байтовый идентификатор схемы подписи, где 0x00 означает одиночную подпись. Первые 16 байтauth_key— это «префикс ключа аутентификации».
Аутентификация с мультиподписью
Для ключа аутентификации учетной записи может потребоваться либо одна подпись, либо несколько подписей ("multisig"). При мультиподписной аутентификации K-of-N для учетной записи имеется N количество подписывающих лиц, и для аутентификации транзакции необходимо использовать не менее K из этих N подписей.
Создание ключа аутентификации с мультиподписью K-of-N аналогично созданию ключа с одной подписью:
Создайте пары ключей: создайте N ed25519 публичных ключей
p_1, ...,p_n.Получите 32-байтовый ключ аутентификации: вычислите
auth_key = sha3-256(p_1 | … | p_n | K | 0x01). Извлеките адрес и префикс ключа аутентификации, как описано выше.Kпредставляет требование K-of-N, необходимое для аутентификации транзакции.0x01— это 1-байтовый идентификатор схемы подписи, где0x01означает мультиподпись.
Ресурсы учетной записи (аккаунта)
Каждая учетная запись в Aptos может хранить данные, которые она делает в ресурсах. Исходным ресурсом являются сами данные учетной записи (ключ аутентификации и порядковый номер). Дополнительные ресурсы, такие как валюта или NFT, могут быть добавлены после создания учетной записи. Для создания учетных записей тестнету Aptos требуется публичный ключ учетной записи и монеты Coin\<TestCoin> для добавления к этой учетной записи, что приведет к созданию новой учетной записи с этими двумя ресурсами.
Last updated