[Инструкция] О восстановлении доступа к аккаунту и выборе доверенного лица
Возможно не все знают, но протоколом блокчейна голос предусмотрена возможность восстановления аккаунта в случае, если вы скомпроментировали/потеряли ваш приватный ключ/пароль, или же аккаунт был украден. Базовый принцип того, как это работает хорошо описан в этой статье, однако, там не рассказано, какие именно технические действия нужно выполнить для восстановления. Недавно мы восстановили доступ к аккаунту @amikphoto, который сменил пароль от аккаунта и просто-напросто забыл его записать. На его примере мы убедились, что восстановление действительно работает, поэтому описываю последовательность действий, которую необходимо совершить чтобы вернуть доступ.
В случае, если вы утратили доступ к своему аккаунту, вы должны сгенерировать новую пару ключей и попросить ваше доверенное лицо отправить в блокчейн запрос на смену ключей от вашего аккаунта. После этого у вас будут ровно сутки на то, чтобы получить доступ к аккаунту используя старый и новый приватный ключ. Если с момента последней смены ключей прошло больше 30 дней, то восстановить доступ уже не удастся, так что не затягивайте!
Как выбрать доверенное лицо?
Доверенное лицо – это аккаунт который может тем или иным образом удостоверится, что вы действительно являетесь владельцем аккаунта, от которого вы запрашиваете смену ключей. Посмотреть кто является вашим доверенным лицом можно на сайте golosd.com/@phenom в поле Recovery_account. Для аккаунтов, созданных на момент запуска сети, доверенным лицом является cyberfounder, для остальных доверенное лицо - это аккаунт регистратор. Т.е. если вы регистрировались через сайт golos.io, то ваше доверенное лицо - это аккаунт @golosio.
Хочу отметить, что нужно ответственно выбирать ваш recovery_account. Это может быть ваш второй аккаунт, либо человек, которого вы хорошо знаете и уверены, что он откликнется на вашу просьбу восстановления доступа к аккаунту. Поэтому проверьте ваш текущий recovery_account, если вы не знаете кто это и как с ним связаться, то стоит серьезно задуматься о смене своего доверенного лица.
Сменить его можно с помощью кошелька командной строки, утилиты cli_wallet. Для тех, кто обладает навыками работы с коммандной строкой последовательность действий выглядит следующим образом:
Запускаем cli_wallet и импортируем свой приватный ключ
import_key YOURPRIVATEACTIVEKEY
Выбираем доверенное лицо и вводим команду
change_recovery_account owner new_recovery_account true
Поздравляю, ваше доверенное лицо сменится на new_recovery_account. В том что смена произошла можно убедиться на golosd.com/@your_name
Восстановление доступа к аккаунту
В случае, если вы утратили доступ, и вы видете, что ключи от аккаунта поменялись, то первое, что необходимо сделать, это придумать новую пару owner ключей. Для этого вводим в cli_wallet следующую команду:
suggest_brain_key
В ответ получим случайно сгенерированную пару ключей вида
suggest_brain_key
{
"brain_priv_key": "ODIUM SIMPLE EASING EARLY ABASIC POLICED ACACIIN LOCA FERTILE SOS PORTMAN DOLI BEEKITE PANFUL INCASE TRIG",
"wif_priv_key": "5JfnvcWYys1UmH5c2hxKMX9hhzcqsNTxmsFkdA6RrCxA4oG1Dp4",
"pub_key": "GLS59vqcK4vCcnf9YwpUaqE9Y6Wv66JjvRdXSiNoDkhnDY6ALmSFi"
}
Это новый ключ, на который вы хотите сменить текущий ключ от аккаунта. Просим ваш recovery_account отправить в блокчейн запрос на смену ключей. Для этого он в своем cli_wallet вводит команду:
request_account_recovery "recovery_account_name" “your_account_name”
{
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
["GLS59vqcK4vCcnf9YwpUaqE9Y6Wv66JjvRdXSiNoDkhnDY6ALmSSv",1]
]
} true
Если все прошло успешно, то на golosd.com вы увидите транзакцию вида
Обратите внимание, что своему доверенному лицу вы отправляете только публичный ключ (pub_key). Приватный ключ храните в тайне и знаете только Вы.
Теперь у вас есть сутки, чтобы подтвердить смену ключей. Для этого импортируете ваши старый и новый private_active_key в cli_wallet
import_key YOUR_OLD_PRIVATE_ACTIVE_KEY
import_key YOUR_NEW_PRIVATE_ACTIVE_KEY
и подтверждаете смену ключей командой (вводить нужно в одну строчку)
recover_account "your_account_name"
{
"weight_threshold": 1,
"account_auths": [],
"key_auths": [["GLS.......",1]]
}
{
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
["GLS59vqcK4vCcnf9YwpUaqE9Y6Wv66JjvRdXSiNoDkhnDY6ALmSSv",1]
]
} true
где сначало идет старый public_key, а затем новый.
Если все успешно, то вы увидите тракзацию вида
Поздравляю! Вы поменяли ключи на те, которые знаете только вы. Убедиться в этом можно на вкладке Owner key history.
Доступ к аккаунту восстановлен, однако на сайт golos.io невозможно залогиниться используя private_key. Поэтому вам необходимо придумать пароль к аккаунту и на основании этого пароля получить новые ключи:
get_private_key_from_password YOUR_ACCOUNT_NAME active YOUR_NEW_PASSWORD
[
"GLS_PUBLIC_KEY...",
"5J_PRIVATE_KEY..."
]
и меняем active_key от аккаунта с помощью команды update_account, которая имеет следующий прототип:
update_account(string accountname, string json_meta, public_key_type owner, public_key_type active, public_key_type posting, public_key_type memo, bool broadcast)
Обратите внимание, что менять ключи можно не чаще, чем один раз в час.
Теперь вы можете логиниться на сайт golos.io используя придуманный вами пароль.
Надеюсь этот гайд был для вас полезным. Внимательно относитесь к безопасности своего аккаунта и к выбору доверенного лица.