Ethereum Asked by nick carraway on February 17, 2021
I see a lot of people tout the enormous benefits of using IPFS as a store of data. Meanwhile, the Ethereum blockchain is over 1TB in size, with quesitonable need to keep the earlier blocks.
In bitcoin, it makes sense to me why you would need to keep the entire blockchain hosted somewhere, since unspent transaction outputs need to be kept somewhere. Unlike bitcoin, the latest block in ethereum almost always a snapshot of the most recent state of Ethereum, effectively an auto-calculation of the unspent transaction outputs. So, with the exception of tracking how those who participated in the 80% ethereum ICO have hodled their coins, there doesn’t really seem to be much need to store these early ethereum blocks.
Anyway, the point I am getting to is, if we could require a node who was a miner to link only to the IPFS hash of their block, and require them to host said block for only long enough for other miners to validate, would this be a good idea? Each IPFS hash would link to a block which contained each transaction included in said block. Miners would be required to download this block before validating the block included in the chain. Is this any different than say just downloading block hashes? What do we lack in terms of security, because we clearly gain a lot in terms of long-term blockchain storage?
Yes, I am implying that over time (i.e. with enough block confirmations), miners would stop hosting these IPFS blocks.
The Ethereum blockchan is less than 100GB. The 1TB is for an archive node, which is the blocks as well as a snapshot of the state at every block in history. So realistically if you want to calculate the size of the chain you should sum up the block headers, transactions, and (if you really want) the state tree of the newest block.
Ethereum doesn't have UTXOs, it's account based instead.
Every block header in Ethereum contains the merkle root of the state tree. This means even the newest block contains the state of the accounts that bought eth in the Ethereum crowdsale but haven't sent it to anyone.
A miner is actually incentivized to host their block forever. If the block they mine is lost, then they don't actually get the reward from it.
Realistically this is no different than the miner just sending the block themselves. The miner would be hosting it on IPFS and they would pin it themselves, so it would just move the Ethereum block propagation protocol to running on IPFS.
There are several reasons to at least keep block headers, though. One example is logs, which are a key part of fetching data from the Ethereum blockchain for dapps, and the way to trustlessly fetch them is using the the receiptsRoot
, which is stored in the block header.
Answered by flygoing on February 17, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP