I know everyone says that we need mining to solve the double spending issue, but why? OK I am Alice and I want to send Bob some money, but double spend that money. This is the part where you say mining solves the problem, but why doesn’t Bob also transmit the message? When Alice broadcast what she wants to be her fake message she is adding all the components to make it a valid message. She still has to sign that message with her private key. She still has to sign for the amount. Bob can’t make that Transaction happen twice, by repeating it so him broadcasting it to the rest of the network won’t cause any harm. If Alice is being honest then she already did it and the network can ignore Bob sending it again, but if she is not being honest then bob sending it again will force it to be a valid message even if Alice doesn’t want it to be. When Alice tries to double spend with charlie, Charlie already knows because Bob sent the transaction out.