DunkPay.com avatar

Solidity - 스마트컨트랙트로 투표 해보기 1편

bitcoinyo

Published: 09 Jun 2018 › Updated: 09 Jun 2018Solidity - 스마트컨트랙트로 투표 해보기 1편

Solidity - 스마트컨트랙트로 투표 해보기 1편

주변에서 접하는 뉴스를 보면 암호화폐로 투표할 수 있다는 광고를 보게됩니다.

투표에 사용하려면 남녀노소 이해하기 쉬워야 하는데 쉽게 구현이 가능한 일일까요.

선거일이 다가오는데 투표할 수 있는 스마트계약을 만들어 보았습니다.

https://ropsten.etherscan.io/address/0x6443e0136b122f2307db969d1adc939d3b14a57f#code

우선 가상의 후보 두명을 선출합니다.

        setCandidate(0,"Kim","Keep The Rule!");
        setCandidate(1,"Lee","Be Free!");


Ms.Kim 은 규칙을 중요시 하는 후보이고 , Mr.Lee 는 자유를 선호하는 후보입니다.

        for (uint i=0; i< 50; i++) {
            uint8 randomNumber = random(i);
            if(randomNumber > 0){
                setVote(1, 1000 + i);
            }else
            {
                setVote(0, 1000 + i);
            }
        }


랜덤함수로 가상의 50표를 투표하고 시각화해 보았습니다.

Screen Shot 2018-06-09 at 8.56.22 PM.png

https://www.dunkpay.com/vote-test/

랜덤함수를 사용했더니 골고루 표를 받은 것을 확인 할 수 있습니다.

생각해보니 두 후보를 마음에 들어하지 않는 기권표가 있을 수 있겠네요.

        setCandidate(2,"N/A","I HATE DHEM.");


스마트컨트랙트를 실행하여 추가합니다.

잘 작동하는지 이제 투표권을 행사해 보려고 합니다.

Screen Shot 2018-06-09 at 9.47.46 PM.png

하단의 버튼을 누르면 계약이 실행됩니다.

        setVote(2, 1111); 

Screen Shot 2018-06-09 at 9.11.32 PM.png

https://ropsten.etherscan.io/tx/0x509fff804b98a6db51af9709aeba1b4eb0fcf676a62c04d019deb6af80a912a1

투표계약을 실행하니 얼마 후 50번째 칸에 무효표가 정상적으로 반영된 것을 확인 할 수 있습니다.

어서 빨리 실전에 도입되어서 공약을 안지키는 후보들을 실시간으로 계약파기 할 수 있었으면 좋겠습니다 ㅋㅋ

대통령선거에도 쓸 수 있을까요? 불행히도 솔리디티는 컨트랙트 주소당 2기가 미만의 업로드만 허용하고 있습니다. (개선의 여지는 있습니다.)

이번 예제에서는 중복투표를 허용했고 투표자의 정보가 모두에게 공개되어 미완성의 투표계약 인 것 같습니다.

언제나 그랬듯이 다음 시간에 문제점을 개선해 보겠습니다 ~

투표 참여해보기 :

https://wwwdunkpay.com/vote-test/

Leave Solidity - 스마트컨트랙트로 투표 해보기 1편 to:

Written by

Read more #dunkpay posts


Best Posts From DunkPay.com

We have not curated any of bitcoinyo's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From DunkPay.com