I'm trying to develop a smart contract where dividends are distributed to all token holders. So if there are 100 tokens Alice has 50, Bob has 30 and the other 20 are owned by maybe even thousand different addresses. And there is 200 ether to be distributed as dividends Alice gets 100, Bob 60 and the remaining goes to all others accordingly.
So far I've come up with a burn scheme where you need to burn your tokens to get your portion of ether in the smart contract. However this requires you to burn your shares and you can no longer get the rewards from future profit.
Looping over all token holders is not an option because you would run into gas issues very soon.
Is there already a known solution for this in solidity? Or might the burning scheme be the best solution as it is a incentive to hold?