Аккаунт в NEM (NEM account)

Данные аккаунта.

В сети NEM каждому аккаунту соответствует набор данных:
  • приватный (закрытый) ключ
  • публичный (открытый) ключ
  • адрес (номер) аккаунта

Приватный ключ собственно и определяет аккаунт. Все остальное - суть его производные. Добавив в кошелёк (NCC) существующий аккаунт его приватным ключом, сможем узнать и его адрес и его публичный ключ (View account details).

Кошелёк в NCC определяется парой файлов - это файл кошелька *.wlt и файл адресной книги *.adb. В файле кошелька зашифрованы [паролем кошелька] приватные ключи всех аккаунтов, включённых в кошелёк. Файл кошелька действителен только при наличии файла адресной книги. Файлы *.wlt и *.adb можно сохранять, бэкапить, переносить на другой компьютер. Для доступа к ним потребуется пароль кошелька, который также потребует надёжного сохранения. Кроме того, сохранение файлов wlt & adb и пароля от кошелька никоим образом не исключают необходимость надёжного сохранения приватных ключей аккаунтов, входящих в этот кошелёк.

Кошелёк в Nanowallet определяется одним файлом *.wlt.

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

Для безопасного и удобного сохранения и последующего извлечения данных аккаунта можно использовать программу KeePass:
  • Address сохраняем в поле User name
  • Private key сохраняем в поле Password
  • Public key сохраняем в поле Notes
В то же время надо иметь ввиду, что само по себе применение KeePass не является панацеей, и KeePass, как и любая другая программа, имеет свои уязвимости.


Структура данных аккаунта

Адрес содержит 40 символов (цифры и буквы английского алфавита, поэтому они занимают 40 байт), не считая дефисов. Первый символ отражает версию сети:
  • T - тестовая сеть
  • N - рабочая сеть NEM
  • M - приватная сеть Mijin

Второй символ всегда "А", "В", "С" или "D". Цифры 0, 1, 8 и 9 не используются в системе счисления base32 и поэтому их ни в каком адресе быть не может. Пример:
Код:
TASSSR-OMJE3L-6ZUN6L-SW76Y2-FCIH3H-HULADH-PPUL
Далее следует хеш публичного ключа аккаунта, 35 байт, записанный в системе base32.
Последние 4 байта адреса являются контрольной суммой, что позволяет выявлять опечатки при их вводе. При неправильно набранном адресе транзакция не будет активирована
Код:
ERROR 306
NIS: UNEXPECTED ERROR
Если набрать адрес правильного формата, но не имеющий хозяина, то монеты уйдут туда и будут потеряны.

Общее количество различных адресов в одной сети:
BloodyRookie пишет:
a nem address is basicly a ripemd160 hash with a version byte in front and a checksum concatenated at the end. So there should be 2^160 addresses

Открытый ключ содержит 64 шестнадцатеричных символа. Пример:
Код:
b5c6ade9ccb21f62de4f5b49ba63464d198226c4707460c11e1fe0604dd7f041

Закрытый ключ может быть длиной 64 или 66 шестнадцатеричных символов. Если 66 символов, то он начинается с «00» (двойной нуль). Пример:
Код:
00d4a0f7f34144086f232e39ee0ef6f3321ea570cc481a1de1d6587df0087a02fa


Активация аккаунта.

Назовём аккаунт активированным, если в блокчейн попал его публичный ключ. Чтобы это произошло, надо связать его с любой транзакцией:
  • послать любую сумму самому себе на этот аккаунт с этого же аккаунта (Self transaction, возвратная транзакция); например, отправить самому себе 0 XEM, комиссия будет 1 XEM = итого затраты на активацию составят 1 XEM
  • послать любую сумму кому-либо (исходящая транзакция)
  • послать кому-нибудь сообщение
  • активировать делегированный харвестинг (Importance transaction)

Неактивированный (свежесозданный) аккаунт:
  • имеет ограниченные возможности
    • он не будет харвестить, даже если активная часть его баланса будет достаточной,
    • на него можно отправить NEM и простое сообщение, но нельзя отправить зашифрованное сообщение,
    • он не сможет стать соучастником Multisig аккаунта,
    • Blockchain Explorer его не видит.
  • теоретически он менее защищён и более уязвим ко взлому нежели активированный аккаунт. Номер аккаунта - это только видимая часть (64 бита из 256-ти) публичного ключа пользователя. Для неактивированного аккаунта вероятность угадать его приватный ключ в одной попытке 1/(2^64) (при условии, что располагаем файлами кошелька *.wlt и адресной книги *.adb в случае кошелька NCC), для активированного - 1/(2^256) (для сравнения - число атомов во Вселенной ~2^265).


  • Источник: http://free.userboard.net/t121-topic