You're going to need special software or else these volunteers are just giving out free IP addresses, and the pool of free IP addresses inevitably will be too small for the number of users. (Unless it uses IPv6, in which case it can be done, but then only other IPv6 hosts can connect.)
Meanwhile, you can pay for your own static IP hosted on a VPS for much less than you can get home internet. You can then forward that IP to your home server.
However, even this cannot scale, it is just rationing through bidding on IP addresses. There are more human beings than IPv4 addresses, so you can't just share them and use "non-special" software. The non-special IPv4 protocol software only supports ~4 billion unique users. So we need "special" IPv6 software or else "special" software layered over IPv4.
> You're going to need special software or else these volunteers are just giving out free IP addresses
Yes... that's basically this. But even a single ipv4 volunteer could expose tens of thousands of ports. Depending on how such a service is desired, this could be enough. Ipv6 would, I think, only improve things.
This is one thing I miss from my dial-up internet in the 90's: I could run a service on my computer, I could pass my ip to anyone, anywhere in the world and they could connect to my machine; a cheap computer using a telephone line. I miss that.
Proxying ipv4 by address and port is an interesting idea. I think you'd need dyndns to keep things relatively stable, and at that point you could probably use the dns-01 ACME challenge to get certs, which can be used even on different ports.
EDIT:
One problem is if your current proxy goes down and you have to change, you might get moved to a different port, which would break existing urls. But maybe it could be part of the protocol that you search for a new proxy that has the same port available.
Dang it now you have me wanting to try and prototype this...
I wouldn't mind not having names, certs or even losing the connection from time to time when a node goes off. That would still be a fair price to pay. A simple volunteer-based VPN-like network for port redirection would be enough.
Re: EDIT: now you're using special software on the client side -- in which case, there are many solutions, my favorite is to just have the client get an IPv6 address through a VPN! Just use IPv6!
Seems to me that all of that is an illusion because you're just neglecting the home internet provider that is providing the IP addresses. That's big business, usually regional monopoly, politically powerful, offers no better privacy (neither middleman should be trusted), more bureaucracy, slower to enable.
Meanwhile, you can pay for your own static IP hosted on a VPS for much less than you can get home internet. You can then forward that IP to your home server.
However, even this cannot scale, it is just rationing through bidding on IP addresses. There are more human beings than IPv4 addresses, so you can't just share them and use "non-special" software. The non-special IPv4 protocol software only supports ~4 billion unique users. So we need "special" IPv6 software or else "special" software layered over IPv4.