Steem Private and Public Keys Demystified ๐Ÿ”

in #steemit โ€ข 7 years ago (edited)
One of the cryptic aspects of Steem is the user's keys. Private, public, owner, password, posting, active, memo, cryptography. All these words can be very confusing for minnows and newcomers.

Don't be discouraged, it's not as complicated as it sounds. Let's start with a quick explanation of what public-key cryptography (or asymmetrical cryptography) is. I won't go into too much details, I will try to keep things as easy as possible to understand. You can check this link for a nice and detailed explanation. Or google your way for some hardcore mathematical explanations.

Historic Background


(adapted from Fiddler On The Roof)

In a nutshell, you have a pair of keys, one private and one public.

You use your PRIVATE key to encrypt and sign a message. The ENcrypted message can then be DEcrypted using the PUBLIC key while confirming that the message was authenticly signed by you.

The reverse process is possible too, but with a beautiful twist. Someone else may use your PUBLIC key to encrypt a message and send it to you, but that message can ONLY be decrypted using your PRIVATE key. Thus, anyone intercepting the encrypted message cannot do anything with it because they don't have your private key.

The whole purpose of this system: Authentication

That's why it's very important to keep your private key secure, while you can safely share your public key with everyone.

What's All That Have To Do With Steem?

Steem uses this asymmetrical cryptography to secure and authenticate every transaction: upvote, memo, transfer, post, etc. Everytime you do any of those activities, you're actually signing them with your private key. Then, the system validates your transactions by using your public key. Authenticated transactions are added to the blockchain, while non-authenticated ones are rejected. It makes sense, doesn't it? Imagine someone trying to impersonate you to drain your precious wallet. If they don't have your private key to sign the transaction, then they won't be able to surprise you when you wake up in the morning!

Why So Many Steem Keys?

There is a FAQ section that answers that question pretty clearly. I'm pasting it because many users never took the time to read the FAQ fully.

Posting key - The posting key allows accounts to post, comment, edit, vote, resteem, and follow or mute other accounts. Most users should be logging into Steemit every day with the posting key. You are more likely to have your password or key compromised the more you use it so a limited posting key exists to restrict the damage that a compromised account key would cause.

Active key - The active key is meant for more sensitive tasks such as transferring funds, power up/down transactions, converting Steem Dollars, voting for witnesses, updating profile details and avatar, and placing a market order.

Memo key - Currently the memo key is not used.

Owner key - The owner key is only meant for use when necessary. It is the most powerful key because it can change any key of an account, including the owner key. Ideally it is meant to be stored offline, and only used to recover a compromised account.

The OWNER key is the same thing as the PASSWORD that you were given upon signing up with Steem. It's the most important key. Keep it safe and don't use it to login unless you really have to. Use the Posting key to login to your account.

๐Ÿ“Œ A quick tip to distinguish between the Steem keys:

๐Ÿ”“Public keys all start with: STM
๐Ÿ”’ Private keys start with: 5
๐Ÿ”’Owner key starts with: P5

How Do I Retrieve My Private And Public Keys?

  • Log in with your Owner Key (Password), this will allow you to reveal all the private keys.
  • Go to your Wallet, Permissions, and click on "Show Private Key" or "Login to Show". Notice that by default, the PUBLIC keys are shown. Also, there is no button to show the Private Owner Key, I guess it's for extra security reasons.

  • To reveal the Active Private Key, press "Show Private Key" and you will get this pop up box. Paste your Owner Key in it and press Login.

  • After you retrieved your keys, SAVE them somewhere secure.

  • Log out and log in again, but this time use the Posting private key, as recommended in the FAQ.

What If My Keys Are Compromised?

I may happen that you accidentally paste one of your private keys in a public channel or in a chat. I've seen it happen today as a matter of fact, and I notified the person to immediately reset his keys.

You can do that by going to your Wallet, Password, and generate a new one. SAVE it. You don't need to worry about generating the other keys (Posting, Active, Memo) because they will be automatically derived from the new Owner Key (Password). Just redo the steps I explained earlier to retrieve the new PRIVATE keys and save them.

