Mainly I am proposing the idea below because I feel that the blockchain is overkill, but I assume I must be missing something. So if someone could pick out the flaw below, I would greatly appreciate it.
Suppose there is an alternative architecture:
Every user holds a complete ledger, not of all historical transactions, but the current balance of every other user. To send a coin, I would simply send out a message to every node saying who the money is going to and how much. Then using my address (public key), all other nodes can determine if the message actually came from me, and if so alter their copy of the ledger. As a fail safe against double spending, before this alteration takes place, every node would then query other nodes and see if if the majority have received the same message. If two transactions are present, it would enact the earliest timestamped trade (or whoever the majority thinks is first), then accept or reject the later based on balance.