There is multiple ways to do so, each will have their own pros and cons. However in this case the easiest approach probably would be centralised ledger (with replication) and then instead of 2 separate actions:
Alice gains $1
Bob loses $1
You write 1 event:
Bob pays Alice $1
And then build state of both accounts by aggregating all events in the ledger.