The Bitcoin White Paper: Reclaiming Disk Space and Simplified Payment Verification (SPV)
Continuing in the series of YouTube episodes where Dr. Craig S. Wright and Ryan X. Charles discuss the Bitcoin white paper line-by-line, we arrive at the part of the discussion addressing multiple subjects. Both Reclaiming Disk Space and Simplified Payment Verification are talked about including a few other informative topics that sprung up.
In order to relieve the massive amount of storage needed for all of the Bitcoin transactions that occur on the network, it is understood that not every node will need to store that data permanently. Whatever the amount of blocks past a certain transaction, decided by that node, would be sufficient for accessing data in an immediate need. Everything occurring before that could be eliminated by that node. Of course, as we know, the block headers will always be stored.
Understanding that not every node will need to keep every transaction, there will be nodes identified as archival nodes. These nodes would be incentivized to maintain the full spectrum of data that occurs on the network as it relates to every transaction. Other nodes would be able to request that information from the archival node should they have a need. Not having every transaction frees up space however it does slow the process of retrieving information due to having to go through this process.
Simplified Payment Verification (SPV) as explained by Craig, “it is the user protecting his own information and having it ready to be used”. It allows a user to verify that a transaction is in a block but it does not require the user to have the entire blockchain downloaded. They only need to have the blockchain header. Once again having the header is the most important component. With the header, you can request proof of inclusion within the block. SPV makes it possible to verify transactions without having to operate a full network node.
SPV uses the Merkle Tree or Binary Tree for the purposes of verifying transactions. Because the Merkle Tree is a complete hash of all hashes of transactions located within a block, all transactions can be verified by nodes. It can be checked without having to download all of the transactions from a block. This helps to expedite verification of a transaction as well as keeping storage space free for future use.
Far more than what is mentioned here in this narrative is discussed by both Craig and Ryan in this episode of their line-by-line discussion of the Bitcoin White Paper. Viewing the video in its entirety is highly recommended.