Upgrade to Pro — share decks privately, control downloads, hide ads and more …

블록체인 위에서 벌어지는 투표 방식에 대한 소개

kakao
PRO
December 09, 2022

블록체인 위에서 벌어지는 투표 방식에 대한 소개

#Web3 #Voting #Klaytn

블록체인 프로젝트들은 의사결정 과정에서 커뮤니티의 의견을 수용하기위해 블록체인 기반의 투표 시스템을 많이 사용합니다. 블록체인을 이용한 투표 시스템은 투명성을 지니고 있으며, 때로는 등록된 스마트 컨트랙트 로직을 통해 투표 결과가 자동으로 이행되기도 합니다. 따라서 누구도 임의로 투표결과를 조작할 수 없으며, 사전에 약속된 내용이 번복하지 않고 강제적으로 이행될 수 있습니다. 이런 블록체인 투표의 특성은 중앙화된 의사결정자나 이행자가 불필요하기에 탈중앙적 조직(DAO) 운영의 기반이 됩니다. 본 세션에서는 블록체인 프로젝트들의 투표 방식에 대한 개념 및 활용 방안을 설명합니다.

발표자 : aidan.kwon
클레이튼 코어 개발 중인 에이단입니다. 적절한 분산성을 통해서 많은 사람들이 공정하게 참여하면서도 사용성에 불편함을 느끼지 않는 기술을 만들고 싶습니다.

kakao
PRO

