I know a little about Ethereum and how it works, but what am I wondering is that why we exactly need a transaction to be stored in Ethereum blockchain? What's confusing for me is that Ethereum client like Go using leveldb for keeping data like account storage in every node locally. Moreover if a user want to read/write the value of the variable/function of the contract, he send a transaction to change the state and it is broadcast to the network and a miner run this transaction in his VM and the VM get data from the account storage that store in the LevelDB and then change the value and whatsoever. Am I right till now?
If I am right, for reading and writing we keep looking for LevelDB not the transactions that stored in the Ethereum. In contrast in Bitcoin for knowing how much is the balance of somebody we check the last transaction to this account and see its UTXOs, but that is not happening in Ethereum. Because we just set the transaction to change the leveldb and nothing more happens (if I am not wrong). We keep changing the state and write transactions for that and the transaction store forever in blockchain.
So why do we exactly need chains of block for keep recording of transactions since all the data is in the separate database? Do we check transactions in the Ethereum? And if the response is yes, for what do we look for transactions and keeping them? so what happened exactly when a user read/write data from Ethereum? Is it refer to Transaction that stored in Ethereum or refer to a leveldb? and if it refer to a leveldb so what is the need for chain of block? That would be great if somebody help me from this confusion!