That sounds like a good solution. Everyone should have permission to send messages in the Gold-Badge channel. You can tag me @GreenRex in the Choice Coin Discord in the General Channel if you’re unable to message in the Gold-Badge channel.
Okay. Thanks so much for your help. would tag you right away.
Hello @greenrex I saw a glitch in the current system. A voter can get the candidate’s wallet address from the testnet or mainnet explorer which means it is prone to rigging.
A malicious person or voter can send excess choice coin to a particular voter’s address in order to rig the election.
How do we take care of this?
I’m not sure I understand your point. Sending excess Choice to a particular voter’s address would not rig the election because the person would have to send the token. I think it is important to remember this is a general purpose demonstration and it will be fine tuned for specific applications over time. Nonetheless, I don’t think having access to public wallet addresses creates a glitch. In fact, it creates a more open and transparent voting process that prevents election rigging.
Currently the application checks the amount of choice in each candidate’s account and uses it as the number of votes the candidate got. Which means a malicious user can send excess choice to any candidate’s address to display more votes in the count.
Of course it is perfect to show the transactions on the explorer. I think this problem can be solved by checking all transactions on the explorer and making sure they all came from the escrows address. Anything contradictory should get a candidate disqualified.
I don’t know if I was clear enough with my point.
My Problem is not displaying the addresses or transactions but how to make sure while counting the votes on the system, we discard any transaction that is not from the escrow’s account.
You are correct regarding the structure of the code, but wrong regarding the substance of the system’s security. Yes. If a person, sends more Choice to the account, then that increases the number of votes for that particular candidate. This design was intentional. Again, you can change it to limit the votes to a particular ASA or for a new application altogether for the Gold Badge. Your idea to limit counted votes to votes from the escrow account would be a good alternative.
However, we may use the current model for MainNet voting. It is important to understand, this does not create a vulnerability because the purpose of a particular vote may be 1 Choice = 1 vote
, similar to Algorand governance. So, if a user sends more Choice to a particular candidate’s address, the user is casting multiple votes for the candidate and there is nothing malicious about it. In fact, it helps to facilitate democratic decentralization.
Again, this is all dependent on the purpose for which the software is deployed. There are many types of voting. So, there will be many different models and approaches. This is why Decentralized Decisions adds value, because it is an open, adaptable, and general purpose voting technology.
This is Great. Now I understand the system more. Was thinking
a user should only be able to cast a vote once. Once again, thanks for the explanations. I would go with the current model. That makes more sense to me now.
Sure thing. There can be different models; users could vote multiple times, once with multiple Choice, or only once with one Choice. The developers and the particular use case will determine those parameters. For the Gold Badge, you should feel free to use whatever model suits your particular need. Thanks for the feedback.
For reference, the current version on TestNet actually restricts the voting asset to only the escrow account and the candidate addresses. Thus, individual voters actually don’t send Choice Coin to the voting addresses; its the escrow address that sends Choice Coin to the voting address based on the individual voter’s choice. For an actual use case, a Decentralized Organization would have its own unique ASA created for its governance proposal, with each voter choosing the appropriate vote and the escrow account sending the asset to the appropriate address. This is thus one vote per voter as you described.
Absolutely understood.
Thanks for the explanations:blush:
Hello @bhaney44, I already made my submission for the challenge to the Fortior blockchain email
Great - we are reviewing now!
Congrats on winning the Choice Coin Gold Badge!
Thanks so much @bhaney44
@bhaney44 the link to the discord group is expired. I’m unable to join
Try this (LINK).
Hi @bhaney44, the link to the discord is expired. Can you send a new one?
Sure. Discord - LINK.
Update
We have had three successful winners so far, check out their projects on GitHub (LINK). For the remaining 7 winners we will accept all submissions through the end of November. Then, we will vote on the top 7 projects to receive the Gold Badge on December 1, 2021. Please see the Discord for more details!