BTC is a possibility for settling particular purchases, but it's not the best way to receive your main income, it's like getting paid in an obscure foreign currency.
Last month I was at a sheep and wool festival (yeah just what it sounds like) in central MD, visiting a merchant in a straw floor awning tent at the county fairgrounds. He had a sign up saying he preferred BTC because card fees kill him. My wife whipped out her Mycelium app and the transaction went through in seconds.
It's not Macy's or Amazon yet, but it's getting there. Overstock takes it.
If you can leave that aside and just charge the freelancer with that 3%, let's say. If this doesn't make sense, you can always set a minimum charge, like 5 euros or 3% of the transaction, which ever is bigger.
That may be ok, but is definitely far less sustainable, as you have to keep creating new matches (as opposed to being paid for an existing match continuing).
However, the most freelancers get short jobs and many clients, as in the original article is specified, so this just simply works.
EDIT: it seems that as currently implemented, even Upwork is bumping in a search the ones with many hours/money earned. So cheating would be a bad decision, since it may drastically affect your visibility on the site
And may be one of the primary reasons for this "feature". I don't blame them, they are a marketplace and should encourage transactions on their platform.
Such levels of pricing is not sustainable unless you're burning money to provide the service at a loss while you gain market share and network effects.
I agree that 20% fee seems excessive, but as soon as you're handling other people's money, 1-3% are not reasonable rates, they are unrealistically low, not feasible even for a non-profit that has all volunteer workforce.
It may be feasible to have a very low fee business model if you expect everyone to pay each other directly, but that still means managing all kinds of nonpayment and fraud issues, which takes a lot of time and thus expenses.