Journal Signatures Use Merkle Trees of Hashes

In the world of business transactions, there is a constant need to maintain logs or journals of transaction history. These journals need to be able to be validated for their integrity over time and they often need to be publicly available. Here are some examples of common transaction journals:

  • Monthly bank statement for checking or credit card
  • Accounting balance sheet of debits and credits
  • Sales records
  • Cash receipts logs
  • Expense account logs
  • Property transactions
  • Audit trails
  • File system data structures
  • Database dictionary change history

Many of these journals/logs were once maintained on paper and protected by being kept under lock and key, but today they are increasingly stored in digital form and made available to anybody. This creates a requirement for a means to assure the public that the data has not been altered falsely.

A digital hash is one means of validating integrity. Hashing algorithms are mathematical formulas that take a varying amount of input and produce a smaller string that is always unique to the material that was input. In other words, we can input a page from a book (or any other chunk of data) and the hashing formula will output a string that will be different if even one character is changed in the input data. The output string that validates the fact that nothing has been changed in the original input is known as a “hash”.

Here is what the hashing process looks like:

HASH INPUT DATA: (using filler text)

Now is the time for all good men to come to the aid of their country.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

HASH STRING OUTPUT: (using the SHA256 hashing algorithm)

9eed31808b7b001152a5af0cce08f27e388556e3fb51efe77b11a0738eae8293

Now we change a single character in the input string, adding an “X” to the blank line in the middle:

HASH INPUT DATA: (using filler text)

Now is the time for all good men to come to the aid of their country.
X
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

HASH STRING OUTPUT: (using the SHA256 hashing algorithm)

0c64ed2185da2538ae58cb1b6138334bf505b2f77e3127385acfaf348ff6e25d

The output hash is completely different with the change of a single character. Hashing algorithms are mathematically designed to avoid producing the same output from different inputs and are tested thoroughly.

MERKLE TREES
In 1979, a computer scientist named Ralph Merkle patented a method of providing digital signatures using an authentication tree of hashes. A hash tree links chains of transactions by calculating hashes from data, combining the hashes and calculating new hashes from the result. Each new hash is dependent upon the previous hashes and ensures nothing has been changed. In this way, the integrity of each transaction can be confirmed and the linkage and order of each transaction can also be confirmed and the entire journal of transactions can be published and verified independently.

Method of providing digital signatures – [google.com]

This method has become known as “Merkle trees”. They are used in the Bitcoin blockchain, the BitTorrent protocol, the Git version control system, some file systems and other areas that have similar requirements for journal validation.

SEE ALSO:
History of Crypto-Currency
Bitcoin Virtual Money

Comments are closed.