Skip to content

Overview

Identification is a critical and essential component of a digital identity system. Almost we found identifiers everywhere. Examples:

  • National ID: your national identification number as a citizen. Any interaction with any service in your country is associated with your national ID.
  • Passport ID: you’re identified at the international level by your passport.
  • Postal address: it is an identifier in the postal mail network.
  • Telephone number: it is an identifier in the telephone network. When you want to call someone, you tap his identifier.
  • Email address: it is an identifier in the email network.
  • IP address: it is a machine identifier in the Internet network

There are many digital identifiers for humans, such as usernames, emails, phone numbers, etc.

Blockchain address for humans

A Blockchain address is a digital identifier for a decentralized identification system. Bitcoin and Ethereum protocols identify users via a Blockchain address. You can choose between multiple wallets (software clients) to manage your identifier. The user owns and controls his address.

The Blockchain address for users is based on Public Key Cryptography(PKC). It plays an indispensable role in uniquely identifying a user account. A high-level description of account blockchain address generation:

  • A 256-bit random number is generated and designated as the private key.
  • Derive the public key from the private key using an elliptic curve cryptography algorithm. The private key must be kept secret and the public key is open to the world.
  • Apply a hashing function to the public key to obtain the account blockchain address.

Landscape

Example of Bitcoin address:

  • 1GrkYWRfTVaj5996gitTz3yWFAjtE9cZMz
  • 1Bir32WNYixVaE282o6krQFXH9DN57FeMZ

Example of Ethereum address:

  • 0x8448Ff4b2733b52f62d81ca46d64bD16786299Cd
  • 0x2555e3a97c4ac9705D70b9e5B9b6cc6Fe2977A74

In the Ethereum Blockchain, it is referred to as an external owned account(EOA). It uses a digital signature to authenticate user transactions.

Digital signatures are based on public key cryptography, also known as asymmetric cryptography. There are three purposes of the digital signatures in a blockchain:

  • Authentication: make sure the message was created by a known sender.
  • Non-repudiation: the sender cannot deny sending the message.
  • Data integrity: the message wasn’t altered in transit.

Landscape

Blockchain address for humans with attached code and data storage

Blockchain protocols also use addresses to identify smart contracts. In the Ethereum blockchain, it is referred to as a smart contract account(SCA).

Ethereum introduces account abstraction, a new paradigm that allows a smart contract to control the behavior of human digital operations, such as holding assets or making financial operations, rather than being controlled by an EOA.

Smart contract address becomes a new identifier(decentralized) for human digital identity. It is not managed by a centralized third party but by a public good infrastructure on the Internet.

A smart contract account(SCA) has an address that will serve as a human digital identifier associated with code and data storage. It's controlled by code executed by the Ethereum Virtual Machine(EVM) but not by private keys like an External Owned Account (EOA).

We can program any feature associated with the human digital identifier and be adopted by any services or applications, either on-chain or off-chain, that use a smart contact address as the human digital identifier. We can also program governance rules around the human digital identifier.

Landscape

With smart contract account, we can program different authentication and authorization techniques. They can be either decentralized or depend on a centralized trusted third party.

In the Ethereum ecosystem, we’re moving from human blockchain digital identifiers controlled by public key cryptography(statically by ownership of private key) to human digital identifiers controlled by code(something programmable): EOA(static, PKC) → SCA(dynamic, code/programmable).

With account abstraction (AA) in the Ethereum ecosystem, we have a more advanced programmable digital identity system.