I had this idea for a way to make it possible to run a MUCH MUCH smaller node but still mine on a chain. I don't know if there is anything useful in it, but decided I would post it here for feedback on the idea and to see if it was actually plausible.
The blockchains are growing, and ones like Ethereum are growing FAST. This isn't sustainable for a lot of miners, and having a lot of miners is crucial to validate the chain.
Intro: Data Server node, Fetch Nodes
What if you didn't have to store the entire blockchain to solve blocks on the blockchain?
NOTE: all hashing below is SHA256 in theory
Essentially the Fetch Nodes store the chain, but each block only contains 3 SHA256 hashes rather than an entire list of ~1500-3000 transactions that takes up 1 mb per block. These 3 hashes are the block's hash, the fetch hash, and the previous block's hash.
Here is how it works:
Fetch nodes take in incoming transactions from the memory pool, filling up a block same as normal. This data is hashed to obtain a fetch hash, which along with the hash of the previous block, is hashed once more to obtain the block's hash. Great, so now we have the data, a previous block hash, a fetch hash, and a block hash.
On the fetch nodes, the block hash, fetch hash, and previous block hash are stored as a block. The only data in the block is those 3 hashes.
This data is all stored on the data servers alongside its corresponding fetch hash.
When fetching data, the data servers use fetch hashes.
Data server nodes store all the transaction data and corresponding fetch hashes for each group of transaction data.
Here is what data will be stored on the Data Node like :
If we want to fetch data with a block hash, the fetch node sends a request to search a data server node using that block's fetch hash. When found it is returned in appropriate format.
If we want to validate the data on the servers, we just have to check that the transaction data hashed truly outputs the fetch hash. If not, then we know the chain is invalid.
This means that these fetch nodes, storing just 3 hashes per block, can still be used to validate the entire chain.
(of course, the fetch nodes will also have the job of validating transactions. The benefit that is gained is through storage.)
Data server nodes are compensated in coin by fetch nodes which are compensated by mining.