The solution is simple: Prohibit airlines from charging anything before the service is provided.
I’ve always said that any business which requires payment before the service is provided is a Ponzi Scheme.
How would you then solve the problem of no-shows? People would block seats months out then not turn up on the day. Who pays then and how do you value to lost revenue from someone else who would have taken the seat?