Zero fee Grin transactions?

As I understood zero fee transactions are technically possible at the consensus level. So a Block with one or more zero fee transaction would be accreted by recent nodes. (right?)
So miners actually could spam to the chain with full blocks If they want and have some knowledge. What is the block-size-limit? (must be about 0.5MB for 10TPS?) Are there two separate limits for Kernels and outputs+Rangeproofs?
Zero-Fees transactions actually would have the special capability that you can build closed transaction graph loops, and systems of them. I don’t know if they could lead to practical use-cases somehow:

I Like fees for their contribution for protection against long term 51% attacks. Because of the 10TPS Limit an average grin could get moved exclusively by an absolute maximum of 10 times. I hope most grin get moved some 100 times but mostly together with other grin. So I don’t see a reason why to expect many regular transactions smaller than 1 grin. (They are not possible.) So a fee of 0.1 Grin per transaction on the base layer seems very ok.

So miners actually could spam to the chain with full blocks

They sure could.

What is the block-size-limit?

Grin has a block weight limit instead of a block size limit:

That amounts to a max of 851/60 ~ 14 tps for txs of typical weight.

you can build closed transaction graph loops

No, you can’t, since the inputs and outputs within a block must be disjoint.

I Like fees for their contribution for protection against long term 51% attacks.

Fees don’t protect against double spending attacks.

1 Like

Good to see again and how minimal the consensus protocol is, as well as all the thought that went into the weighing factors for transactions.

grin blockchain space could grow more than twice as fast than bitcoin. And actually bitcoin blockchain space grows more than twice as fast as bitcoin cash blockchain. Although bitcoin cash has much more blocks because of lower hashrate. With full blocks all the new nodes from davidtavarez could run out of memory within one month.

But since grin is for everyone there is no fundamental technical difference between spammers and for example a local community paying everything with grin within the community. Maybe the block weight limit should dynamically adjust if the chain becomes to big.

does grin technically support checkpoints as kind of user activated soft-fork protection against 51% attacks? My concern is, if ever enforceable contracts with grin are possible, and mining old blocks again seems cheaper than buying grin, I expect 51% attacks to fulfill such contracts.

I lack knowledge on checkpoints but it seems to me like they might introduce a possible chain split. If checkpoint is done every N blocks and at block N-1 two new blocks get mined simultaneously then how do they prevent a chain fork?

Disclaimer, I am not that knowledgeable on the topic either.
The way this is solved if I am not mistaken is that for a checkpoint, a nodes take a much older block since in that case any forks would have happened it would have been outraced by the ‘true’ chain. Another simple way would be to block making any any new checkpoint if a race is still going on since in that case you would not know which will become the main-chain and which a dead end fork.

Just my opinion, but instead of checkpoints I think it would be more useful to show the user a warning if chain split with an unlikely length is happening. Something like “Warning, a chain split has been detected of XXX blocks which could indicate a 51% attack, are you sure you want to send this transaction”.
For XXX we can just chose a threshold that is very unlikely to happen, e.g. only expected to happen at random every 420 years :wink:.

Doing late checkpoints is safer, but if i have enough resources i could still mine offline and time-attack with a reorg so that some nodes would create checkpoint A, some checkpoint B. But it’s true that that’s unlikely to happen unless someone hates this coin

Good point, I did not account for someone doing the attack fully offline for a while before broadcasting. Who can hate a coin that makes you ツ.

1 Like