everybody inside the network has to "approve" the transaction to do it.
I think "approve" is not the best choice of words. They only check whether a transaction is valid or not, no approval is necessary.
To explain with your example with three participants:
Alice, Bob, and Charlie each have a copy of the blockchain. Alice wants to send bitcoins to Bob.
Two conditions apply:
- Alice has to have sufficient bitcoins to fund the transaction.
- The transaction has to have a valid signature.
When Alice broadcasts her transaction, everyone (Alice, Bob and Charlie) can check whether the money is available, because the transaction specifies which coins are being spent.
Also, everyone can check whether the signature is valid because it can only be produced by the owner of said bitcoins. Each user by themselves will immediately dismiss a transaction if the signature is invalid or when there are insufficient funds.
Next, whenever anyone mines a block, it will include a set of valid transactions to confirm them. When found, the block is broadcasted to the network. Everyone checks that the block is valid and that it only contains valid transactions. Since everyone builds the database from the same blockchain, they all end up having the same state in the database, and therefore will be in agreement which balances are available for spending.
In other words, you can trust your own copy of the blockchain, because you checked every piece of it for validity. However, others may not. Yet, nobody else has to trust your copy of the blockchain, because you can send them the pieces so they can build their own and check the work themselves.