Well, now that thats all over, lets talk about something fun!!!
I've been trying to wrap my head around how to convert the fee calculation to something dynamic that wouldn't require human intervention.
As far as I understand, the primary reason the fees exist is to prevent blockchain spamming (and mining incentive). So Monero has some minimum fee thats based on the size of the transaction. I'm sure you've noticed how this works if you've tried to clean up some dust using Moneromoo's recent simplewallet enhancements (2.3 XMR to cleanup 5xmr of dust wuuuuut)
Currently, the fee is 0.01 xmr / kb as writ here:
https://forum.getmonero.org/1/news-and-announcements/91/monday-monero-missives-17-november-2nd-2014Now this is all fine and dandy except when Monero shoots to the moon (1 xmr = $1000), because an increase in price doesn't mean the size of the transactions will decrease. A transaction to send 0.045 XMR will use the same space (well, probably more depending on mixin availability) as a transaction to send 45 XMR (more or less).
Obviously, the easiest solution is to modify the code by hand (the devs intervene), and there will be plenty of incentive to do so - the cost of transacting will decrease the utility of Monero - the coin has become worth a lot, but it is really expensive to use, so people just hold it. But when humans intervene, you end up with all the nonsense associated with humans. Miners might not want to switch because they're raking in profits. The monero-as-asset crowd will rally for not changing the protocol because transaction friction could actually
increase the value of an asset ( perhaps ).
All-in-all, the modifying-the-fee-using-human-intervention is the antithesis of cryptocurrency. Again, the goal of cryptocurrency is to remove as much of human element as possible.
So, how could we do that?
I don't think its possible to somehow link the protocol to some type of oracle - i.e., the protocol somehow gets data input from some external source. For example, you could imagine the protocol gets a feed from some XMR / fiat exchange. I don't think this is possible primarily because it depends on factors exterior to the protocol.
I think we would have to stick with data that exists within the protocol / blockchain. Specifically, I think these are the data we can use:
t = Transaction frequency = number of transactions per block
a = transaction amount = the amount of XMR actually transacted in a given transaction
Using these data, I think something could be written that would achieve goal of increasing the XMR cost of a transaction when fiat value is low, and decreasing the XMR cost of a transaction when fiat value is high.
Essentially, when the transaction frequency is low and the transaction amount is high, one could infer that the fiat value of XMR is low.
Conversely, when the transaction frequency is high and the transaction amount is low, one could infer that the fiat value of XMR is high.
Obviously, some sort of rolling window would be used to aggregate an average of these data.