- A minimum fee.
- A % fee for most cases (usually added to the minimum fee, but sometimes not if said % fee exceeds an amount) then...
- A maximum fee (because otherwise their clients would simply try their best to avoid transfers for such quantities and the processing cost for the bank is the same).
I have never been charged a % fee for a wire transfer, ACH, or check. Not in my business or personal accounts.
A purely fixed fee is simple and attractive to miners but it would make a sufficiently small transaction too expensive. Therefore this fee should be very small, which is why I'm talking about a minimum fee (say 0.01 or even less).
No it wouldn't. No reason fees would need to be larger than the minimum you are proposing.
Paypal for example processes ~ 100 tps. At 100 tps and avg fee of $0.01 each that is $31 million paid to miners each year. At something more modest say 0.015 BTC avg ($0.06 per transaction) that is $200M. In today's hardware that buys about 200 TH/s of protection.
Basing it on KB would have a similar effect.
It must be based on KB to avoid spam. KB is the only true cost to the network. Charging it on anything else is just dumb. So high KB low value transactions (which have high cost) are charged a low fee and low KB high value transactions (which have a low cost) are charged a low fee.
When I said obfuscation is not free in terms of resources, I meant that adding outputs means adding KB. Adding just 1 output is probably negligible, but then you're doing a really crap obfuscation job as adding 1 single address more to track is trivial. If you had to obfuscate/launder a significant sum in a big number of said steps, paying a fixed fee you'd be paying through your nose to have a decently sized tree.
You always need a change address. Stupidly sending it back to the input address doesn't take any less space. Charging per kb already "solves" all potential complexity problems. Larger = more complex. It doesn't matter if it is because the person is cashing out 20,000 different inputs, sending it to 800 different people, obfuscating via multiple inputs or outputs, or using a very complex non-standard script.
The cost is per KB.
The price should always be KB.
The thing is, if you make it on KB in a trivial way, then most people will make their transactions the simplest they can. Which destroys anonymity as any extra obfuscation would cost you. Obviously this depends on how much do you plan to charge per extra byte, but in the end you might end up with something very similar to what I describe above, in practice ([min,%/some function,max] ranges).
Using same change address takes exactly the same amount of space. Maybe you should read on how the protocol works before making suggestions to fix it? You seemed totally clueless that a change address even existed 4 posts ago.