[Cover Image Source] Distributing dividends via smart contracts is difficult with a large number of shareholders. A naive implementation could look something like this: for s in shareholders: dividend = s.shares/total_shares * total_dividends send(s.address, dividend) This is not practical when the number of shareholders is large