Imagine a simple, digital, public ledger:
1. Each existing voter registration generates a unique, anonymous identifier. They probably already do, you just have to standardize it and create an API to verify it. Cryptographic verification solutions would improve this even more.
2. Create a simple, open source public ledger with an open API. Something where any software that knew enough of the voter registration details combined with that identifier could submit or update a ballot.
3. Give voters multiple systems for voting, to ensure everyone has access to a system that meets their needs. No reason to restrict who can create a system, just set federal minimums for each of this systems & let any tech company build a competing app.
4. A public / private key signature process could be used to ensure the validity of both a "local copy" of the vote stored on the user's device, and that the vote was cast, for future auditing. You could create APIs for validating a vote.
Once you get everyone a unique voter registration identifier, Voters could download the database and use simple tools to audit their vote as part of the final, public count. Any irregularities would be publishable and verifiable.
Independent groups could use samples of volunteers (who would essentially agree to publish their voter ID & local copy of their choices for that year) to further validate the integrity of the result.
You could even plant fake votes that cancelled each other out to facilitate an audit.
I'm sure there are details I'm getting wrong (like how to protect someone's identity in a world where all your voter registration details are able to be purchased in legal and illegal markets).
My only point is, anyone could start working on this kind of system as an open source project, validate it works, and start "patching" our existing voting processes with more accessible or more efficient digital replacements.