Lack of transparency and clarity regarding transaction fees

I’m very impressed with the Algorand technology. Just one things that keeps bothering me about the project: the lack of transparency and clarity on transaction fees and node incentives.

I have gone through the developer portal and already asked this multiple times on Discord, Reddit and this forum but never received a satisfying answer, I will ask one last time and would love if someone from the foundation could actually answer this.

  1. As far as I understood all transactions are currently sent to a fee sink. Who controls this address? What happens with this money? Doesn’t this make the protocol rather centralized if one address controls these funds? Why not transfer the yields to relay node operators as an incentive to run? What will be the incentive for relay nodes to keep running once the rewards pool is empty?

  2. How does Algorand intend to keep transaction fees low and stable in the long term? What if the price skyrockets? (for example: if Algorand where to reach Ethereum’s market cap, transaction fees would be around 5 cents per transaction, which is okay, but too high for some of the envisioned use cases and rather high compared to competitors like Ripple or IOTA. Unstable transaction fees are a huge barrier to mass adoption.

1 Like

Hi @petew, to answer 1: see this https://github.com/algorand/go-algorand/blob/0e9cc6b0c2ddc43c3cfa751d61c1321d8707c0da/data/transactions/payment.go#L45

Basically no matter who controls the sink, eventually the money will go back to the rewards pool and the cycle start again.

@mxmauro thanks, but who decides when and how much? I don’t see anything clarifying that in the code. I mean, the protocol is supposed to be decentralized, but to me it seems like a huge flaw in the protocol if you give one address (likely owned by the Algorand foundation) such power. Maybe it’s a temporary measure, but nonetheless one would expect more transparency on the ins and outs of this mechanism.

As currently coded, the fees go to the FeeSink. The FeeSink account can ONLY send to the incentive/reward account. However, that’s not automatic. Algorand could dump the fees over to the reward sink if they wanted, but only there (short of a code change.) However, if nothing is done by Algorand then the transaction fees are effectively taken out of circulation (burned)

Changing this to instead just funnel directly into the reward account, or to pay out to block proposers, etc. is something that could easily be changed in the consensus version (assuming enough nodes validated it by upgrading to a compatible version within the voting range of the consensus change).
The chain is still young and there’s still a LOT of Algo to release.

Incentivizing nodes is a real issue though (you have to pay for that compute/storage somehow!). Algorand has the tech to support a massive number of nodes but at the moment, there are very few nodes. It’s ‘effectively’ a centralized chain at the moment even though it’s not in its ‘chain DNA’.