원본 기사 작성자: 파벨 나이다노프
Odaily Planet Daily Golem에서 편집( @웹3_골렘 )
편집자 주: Polymarket은 이번 미국 대선에서 더 많은 주목을 받았습니다. 예측 테마의 누적 거래량이 36억 달러를 넘었을 뿐만 아니라 그것은 여론조사와 전통적인 미디어에 비해 트럼프의 승리를 사전에 성공적으로 예측했으며, Polymarket이 단순한 베팅 웹사이트가 아니라 더욱 진실되고 신뢰할 수 있는 뉴스 웹사이트가 될 것이라는 사실을 사람들에게 더 많이 알렸습니다(추천 자료: Vitaliks 새 기사: 예측 시장에서 정보 금융까지 ). 폴리마켓은 이번 블록체인 혁신에서 가장 아름다운 풍경일 수도 있습니다.
그렇다면 블록체인 혁명의 의미를 지닌 Polymarket은 기술적으로 어떻게 구현될까요? 스마트 계약 개발자 Pavel Naydanov는 Polymarket에서 사용하는 기술에 대한 자세한 분석과 설명을 했는데, 이는 개발자(특히 예측 시장을 구축하는 떠오르는 스타)에게 계몽적 의미가 있습니다. Odaily Planet Daily는 다음과 같이 기술적 구현과 관련된 부분을 정리했습니다. 다음으로, 프로토콜의 각 측면에 대한 기술적 세부 사항을 살펴보겠습니다.
CTF: 토큰크기 조정 결과
Polymarket의 모든 이벤트 결과는 토큰화됩니다.
-
이러한 토큰을 공유 토큰이라고 부를 수 있습니다.
-
주식은 기초 자산으로 매수되므로 전액 담보가 제공됩니다.
-
주식을 매도하여 기초 자산을 취득할 수 있습니다.
공유 토큰은 ERC-1155를 기반으로 구현되었습니다. Gnosis 조건부 토큰 프레임워크(CTF) , 그 효과가 입증되었으며 다양한 프로토콜을 통해 테스트되었습니다. CTF는 이벤트당 최대 256개의 결과를 지원할 수 있습니다.
각 예측은 CTF에서 세 개의 매개변수 해시로 구성된 고유한 조건 ID를 할당하여 식별됩니다.
-
신탁 : 이벤트의 결과를 결정할 오라클의 주소입니다. 이렇게 하면 지정된 오라클만 예측을 확정할 수 있습니다.
-
질문 ID : 예측 질문 작성자가 설정한 예측 식별자입니다. 이는 각 새로운 예측이 이전 예측을 증가시키는 간단한 카운터이거나 텍스트와 다른 데이터의 해시를 사용하는 보다 복잡한 체계일 수 있습니다.
-
결과SlotCount : 예측할 수 있는 가능한 결과의 수입니다.
다음 다이어그램은 CTF(조건부 토큰 프레임워크)가 작동하는 방식을 직관적으로 보여줍니다.
사용자는 베팅할 때 기본 자산을 제공하고 CTF에서 조건부 토큰이라고 하는 Share 토큰을 받습니다. 오라클이 예측을 확인한 후 사용자는 예측 결과에 따라 CTF에서 보상을 청구할 수 있습니다.
사용자가 조건부 토큰을 받으면 특정 입장을 취한 것으로 간주됩니다. CTF에서 입장은 각 예측에 대한 가능한 결과 조합 세트를 나타냅니다. CTF는 각 예측에 대한 이러한 입장을 생성하고 각 입장은 사용자가 선택할 수 있는 가능한 결과 조합 중 하나에 해당합니다.
예를 들어:
2024년 가장 높은 수익을 올린 영화는 무엇일까?
인사이드 아웃 2
데드풀 3
조커2
슈퍼배드 4
듄2
매드 맥스 4
다른
사용자는 Inside Out 2가 최고 수익을 올린 영화가 될 것인지, 아니면 Dune 2가 최고 수익을 올린 영화가 될 것인지 투표할 수 있습니다. 디파이2024년 최고 수익을 올린 영화는 아닐 것이다. 이러한 예측의 조합은 그들의 입장으로 간주될 것이다.
CTF는 직위 처리를 위한 두 가지 흥미로운 메커니즘을 제공합니다. 분할하고 병합하다 . 분할 메커니즘은 단일 위치를 여러 개의 별도 결과로 분할할 수 있게 해주는 반면, 병합은 서로 다른 결과를 단일 위치로 결합합니다. 이러한 메커니즘은 사용자가 자신의 위치를 유연하게 관리할 수 있게 해줍니다.
CTF는 Polymarket에 4가지 중요한 이점을 제공합니다.
-
공유 토큰은 특정 예측 결과에 대한 사용자의 투표를 확인하는 데 사용할 수 있습니다.
-
사용자의 투표를 다양한 입장으로 결합하기 위한 유연한 시스템을 구현했습니다.
-
오라클의 신호에 따라 결과 계산에 대한 책임이 CTF에 위임됩니다.
-
보상은 승리 결과의 공유 토큰 수에 따라 계산됩니다.
CTF는 사용자 위치를 병합할 수 있는 관련 활동을 구성할 수 있다는 점도 언급할 가치가 있습니다. 그러나 현재 Polymarket에는 그러한 예가 없습니다. 배우다 CTF에 대해 더 자세히 알아보려면 그것을 얻을 공식 문서에서 .
주문 메커니즘
구매를 위해 Polymarket 인터페이스는 세 가지 유형의 주문을 제공합니다.
-
시장 — 현재 시장 가격으로 즉시 구매하세요.
-
제한 - 구매가 이루어질 가격을 지정할 수 있는 지연 주문입니다.
-
AMM — 풀에 있는 준비금의 양에 따라 분산형 거래소에서와 유사하게 자동으로 결정된 가격으로 매수합니다.
현재 AMM 주문 기능은 비활성 상태인 것으로 보이며, AMM을 통해 구매를 허용하는 예측은 발견되지 않았습니다. Polymarket Discord의 한 사용자의 코멘트는 상황을 설명하는 데 어느 정도 도움이 됩니다.
AMM은 오래되었습니다
Polymarket에 따르면 '의 문서 AMM은 다음의 일부로 개발됩니다. 조건부 토큰 프레임워크 스마트 계약. 따라서 AMM은 Share 토큰의 매수 가격을 결정하는 데 사용됩니다. 이 기본 메커니즘은 안정적인 가격을 보장하고 변동성을 줄이기 위해 유동성이 필요합니다. 유동성 공급자는 시스템을 계속 운영하기 위해 각 구매에서 보상을 받을 경제적 인센티브가 필요합니다.
아마도 Polymarket은 처음에는 CTF에 전적으로 기반을 두었고, AMM을 사용하여 가격을 결정했을 것입니다. 하지만 시간이 지나면서 프로토콜은 주문장을 갖춘 하이브리드 솔루션을 개발했고, 두 가지 다른 유형의 주문(제한 및 시장)이 이 맞춤 솔루션에서 작동하기 시작했습니다. 이 솔루션은 CLOB(Central Limit Order Book) 또는 BLOB(Binary Limit Order Book)라고 합니다.
CLOB 및 얼룩
CLOB(Central Limit Order Book) 또는 BLOB(Binary Limit Order Book)는 전담 운영자가 주문 매칭을 처리하고 스마트 계약 실행을 시작하는 하이브리드 분산형 주문장을 나타내는 시스템입니다.
너무 자세히 설명하지 않고도 시스템은 다음과 같습니다.
사용자는 실행할 주문을 생성하는데, 이는 제한 주문 또는 시장 주문일 수 있습니다. 운영자는 사용자 주문을 매치하고 스마트 계약에서 실행을 시작합니다. 주문을 생성한다는 것은 사용자의 개인 키로 서명된 데이터 구조를 생성하는 것을 의미합니다. EIP-712 표준. 주문은 실행 전에 오프체인으로 저장되므로 주문 조건을 신속하고 무료로 조정하거나 완전히 취소할 수도 있습니다.
그러나 주문장 및 주문 매칭과 관련된 모든 것은 API를 통해서만 접근할 수 있습니다. 편의를 위해 Polymarket은 두 개의 클라이언트를 제공합니다. 하나는 다음을 사용합니다. 자바스크립트 그리고 하나를 사용하여 파이썬 .
하지만, 익스체인지.솔 스마트 계약은 공개적이며 CTF에서 사용자 포지션을 만드는 역할을 합니다. 또한 사용자 포지션 관리와 자산 이전을 허용하여 프로토콜 내에서 보안과 투명성을 보장합니다.
스마트 계약이 감사되었으며 감사 보고서 저장소에 첨부되었습니다.
스마트 계약
The 교환 스마트 계약은 실제로 더 구체적인 이름을 가지고 있습니다. CTFExchange.sol . 그다지 크지는 않고 코드도 100줄 정도밖에 없지만 종속성이 꽤 많습니다.
그 중 대부분은 제한된 기능을 구현하는 소규모 스마트 계약입니다.
-
베이스익스체인지.솔 : ERC-1155 토큰을 수신하는 기능을 구현하는 추상적인 스마트 계약이며 재진입 공격을 방지하는 역할도 합니다.
-
인증솔 : 역할 관리자, CTFExchange.sol의 역할, 관리자 및 운영자를 설정하기 위한 인증 기능과 수정자를 정의합니다.
-
에셋.솔 : 기본 자산(담보)과 CTF 주소의 두 가지 유형의 자산을 정의합니다.
-
수수료.솔 : 프로토콜 수수료를 정의합니다.
-
일시 중지 가능.sol : 예상치 못한 상황이 발생할 경우 프로토콜 계약의 중앙화된 형태인 스마트 계약 작업을 중단하는 기능을 정의합니다. 관리자 역할에서만 사용 가능합니다.
-
자산운영.솔 : 기초 자산과 CTF의 운영을 정의하며 여기에는 포지션 이전, 분할, 병합이 포함됩니다.
-
시그니처.솔 : 주문 확인 시 사용되는 사용자 서명 코드를 정의합니다.
-
해싱.솔 : 서명 검증을 위한 주문 매개변수의 해시 값을 정의합니다.
-
레지스트리.솔 : 시스템에 예측을 등록하고 예측에 대한 토큰을 등록하는 프로세스를 정의합니다.
주문의 실제 실행과 관련된 모든 것은 스마트 계약에 구현됩니다. 트레이딩.솔 . 코드를 살펴보고 스마트 계약을 연구하는 것도 간단합니다. 구조는 함수를 통해 진입점을 명확하게 정의합니다.
-
주문 채우기() — 주문을 생성한 사용자와 사용자가 선택한 보류 주문(다른 주문) 사이에서 주문을 실행합니다.
-
주문 채우기() — fillOrder()와 동일하지만 주문 목록에 대한 것입니다.
-
매치오더() — 연산자는 두 가지 다른 주문을 선택하여 실행합니다.
위의 모든 함수는 연산자에 의해서만 호출될 수 있습니다.
호출이 스마트 계약에 어떻게 입력되든 결과는 항상 동일합니다. 두 사용자는 각자의 주문에 따라 토큰을 교환하게 됩니다.
계약 수수료
수수료는 출력 자산에 따라 부과됩니다. 이진 예측의 경우 수수료는 대칭적입니다. 즉, 사용자가 $0.99에 토큰을 판매하면 $0.01에 토큰을 구매하는 구매자와 동일한 수수료를 지불합니다.
계산 공식은 매우 간단합니다. 공식 문서 :
유동성 보상 프로그램
이 프로그램의 전반적인 목표는 시장 유동성을 장려하는 것입니다.
주문장 기반 거래소가 작동하려면 누군가가 제한 주문을 만들어야 합니다. 제한 주문은 시장 주문의 즉각적인 실행을 허용하는 유동성을 제공합니다. 제한 주문을 만드는 사용자를 시장 메이커라고 합니다. 제한 주문이 시장 가격에 가까울수록 시장 주문을 더 빨리 실행할 수 있고 거래량이 더 많아지는데, 이는 최종 사용자에게 확실한 이점입니다. 또한 유동성이 클수록 시장을 조작하기가 더 어려워집니다.
충분한 유동성을 보장하기 위해 Polymarket은 사용자가 지정가 주문을 생성하도록 유도하는 특별 보상 프로그램을 개발했습니다. 리미트 주문이 평균 시장 가격에 가까울수록 보상이 높아집니다. 보상은 매일 자정(UTC 시간)에 자동으로 지급됩니다.
이 시스템은 다음을 모델로 합니다. 디와이디엑스 . 자세히 알아보려면 원본 dYdX를 확인하세요. 유동성 인센티브 플랜 그리고 Polymarket의 자세한 내용유동성 보상 계산 공식 .
신탁
오라클은 이벤트가 발생할지 여부에 대한 예측을 제공하는 데 사용됩니다. 오라클은 프로토콜의 가장 중요한 구성 요소 중 하나이지만 Polymarket 팀이 아닌 제3자가 제공합니다. 이 오라클은 다음과 같이 불립니다. UMA .
UMA는 검증할 수 없는 데이터를 제외한 모든 유형의 데이터를 블록체인에 기록하도록 설계된 분산형 오라클입니다. 오라클은 낙관적이며, 분쟁이 없는 한 데이터는 정확하다고 가정합니다. UMA는 분쟁을 해결하기 위한 자체 중재 시스템을 가지고 있으며, 중재자는 실제 사람, 즉 UMA 생태계 참여자, 특히 UMA 토큰 보유자입니다. 이 시스템을 DVM(Data Verification Mechanism)이라고 합니다.
예측 결과를 확인하고 블록체인에 기록하는 데는 다음 프로세스가 사용됩니다.
-
성명 : 예측은 보상과 함께 오라클에 추가됩니다. 예측 결과에 성공적으로 이의를 제기한 사람은 누구나 보상을 청구할 수 있습니다.
-
도전 기간 : 이 기간 동안 누구나 예측 결과에 이의를 제기할 수 있습니다. 이의가 제기되지 않고 시간이 만료되면 예측 결과는 최종 결제 준비가 된 것으로 간주되며, 이는 정확성을 나타냅니다.
-
논쟁 : 모든 프로토콜 참여자는 보상을 청구하거나 공정성을 위해 결과에 이의를 제기할 수 있습니다. 실제로 이런 일은 거의 일어나지 않습니다. 게임 이론에 따르면 대부분 참여자는 정직하게 행동하기 때문입니다.
-
투표 : 분쟁이 시작되면 UMA 토큰 보유자는 분쟁을 해결하기 위해 투표합니다. UMA는 투표에 사용되는 프로토콜 토큰이며, 참여자는 투표에 참여하여 보상을 받습니다.
-
합의 : 마지막 단계는 결제 프로세스로, 블록체인에 데이터를 실제로 기록하는 것입니다. 이후 예측 결과는 신뢰할 수 있는 것으로 간주될 수 있습니다.
이 프로토콜 전체는 게임 이론에 기반을 두고 있으며, 어떤 참가자가 악의적인 행동을 하는 것은 경제적으로 불리합니다.
투표를 위해 예측을 제출하는 참여자는 스마트 계약에 담보를 제공합니다. 결과에 이의가 제기되면 담보를 잃고 그렇지 않으면 담보를 돌려받고 보상을 받습니다. 이는 정확한 결과만 제출하려는 강력한 인센티브를 만듭니다.
예측에 이의를 제기하는 참가자는 담보를 내놓기도 합니다. 예측이 맞으면 담보를 돌려받고 보상을 받습니다. 맞지 않으면 담보를 잃습니다. 이는 참가자가 틀렸다고 확신하는 결과에만 이의를 제기하도록 유도합니다.
분쟁을 해결하는 참여자. 그들은 UMA 토큰을 스테이킹해야 하며 분쟁을 해결하면 보상을 받습니다. 만약 그들이 잘못 투표하거나 전혀 투표하지 않으면 스테이킹한 잔액의 일부를 잃게 됩니다. 그렇지 않으면 보상을 받습니다. 게으름을 피울 방법은 없습니다.
특히 주목할 점은 분쟁 중인 투표 프로세스가 커밋/공개 방식을 사용하여 두 단계로 나뉜다는 것입니다.
-
저지르다 : 참여자들은 자신의 투표 해시값을 스마트 계약에 제출하여 비밀리에 투표합니다. 즉, 해시값만 봐서는 누구도 참여자가 어떻게 투표했는지 알 수 없습니다.
-
드러내다 : 투표 단계가 끝나면 참가자는 자신의 투표를 공개하고 스마트 계약은 투표 결과가 이전에 제출된 해시와 일치하는지 확인합니다.
이 2단계 투표 과정은 유권자들이 오라클의 신뢰를 떨어뜨리거나 예측된 결과에 의존하는 서비스를 공격하기 위해 공모하는 것을 방지합니다. 동시에 예측 결과에 대한 이의가 여러 번 제기될 수 있으며, 이 경우 UMA는 이전 분쟁이 종결된 후 결정 절차를 다시 시작할 수 있도록 허용합니다.
분쟁 제기 절차는 다음과 같습니다.
결론적으로
겉보기에 간단한 베팅 및 예측 시스템인 Polymarket은 실제로는 각각 다른 프로토콜과 팀에서 개발한 세 가지 주요 모듈로 구성되어 있습니다.
-
CTF(조건부 토큰 프레임워크) : 예측에서 포트폴리오, 포지션, 주식을 관리합니다. Gnosis가 만든 이 유연한 프레임워크는 예측 시장에 적합합니다.
-
CLOB(중앙한도주문장) : 주문장 및 제한 주문을 구현하기 위한 Polymarket의 사내 솔루션입니다. CLOB는 사용자가 생태계에 효율적으로 참여할 수 있도록 하며 유동성을 집계하는 데 도움이 됩니다.
-
UMA : 독특한 분쟁 해결 중재 시스템을 갖춘 분산 오라클. UMA는 시스템의 핵심이며 블록체인을 통해 예측 결과를 전송합니다.
Polymarket은 스테이킹 시스템이긴 하지만, 기술적으로 이 프로토콜은 다양한 프로젝트의 기술을 성공적으로 결합했기 때문에 개발자들에게 특히 매력적입니다.
관련 자료
미국 대선 이후, 폴리마켓과 예측 시장 열풍은 얼마나 오래 지속될까?
총선에서 폴리마켓이 전통적인 여론조사보다 우수한 성적을 거둔 이유는 무엇입니까?
이 기사는 인터넷에서 발췌한 것입니다: Polymarket의 기술에 대한 자세한 설명