Skip to content

CryptographicUpgrading

Jörg Hohwiller edited this page Feb 13, 2019 · 5 revisions

Cryptographic Upgrading

Cryptography has made enormous progress in the past. However, history and science is telling us an obvious and important fact about IT-security and cryptography:

Cryptographic algorithms are only secure for a period of time.

The Problem

Algorithms like DES, SHA-1 or MD5 were considered secure in the past but today they can be broken easily. Also the bit-length of RSA keys has to be increased continuously. This is because of the increasing computing power but also because of new scientific results or approaches to attack or break algorithms. All existing blockchains are build and hardwired using very specific algorithms for hashing, crypting and signing. These algorithms may stay secure for ten, twenty years or maybe even longer. But we all know that they will not last forever. However, blockchains are based on the principle that they only grow over time but new nodes build trust by validating all blocks from the beginning. Therefore, by design blockchains can not change their underlying cryptographic algorithms even if these are known to be weakened. You would have to build a new blockchain from scratch and somehow migrate all the ledger data in one moment to the new blockchain. This would be a very sensible and dangerous process.

The Solution

ThankToken is by design prepared for upgrading of its cryptographic algorithms. Each ThankToken contains information of the underlying algorithms used. New algorithms for hashing, signing and encryption can be added to the ThankToken software if available. Still different algorithms can co-exist in parallel. When the majority of clients supports the new version, new tokens will be created using that newer version. After a while an old version can be deprecated. People can use renewal to migrate and upgrade their old ThankTokens to the new algorithms. After some more time ThankTokens with an older version can raise warnings during validation, what will enforce the renewal. Finally even later the old version can be considered as invalid and will be rejected as payment. This concept shapes a clear path to upgrade algorithms within a reasonable time. It is only possible because there is not a single blockchain but chains per each ThankToken instead.

Clone this wiki locally