First, as stated in this article, the problem is the asymmetry. Normally you need to pay to use a service and the service provider needs money in order to continue. But in software development, the developer needs money to continue but the user doesn't need to pay to use it.
This problem of asymmetry has already been solved all around the world. The citizens in a country can use a lot of services because they pay tax. This works because the government patches the asymmetry by filling in the gap of the missing money flow, using money that they collect from everyone who wants to be a part of this system.
There is just one difference with software development: software is global, so we can't use any existing tax system.
What we need is a global system that collects money from everyone who wants to participate in the system. The money could be collected by the software developers, similarly to how some of them already accept donations. When they get a payment, they register it in a global database that keeps track of who has paid. This database can then be used by anyone who wants to enforce this system by requiring that people have paid a software developer in order to be able to do certain things. The question then is how many people would be willing to make this requirement.