Fees are just a side effect of the actual usage of a blockchain network. ...
Correct, which is why Monero got it right and has a dynamic fee system that will make fees cheaper as usage increases (inversely proportional), genius work ArticMine.
I'm still confused on why this does not open an attack vector with chain spam? Is there a critical mass point?
Sorry but I stopped reading progress when I couldn't get the info I needed to vet the RPC (at least the "Scientists" found that vector afterwards). Is there a quick synopsis of this discussion, I can never find irc logs.
maybe you should PM ArticMine and ask him directly.
He reads this thread so I'm sure he'll drop a quick synopsis.
I covered this type of attack in this thread back in January 2016.
ArticMine PMed me after I wrote
that flaming post, and said he would reply after studying my posts. He has not yet replied. Does that mean I am correct and there is no solution for Monero. I think so.
It is fundamental. Afaics, you'd have to completely rewrite Moaneuro.
Rewrite Monero, is not necessary at all but some documentation on how the Cryptonote adaptive blocksize limits actually work is needed, especially given the formula in section 6.2.3 of the Cryptonote Whitepaper is wrong.
https://cryptonote.org/whitepaper.pdf. My response will come in time.
I will start by examining the Cryptonote Penalty Function for oversize blocks. This is critical to understand any form of spam attack against a Cryptonote coin. From the Cryptonote whitepaper I cited above the penalty function is:
Penalty =
BaseReward (
BlkSize / M
N - 1)
2The new reward is:
NewReward =
BaseReward -
PenaltyWhere M
N is the median of the blocksize over the last N blocks
BlkSize is the size of the current block
BaseReward is the reward as per the emission curve or where applicable the tail emission
NewReward is the actual reward paid to the miner
The Maximum allowed blocksize,
BlkSize, is 2M
NThe penalty is only applied when
BlkSize > (1 + B
min) M
N Where 0 < B
min < 1 In the Cryptonote whitepaper B
min = 0.1.
The error in the Cryptonote Whitepaper was to set
NewReward =
PenaltyFor simplicity I will define:
BlkSize = (1+B) M
NBaseReward = R
basePenalty (for a given B) = P
BNewReward (for a given B) = R
BThe penalty for a given B becomes:
P
B = R
baseB
2While the new reward for a given B becomes:
R
B = R
base(1 - B
2)
The first derivative of P
B with respect to B is
dP
B /
dB = 2R
baseB
In order to attack the coin by bloating the blocksize the attacker needs to cause at least over 50% of the miners to mine oversize blocks and for an expedient attack close to 100% or the miners to mine oversize blocks. This attack must be a maintained over a sustained period of time and more importantly must be maintained in order to keep the oversized blocks, since once the attack stops the blocks will fall back to their normal size. There are essentially two options here:
1) A 51% attack. I am not going to pursue this for obvious reasons.
2) Induce the existing miners to mine oversize blocks. This is actually the more interesting case; however after cost analysis it becomes effectively a rental version of 1 above. Since the rate of change (first derivative) of P
B is proportional to B the most effective option for the attacker is to run the attack with B = 1. The cost of the attack has as a lower bound R
base but would be higher, and proportional to, R
base because miners will demand a substantial premium over the base reward to mine the spam blocks due to the increased risk of orphan blocks as the blocksize increases and competition from legitimate users whose cost per KB for transaction fees needed to compete with the attacker will fall as the blocksize increases. The impact on the coin is to stop new coins from being created while the attack is going on. These coins are replaced by the attacker having to
buy coins on the open market in order to continue the attack. The impact of this is to further increase the costs to the attacker.
It at this point where we see the critical importance of a tail emission since if R
base = 0 this attack has zero cost and the tragedy of the commons actually occurs.
This is the critical difference between those Cryptonote coins that have a tail emission, and have solved the problem, such as Monero and those that do not, and will in a matter of time become vulnerable, such as Bytecoin.The fee design in Monero with the tx fee per byte proportional to the block reward divided by the median blocksize is based upon this analysis. There is a critical consequence of this that is very relevant to price speculation. While it is relatively straight forward to retrofit coins with a fixed minimum tail emission such as Ethereum, Dogecoin and Friecoin with an adaptive blocksize similar to that in Monero. There is no solution that I am aware of for coins with a falling block reward such as Bitcoin, Litecoin, Ethereum Classic and Dash. In my opinion the real genius here was adding the tail emission to Monero when it was forked from Bytecoin back in 2014. This was before my involvement with the Monero project.
Edit 1: The tail emissions in Monero, Ethereum, and Dogecoin are generated by inflation. In the case of Freicoin the tail emission is generated by demurrage. The Freicoin case is interesting since it can be a model for securing sidechains with a fixed maximum number of coins. If the sidechain is intended to be used for active transactions with a high velocity of money as opposed to long term wealth preservation then demurrage is a very viable option.
Edit 2: The tail emission in Monero of 0.6 XMR per block produces a maximum inflation rate of just under 1%. This is below the historical inflation rate of gold. So while Monero has a inflation rate to secure the coin it also has a "hardness" that is at least as strong as that of gold. After all gold is the "gold standard" when it comes to hard money. If we were to compare the tail emission in Monero to Bitcoin, the rough equivalent would be a tail emission in Bitcoin of approximately 3 XBT per block.
Edit 3: One can argue that the fee design in Monero is based upon an analysis that identifies a serious flaw in coins with a falling block reward such as Bitcoin, Litecoin, Ethereum Classic and Dash, since the solution of a "fee market"
that replaces the block reward has not been found. The eventual need for such a "fee market" is implicit in these coins' design If, in order for the coin to scale, the total fees per block have to be proportional to the block reward then the message becomes that such a "fee market" is in fact incompatible with scaling.