
WATTO Betting Platform
스마트 컨트랙트와 실시간 백엔드를 결합한 탈중앙 베팅 플랫폼입니다. 결과 검증과 정산을 온체인으로 처리하고 배당과 상태 변화는 WebSocket으로 전달했습니다.
스마트 컨트랙트와 실시간 백엔드를 결합한 탈중앙 베팅 플랫폼입니다. 결과 검증과 정산을 온체인으로 처리하고 배당과 상태 변화는 WebSocket으로 전달했습니다.
무엇이 어려웠는가.
베팅 마감 뒤 결과를 임의로 바꿀 수 없어야 했고, 풀 정산과 배당 상태를 사용자에게 실시간으로 보여줘야 했습니다.
어떻게 풀었는가.
베팅 접수·마감·결과 확정·지급을 상태별로 나눈 풀 컨트랙트를 설계했습니다. 여러 오라클의 결과가 기준 수에 도달해야 정산하도록 하고, 배당과 상태 변화는 WebSocket으로 전달했습니다.
SolidityReactSocket.IOWeb3.jsNode.js
프로젝트 개념
콘텐츠의 회차별 결과에 참여자가 베팅하고, 검증된 결과에 따라 풀을 정산하는 탈중앙 베팅 플랫폼을 설계했습니다. 스마트 컨트랙트와 실시간 백엔드가 각각 맡을 책임을 나누는 데 초점을 맞췄습니다.
온체인 흐름
- 베팅 접수, 마감, 결과 확정, 상금 청구를 별도 상태로 관리했습니다.
- 결과는 등록된 여러 오라클이 제출하고, 필요한 수의 일치된 응답이 모여야 확정하도록 설계했습니다.
- 출금 함수에는 재진입 방지와 중복 청구 방지 조건을 두고, 비상 정지 경로를 검토했습니다.
실시간 서비스
백엔드는 회차와 참가자, 베팅 내역을 관리하고 풀 규모에 따라 배당을 계산합니다. 배당과 회차 상태 변화는 WebSocket으로 전달해 사용자가 지갑 거래의 진행 상태를 확인할 수 있게 구성했습니다.
설계 기준
결과 검증은 백엔드 한 곳에 맡기지 않고 온체인 확정 조건과 분리했습니다. 실시간 화면은 예상 배당을 보여주되, 최종 지급 기준은 컨트랙트 상태로 한정했습니다.
