Am I right in saying node operators have to manually distribute staking rewards? If so could this be done automatically?
Yes, that is correct, rewards distribution is manual. Even though many tools were released by the community (special thanks to Jrwashburn ), it generates some subsequent issues, in particular the fact that delegators have to trust the validators in order to receive their rewards. That definitely feels outdated, from my personal crypto experience.
It’s not a very urgent issue but Mina being PoS, the staking experience should be as seamless as possible for people that wants to participate in securing the network.
Thanks for the info Syd, you are right, I think the current situation can lead to delegators to wondering if are they getting the right amount of rewards, especially as it can be a variable amount. It’s always a hot topic of conversation on other channels too.
Do you know a good example of a blockchain that does things in a more straightforward way?
The team said it will be much easier to do onchain payouts once Snapps are out and they are leaving it until then.
I believe honestly it works like that in most of blockchains, but what would come to my mind first is tendermint-based blockchains which make it very simple, quick and safe, both for validators and delegators
The proof that you ran a computation correctly sounds like a snapp right? As in, so long as you trust the data source and can publish the code for the payout script this should be verifiable (no idea until things are published if this is remotely achievable)?
I’m all for on-chain payouts by the way. One push back I heard before was that validators might differentiate on different payout algorithms - though in practice this doesn’t seem to be happening.
It does seem that the best way to achieve this is via the protocol level. Keeping in mind that it does put more of a burden on the Mina folks as it requires thorough testing, I struggle with how the zkApp implementation would be trustless.
For instance, if you achieve the distribution of rewards by setting the coinbase receiver to the contract, it could easily be avoided by simply not setting the coinbase receiver to the smart contract (at any time)…
It wouldn’t be completely trustless but the current issues are seemingly not around being paid but rather the correctness of the payouts - to my knowledge we haven’t seen non-payment being a widespread problem (with the exception of the delegation program where there is little accountability).
It might also have other advantages such as delegators could get paid at the frequency they choose (assuming their funds sit in a smart contract until claimed) and could handle a variety of implementations for paying rewards.
I explained some disadvantages of the current implementation here: https://forums.minaprotocol.com/t/staking-rewards-distribution-at-protocol-level/
but it is still awaiing approuval…
I think anything that can make rewards distributions more straightforward from the perspective of someone staking their Mina (and a validator) would be a good move for a number of obvious reasons.