Now that Saturn Wallet supports custom RPC endpoints, it enables you to connect to the network with your own full node which brings you the benefit of further privacy and anonymity to any transaction you submit to Ethereum or Ethereum Classic network. We are also very happy to have implemented this feature, as it was one of the first requests from our community.

I thought it would be a good time to go over what a node is, and why you may be interested in running one. In a later article we will cover how to set up a full node, for now let's focus on what a blockchain node is.

Full node Overview

What is a node?

Any computer that connects to the Ethereum or Ethereum Classic network (and other blockchains, but here we will focus on EVM chains) would be referred to as a node. It is simply a computer that participates in the network, and all interaction with the blockchain (sending transactions, using dapps and deploying smart contracts, etc...) needs to go via a node.

Nodes are also sometimes referred to as clients, which refers to the two most popular software used for running nodes: Parity or Geth. We differentiate three types of nodes: full node, light node and archive node. When a block is broadcasted to the network, a full node will verify that the transactions in the block follows the rules defined by the network. Transactions or blocks that do not follow the rules will be rejected as invalid, and not used to determine the current state of the Ethereum network.

Ethereum Nodes

Full Nodes

Keeps the full blockchain data on disk, can serve the network with any data on request.

Receives new transactions and blocks as participates in block validation.

Verifies all blocks and network states.

Needs to be running 24/7 and requires an SSD drive to stay fully synchronised.

Light Nodes

Do not download the full blockchain data, uses full nodes as intermediaries.

Can run on low performance devices and does not need much storage.

As a result do not have to be running 24/7.

Archive Nodes

Stores everything like a Full Node.

Also builds a complete archive of historical network states.

Allows you to query the balance of an account at a certain height.

Is running a full node the same as mining?

One of the main confusion around running a full node, is that this is not something reserved for miners. Most of the software used to run full nodes does support mining, but it is not a requirement. Therefore, running your own full node does not participate in consensus (unless you are also mining) but it does validate transactions for you. Running a full node helps you ensure validity of transactions that send you funds, and also indirectly helps the network (more on that below).

If Bitcoin is digital gold then running a full node should be compared to having your own chemical lab that can tell if it's real or fake gold.

Why run an Ethereum node?

Here are a few of the main reasons why you would want to run a node, which applies to Ethereum or Ethereum Classic:

You're running a mining pool or solo mining, in this case a full node is required as you need a way to communicate with the network. Infura or Ethercluster nodes are very reliable, however, they are controlled by third parties and do occasionally throttle usage when overloaded. Running your own node means you stay in control of how your transactions reach the network. More independent nodes mean more copies of the blockchain, this helps secure the network and make it more resilient. It can also help make the network faster, as more nodes mean there is lower latency in sharing blocks.

More nodes make the network secure!

I believe in the interest of trading tokens on Saturn Network, or just generally interacting with any Dapps the main benefit of running a full node is to remove point 2 from the equation. This is because if you don't use your own full node, then you have to trust someone's node for validation. All you have to do is trust you and your hardware.

Does a full node offer more security and privacy?

The short answer is yes, it definitely does. Let's discuss a scenario that could result in account holders privacy can be violated. In this scenario, Alice who is running a web wallet with default RPC settings is sending some funds from her account to Bob.

Alice's client(web wallet) generates the transaction to moves the funds, and uses her private key to sign the transaction. Alice's client RPC calls a full node to pass along the signed transaction, suddenly a third party is involved, as the node is controlled by Eve. Eve's full node broadcasts the transaction to the network. Miners will pick up the transaction and put it in a block, and then broadcast the found block. Eve's full node will receive the found block. Alice's client RPC calls Eve's node to confirm that her transaction has been mined.

Privacy concerns?

In this scenario, if Eve was inclined to do so, she could learn the following about Alice:

Ethereum account address and public key.

All the transaction details (recipient account address, value of transaction).

IP Address (as the RPC calls are over HTTP or HTTPS from the web wallet).

It is quite easy to understand Alice has little privacy or anonymity in this situation, and now imagine if Bob was also using a client that connected to Eve's full node! Furthermore, what if Eve had an organised group behind her with access to internet logs? Such as your internet provider or government - Eve could now dox you which could lead to multiple side effects from social engineering to fund extortion or if it is to do with censorship contexts linking you to some sort of movement then you may end up in jail.

How is the scenario different with your own node?

If Alice is running a full node, or even a light node, then the risk of her privacy being violated is not as bad. This is because she is in control of broadcasting the signed transaction to the network.

Alice's client(web wallet) generates the transaction to moves the funds, and uses her private key to sign the transaction. Alice's node broadcasts the signed transaction to the network and her peers (other nodes) put it in their transaction pool to be mined.

Other Nodes

With this setup, other nodes can figure out that the transaction came from Alice's node but without more data they do not know if Alice's node is the origin of the transaction - she may simply be relaying it. Therefore, it becomes much harder to dox Alice and violate her privacy. Note that Ethereum or Ethereum Classic, does not offer absolute privacy, if an entity who controlled a lot of nodes came into the picture they could eventually figure out that Alice's node is the origin.

Full node vs light node

Though running a light node is already much safer when it comes to broadcasting a transaction, for maximum security and privacy running a full node is a better set up. As a light node does not store the complete blockchain state, when it comes to interacting with smart contracts and using Dapps, your light node will need to regularly query information from a full node. If you want to learn the technical ins and outs of why that is, the article linked below covers the subject very well:

I would still recommend using a light node if running a full node not possible given your hardware, because, a targeted attack on your privacy is still not as easy as in the scenario of running no node at all. This is because once you are running your own node, then all the transactions or data requests you are broadcasting to the network happen at the p2p Ethereum network layer (between nodes). You no longer need to make that initial RPC call over HTTP or HTTPS to a third party, because that is going straight to your own node.

Summary

If privacy is a concern for you, then you should definitely be running your own full node or light node. The main issue is if you are using default settings on your web wallet (MetaMask, Nifty or Saturn Wallet) then your initial RPC call is going to happen via HTTP or HTTPS to a third party, which will disclose details to them that you may not wish to disclose.

Mass Server Outage?

Even if privacy is not a major concern for you, I would still recommend learning how to run your own node. If major Ethereum infrastructure providers ever have an outage, you may find many web wallets no longer functioning how they should do - a problem you can avoid entirely if you are running your own node. And it gives you the peace of mind of knowing transactions are valid.

There is also the security of knowing that the node will send your transaction to the chain you expect it to be, so imagine a hard fork scenario. If the third party full node has decided to support the hard fork, but it is not what you want, well you are stuck unless you are running your own node.



Stay safe!

Invest in Saturn Exchange DEX

Follow Team Saturn on Twitter and Reddit for our latest announcements and updates, join our HODL 2020 Investment Program to support development of our roadmap, and share your unique referral link to get extra rewards!