Personally, I like Robert Heinlein’s voting scheme from the “Starship Troopers” universe:
Only military veterans get the vote. Everyone else gets all their rights under the Constitution. But unless you were willing to fight for those rights, you don’t get the vote.
You don't have to be a veteran to vote, you have to have completed Federal Service. From the Starship Troopers wiki:
Citizens are people who joined the Federal Service and were honorably discharged and given franchise. Joining the Federal Service does not necessarily mean the military, and applicants may be assigned to any field where they sacrifice their time and effort for the Federation (Teaching, any of the civil services, experimental test subjects, etc), though military service is the most glorified. It all falls under Federal Service.