Basically, suppose I want to send 1 Monero to a random address that I found.

If I were to write my own Monero client wallet that didn't perform any validation whatsoever and just broadcast any transaction that I crafted to the Monero network, how will the Monero node that I'm connected to know that my transaction is valid if it can't even track how much money my wallet even has in it? That's, after all, in Monero's entire design, the point, right? Not allowing third parties to see how much money you have in your wallet, right?

Shouldn't the node perform a validation of the sorts of

if (amount_in_wallet(walled_it) >= transaction_amount) then transaction_is_ok(); else not_enough_funds_for_transaction();

If, by design, the node and all the miners can't compute how much money I have, then amount_in_wallet is technically unfeasible to calculate, right? And, if so, what prevents me from broadcasting bogus transactions where I sign off payments of hundreds of Monero to other individuals, without having any actual money in my wallet in the first place? I heard that you can't double spend due to some technical feature called transaction images and stuff but that sounds like a very niche and specific thing to block, not what I'm talking about now.



Browse other questions tagged or ask your own question.