Usually, not every node can store a complete blockchain. Many bitcoin clients (the functionality of the software application that runs on the computer) are built to run on power-constrained devices, including smartphones or embedded devices. For devices like that, an SPV technique is adopted to ensure that they can operate without storing the complete Blockchain. These are called SPV clients. As Bitcoin gains more popularity, SPV is fast becoming a prevalent form of bitcoin node.
The SPV nodes will only download the block without downloading the transactions that are included in the blocks. This results in a chain of blocks that is a thousand times smaller than the complete Blockchain. SPV nodes confirm transactions by adopting a slightly different technique that relies on “peers” to provide an incomplete view of important components of the Blockchain on demand.
A full mode is akin to a tourist in an unknown city but equipped with detailed information of every street, corner, and address. On the other hand, an SPV node is like a tourist in an unknown city, asking random strangers for addresses and directions with the knowledge of just one main avenue.
Even though both tourists can confirm a street exists by visiting it, the one without any detailed information does not know what to find at any side of the street and has no idea what other street exists. At the front of 15 Mare Street, he will not know if there are 6 other “15 Mare Street” addresses in the city and whether that was the right one. He has the opportunity to ask as many people as he can while hoping no one attacks him.
Table of Contents
How SPV verifies transactions
SPV confirms transactions based on their depth in the Blockchain rather than their height. While a full Blockchain node will create a completely confirmed chain of thousands of blocks and transactions that goes down the blockchain to the genesis block, an SPV node will confirm chains of blocks and connect that chain to the particular transaction of concern.
For instance, when assessing a transaction that occurred in block 250,000, a full node will connect all 250,000 blocks, which goes way down to the genesis block, and constructs a complete database of UTXO, confirming the transaction validity by verifying that the UTXO is left unspent. An SPV node, however, cannot confirm if the UTXO is unspent. Rather than that, the SPV node will set up a connection between the transaction and the specific block that contains it. It does this by using a marble path. Then, it holds on until the six blocks – 250,001 through 250,006 – accumulate on top of the block containing the transaction and confirms it by setting up its depth under the blocks 250,006 through 250,001. Furthermore, transactions are very easy on Bitcoin and this plays a key role maintaining the interest of its members. An example of tools that makes trading Bitcoin easy is BitcoinFormula.
How does SPV Affect Privacy?
All nodes that adopt SPV have weaker privacy than those that implement a full node. Usually, a full node accepts all transactions and reveals no information or details about whether or not it uses an address in its wallet. On the other hand, an SPV node receives an examined list of transactions that are related to the addresses present in the wallet. Consequently, this effectively reduces the owner’s privacy.
However, to solve the issue of privacy, the bloom filter is used as an efficient way to minimize the loss of the owner’s privacy. Without these filters, an SPV node would markedly share the addresses of interest, therefore creating a significant and serious breach of privacy. Yet, with bloom filters, any element that monitors the traffic of an SPV client and connected to it in a peer-to-peer network for a while will eventually learn enough information about the address of the SPV client to effectively breach privacy.
Bonus: How Can I Set Up a Full Node?
After saying everything important about the SPV Nodes, we should also dedicate one part of this article to Full Nodes as well. We are sure that you now understand the difference, but you probably do not know how to set up full nodes. Well, the good news for you is that you do not have to be a genius to understand the entire process. All you have to do is to use one of the three methods to complete this procedure. Let’s analyze those three methods one by one.
First Option – VM Instance
The first option you have is setting up a full node in the cloud. That means you will have to create an account on some of the platforms such as Google Cloud or Amazon Web Services. After you do that, your task will be to develop a virtual machine instance that will have the capacity to speed up the connection. Despite that, the purpose of that VM is to improve the speed of syncing to the cloud from your machine as well.
We need to note one thing here. After you complete the first part of the job, be sure that you are configuring the firewall rules. That is the only way to ensure no one else can breach your instance.
Last but not least step is to download the Bitcoin Core. This is a program that you need to have to run Bitcoin and configure the settings. So, what do you think, is this unsolvable?
Second Option – Local Machine
The second option is quite similar to the first one, but there is one big difference – you run the Bitcoin Core on your local machine. The disk space you will need to have is around 350 gigabytes. Despite that, you RAM needs to be at least 2 GB (the modern machines often have 4 and more gigabytes of RAM). Despite that, the Internet speed also matters; it should be 50 kbps or more.
Will this method last short? Not quite, because you will need to spend a few days on downloading and syncing the first instance. ON the other hand, subsequent instances will require less time.
THird Option – Node-In-a-Box
Well, the name of this option probably explains everything. You will need to develop pre-configured bitcoin full nodes. After you do that, you need to ensure that they can be hooked onto your computer. You will get an opportunity to manage the device through an interface. That will also allow you to see all the data it contains.
So, why should people decide on this method? Because they can outsource bitcoin’s blockchain downloading and storing procedures to an external device. These external devices often require less energy than the personal systems people often use.
All these options are good or bad for some reason. That is the reason why we do not want to tell you which one will meet your requirements and expectations. The same rule counts when we talk about SPV and full nodes. Your only task would be to research this subject even more and make your own conclusions.