Me On IT
Published on

Digital Signatures

Authors

Enlightenment is man's emergence from his self-imposed immaturity.

Immanuel Kant, 1783.

This is what Kant's signature looked like:

Signatures -- to this day, they are an essential symbol of our maturity.

They are even an essential part of our identity. In the digital age, digital signatures are therefore the most important component of a digital identity.

On blockchains, every transaction is digitally signed, including every financial transaction. Anyone using a crypto wallet can utilize this functionality to sign any documents. A few lines of JavaScript show what this could look like:

import { ethers, Signer } from 'ethers'

  async function signerDemo(signer, message) {
    if (
      (await signer.getAddress()) ===
      ethers.verifyMessage(message, await signer.signMessage(message))
    ) {
      [...]
    }
  }

This code could run similarly in a web browser. In this way, a digital signature can be added to any (short!) text. For larger documents, a hashing procedure 1 is used, and subsequently, the hash is signed. Similarly, images, music, films, any amount of data can be signed.

Where documents can be signed, it's not far to rules of all kinds -- constitutions, charters, multinational treaties. Those who can sign can vote. Buy, sell, lend, bequeath, inherit, commit in some way. Almost every important right that we as citizens can exercise today is linked to a signature.

Our life begins with the signature on a birth certificate. Kindergarten, school, university -- almost every important step we take in life is sealed with a signature. Whether we marry or divorce, whether we buy a house or a car, whether we start a job or take out a loan -- it all always begins with our signature. Our life ends with the death certificate. Through signatures, the state regulates simply everything from the cradle to the grave.

Even money, especially paper money, is not unlike a signed promissory note: A state certifies with its signature that it recognizes a paper as lawful currency. Cryptocurrencies do not require paper, but they retain the concept of money and therefore are in competition with fiat currencies.

We now draw a line connecting the Ethereum account of a human individual, through their digital signature to their digital identity:

As mentioned, owning a "crypto wallet" in principle enables anyone to sign or endorse any document. I've already outlined how this works.

Case study: Someone creates a digital image of their passport and then signs it with their crypto wallet. This can be used to verify whether the owner of the passport is the same as the owner of the "crypto wallet." The verification process is demonstrated in the above coding example.

The scanned passport must not be distributed uncontrolled over the internet, as this could lead to misuse. The passport should only be accessible to the owner, just as with a physical passport. However, the signed hash of the passport can be published anywhere because the passport data cannot be reconstructed from it.

Thus, an individual can identify themselves to a trustworthy institution or a trustworthy company. All they need to do is present the scanned passport. This can then be associated with exactly one Ethereum account through the signature.

This way, a digital identity is created with little effort. -- The graphic shown above is only partially explained so far. If interested, I can provide more information...

Footnotes

  1. A digital hashing algorithm is a process that takes data of any size (such as text, images, or any other file) and generates a fixed-size string or numerical value called a hash value. This process is one-way: While it's easy to calculate the hash value from the original data, it's practically impossible to reconstruct the original data from the hash value. The unique aspect of a hash value is that it's distinct for the specific input data. Even a minor change in the data results in a completely different hash value. This characteristic makes hashing techniques useful for verifying data integrity, as one can easily detect if the data has been altered by checking the hash value.