Возможно не все знают, но протоколом блокчейна голос предусмотрена возможность восстановления аккаунта в случае, если вы скомпроментировали/потеряли ваш приватный ключ/пароль, или же аккаунт был украден. Базовый принцип того, как это работает хорошо описан в этой статье, однако, там не рассказано, какие именно технические действия нужно выполнить для восстановления. Недавно мы восстановили доступ к аккаунту @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 используя придуманный вами пароль.
Надеюсь этот гайд был для вас полезным. Внимательно относитесь к безопасности своего аккаунта и к выбору доверенного лица.
Было бы здорово, если кто-нибудь из разработчиков добавит на свой сервис функцию смены account_recovery. Это будет актуально для тех, кто не умеет пользоваться cli_wallet.
@xtar может на steemul такое сделать?
@phenom, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Спасибо!
Только сейчас, спустя три дня, заметил комментарий
Лучше поздно, чем никогда )))
А если ваш аккаунт уводят и сразу же меняют доверенное лицо?
Смена доверенного лица произойдет только через 30 дней
А мошенник не сможет поменять доверенное лицо? После кражи и изменения пароля. Чет ищу не найду это уточнение.
@phenom, уважаемый пользователь, простите не знаю как Вас по настоящему зовут. У меня к Вам просьба. Я не особо понимаю во всей этой писанине, простите, мне проще общаться не терминами, а обычным языком. Скажу проще, у меня 23 дня назад примерно, был на голосе аккаунт с ником aless. После переустановки виндовс я не могу войти на него. Просила помочь многих, но так и не помогли. Люди откликнулись, советовали и все, что я делала не привело ни к чему вообще. Вынуждена была я завести новый аккаунт под ником @lira. Но тот, алесс аккаунт мне очень жаль и это печалит, я так и не могу его восстановить. Может Вы выступите для меня доверенным лицом и поможете с помощью всех этих ссылок с заковырками восстановить мне мой аккаунт алесс? Буду очень Вам благодарна.
для восстновления нужно знать пароль или ключ, которым вы хоть раз пользовались в течение последних 30 дней. Судя по всему у вас такого пароля нету. Проверьте, может где-нибудь в браузере сохранился
@phenom. в этом и вся беда. Пароль у меня сохранен был и в браузере и в документе на компе и вручную писала его в блокнот, а при его вставке в парольную строку пишет, что не верный пароль.
напишите мне в телеграм @phenomkee
@phenom, написала)
если потеряли/не сохраняли приватные ключи, то тут к сожалению данный метод уже не поможет, все таки для восстановления нужен один из используемых ранее ключей.
Верно, если ключ менялся, нужен один из ключей, которым пользовались в течение последних 30 дней. Если просто потерять ключ, то аккаунт восстановить уже не получится
А где почитать все команды кли-валлета?
Раз
Два
Гуд, благодарю.
...большое спасибо за подробное разъяснение!!..каждый надеется, что у него до этого не дойдет, но жизнь такая непредсказуемая штука!!!..))
Надо понимать, что в любом браузере могут быть уязвимости и эксплойты. Так что риск утери контроля над аккаунтом всегда присутствует
Да, читал об этом... великолепное решение... жду повсеместного внедрения! ... а то смысл паролей остался прежним - на бумажку и в карман
Оно внедрено и полностью работает. Любой из ваших ключей можно получить вычислив хэш функцию от пароля:
private_key = SHA256( account + type + password )
,где type - это один из типов
( owner, active, posting, and memo)
То есть достаточно хранить пароль, который начинается на P5...?
если вы про master password, то он у всех по разному начинается. Лучше хранить все приватные ключи, причем иметь бэкапы.
ну, который при регистрации даётся, его достаточно хранить?