:::warning
A proof of concept implementation of a zkApp staking pool is available here. It is unaudited and should never be used for the custody of actual funds.
:::
Currently, when delegating to a block producer (aka validator) on MINA, the distribution of rewards is conducted off-chain, so block producers are responsible for calculating and distributing payouts according to their terms and conditions. Typical terms and conditions would include the fee percentage, the payout frequency, and perhaps the payout algorithm used. While the delegator's funds are not at risk (you merely delegate the right to produce a block), a pool operator can steal any rewards in the worst-case scenario. The only recourse for a delegator would be to switch, which due to the latency involved in delegation transactions, would result in at least two epochs of rewards lost.
zkApps are Mina's zero-knowledge powered smart contracts, built with SnarkyJS, a Typescript library. Using zkApps, we can reimagine a Mina staking pool whereby:
Anyone can force a payout from a pool.
The calculation of the rewards is verified.