개요
이 사례 연구에서는 스냅샷(Snapshot)의 작동 방식과 IPFS를 사용하여 투표 및 커뮤니티 거버넌스에 대한 진입 장벽을 낮추는 방법에 대해 알아본다.
- 개요
- 스냅샷이란?
- 수치로 보는 스냅샷
- 배경
- 스냅샷 작동 방식
- 참가자들이 제안서에 투표.
- 계산 결과
- 스냅샷에서 IPFS를 사용하는 방법
- 파인애플을 사용하여 IPFS 고정 서비스에 업로드
- IPFS 게이트웨이를 통한 개방형 액세스
- IPFS의 이점
- 스냅샷 및 IPFS: 미래
스냅샷이란?
스냅샷은 IPFS를 기본 스토리지 계층으로 사용하는 웹3 프로젝트, DAO 및 커뮤니티를 위한 오픈 소스 투표 플랫폼이다.
스냅샷은 이더리움 및 EVM 호환 체인에 배포된 프로젝트와 연동되며, 투표권 및 적격성을 분배하는 수단으로 거버넌스 토큰을 사용할 수 있다.
스냅샷은 '오프체인' 투표라고 알려진 기술을 사용하여 제안서와 사용자 투표를 저장하기 위해 IPFS를 사용하는데, 여기서 사용자 투표를 증명하는 암호화 서명이 블록체인에 저장되는 대신 IPFS에 유지된다.
이것은 투표자가 거래에 대해 가스를 지불할 필요가 없기 때문에 스냅샷을 사용한 투표가 실질적으로 무료임을 의미한다. 이는 가스리스 투표 (gasless voting)라고 불린다. 이를 통해 스냅샷은 투표 진입 장벽을 낮추고 거버넌스 참여를 늘리며 프로젝트와 커뮤니티가 유권자 기반을 확장할 수 있도록 지원한다.
웹3 영역의 거버넌스의 핵심 원칙 중 하나인 투명성은 IPFS의 콘텐츠 어드레싱을 사용하여 모든 제안과 투표를 지속함으로써 달성되며, 따라서 누구나 암호화 서명이 포함된 CID의 복사본을 보고, 감사하고, 복제할 수 있다.
웹3 프로젝트와 분산 자율 조직(DAO: Decentralized Autonomous Organizations)은 일반적으로 하향식 계층 구조 위에 구축되지 않고 참여자(또는 토큰 홀더)에 걸쳐 제어가 분산되는 상향식 거버넌스 접근 방식을 특징으로 한다. 상향식 커뮤니티 거버넌스에 대한 다양한 접근 방식이 있지만, 거의 모든 접근 방식은 커뮤니티를 참여시키고 통제권을 분배하기 위한 메커니즘으로 투표를 포함한다.
본질적으로 스냅샷은 분산화를 목표로 하는 프로젝트 및 DAO가 프로젝트가 어떤 방향으로 나아가야 하는지에 대해 커뮤니티를 여론 조사하도록 한다.
수치로 보는 스냅샷
배경
스냅샷은 원래 스냅샷의 창시자인 Fabien이 자동화된 시장 제조업체 Balancer에서 일하는 동안 구축되었다. 목표는 Balancer pool 투표 권한 내에서 BAL 토큰을 부여할 수 있을 만큼 유연한 투표 플랫폼을 만드는 것이었다. 그러나, 이것을 온 체인으로 하는 것은 실현하기에는 계산적으로 너무 어려울 것 같았다. 그때 그는 IPFS를 사용하여 오프체인 방식으로 작업을 수행하면 필요한 유연성을 제공할 수 있다는 것을 깨달았다.
무료(가스리스) 투표는 밸런서의 초기 요구 사항 중 하나가 아니었지만, IPFS와 함께 오프체인 설계의 우연한 보너스로 다가왔다.
2주 후, Fabien은 IPFS를 사용하여 가스 효율적인 구현을 일반화하기 시작하여 Balancer를 넘어 프로젝트 및 DAO에서 사용할 수 있게 되었다. 이것이 스냅샷의 탄생 비화다.
초기 버전의 스냅샷을 오픈 소싱한 후 Yam 및 Yearn과 같은 초기 DeFi 프로젝트에 빠르게 채택되었으며 이후 거버넌스 환경을 주도하고 있다.
현재 스냅샷은 9,645개 이상의 프로젝트에서 사용되는 최고의 투표 플랫폼이다. 그들의 사용자는 깃코인, 이더리움 네임 시스템(ENS), 에이브, 유니스와프, 스시를 포함한 많은 선도적인 이더리움 프로젝트를 포함한다.
스냅샷 작동 방식
스냅샷에서 모든 제안 및 투표는 각 공간이 스냅샷의 조직(또는 프로젝트) 페이지인 공간과 연결된다. 유권자는 프로젝트의 이더리움 네임 시스템(ENS: Ethereum Name System) (예: https://snapshot.org/#/gitcoindao.eth)을 사용하여 공간에 액세스할 수 있다. 여기서 gitcoindao.eth는 ENS 이름이다.
스냅샷을 사용하기 위한 유일한 요구 사항은 ENS 이름을 갖는 것이다. 공간을 만들려면 공간에 대한 JSON 구성이 포함된 IPFS CID를 가리키는 키 스냅샷과 함께 ENS 텍스트 레코드를 만든다. 예를 들어, gnosis.eth ENS 이름이 있는 GnosisDAO에는snapshot 텍스트 레코드가 다음으로 설정되며 ipfs://QmWUemB5QDr6Zkp2tqQRcEW1ZC7n4MiLaE6CFneVJUeYyD 공간에 대한 JSON 구성이 포함되어 있다.
스냅샷의 각 공간 구성을 통해 다양한 전략을 구성하여 다음을 결정할 수 있다.
- 투표에 참여할 수 있는 사람, 예를 들어 ERC-20 토큰 또는 NFT 토큰(ERC-721 및 ERC-1155)의 토큰 소유자.
- 유권자의 투표권(예: 토큰당 한 표).
- 투표할 제안을 제출하는 사람(예: 주어진 최소 토큰 수를 가진 토큰 소유자).
예를 들어, ENS 프로젝트는 제안서에 투표하기 위해 ENS 토큰을 보유하고 제안서를 작성하기 위해 최소 10,000개의 ENS 토큰을 보유해야 한다.
참가자들이 제안서에 투표
일단 공간이 만들어지면 제안을 통해 투표가 이뤄진다. 제안은 투표의 문제를 설명하고 유권자가 선택할 수 있는 선택과 결과를 계산하는 방법을 결정하는 투표 시스템을 가지고 있다.
중요한 것은 각 제안서에 이더리움(또는 지원되는 다른 블록체인) 블록 번호를 가리키는 스냅샷 블록 번호가 포함되어 있다는 것이다. 블록 번호는 유권자의 잔액이 계산될 스냅샷이다. 이렇게 하면 제안이 이루어진 후 토큰을 일시적으로 획득하여 조작하는 것을 방지할 수 있다.
계산 결과
투표 결과를 계산하기 위해 각 제안은 다음 투표 시스템 중 하나를 사용한다.
이러한 투표 시스템은 투표력을 기반으로 투표 결과를 계산하는 데 사용된다. 예를 들어, 다음 제안은 미디어 복호화 공간에서 NFT 복호화 보유자에게 다음에 쓸 내용에 대한 단일 주제를 선택할 수 있는 권한을 부여한다. 이 제안에 대한 투표권은 블록 번호 12,811,388에서 유권자가 보유한 암호 해독 NFT의 수에 비례한다.
스냅샷에서 IPFS를 사용하는 방법
스냅샷은 IPFS를 사용하여 전체 투표 프로세스를 완벽하게 투명하고 감사할 수 있도록 한다. 모든 공간, 제안, 투표 및 사용자 작업이 IPFS에 추가되고 콘텐츠 식별자(CID: Content Identifier)가 있다.
또한 스냅샷 UI는 IPFS에서도 사용할 수 있으며, shot.eth.limo와 shot.eth.link와 같은 ENS 해결 서비스를 통해 액세스할 수 있는 ENS 이름 shot.eth를 사용하여 연결된다(HTTP 요청 시 x-ipfs-path 및 X-Ipfs-Roots 헤더 참조).
스냅샷이 IPFS를 사용하는 방식을 이해하려면 전체 아키텍처가 어떻게 설계되었는지 이해하는 것이 유용하다. 스냅샷은 Web2 및 Web3 애플리케이션에 공통적인 설계 패턴을 결합한 하이브리드 애플리케이션으로, 다음과 같은 3계층 아키텍처를 기반으로 한다.
- 프레젠테이션 계층: 스냅샷 UI
- 논리 계층: GraphQL API를 표시하는 스냅샷-허브 노드.js 서버.
- 데이터 계층: 인덱싱 및 쿼리를 위한 MySQL 데이터베이스와 공간 구성, 제안, 사용자 작업 및 투표를 위한 스토리지 계층으로서의 IPFS의 조합이다.
참고: MySQL은 쿼리에 사용되지만, MySQL에 저장된 모든 데이터는 IPFS에서 사용할 수 있다. 데이터베이스 스키마의 테이블에는 IPFS CID를 포함하는 ipfs 필드가 있다.
파인애플을 사용한 IPFS 고정 서비스에 업로드
IPFS에 데이터를 유지하는 것을 더 쉽게 하기 위해 스냅샷은 파인애플이라는 마이크로 서비스와 pineapple.js라는 클라이언트 라이브러리를 구축했다. 그들은 함께 콘텐츠를 여러 IPFS 고정 서비스에 업로드하는 세부 사항을 추상화한다.
pineapple.js는 JSON 객체를 가져와서 HTTP를 통해 마이크로서비스로 전송하는 핀 방식을 공개한다. 파인애플 마이크로 서비스는 JSON을 여러 IPFS 고정 서비스에 업로드하고 적어도 하나의 서비스가 성공적으로 응답하는 즉시 응답을 반환한다. 또한 데이터는 AWS S3에도 업로드된다.
IPFS 게이트웨이를 통한 개방형 액세스
고정 서비스를 통해 IPFS 네트워크에 데이터를 추가한 후에는 IPFS 게이트웨이를 통해 사용자가 볼 수 있게 된다. 제안서 및 투표에 대한 서명된 메시지에 대한 링크가 스냅샷 UI에 통합된다.
IPFS 혜택
스냅샷 팀이 공개 감사 가능한 투표 시스템을 구축하기 시작했을 때 IPFS는 완전히 검증할 수 있어야 하지만 블록 체인에 저장하기에는 너무 큰 데이터 저장 표준이기 때문에 IPFS를 선택했다.
사용자 제어 키(비-커스터디얼 암호 지갑을 통한), 사용자 작업의 신뢰성을 증명하는 암호화 서명 및 IPFS 네트워크를 통한 컨텐츠 주소 지정 가능 스토리지의 조합이 스냅샷의 성공에 매우 중요한 것으로 입증되었다.
게다가 IPFS는 그 임무를 가능하게 하는 몇 가지 속성을 가지고 있다.
- IPFS 콘텐츠 주소 지정을 통한 데이터 무결성 입증
- 단일 중앙 집중식 클라우드 스토리지 플랫폼에 의존하지 않고도 데이터를 영구적으로 저장할 수 있다.
- 여러 스토리지 공급자 및 고정 서비스와의 상호 운용성 데이터가 IPFS의 단일 고정 서비스에 업로드되면 쉽게 이동할 수 있으며 다중화를 보장하기 위해 여러 고정 서비스에 저장할 수 있다.
- 데이터의 투명성과 가용성을 통해 누구나 해당 데이터를 고정하고 감사할 수 있다.
- 핀 연결 서비스와 오픈 소스 툴링의 번창하는 생태계
"스냅샷에 데이터를 저장해야 할 때마다 IPFS를 사용하여 사용자가 완전한 투명성을 확보하고 데이터 복제에 적극적으로 참여할 수 있습니다."
— Fabien, Snapshot Labs의 설립자 및 CEO
스냅샷 및 IPFS: 미래
스냅샷이 계속 발전함에 따라 팀은 기술 스택을 분산하여 누구나 노드를 실행할 수 있도록 하여 Snapshot Node.js 서버에 대한 의존도를 줄일 수 있기를 기대하고 있다. 스냅샷에서 IPFS의 필수적인 역할 덕분에 데이터 계층의 상당 부분이 이미 분산되어 있다.
참고: 이 사례 연구는 원래 IPFS 문서에 게시되었다. 이 사례 연구의 측정 기준 및 기타 세부 사항은 2022년 8월 현재이며 그 사이에 세부 사항이 변경될 수 있다.
더욱 다양한 정보 및 방송 관련 소식은
공식 SNS 채널을 통해 확인 가능합니다.