Once the citizen has received a valid ballot to vote for a particular bill, he can "cast his vote" by selecting a "Yes" "No" or "Abstain". The vote will utilize the new ballot (an address not linked to him personally but at the same time cryptographically linked to SOMEONE from within the pool of citizens).
The vote turns into a data-embedded transaction on the blockchain tying this new address to the proposal/bill in question.
After the vote was confirmed on the blockchain, any participant can easily check that all votes received for a particular bill were
cast only by citizens
can't be traced back to any particular citizen
did not depend on someone's stake but rather a majority of citizens
unmistakably are derived from a pool of citizens via several ballot-shuffles
have immutable entries for the various votes anchored onto the Marscoin blockchain
makes the bill either passed or rejected etc.
Bills that passed will enter the corpus of new "Laws" agreed upon by the community. A special case of "law" is a code change that was agreed upon. In which case after a server reboot, the system will pull the latest patched version of the project and attempt a restart onto the newest code and rule-set. If the launch fails, it will revert to the previous known setup. As the codebase itself is hashed, all participants can verify which version of the Constitution is currently live and active.
After receipt of a secret ballot, the citizen proceeds to vote. His vote from the new ballot address unlinked to his identity will be broadcasted and confirmed by the Marscoin blockchain
Below: a block explorer view of a Ballot Shuffle and issuance of new fresh addresses funded for the purpose of voting by existing citizens however through the nature of the shuffle itself their origin remains obfuscated. At the bottom of the screenshot: one of the citizen's ballot cast waiting for blockchain confirmation.