Wrapping Things Up

  • NEVER share your PRIVATE keys with anyone (unless you absolutely trust them).
  • Public keys are safe to share.
  • Keep your keys secure! ๐Ÿ”’
  • Read the FAQ.
  • Don't forget to vote for me as witness. Instructions in the footer of this post, and... it will require your Active Private key to vote ๐Ÿ˜‰.

Proud member and delegator of the @minnowsupport project.
Join us on https://discord.gg/GpHEEhV

MSPPAL


If you like this post, upvote and comment.
If you really like it, resteem.
If you love it, follow.
Don't be shy, click that banner and enjoy my blog (gif animation by @justcallmemyth)
Follow
๐Ÿ—ณ Check out my Steem witness application and vote for me. ๐Ÿ—ณ
Thank you.

Vote

Alternatively, you can issue this command in cli_wallet (after unlocking it)

vote_for_witness "YOURACCOUNT" "drakos" true true

Sort: ย 

Hey @drakos. Thanks for this; I didn't realize I could sign in with my posting key.

Very helpful.

ย 7 years agoย ย 

Same!

Same

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by drakos from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, and someguy123. The goal is to help Steemit grow by supporting Minnows and creating a social network. Please find us in the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you like what we're doing please upvote this comment so we can continue to build the community account that's supporting all members.

Wow this look awesome ,thank you for sharing this with us and I hope that you will continue posting such great posts,Thank you.

Such an excellent guide - will keep in under LOCK ๐Ÿ”’

Thanks @drakos , but I am still curious how is the public keys used. I know the memo public keys are useful to send steem from outside to our accounts, but what about public post keys? Any idea?

There is only one public posting key, not "public post keys". As I explained, the public keys serve the purpose of authenticating your transactions. The different keys have different "access" levels. It can be confusing if you're not familiar with the concept, but it's all clear in the post. I suggest your read it a couple more times to grasp it.

Let me re-phrase:
I get the practical usage of the private keys and their functions @drakos , and I also understand the public memo key is for as well. But what are the posting and active public keys for? What is their practical functionality (I am pretty sure there is), how can we make use of it so that its purpose is well used?

Posting key - The posting key allows accounts to post, comment, edit, vote, resteem, and follow or mute other accounts. Most users should be logging into Steemit every day with the posting key. You are more likely to have your password or key compromised the more you use it so a limited posting key exists to restrict the damage that a compromised account key would cause.

Active key - The active key is meant for more sensitive tasks such as transferring funds, power up/down transactions, converting Steem Dollars, voting for witnesses, updating profile details and avatar, and placing a market order.

The public posting key is used to authenticate your comment/edit/vote/resteems, etc..., while the public active key authenticates your fund transfers, powerups, etc...

hm. So why would our public keys be exposed (to the public) in our accounts? I understand memo public key because we can have such a use on that (to send steem to someone), so how about posting public keys? I understand that the authentication is needed, so is it possible that I (for example) send an encrypted message to you, with your public posting key, so that your private posting key can decrypt the message?

Public keys are meant to be public, they're not 'exposed' or at risk. If you encrypt a message with my public key (doesn't matter what type of key it is), only ME can decrypt it with my private key. On the other hand, I can SIGN a message with my PRIVATE key and send it to you, and you can use my public key to authenticate that it was ME who signed it.

The posting, active, owner, memo keys are inventions of Steem to allocate different permissions to your account. The public/private key pairs are used by the system, not me or you, to authenticate the author or the transactions.

Maybe one day Steemit will evolve to a stage we can encrypt and decrypt it using its services and enable privacy control of our own keys. That would be nice.

ย 6 years agoย ย 

Great guide!

nice post
if you like my post please follow upvote comment and resteem https://steemit.com/life/@neerajsharma007/travel-with-me-visit-shimla

Please don't advertise your posts in comments. Remove that link or risk getting flagged. Thanks.