The transaction costs problem is when you have 100,000 ships and 100,000 customers and it becomes ten billion individual relationships.
You do solve this with things like Uber, but such things don't themselves have to be a monopoly, because you don't have to make it 100,000:1, you can make it 100,000:20 and have twenty competing marketplaces but still not an explosively large number of separate relationships.
This works even better with federated marketplaces. There are a lot of problems with the international banking system, but the general idea that someone in New York can make a wire transfer to someone in London even though they each use a different bank is based on protocols rather than a single centralized world monopoly bank, and in that respect is better than the more centralized alternative.