An understanding of blockchain encryption methods is fundamental to understanding how blockchain works, how security is maintained, and how users interact with other users in a decentralized environment.
Encryption is a set of mathematical computations that secure information against third party interception. Cryptography isn’t a new concept. Long before the advent of computers and digital messages, the need to send “secret” messages was critical. Codes, encryption, and other techniques were frequently employed to ensure the safety of secrets. The advent of computers only complicated this process as generally, content in digital form is either transparent to all parties, or only the owner. This is a recurring problem networks face. Cryptography aims to distort any given message to make it unreadable for unintended recipients. However, the parties for whom the message is intended still need to be able to recover the original text effortlessly. A secret message is useless if only the sender can read it.
A simple example is note-passing in school. The writer wants to pass a note to their friend at the other side of the room. Unfortunately, the message must pass through the hands of many classmates; how can the sender ensure that they do not open the paper and read the message? To solve this, a secret key is necessary, which only the sender and their friend know. The message would be encrypted with the key, and without the key, no one else would be able to read the message. One method of secret key cryptography is to appoint new letters to the letters within the message (example given below). Every letter is then mapped against the new letter stated in the key, ultimately encrypting the original message. Similar encryption techniques have been employed throughout history.
The main problem with this method is that it requires the secret key to be passed along before the message. Nothing stops the classmates from copying the key before passing it along. A solution is needed in order to avoid this problem. Encryption deals with the question of how to design a private key which only the sender and the receiver know about, ensuring that only they can decrypt the message.
Messages are kind of like transactions. By reading the message, entities are able to interact and initiate transactions. For this purpose crypto projects implement asymmetric encryption, whereby each account in the network has a private-public key pair. A public key is required to encrypt the information. Any participant in the network can have anybody else’s public key. The information, once encrypted, can only be decrypted by a user with their matching private key. Each user has a unique private key, to which no one else has access to. The key can be thought of as a unique identifier to the wallet of the user. Note that each user can have several wallets, whereby each requires a unique key pair. When the user wants to make a transaction from their wallet to another user’s wallet, he/she has to sign off the transaction with his/her private key.
Users are required to keep their secret key securely stored. In case a user loses his/her private key, all funds within his/her wallet are lost and cannot be recovered. In case someone else gains access to a user’s private key, they can withdraw all assets held in the given wallet. In contrast to cryptocurrency wallets, users of centralised web applications are only required to decide upon a secure password and remember it. Additionally, the responsibility for key recovery, in case users lose their password or their account becomes compromised, is maintained by central authorities.
We can differentiate between several forms and standards of encryption. The main categories are asymmetric and symmetric encryption. The school example above is an example of symmetric encryption. Asymmetric encryption is generally more difficult to compute but also more secure. Therefore, it is the preferred form of encryption for crypto projects. Furthermore, to enhance network privacy and to exchange secret “messages,” projects can implement zero-knowledge proofs. Zero-knowledge proofs make it possible to hide the transaction data and history within cryptographic puzzles from third parties but still allow verification of the transaction.
Within this article series, we will aim to provide an introduction to different encryption techniques, how they operate, and the advantages and drawbacks of each. Please note that the structure of these articles will prioritize general education over technical understanding.
Example: Each letter is mapped randomly to another letter of the alphabet.
With this key, a message stating “Eden Labs” would be “Smsd Jikp.” Without knowledge of the above map, decrypting the message is guesswork.