{"action":"created","issue":{"url":"https://api.github.com/repos/irungentoo/toxcore/issues/1462","labels_url":"https://api.github.com/repos/irungentoo/toxcore/issues/1462/labels{/name}","comments_url":"https://api.github.com/repos/irungentoo/toxcore/issues/1462/comments","events_url":"https://api.github.com/repos/irungentoo/toxcore/issues/1462/events","html_url":"https://github.com/irungentoo/toxcore/issues/1462","id":115630786,"number":1462,"title":"Deterministic ID","user":{"login":"SlugFiller","id":5435495,"avatar_url":"https://avatars.githubusercontent.com/u/5435495?v=3","gravatar_id":"","url":"https://api.github.com/users/SlugFiller","html_url":"https://github.com/SlugFiller","followers_url":"https://api.github.com/users/SlugFiller/followers","following_url":"https://api.github.com/users/SlugFiller/following{/other_user}","gists_url":"https://api.github.com/users/SlugFiller/gists{/gist_id}","starred_url":"https://api.github.com/users/SlugFiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SlugFiller/subscriptions","organizations_url":"https://api.github.com/users/SlugFiller/orgs","repos_url":"https://api.github.com/users/SlugFiller/repos","events_url":"https://api.github.com/users/SlugFiller/events{/privacy}","received_events_url":"https://api.github.com/users/SlugFiller/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/irungentoo/toxcore/labels/idea","name":"idea","color":"fbca04"},{"url":"https://api.github.com/repos/irungentoo/toxcore/labels/under_discussion","name":"under_discussion","color":"733980"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":25,"created_at":"2015-11-07T03:44:43Z","updated_at":"2015-11-24T15:33:06Z","closed_at":null,"body":"When using Skype, if I want to use it on a new device, or if I want to format my harddrive and reinstall, all I need to do is remember my username and password. I can very easily install a new copy, input my username and password, and while I might lose my chat history, I keep my account and contact list with no issues.\r\n\r\nWhen using Tox, however, I need to constantly worry about keeping a copy of my account, including my private key. If that's lost, then my account is lost forever.\r\n\r\nThis is actually a common issue in any distributed applications which rely on a private key for identity. So it's no surprise that another such has already come up with a solution: Bitcoin.\r\nThe Bitcoin client Electrum offers something called a \"deterministic wallet\". You pick or randomly generate a passphrase made of several words (fairly easy to memorize), and this passphrase is used as a seed to generate any necessary private keys.\r\nSince the blockchain is a complete ledger, even if you have a critical drive failure, you can always completely recover your wallet (and its contents) on a completely new device from the passphrase. Unlike a complex binary private key, it can be easily memorized. Even if you keep no backups, your wallet is secure.\r\n\r\nI suggest a similar system for Tox. While the contact list may be a separate issue, your unique user ID should still be recoverable from a memorized passphrase. It would mean you can at least keep your public ID if you lose your account data, and it would also make it easier to migrate to another device without having to worry about how to copy your account between devices."},"comment":{"url":"https://api.github.com/repos/irungentoo/toxcore/issues/comments/159305690","html_url":"https://github.com/irungentoo/toxcore/issues/1462#issuecomment-159305690","issue_url":"https://api.github.com/repos/irungentoo/toxcore/issues/1462","id":159305690,"user":{"login":"SlugFiller","id":5435495,"avatar_url":"https://avatars.githubusercontent.com/u/5435495?v=3","gravatar_id":"","url":"https://api.github.com/users/SlugFiller","html_url":"https://github.com/SlugFiller","followers_url":"https://api.github.com/users/SlugFiller/followers","following_url":"https://api.github.com/users/SlugFiller/following{/other_user}","gists_url":"https://api.github.com/users/SlugFiller/gists{/gist_id}","starred_url":"https://api.github.com/users/SlugFiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SlugFiller/subscriptions","organizations_url":"https://api.github.com/users/SlugFiller/orgs","repos_url":"https://api.github.com/users/SlugFiller/repos","events_url":"https://api.github.com/users/SlugFiller/events{/privacy}","received_events_url":"https://api.github.com/users/SlugFiller/received_events","type":"User","site_admin":false},"created_at":"2015-11-24T15:33:06Z","updated_at":"2015-11-24T15:33:06Z","body":"@SkyzohKey Yup, that's about right.\r\n\r\nI also want to add that having support for this in the core, rather than simply allowing clients to support it, could also help in terms of ensuring a common hashing function, which would make it easier to migrate between different clients, while keeping the same key."}}