Why does the ledger canister need to maintain a blockchain on top of the subnet's blockchain instead of only storing balances?

I think it at the very least offers a form of verifiability. All blockchains require some degree of trust, but they should also offer the ability to verify if data (and history of data) is indeed correct with respect to user inputs. IC does not require blocks to be kept indefinitely in order to function, but the history of ICP transactions is also important for verification purpose, and keeping them in a chain structure strengthens that.

BTW, you might be interested in reading a related discussion Why should I trust NNS Ledger, seriously?

2 Likes