Photo by energepic.com from Pexels

Signing messages in Ethereum

Authentication for web3 ?

--

If you’ve ever interacted with an Ethereum Dapp you’ve probably been asked to “sign” a message or piece of data to authenticate yourself (well your address). I am assuming that like me you want to develop for web3 and so in this post we will go over the basics of signing data, care to join ?

How does it work ( conceptually )

At the highest level signing a message is a way to verify that you own certain wallet address on the Ethereum Blockchain or rather are in control of your private keys.

There are 5 basic elements to signing a message:

  • A Users Wallet address ( also known as account address)
  • Private Keys ( These are only known or can be generated by the wallet owner usually behind a UI and password like with MetaMask’s wallet)
  • Public Keys ( Can be derived from the account, but only when signing a message or transaction )
  • A Message
  • Maths

So now let’s see how the elements work together, let’s say you have a Dapp or web3 site and want to verify that the user owns certain address ( use cases in a minute ), at this point all you know is the user’s account. So you provide a message and the user “signs” it (…

--

--