It seems entirely reasonable to me to require proof of citizenship on registration to vote.  Perhaps the nature of proof required need be made as painless as possible.  Likely, simply by giving social security numbers, a computer check on the number could determine citizenship.  I don't believe the non-citizen voting numbers for a second.  For the most part, I expect no post voting verification of citizenship is done and thus votes by non-citizens is not detected.  The few cases cited are likely extreme cases where the illegitimate voting was extremely flagrant.