December 09, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. 권동환 Aidan.Kwon


    크러스트 유니버스
    Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao.
    블록체인을 활용한 투표와 의사결정
    if(kakao)2022

    View Slide

  2. Ground X (`19.03 ~ `21.12)


    - Klaytn 코어 개발


    - Key Management System using HSM


    - Klaytn Endpoint System (KES)


    Krust Universe (`22.01 ~ )


    - Klaytn 코어 개발
    발표자 소개

    View Slide

  3. Governance
    누구에 의한 의사결정인가?

    View Slide

  4. - 블록체인 위에 구현된 의사결정 기능


    - 투표 권한을 가진 누구나 의사결정에 참여 가능


    - 스마트 컨트랙트 다음 특징을 통해 참여권을 보장


    - 투명성


    - 무결성


    - 부인방지성


    - 강제 이행성
    On
    -
    chain Governance

    View Slide

  5. - 별도의 중앙화된 위계나 서열 없이 스마트 컨트랙트로 작성된 규칙에 따라 동작


    - 구성원 모두가 공동의 의사결정에 자율적으로 참여


    - DAO 종류


    - Protocol DAO


    - Investment DAO


    - Grant DAO


    - Service DAO


    - … …
    DAO (Decentralized Autonomous Organization)
    이미지 출처: https:/
    /coopahtroopa.mirror.xy

    View Slide

  6. 이미지 출처: https:/
    /klayswap.com/governance/36
    DAO (Decentralized Autonomous Organization)

    View Slide

  7. Governance 구현을 위해 고려할 것은?

    View Slide

  8. Governance 투표 과정
    제안 투표
    종료

    조건 검증
    결과 확정

    View Slide

  9. 제안 (Proposal)
    - 토큰 발행량을 10% 줄이자


    - 예산을 다음과 같이 할당하자


    - A 주소에 100 KLAY 를 전송하자


    - 토큰 락업 기간을 설정하자
    Enforceable
    - 웹사이트 도메인을 선정하자


    - DAO 조직 구조를 변경하자


    - 가장 선호하는 파트너는 누구인가?


    - 우리의 목표는 다음 중 어떤 것이 좋은가?
    Unenforceable

    View Slide

  10. Native Token /


    Fungible Token
    투표권의 분배
    NFT DID, SBT 임의 기준
    ?

    View Slide

  11. - 스마트 컨트랙트 실행 도중에는 과거의 상태정보를 조회할 수 없음


    - 특정 시점에 각 참여자가 가지고 있는 투표권 수를 저장/조회할 수 있는 방안 제공


    - Off
    -
    chain Snapshot, On
    -
    chain Snapshot, Staking & Lock
    -
    up 등 다양한 방식으로 해결 가능
    중복 투표 방지방안
    시간
    투표권 현황


    A: 300


    B: 200


    투표권 현황


    A: 400


    B: 200


    투표 시작 투표 종료

    View Slide

  12. 중복 투표 방지방안 - 1) Naive Snapshot
    시간
    Snapshot #1


    A: 100


    B: 200


    Snapshot #2


    A: 300


    B: 200


    Snapshot #3


    A: 400


    B: 200


    Snapshot #4


    A: 500


    B: 100


    - 일정 주기로 Snapshot 정보를 스마트 컨트랙트 저장소에 저장


    - 투표가 시작하기전 가장 최근 Snapshot을 기준으로 투표 진행


    - 주기마다 모든 참여자의 수만큼 데이터를 저장해야 함

    Storage usage = (# accounts) * (# snapshots)


    View Slide

  13. 중복 투표 방지방안 - 2) Checkpoint After Transfer
    Address []Checkpoint
    A
    Block 1000 1004 1010
    Value 500 400 300
    B
    Block 1004
    Value 100
    struct Checkpoint {


    uint blockNumber;


    uint value;


    }


    mapping(address => Checkpoint[])
    checkpoints;
    - 각 참여자들의 투표권 수가 변경될 때만 기록하는 방식


    - 투표권 조회 시, 각 참여자들의 과거 Checkpoint 를 탐색하여 원하는 시점의 투표권 수 조회 (이진 탐색)


    - 투표권이 변경될 때마다 저장이 필요하며, 투표권 조회 시에도 이진 탐색을 위한 연산이 필요함

    View Slide

  14. Epoch 2
    Epoch 1
    중복 투표 방지방안 - 3) Snapshot Before Transfer
    변경 변경 변경 변경
    저장 저장 저장 저장
    변경 변경 변경 변경
    저장
    < Snapshot Before Transfer 저장 시점 >
    < Checkpoint After Transfer 저장 시점 >
    - 특정 주기(Epoch) 사이에 발생한 변경만 기록하는 방식


    - 투표권 조회 시, 각 참여자들의 과거 Epoch 사이의 변경을 탐색하여 원하는 시점의 투표권 수 조회 (이진 탐색)


    - 투표권이 자주 변경하더라도 비교적 저장공간의 부담이 적음

    View Slide

  15. - 투표 선택권에 따라 다양한 검증방식이 존재할 수 있음


    - 찬성/반대: 가결/부결에 필요한 의결 정족수에 영향


    - 기권: 투표의 성립여부를 결정짓는 참여 투표권 수에 영향


    - 거부권: 부적적한 투표 제안에 대해 거부를 행사할 수 있으며, 패널티와의 조합을 통해 부적절한 제한 억제


    - 제한 시간이나 지연 시간에 의해 투표 유효성 문제가 발생할 수 있음


    투표 종료 조건 검증
    YES NO ABSTAIN VETO

    View Slide

  16. - 스마트 컨트랙트를 정확히 원하는 시점에 실행하기가 어려움


    - 투표 결과를 확정하기 위한 로직이 누군가의 트랜잭션에서 실행되어야 함


    1) 투표기간 마감 이후, 누군가가 추가적인 트랜잭션을 발생하여 확정


    2) 가결/부결을 확정하는 투표가 처리되는 순간 추가적으로 확정 로직도 실행

    투표 결과 확정

    View Slide

  17. Governance 구현에 도움이 되는 정보
    https:/
    /snapshot.org/#/?network=8217
    https:/
    /docs.openzeppelin.com/contracts/

    4.x/api/governance
    https:/
    /github.com/compound
    -
    fi
    nance/

    compound
    -
    protocol
    거버넌스 투표 시스템 Governance 라이브러리 Governance 구현된 오픈소스

    View Slide

  18. Klaytn Governance

    View Slide

  19. - Klaytn Governance는 블록체인 노드 코드에 구현되어 있음


    - 블록체인 노드는 스마트 컨트랙트 데이터와 긴밀하게 연결될 수 있음


    - Governance 과정에 다양한 데이터 조회 가능


    - 과거 상태 데이터


    - 블록체인 노드 정보


    - Governance 기능을 통해 다양한 설정 변경 가능


    - 가스 비용 변경


    - 합의 노드 추가/제거


    - 블록 보상 정책 변경
    Klaytn Governance 특징

    View Slide

  20. Klaytn Governance 개선방향
    $ ken attach
    klay.ipc


    > governance.vote(…)
    1) On
    -
    chain Governance 과정 조회를 쉽게 2) Governance 투표자의 투표 편리성 강화
    +
    BlockHeader.Vote
    Governance

    Contract
    Governance

    Website

    View Slide

  21. Klaytn Governance 개선방향
    투표권
    0
    4
    8
    Staked KLAY
    3) 코드에 정의되지 않은 자유 안건에 대해서도 투표 가능 4) 투표권에 Staked KLAY 보유량 반영

    View Slide

  22. Klaytn Governance 개선방향
    https:/
    /github.com/klaytn/kips
    제안 & 수정 논의 기능 확정
    https:/
    /govforum.klaytn.foundation https:/
    /kips.klaytn.foundation/

    View Slide

  23. 요약
    - 블록체인 위에 구현된 투표 기능을 이용하면, 다양한 구성원들이 참가하는 자율적인 거버넌스 구축 가능


    - 각 프로젝트들은 특성에 따라 다양한 거버넌스를 구축할 수 있으며, 이를 쉽게하는 도구나 라이브러리도 존재


    - 클레이튼 거버넌스는 스마트 컨트랙트 방식을 추가 차용한 방식을 고려하고 있음

    View Slide

  24. 클레이튼에 대해 더 잘 알고 싶다면? 크러스트 유니버스는 지금 채용 중!
    Special thanks to Ollie, Ian

    View Slide