Skip to content

deps-makers/deps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEPS 프로토콜

Decentralized Problem Solving :: Rev 0.3

요약

image

포OO 마스터가 되고 싶었던 철수는 어느 날 배틀의 성지라고 불리는 성도지방으로 이사를 가기로 했습니다.

포OO 배틀을 시작하는 방법은 간단한데, 아래와 같습니다.

  1. 일단 신분증을 만듭니다. 성도지방에는 주민센터가 없어서 신분증을 스스로 만들 수 있습니다.
  2. 아무 체육관에 들어가서 신분증을 제시하면 배틀을 할 수 있습니다.
  3. 배틀에서 이기면 뱃지를 받을 수 있습니다.

뱃지는 강인함의 증표입니다. 어려운 배틀에서 이기고 뱃지를 많이 모을수록 더 강한 트레이너로 인정받게 됩니다.

네?

읽어주셔서 감사합니다. 여기서 배틀문제풀이로, 체육관문제서버로 바꾸면 DEPS Protocol이 됩니다.

DEPS프로그래밍 문제 같은 것을 풀 수 있는 여러 사이트를 연합하는 프로토콜입니다.


1. 개요

DEPS 프로토콜은 비대칭키 암호체계를 기반으로 분산된 여러 문제풀이 서버를 연합하는 프로토콜이다.

이 프로토콜의 설계적 특징은 다음과 같다.

  1. 작은 서비스 여러 개가 협력하여 하나의 거대한 생태계를 이룬다.
  2. 플랫폼의 존속과 관계없이 계정 및 달성한 기록은 영구히 유지된다.
  3. 달성한 기록의 진위 여부는 중앙 주체 없이도 검증할 수 있다.

2. 구성

DEPS 생태계에는 아래와 같은 3종류의 기본 주체가 존재한다.

2.1. 아이덴티티 (Identity)

아이덴티티는 사용자를 정의하는 최상위 객체이다. 아이덴티티는 특정 서버에 종속되지 않으며 생태계 전체에서 인정된다.

아이덴티티는 닉네임 등의 기본 정보아이덴티티 식별자를 가진다. 아이덴티티 식별자는 Base64로 인코딩한 Ed25519 공개 키이며, 한 번 생성되면 절대 변경되지 않는다. 이 키는 아이덴티티의 유일한 식별자이자, 사용자의 신원을 증명하는 수단이다.

2.2. 홈서버 (Home Server)

Note

홈서버 없이 아이덴티티를 직접 관리하는 것도 가능하다. 그러나 홈서버는 여러 편리한 기능을 제공한다.

아래는 홈서버의 가장 기본적인 역할만 나열한 것이다. 실제 구현체에서는 홈서버가 문제 확인 및 제출 UI를 제공하는 등 클라이언트 어플리케이션의 역할을 겸하는 경우가 많다.

홈서버는 사용자의 아이덴티티와 데이터를 대신 보관해주는 서버이다.

  • 사용자가 획득한 각종 증명(문제증표 및 실력증표)을 저장하고 관리한다.
  • 사용자를 쉽게 나타내는 별칭인 핸들네임을 부여할 수 있다.
  • 사용자는 언제든 자신의 데이터를 추출하여 다른 홈서버로 옮길 수 있다.

2.3. 문제서버 (Problem Server)

Note

문제는 각 문제서버의 운영 주체가 자율적으로 제작하고 제공하는 것이다. 또한 각 문제의 채점을 어떻게 하는지는 프로토콜에서 정의하지 않으며 전적으로 문제서버의 자율적 구현에 따른다.

문제서버는 사용자에게 풀 수 있는 여러 문제를 제공하는 서버이다.

  • 여러 문제를 제공하고, 답안을 제출받아 직접 채점한다.
  • 정답을 맞춘 아이덴티티에게는 문제서버의 키로 서명된 문제증표 를 발급한다.

다음 문서 01 - 데이터 정의

About

Decentralized Problem Solving

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors