My plan for preventing voter fraud, for those who just don't want to require voters show IDs:
Each voting location has a thumb print scanner and a webcam. A person who cannot show ID puts his or her thumb on the scanner, looks into the webcam, and says "I swear/affirm, under penalty of perjury and voter fraud under (statute number), that I am (name), of (residence, city), and that I am a registered voter and legally allowed to vote in this jurisdiction." The scan and video is uploaded simultaneously to a secure server and a public server.
Within four hours (and I'm being conservative there), YouTube would be filled with embarrassing videos of anyone trying to vote illegally. Picture the same person shown claiming to be six different people, with time-stamped videos arranged in sequence, and an animation showing them moving from precinct to precinct. Or picture a series of pictures of people voting under a name, side by side with that name's obituary. The secure server will confirm the crowdsourced documentation of voter fraud.
It won't fix absentee ballot fraud or fraud committed by those counting the votes, but it would stop a particularly easy form of voter fraud, voting in the name of the dead or no longer resident.