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

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

kakao
December 09, 2022

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

#Web3 #Voting #Klaytn

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

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

kakao

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
  2. Ground X (`19.03 ~ `21.12) - Klaytn 코어 개발 -

    Key Management System using HSM - Klaytn Endpoint System (KES) Krust Universe (`22.01 ~ ) - Klaytn 코어 개발 발표자 소개
  3. - 블록체인 위에 구현된 의사결정 기능 - 투표 권한을 가진

    누구나 의사결정에 참여 가능 - 스마트 컨트랙트 다음 특징을 통해 참여권을 보장 - 투명성 - 무결성 - 부인방지성 - 강제 이행성 On - chain Governance
  4. - 별도의 중앙화된 위계나 서열 없이 스마트 컨트랙트로 작성된 규칙에

    따라 동작 - 구성원 모두가 공동의 의사결정에 자율적으로 참여 - DAO 종류 - Protocol DAO - Investment DAO - Grant DAO - Service DAO - … … DAO (Decentralized Autonomous Organization) 이미지 출처: https:/ /coopahtroopa.mirror.xy
  5. 제안 (Proposal) - 토큰 발행량을 10% 줄이자 - 예산을 다음과

    같이 할당하자 - A 주소에 100 KLAY 를 전송하자 - 토큰 락업 기간을 설정하자 Enforceable - 웹사이트 도메인을 선정하자 - DAO 조직 구조를 변경하자 - 가장 선호하는 파트너는 누구인가? - 우리의 목표는 다음 중 어떤 것이 좋은가? Unenforceable
  6. - 스마트 컨트랙트 실행 도중에는 과거의 상태정보를 조회할 수 없음

    - 특정 시점에 각 참여자가 가지고 있는 투표권 수를 저장/조회할 수 있는 방안 제공 - Off - chain Snapshot, On - chain Snapshot, Staking & Lock - up 등 다양한 방식으로 해결 가능 중복 투표 방지방안 시간 투표권 현황 A: 300 B: 200 투표권 현황 A: 400 B: 200 투표 시작 투표 종료
  7. 중복 투표 방지방안 - 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)
  8. 중복 투표 방지방안 - 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 를 탐색하여 원하는 시점의 투표권 수 조회 (이진 탐색) - 투표권이 변경될 때마다 저장이 필요하며, 투표권 조회 시에도 이진 탐색을 위한 연산이 필요함
  9. Epoch 2 Epoch 1 중복 투표 방지방안 - 3) Snapshot

    Before Transfer 변경 변경 변경 변경 저장 저장 저장 저장 변경 변경 변경 변경 저장 < Snapshot Before Transfer 저장 시점 > < Checkpoint After Transfer 저장 시점 > - 특정 주기(Epoch) 사이에 발생한 변경만 기록하는 방식 - 투표권 조회 시, 각 참여자들의 과거 Epoch 사이의 변경을 탐색하여 원하는 시점의 투표권 수 조회 (이진 탐색) - 투표권이 자주 변경하더라도 비교적 저장공간의 부담이 적음
  10. - 투표 선택권에 따라 다양한 검증방식이 존재할 수 있음 -

    찬성/반대: 가결/부결에 필요한 의결 정족수에 영향 - 기권: 투표의 성립여부를 결정짓는 참여 투표권 수에 영향 - 거부권: 부적적한 투표 제안에 대해 거부를 행사할 수 있으며, 패널티와의 조합을 통해 부적절한 제한 억제 - 제한 시간이나 지연 시간에 의해 투표 유효성 문제가 발생할 수 있음 투표 종료 조건 검증 YES NO ABSTAIN VETO
  11. - 스마트 컨트랙트를 정확히 원하는 시점에 실행하기가 어려움 - 투표

    결과를 확정하기 위한 로직이 누군가의 트랜잭션에서 실행되어야 함 1) 투표기간 마감 이후, 누군가가 추가적인 트랜잭션을 발생하여 확정 2) 가결/부결을 확정하는 투표가 처리되는 순간 추가적으로 확정 로직도 실행 
 투표 결과 확정
  12. 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 구현된 오픈소스
  13. - Klaytn Governance는 블록체인 노드 코드에 구현되어 있음 - 블록체인

    노드는 스마트 컨트랙트 데이터와 긴밀하게 연결될 수 있음 - Governance 과정에 다양한 데이터 조회 가능 - 과거 상태 데이터 - 블록체인 노드 정보 - Governance 기능을 통해 다양한 설정 변경 가능 - 가스 비용 변경 - 합의 노드 추가/제거 - 블록 보상 정책 변경 Klaytn Governance 특징
  14. Klaytn Governance 개선방향 $ ken attach klay.ipc > governance.vote(…) 1)

    On - chain Governance 과정 조회를 쉽게 2) Governance 투표자의 투표 편리성 강화 + BlockHeader.Vote Governance 
 Contract Governance 
 Website
  15. Klaytn Governance 개선방향 투표권 0 4 8 Staked KLAY 3)

    코드에 정의되지 않은 자유 안건에 대해서도 투표 가능 4) 투표권에 Staked KLAY 보유량 반영
  16. Klaytn Governance 개선방향 https:/ /github.com/klaytn/kips 제안 & 수정 논의 기능

    확정 https:/ /govforum.klaytn.foundation https:/ /kips.klaytn.foundation/
  17. 요약 - 블록체인 위에 구현된 투표 기능을 이용하면, 다양한 구성원들이

    참가하는 자율적인 거버넌스 구축 가능 - 각 프로젝트들은 특성에 따라 다양한 거버넌스를 구축할 수 있으며, 이를 쉽게하는 도구나 라이브러리도 존재 - 클레이튼 거버넌스는 스마트 컨트랙트 방식을 추가 차용한 방식을 고려하고 있음