Blockchain is probably best known for its use in the financial industry, especially with regard to cryptocurrencies. However, blockchain technology has a wide variety of potential uses, including disaster recovery.
Blockchain makes it possible to create timestamped, immutable ledger entries within a decentralized database. Each ledger entry has a cryptographic relationship to the entry that came before it and with the next ledger entry to be made. This cryptographic relationship prevents ledger entries from being tampered with.
There has recently been quite a bit of talk about using blockchain for disaster recovery (DR) purposes. Some have proposed treating storage block contents as ledger entries, thereby ensuring the integrity of each storage block that is being protected. Unfortunately, this probably isn’t the best use of blockchain, since it wasn’t designed to accommodate such large ledger entries. While a high-capacity blockchain ledger could be created, replicating the ledger entries across low-bandwidth connections would likely become problematic.
A better approach to using blockchain for disaster recovery might be as a tool for verifying the integrity of data that has been backed up or replicated to a DR site. Rather than writing the full contents of a storage block to a blockchain ledger, a DR application might calculate a mathematical hash for a block and then write the hash to the blockchain. If the data’s integrity is ever called into question, then its hash can be recalculated and then compared against the original hash.
In DR, an organization could use this approach to detect data tampering or data corruption, but it is incapable of fixing data that is found to have been altered. If the goal is to ensure that good data is always available, then one possible option might be to store several copies of each storage block, in various locations. If a storage block is found to have been altered, then the other copies could be tested to see if they too have been altered.
Another approach to using blockchain for disaster recovery is using a technique similar to one used in error-correcting memory. Error-correcting memory comes in several different forms, but some rely on a correction code used to detect and repair memory errors. Depending on how data is stored, it may be possible to generate a correction code and then store that correction code in a blockchain. This would enable certain types of errors within the data to be detected and corrected. In the event that data is corrupted, using blockchain for error correction can be beneficial to recovery efforts.