It's actually not easy at all to implement for us, because we don't use accounts. And we have no way, at the moment, to prove that someone owns a particular address.
You could use bitcoin transfers. Address A sends 1.00X bitcoins to a pool address. The pool sets the donation rate for address A to X% and sends 1.00X bitcoins back.