KR102023427B1 - 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 - Google Patents
온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 Download PDFInfo
- Publication number
- KR102023427B1 KR102023427B1 KR1020180006344A KR20180006344A KR102023427B1 KR 102023427 B1 KR102023427 B1 KR 102023427B1 KR 1020180006344 A KR1020180006344 A KR 1020180006344A KR 20180006344 A KR20180006344 A KR 20180006344A KR 102023427 B1 KR102023427 B1 KR 102023427B1
- Authority
- KR
- South Korea
- Prior art keywords
- seed
- user
- server
- game
- side device
- Prior art date
Links
- 238000012790 confirmation Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims description 52
- 238000012795 verification Methods 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 17
- 230000006870 function Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/71—Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F1/00—Card games
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/75—Enforcing rules, e.g. detecting foul play or generating lists of cheating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/401—Secure communication, e.g. using encryption or authentication
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Multimedia (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Tourism & Hospitality (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명에 따른 실시예는, 유저측 디바이스로부터 유저시드를 수신하는 단계; 상기 유저시드와 서버시드에 기초하여 제1 유저확인용 해시 값을 생성하는 단계; 상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계; 상기 랜덤 값에 기초하여 복수의 데크 중 어느 하나의 데크를 선택하는 단계; 위치정보시드에 기초하여 상기 선택된 데크 내의 카드의 위치를 업데이트하는 단계; 상기 위치정보시드에 기초하여 제2 유저확인용 해시 값을 생성하는 단계; 상기 제1 및 제2 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는 단계; 상기 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하는 단계; 및 상기 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수 있다.
Description
본 발명은 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템에 관한 것이다.
네트워크의 보급 환경의 발달과 함께, 근래 들어 다양한 콘텐츠를 인터넷상으로 제공하는 서비스가 등장하고 있고, 이러한 콘텐츠 제공 서비스 중에서도 게임 콘텐츠 제공 서비스는 시장의 확대와 보급 속도가 가장 급격하게 성장하는 분야이다. 온라인을 통한 게임 콘텐츠 제공 서비스는 시공간의 제약 없이 원격지에 있는 불특정 사람과 동일한 게임을 플레이할 수 있다는 장점이 있다. 특히 인터넷을 통한 카드나 화투 게임은 이미 공지된 게임 방식으로 게임 콘텐츠 서비스를 제공하고 있어 현재 제공되고 있는 많은 게임 서비스들 중 가장 두각을 나타내고 있는 게임 분야이다.
또한, 카드나 화투 게임은 대표적인 확률 기반의 게임에 해당한다. 따라서, 게임 서비스를 제공하는 주체는 확률 기반 게임의 공정성에 대한 유저들의 신뢰성을 확보하기 위하여 많은 기술적 장치를 마련하고 있다. 그러나, 유저 스스로 확률이 조작된 것이 아님을 검증하는 것이 어렵고, 온라인 확률 기반 게임은 진정한 난수가 아닌 소프트웨어적으로 생성된 난수, 즉 의사 난수를 기반으로 랜덤 값을 추출하는 점 때문에 여전히 적지 않은 수의 유저들은 확률 기반 게임의 공정성에 대한 의문을 표하고 있다. 더욱이 최근 레인보우 테이블 제작과 같이 대량의 컴퓨팅 자원을 활용하여 게임에서 나타날 수 있는 랜덤 값을 모두 수집하는 해킹 방식의 등장으로 인하여 확률 기반 게임에 대한 유저의 신뢰를 확보하기 점점 어려워지고 있다.
실시예는 시드 및 해시 값 생성에 대한 가역성을 제거하고, 충분한 프로세스 파워를 이용한 시드 유출 가능성을 차단하여 확률 기반 온라인 게임에 대한 유저의 신뢰를 확보하는 것을 목적으로 한다.
또한, 실시예는 유저가 직접 확률 조작이 아님을 검증할 수 있도록 한 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템을 제공하는데 목적이 있다.
실시예는, 유저측 디바이스로부터 유저시드를 수신하는 단계; 상기 유저시드와 서버시드에 기초하여 제1 유저확인용 해시 값을 생성하는 단계; 상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계; 상기 랜덤 값에 기초하여 복수의 데크 중 어느 하나의 데크를 선택하는 단계; 위치정보시드에 기초하여 상기 선택된 데크 내의 카드의 위치를 업데이트하는 단계; 상기 위치정보시드에 기초하여 제2 유저확인용 해시 값을 생성하는 단계; 상기 제1 및 제2 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는 단계; 상기 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하는 단계; 및 상기 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수 있다.
다른 측면에서, 상기 제1 유저확인용 해시 값을 생성하는 단계는, 상기 유저시드와 상기 서버시드를 조합하여 조합시드를 생성하는 단계; 및 상기 조합시드에 기초하여 상기 제1 유저확인용 해시 값을 생성하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 하나의 데크는 N(N은 2이상의 자연수)개의 카드를 포함하고, 상기 위치정보시드는 서로 중복되지 않는 N개의 수들의 수열로 구성되고, 상기 N개의 수들 각각은 상기 하나의 데크 내의 카드들의 위치에 대응하고, 상기 위치정보시드의 1번째 수에서 N번째 수까지 순차적으로 각 수가 지칭하는 숫자에 해당하는 위치의 카드들을 순서대로 재 배열하여 상기 선택된 데크 내의 카드의 위치를 업데이트하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 위치정보시드를 변환하고, 상기 변환된 위치정보시드에 기초하여 상기 제2 유저 확인용 해시 값을 생성하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 제1 및 제2 유저확인용 해시 값 및 상기 업데이트된 데크의 정보를 전송하고, 게임 종료에 응답하여 상기 서버시드 및 상기 변환된 위치정보시드를 전송하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 유저측 디바이스의 요청에 응답하여 상기 유저시드 및 상기 서버시드를 이용하여 상기 제1 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계;를 더 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
또 다른 측면에서, 상기 유저측 디바이스의 요청에 응답하여 상기 변환된 위치정보시드를 이용하여 상기 제2 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계;를 더 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.
실시예는 시드 및 해시 값 생성에 대한 가역성을 제거할 수 있다.
또한, 실시예는 대량의 컴퓨팅 자원을 이용한 시드나 랜덤 값 해킹 가능성을 차단할 수 있다.
또한, 실시예는 시드의 유출이 발생한 상황이나 레인보우 테이블이 존재하는 상황 하에서도 유저가 실시간으로 게임 결과를 유추할 수 없도록 한다.
실시예는 유저가 직접 확률 조작이 아님을 검증할 수 있도록 하여 게임 공정성에 대한 유저의 신뢰성을 높일 수 있다.
도 1a는 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이다.
도 1b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이다.
도 1c는 프로버블리티 페어 게임 시스템을 설명하기 위한 개념도이다.
도 2a 내지 도 2c는 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 2d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 3c 및 도 3d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 4a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4b는 다른 측면에서의 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4c는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 5a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 5b는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 1b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이다.
도 1c는 프로버블리티 페어 게임 시스템을 설명하기 위한 개념도이다.
도 2a 내지 도 2c는 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 2d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 3c 및 도 3d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 4a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4b는 다른 측면에서의 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4c는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 5a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 5b는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1a는 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이고, 도 1b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이며, 도 1c는 프로버블리티 페어 게임 시스템을 설명하기 위한 개념도이다.
도 1a 및 도 1b 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템(10)은 적어도 하나의 유저측 디바이스(100), 서버(200) 및 네트워크(300)를 포함할 수 있다.
도 1a 및 도 1b의 각 요소들은 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들 또는 펌웨어 컴포넌트들 또는 이러한 컴포넌트들의 임의의 조합으로 구현되거나 연관될 수 있다. 또한, 도 1a 및 도 1b의 요소들은 예를 들어 서버들, 소프트웨어 프로세서들, 그리고 엔진들 및/또는 다양한 임베디드 시스템들로 구현되거나 또는 연관될 수 있다. 그리고 요소들은 콘텐츠비딩 및/또는 분산 네트워크로써 제공할 수 있다.
유저측 디바이스(100)는 다양한 작업을 수행하는 애플리케이션들을 실행하기 위한 유저가 사용하는 하나 이상의 컴퓨터 또는 다른 전자 장치이다. 예컨대, 컴퓨터, 랩탑 컴퓨터, 스마트 폰, 모바일 전화기, PDA, 태블릿 PC, 혹은 서버(200)와 통신하도록 동작 가능한 임의의 다른 디바이스를 포함한다. 다만 이에 한정되는 것은 아니고 유저측 다비이스(100)는 다양한 머신들 상에서 실행되고, 다수의 메모리 내에 저장된 명령어들을 해석하여 실행하는 프로세싱로직을 포함하고, 외부 입력/출력 디바이스상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 디스플레이하는 프로세스들과 같이 다양한 기타 요소들을 포함할 수 있다. 아울러 유저측 다비이스(100)는 입력 장치(예를 들면 마우스, 키보드, 터치 감지 표면 등) 및 출력 장치(예를 들면 디스플레이장치, 모니터, 스크린 등)에 접속될 수 있다. 유저측 디바이스(100)에 의해 실행되는 애플리케이션들은 게임 어플리케이션, 웹 브라우저, 웹 브라우저에서 동작하는 웹 애플리케이션, 워드 프로세서들, 미디어 플레이어들, 스프레드시트들, 이미지 프로세서들, 보안 소프트웨어 또는 그 밖의 것을 포함할 수 있다.
또한, 유저측 디바이스(100)는 명령들을 저장하는 적어도 하나의 메모리(101) 및 적어도 하나의 프로세서(102)를 포함하고, 명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호를 전송, 유저시드 생성, 유저시드 입력 수신, 유저시드 전송, 게임 데이터 송수신, 각종 정보 수신하는 동작들을 포함할 수 있다.
유저측 디바이스(100)에서 게임 어플리케이션이 실행되면, 유저측 디바이스(100)에서 게임 환경이 구성된다. 그리고 게임 어플리케이션은 네트워크(300)를 통해 서버(200)와 게임 데이터를 교환하여 유저측 디바이스(100) 상에서 게임 서비스가 실행되도록 한다.
서버(200)가 제공하는 게임 서비스는 서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저측 디바이스(100) 상에서 구현되는 게임 환경에서 하나의 실제 유저와 적어도 하나의 컴퓨터 유저가 함께 게임을 플레이 한다. 다른 측면에서, 서버(200)가 제공하는 게임 서비스는 복수의 유저측 디바이스가 참여하여 게임이 플레이되는 형태로 구성될 수도 있다.
서버(200)가 제공하는 게임 서비스는 프로버블리티 페어 기반의 확률 게임 서비스가 될 수 있다. 여기서의 확률 게임 서비스는 예시적으로 트럼프(trump) 등과 같이 52장의 다른 카드의 조합을 미리 결정된 룰(rule)에 근거하여 각 유저가 카드를 모으거나, 혹은 각 유저가 소지한 카드를 늘어놓음으로써 승패를 결정하는 게임이 있다. 또 다른 예로써는, 주사위와 같이 정해진 수 범위 내에서 무작위로 결정된 수에 따라서 승패가 결정되는 게임이 있다. 다만, 이에 제한되는 것은 아니고, 카드를 이용하는 포커, 블랙잭, 화투나 각종 주사위 게임이 있을 수 있으며 게임에서 사용되는 카드의 수도 게임의 종류나 동일한 게임이라도 게임의 룰에 따라 달라질 수 있다.
도 1c를 참조하면, 서버(200)는 적어도 하나의 유저측 디바이스(100)로 게임 서비스를 제공할 수 있다. 서버(200)는 유저측 디바이스(100)로부터 게임 실행 요청을 수신하면, 게임을 구성하는 구성 요소 중에서 일부 구성 요소인 확률 기반 가변 구성 요소를 구성할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 대한 데이터를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송한다. 확률 기반 가변 구성 요소의 예시로는 카드 게임에서의 데크(Deck) 정보가 될 수 있다. 데크는 카드 한 벌을 의미한다. 그리고 확률에 따라서 복수의 데크 중 어느 하나가 선택될 수 있다. 여기서의 복수의 데크들 각각을 구성하는 카드들은 서로 섞임이 서로 다를 수 있다. 복수의 데크들 각각을 구성하는 카드들의 섞임이 다르므로 복수의 데크 중 어떤 데크가 선택되느냐에 따라서 게임 환경에서 유저들에게 분배될 카드의 종류가 달라지게 된다. 또 다른 예로, 확률 기반 가변 구성 요소는 주사위 게임에서의 주사위가 나타낼 수의 정보가 될 수 있다. 다만, 확률 기반 가변 구성 요소는 전술한 예시에 한정되는 것은 아니고, 게임을 구성하는 구성 요소 중에서 랜덤하게 결정되는 모든 게임 구성 요소가 여기에 해당될 수 있다.
서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201) 및 적어도 하나의 프로세서(202)를 포함하고, 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 랜덤 값 요청 신호 전송, 서버시드 생성, 유저시드 수신, 조합시드 생성, 해시 값 생성, 확률 기반 가변 구성 요소 결정, 메모리(210) 내의 데이터 검색, 게임 데이터 송수신 및 각종 전송 전송 동작을 포함할 수 있다.
또한, 서버(200)는 확률 기반 가변 구성 요소를 생성하기 위하여 시드, 랜덤 함수 및 해시 함수를 이용할 수 있다. 랜덤 함수는 시드를 입력 받아 임의의 길이의 랜덤 값을 출력하는 함수이다. 예를 들어, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 복수의 데크 정보들 각각에 매칭시키고, 복수의 데크 정보들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 데크 정보를 선택할 수 있다. 다른 예로, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 주사위가 표현 가능한 수들 각각에 매칭시키고, 주사위가 표현 가능한 수들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 주사위의 수를 선택할 수 있다. 본 명세서에서 설명하는 랜덤 함수들은 서로 다른 종류의 랜덤 함수가 될 수 있다. 따라서, 랜덤 함수들은 각각 동일한 입력에 대한 서로 다른 값을 출력할 수 있으나 이에 한정하는 것은 아니다.
해쉬 함수는 임의의 길이를 갖는 메시지인 시드를 입력 받아 고정된 길이의 해쉬 값을 출력하는 함수이다. 해쉬 함수는 키를 사용하지 않으므로 같은 입력에 대해서는 항상 같은 출력이 나오게 된다. 이러한 함수를 사용하는 목적은 입력 시드에 대한 변경할 수 없는 증거 값을 뽑아냄으로서 시드의 오류나 변조를 탐지할 수 있는 무결성을 제공할 수 있다. 해시 함수의 예시로는, SHA(Secure Hash Algorithm), HAS-160가 있으나 이에 제한되는 것은 아니고 공지의 해시 함수를 이용할 수 있다.
서버(200)는 랜덤 함수와 해시 함수의 입력 값 중 적어도 일부가 되는 시드를 생성할 수 있고, 아울러 게임 서비스를 구성하여 이를 유저측 디바이스(100)로 제공할 수 있다. 다른 측면에서, 서버(200)는 시드를 생성하는 시드 생성 서버(210) 및 게임서버(220)로 구성될 수 있다. 게임서버(220)는 시드 생성 서버(210)로부터 생성된 시드를 수신하여 확률 기반 가변 구성 요소를 생성하고 유저측 디바이스(100)로 게임 서비스를 제공할 수 있다.
네트워크(300)는 유저측 디바이스(100) 및 서버(200)들과 같은, 다양한 네트워크 노드들 사이에서 통신을 용이하게 하는 임의의 요소 또는 시스템을 포함할 수 있다. 예컨대 네트워크(300)는 컴퓨터 네트워크들, 전화 또는 다른 통신 네트워크들, 인터넷 등과 같은 하나 이상의 전기통신 네트워크들을 포함할 수 있다. 아울러 네트워크(300)는 광역(예: WAN) 또는 근거리(예: LAN)를 포괄하는 공유형 공공, 또는 사설의 데이터 네트워크를 포함할 수 있다. 일부 구현들에서, 네트워크(300)는 인터넷 프로토콜(IP)을 사용하여 패킷 교환의 방식으로 데이터 교환을 용이하게 할 수 있다. 또한, 네트워크(300)는 유선 및/또는 무선 연결 및 통신을 용이하게 할 수 있다.
도 2a 내지 도 2c는 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이고, 도 2d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 2a 내지 도 2d를 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법(S100)은 매크로 정보에 기초하여 서버시드를 생성하는 단계(S110), 서버시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S120), 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S130), 서버시드에 기초하여 랜덤 값을 생성하는 단계(S140), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S150), 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S160) 및 게임 종료 후 서버시드를 유저측 디바이스로 전송하는 단계(S170)를 포함할 수 있다.
보다 상세하게는, 서버(200)는 매크로 정보에 기초하여 서버시드를 생성할 수 있다(S110). 매크로 정보는 일정한 규칙성 없이 매 게임 마다 변동 가능한 정보이다. 예를 들어, 매크로 정보는 유저 정보 및 게임 플레이 정보를 포함할 수 있다. 유저 정보는 유저의 게임 등급 레벨, 특정 게임에서의 승패 정보, 특정 게임에서의 게임 등수나 유저가 보유한 가상 머니 등 매 게임 마다 변동이 가능한 유저만의 고유 정보가 될 수 있다. 또한, 게임 플레이 정보는 게임의 진행 과정 정보, 게임의 결과 정보 등 특정 게임 환경에서 나타난 다양한 게임 시나리오 정보가 될 수 있다.
서버(200)는 유저측 디바이스(100)에 게임 서비스를 제공하면서 유저 정보 및 게임 플레이 정보를 데이터베이스화하여 저장하고, 이를 지속적으로 업데이트 할 수 있다.
도 2a를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임에서의 미리 설정된 등수에 해당하는 유저의 게임 머니 정보를 검색하는 단계(S111a), 검색한 게임 머니 정보에 기초하여 서버시드를 생성하는 단계(S112a)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서 1등을 기록한 유저를 데이터베이스에서 검색하고 해당 유저의 게임 머니 정보를 읽어 드릴 수 있다. 그리고 게임 머니 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다.
도 2b를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임에서의 카드 분배 순서 정보를 검색하는 단계(S111b) 및 카드 분배 순서 정보에 기초하여 서버시드를 생성하는 단계(S112b)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서의 게임 시나리오에 따른 유저들에게 카드가 분배된 순서 정보를 데이터베이스에서 검색할 수 있다. 그리고 검색된 카드 분배 순서 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다. 여기서의 카드 분배 순서는 게임 플레이 과정 중의 특정 시점에 분배된 카드에 대한 정보가 될 수 있다. 다른 측면에서, 게임 플레이 과정 중의 특정 시구간 동안 분배된 모든 카드에 대한 정보가 될 수 있다. 또 다른 측면에서, 게임 플레이 과정 중의 특정 시점부터 분배된 x개의 카드에 대한 정보가 될 수 있다. 다만, 이에 한정하는 것은 아니다.
도 2c를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임 플레이 상황에서 유저들의 버린 카드 정보를 검색하는 단계(S111c) 및 버린 카드 정보에 기초하여 서버시드를 생성하는 단계(S112C)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서의 게임 시나리오에 따른 유저들이 버린 카드 정보를 데이터베이스에서 검색할 수 있다. 그리고 검색된 카드 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다. 여기서의 유저들이 버린 카드 정보는 게임 플레이 과정 중의 특정 시점에 버려진 카드에 대한 정보가 될 수 있다. 다른 측면에서, 게임 플레이 과정 중의 특정 시구간 동안 버려진 카드들에 대한 정보가 될 수 있다. 또 다른 측면에서, 게임 플레이 과정 중의 특정 시점부터 버려진 x개의 카드에 대한 정보가 될 수 있다. 다만, 이에 한정하는 것은 아니다.
한편, 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.
또한, 서버(200)는 매크로 정보에 기초하여 생성한 서버시드가 32bit 또는 64bit의 길이에 해당하지 않는 경우 인코딩 또는 해시를 통해 수의 길이를 조절할 수도 있다.
서버(200)는 생성한 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 또한, 서버(200)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다.
유저측 디바이스(100)는 유저확인용 해시 값을 수신하면 이를 디스플레이할 수 있다. 다른 측면에서, 유저측 디바이스(100)는 유저가 유저확인용 해시 값 표시 아이콘을 디스플레이할 수 있다. 그리고 해당 아이콘에 대한 유저의 선택에 응답하여 서버(200)로부터 수신한 유저확인용 해시 값을 디스플레이할 수 있다.
서버(200)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 일부 실시예에 따르면, 32bit 체제인 서버(200)에서의 서버시드는 2의 32승에 해당하거나 이에 근접한 숫자로 구성될 수 있고, 64bit 체제인 서버(200)에서의 서버시드는 2의 64승에 해당하거나 이에 근접한 숫자로 구성될 수 있다.
또한, 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 또한, 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 유저측 디바이스(100)는 수신된 게임 데이터에 기초하여 게임을 플레이할 수 있다.
또한, 서버(200)는 게임 종료 후 서버시드를 유저측 디바이스(100)로 전송할 수 있다.
또한, 프로버블리티 페어 게임 방법(S100)은 유저측 디바이스의 요청에 응답하여 서버시드를 이용하여 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계를 더 포함할 수 있다.
검증용페이지에는 서버(200)가 사용한 해시 함수가 미리 프로그램될 수 있다.
다른 측면에서, 검증용페이지는 서버(200)가 사용한 해시 함수를 이용하여 출력 값을 계산할 수 있도록 하는 페이지로 연결하는 링크를 포함하는 형태로 구성될 수도 있다. 따라서, 유저는 검증용페이지 상에서(또는, 검증용페이지 상의 링크에 연결된 페이지 상에서) 서버(200)로부터 수신한 서버시드를 입력하여 서버(200)로부터 수신한 유저확인용 해시 값과 동일한 값이 나오는지를 검증할 수 있다.
본 발명의 실시예에 따르면, 서버(200)는 매크로 정보에 기초하여 서버 시드를 생성한다. 따라서, 해킹 등의 원인으로 서버(200)가 생성 가능한 모든 서버시드에 대한 정보를 유저가 알고 있는 경우라고 하여도, 유저는 확률 기반 가변 구성 요소를 결정할 때 실제 어떤 서버시드가 이용될지 유추하는 것은 매우 어렵다.
또한, 서버(200)는 매 게임 마다 서로 다른 매크로 정보를 이용하여 서버시드를 생성하도록 구성될 수도 있다. 따라서, 유저가 대량의 컴퓨팅 자원을 이용한다고 하여도 유저가 현재 게임에서 사용할 서버시드를 실시간으로 유추하는 것이 거의 불가능하게 한다.
도 2E는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 2E를 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법(S100)은 유저측 디바이스로부터 유저시드를 수신하는 단계(S110), 매크로 정보에 기초하여 서버시드를 생성하는 단계(S120), 유저시드 및 서버시드를 조합한 조합시드를 생성하는 단계(S130), 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S140), 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S150), 조합시드에 기초하여 랜덤 값을 생성하는 단계(S160), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S170), 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S180) 및 게임 종료 후 서버시드를 유저측 디바이스로 전송하는 단계(S190)를 포함할 수 있다.
보다 상세하게는, 유저측 디바이스(100)에서 프로버블리티 페어 게임이 실행되면, 유저측디바이스(100)는 유저시드를 서버(200)로 전송할 수 있다. 유저측 디바이스(100)는 프로버블리티 페어 게임의 실행 시 유저측 디바이스(100)에 미리 설치된 난수 생성 프로그램에 의해서 자동으로 생성되는 유저시드를 서버(200)로 전송할 수 있다. 난수 생성 프로그램은 다양한 유저측 디바이스(100)의 특성과 관련되거나 유저의 게임 정보와 관련된 다양한 입력 변수에 기초하여 유저시드를 생성할 수 있다. 난수 생성 프로그램에 의해 생성된 유저시드는 유저가 확인 가능하도록 유저측 디바이스(100)에서 표시될 수 있다. 다른 측면에서, 유저측 디바이스(100)는 유저가 입력한 유저시드를 서버(200)로 전송할 수도 있다.
서버(200)는 매크로 정보를 입력으로 하는 랜덤 함수의 출력 값인 서버시드를 생성할 수 있다.
유저시드 및 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.
서버(200)는 유저시드 및 서버시드를 조합한 조합시드를 생성할 수 있다. 예를 들어, 서버(200)는 AAA라는 문자열인 유저시드와 BBB라는 문자열인 서버시드를 조합하여 AAABBB라는 문자열인 조합시드를 생성할 수 있다.
서버(200)는 조합시드에 기초하여 유저확인용 해시 값을 생성할 수 있다. 예를 들어, 서버(200)는 AAABBB 문자열인 조합시드를 입력으로 하여 #!ojqncui@$ 문자열인 유저확인용 해시 값을 출력하는 해시 함수를 이용하여 유저확인용 해시 값을 생성할 수 있다.
서버(200)는 유저확인용 해시 값을 유저측 디바이스로 전송할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하여 랜덤 값을 출력하는 랜덤 함수를 이용하여 조합시드에 대한 랜덤 값을 생성하고, 생성된 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 다비이스(100)로 전송하여 게임이 플레이되도록 할 수 있다. 그리고 서버(200)는 게임 종료 후 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.
유저는 서버(200)에서 사용된 해시 함수를 이용하여 수신한 서버시드와 미리 알고 있는 유저시드를 조합한 조합시드를 입력으로 할 때 해시 함수가 유저확인용 해시 값이 출력되는지를 확인함으로써 확률의 공정성을 검증할 수 있다.
또한, 실시예는 랜덤 값 생성 시 유저시드를 이용하므로 유저의 게임의 공정성에 대한 신뢰도를 향상시킬 수 있다. 아울러 실시예는 서버시드를 생성할 때 유저의 게임 플레이 결과에 따라 변동 가능한 매크로 정보를 이용하므로 서버시드가 유출될 가능성 및 레인보우 테이블을 이용한 시드 해킹 가능성을 최소화할 수 있다.
한편, 매크로 정보를 이용하여 서버시드를 생성하는 방식은 다른 실시예에도 적용될 수 있다.
도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다. 그리고 도 3c 및 도 3d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 1b, 도 3a 및 도 3c를 참조하면, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)은 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 카운팅 정보를 포함하는 랜덤 값 요청 신호를 시드 생성 서버로 전송하는 단계(S220), 수신된 랜덤 값에 기초하여 유저확인용 해시 값을 생성하는 단계(S230), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S240), 수신된 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정하는 단계(S250), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S260) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S270)를 포함할 수 있다.
보다 상세하게는, 게임서버(220)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신하면 카운팅 정보를 업데이트 할 수 있다. 즉, 복수의 유저측 디바이스들 각각으로부터 게임 실행 요청 신호가 수신될 때마다 수신 횟수를 카운팅할 수 있다. 그리고 게임서버(220)는 특정 유저측 디바이스로부터 게임 실행 요청 신호를 수신하면 카운팅 정보를 업데이트하고, 업데이트된 카운팅 숫자를 시드 생성 서버(210)로 전송하면서 랜덤 값을 요청할 수 있다. 시드 생성 서버(210)는 랜덤 값 요청에 응답하여 수신된 카운팅 숫자를 기초로 랜덤 값을 생성할 수 있다. 즉, 시드 생성 서버(210)는 카운팅 숫자를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 게임서버(220)는 시드 생성 서버(210)로부터 수신된 랜덤 값을 서버시드로 이용할 수 있다. 또한, 게임서버(220)는 서버시드에 기초하여 유저확인용 해시 값을 생성하여 이를 유저측 디바이스(100)로 전송할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정할 수 있다. 그리고 게임서버(220)는 결정된 확률 가변 구성 요소 정보를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 유저측 디바이스(100)는 수신된 게임 데이터에 기초하여 게임을 플레이할 수 있다. 그리고 유저측 디바이스(100)는 게임 종료 후 게임 검증을 위하여 게임서버(220)로 게임 검증 요청을 할 수 있다. 그리고 게임서버(220)는 게임 검증 요청에 응답하여 랜덤 값인 서버시드를 유저측 디바이스(100)로 전송할 수 있다.
실시예는 서버시드가 모두 유출된 상황에서도 서버시드로 이용될 랜덤 값을 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(200)는 복수의 유저측 디바이스로부터의 게임 실행 요청 신호를 수신하면 이를 카운팅하고, 카운팅 정보를 시드 생성 서버로 전송한다. 그리고 시드 생성 서버는 수신된 카운팅 정보에 기초하여 랜덤 값을 생성한다. 즉, 카운팅 정보가 달라지면 랜덤 값 또한 달라질 수 있다. 이 경우, 특정 유저가 시드 생성 서버의 랜덤 값 생성 알고리즘을 해킹한 경우라고 하여도, 특정 유저의 디바이스가 게임서버(220)에 몇 번째로 게임 실행 요청 신호를 전송하였는지 유추하기 매우 곤란하다. 따라서, 실시예는 유저로 하여금 시드 생성 서버(210)가 생성하는 랜덤 값을 실시간으로 파악하는 것이 매우 어렵도록 한다.
도 1b, 도 3a 및 도 3d를 참조하여, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)을 다른 측면에서 설명한다. 실시예는 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 미리 등록된 복수개의 시드 생성 서버의 개수 정보 및 카운팅 정보에 기초하여 복수개의 시드 생성 서버 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청하는 단계(S220), 수신된 랜덤 값에 기초하여 유저확인용 해시 값을 생성하는 단계(S230), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S240), 수신된 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정하는 단계(S250), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S260) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S270)를 포함할 수 있다.
보다 상세하게는, 게임서버(220)는 복수의 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신할 수 있다. 여기서의 게임 실행 요청 신호는 게임서버(220)가 서버시드의 생성 동작을 개시하도록 하는 신호가 될 수 있다. 그리고 게임서버(220)는 수신되는 게임 실행 요청 신호를 카운팅 할 수 있다. 그리고 게임서버(220)는 미리 등록된 복수개의 시드 생성 서버(210)의 개수 정보와 카운팅 정보에 기초하여 복수개의 시드 생성 서버(210) 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청할 수 있다. 예를 들어, 게임서버(200)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신하고, 카운팅 정보를 업데이트(예를 들어 현재 카운팅 숫자가 21인 경우 업데이터된 카운팅 숫자는 22가 된다)할 수 있다. 그리고 6개의 시드 생성 서버(210)들 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청할 수 있다.
게임서버(220)는 J개의 시드 생성 서버(210)들 중 수학식 1로부터의 결과 값에 대응하는 하나의 시드 생성 서버를 선택하고 선택된 시드 생성 서버로 랜덤 값을 요청할 수 있다.
[수학식 1]
카운팅된 수%미리 등록된 랜덤 서버의 개수=결과 값
전술한 예에서, 카운팅된 숫자가 22이고 미리 등록된 시드 생성 서버(210)의 개수가 6개이므로 22를 6으로 나눈 후 나머지는 4가 된다. 따라서 결과 값은 4가 된다. 이 경우, 게임 서버(220)는 4번째 시드 생성 서버로 랜덤 값을 요청할 수 있다. 다른 측면에서, 결과 값 4에 미리 매칭된 시드 생성 서버로 랜덤 값을 요청할 수 있다.
게임서버(220)는 시드 생성 서버로부터 랜덤 값을 수신하고 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 생성한 유저확인용 해시 값을 유저측디바이스(100)로 전송할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값을 생성할 수 있다. 그리고 게임서버(220)는 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정할 수 있다. 그리고 게임서버(220)는 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.
다른 측면에서 도 3b를 참조하면, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)은 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 유저측 디바이스로부터 유저시드를 수신하는 단계(S220), 미리 등록된 복수개의 시드 생성 서버의 개수 정보 및 카운팅 정보에 기초하여 복수개의 시드 생성 서버 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청하는 단계(S230), 수신된 랜덤 값과 유저시드를 조합하여 조합시드를 생성하는 단계(S240), 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S250), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S260), 조합시드에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S270), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S280) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S290)를 포함할 수 있다.
예를 들어, 보다 상세하게 설명하면 게임서버(220)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신할 때마다 수를 하나씩 증가시키는 방식으로 게임 실행 요청 신호를 카운팅할 수 있다. 그리고 게임서버(220)는 유저측 디바이스(100)에서 생성된 유저시드를 수신할 수 있다. 다른 측면에서 게임 실행 요청 신호는 유저시드 정보를 포함할 수도 있다. 그리고 게임서버(220)는 전술한 수학식 1에 따라 미리 등록된 복수개의 시드 생성 서버의 개수 정보와 현재의 카운팅 수 정보에 기초하여 수학식 1의 결과값을 계산할 수 있다. 그리고 게임서버(220)는 계산된 결과값에 매칭되는 시드 생성 서버로 랜덤 값을 요청할 수 있다. 시드 생성 서버(210)는 게임서버(220)로부터 수신된 랜덤 값 요청 신호에 응답하여 랜덤 값을 생성하고 이를 게임서버(220)로 전송할 수 있다.
게임서버(220)는 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 유저시드와 서버시드를 조합한 조합시드를 생성하고, 조합시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 조합시드에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하고, 결정된 확률 기반 가변 요소에 대한 정보를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임이 종료된 이후 유저측 디바이스(100)는 게임서버(220)로 게임 검증을 요청할 수 있다. 게임서버(220)는 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.
실시예는 서버시드가 모두 유출된 상황에서도 확률 기반 가변 구성 요소를 결정하기 위한 기초 정보인 서버시드에 대한 정보를 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(200)는 복수의 유저측 디바이스로부터의 게임 실행 요청 신호를 수신하면 이를 카운팅하고, 카운팅 정보에 따라서 랜덤 값을 요청할 시드 생성 서버를 선택한다. 따라서 특정 유저측 디바이스는 자신의 게임 실행 요청 신호가 게임서버(220)에 몇 번째로 전송되었는지 유추하기 매우 어렵다. 이는 특정 유저가 서버시드로 이용될 랜덤 값을 유추하는 것을 매우 곤란하게 하는 효과를 가진다.
또한, 실시예는 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 다르게 설정함으로써 서버시드의 해킹 가능성을 원천 봉쇄할 수 있다. 예를 들어, 특정 유저가 다수의 유저측 디바이스를 통제하면서 게임 실행 요청 신호의 횟수를 해킹한 경우라 할지라도 특정 유저가 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 모두 파악하지 않는 한 실시간으로 서버시드를 해킹하는 것은 거의 불가능하기 때문이다.
한편 본 실시예에서 설명한 서버시드 생성 방식은 다른 실시예에도 적용될 수 있다.
도 4a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이고, 도 4b는 다른 측면에서의 프로버블리티 페어 게임 방법에 대한 흐름도이며. 도 4c는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 4a 내지 도 4c를 참조하면, 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법(S300)은 서버가 유저측 디바이스로부터 유저시드를 수신하는 단계(S310), 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S320), 유저시드와 서버시드에 기초하여 랜덤값을 생성하는 단계(S330), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S340), 유저측 디바이스로 유저확인용 해시 값을 전송하는 단계(S350), 결정된 확률 기반 가변 구성 요소를 기초로 게임 데이터를 생성하는 단계(S360), 게임 데이터를 유저측 디바이스로 전송하는 단계(S370) 및 유저측 디바이스로 서버시드를 전송하는 단계(S380)를 포함할 수 있다.
보다 상세하게는, 서버(200)는 유저측 디바이스(100)로부터 유저시드를 수신할 수 있다. 다른 측면에서, 복수의 유저측 디바이스가 하나의 게임에 참여한 경우 서버(200)는 복수의 유저측 디바이스(100)로부터 유저시드를 수신할 수도 있다. 이 경우, 수신된 복수의 유저시드 중 어느 하나의 유저시드만을 이용할 수도 있다. 또 다른 측면에서, 하나의 게임에 복수의 유저가 참여한 경우 서버(200)는 복수의 유저측 디바이스 중 어느 하나의 디바이스에만 유저시드를 요청할 수도 있다.
또한, 서버(200)는 서버시드를 생성할 수 있다. 다른 측면에서, 서버(200)는 게임서버와 시드 생성 서버로 구성될 수 있다. 그리고 전술한 방식에 따라 게임서버가 시드 생성 서버로부터 수신한 랜덤 값을 서버시드로 이용할 수도 있다. 그리고 서버(200)는 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성할 수 있다.
다른 측면에서 서버시드는 제1 및 제2 서버시드를 포함할 수 있다.
서버(200)는 유저시드와 제1 서버시드를 조합한 제1 조합시드를 생성할 수 있다(S321). 예를 들어, 서버(200)는 AAA라는 문자열인 유저시드와 BBB라는 문자열인 제1 서버시드를 조합하여 AAABBB라는 문자열인 제1 조합시드를 생성할 수 있다. 그리고 서버(200)는 제1 조합시드에 기초하여 제1 해시 값을 생성할 수 있다(S322). 예를 들어, 해시 함수는 AAABBB 문자열인 제1 조합시드를 입력으로 하여 #!ojqncui@$ 문자열인 제1 해시 값을 생성할 수 있다. 그리고 서버(200)는 제2 서버시드에 기초하여 제2 해시 값을 생성할 수 있다(S323). 예를 들어, 해시 함수는 CCC 문자열인 제2 서버시드를 입력으로 하여 ^&nxcaoi!#$q 문자열인 제2 해시 값을 생성할 수 있다. 또한, 서버(200)는 제1 해시 값과 제2 해시 값을 조합한 제2 조합시드를 생성할 수 있다(S324). 예를 들어, 서버(200)는 #!ojqncui@$ 문자열인 제1 해시 값과 ^&nxcaoi!#$q 문자열인 제2 해시 값을 조합한 #!ojqncui@$^&nxcaoi!#$q 문자열인 제2 조합시드를 생성할 수 있다. 그리고 서버(200)는 제2 조합시드에 기초하여 유저확인용 해시 값을 생성할 수 있다(S325). 예를 들어, 해시 함수는 #!ojqncui@$^&nxcaoi!#$q 문자열인 제2 조합시드를 입력으로 하여 %$#%vssdf3!&4 문자열인 유저확인용 해시 값을 생성할 수 있다. 그리고 서버(200)는 유저측 디바이스(100)로 유저확인용 해시 값을 전송할 수 있다.
또한, 서버(200)는 유저시드와 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 예를 들어, 랜덤 함수는 제1 조합시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 기초로 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.
또한, 서버(200)는 게임 종료 후 유저측 디바이스(100)로 서버시드 및 랜덤 값을 전송할 수 있다. 다른 측면에서, 서버(200)는 게임 종료 후 유저측 디바이스(100)로부터의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수도 있다.
실시예는 제2 조합시드에 기초하여 생성된 유저확인용 해시 값을 유저측 디바이스(100)로 전송하므로 유저는 유저확인용 해시 값으로부터 서버시드를 유추할 수 없도록 한다. 즉, 유저확인용 해시 값과 시드가 서로 일대일로 매칭되지 않도록 하여, 레인보우 테이블을 제작하는 방식으로 서버 시드 유출이 거의 불가능하도록 한다.
도 5a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다. 그리고 도 5b는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 5a 및 도 5b를 참조하면, 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법(S400)은 유저측 디바이스로부터 유저시드를 수신하는 단계(S410), 유저시드와 서버시드에 기초하여 제1 유저확인용 해시 값을 생성하는 단계(S420), 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계(S430), 랜덤 값에 기초하여 복수의 데크 중 어느 하나의 데크를 선택하는 단계(S440), 위치정보시드에 기초하여 선택된 데크 내의 카드의 위치를 업데이트하는 단계(S450), 위치정보시드에 기초하여 제2 유저확인용 해시 값을 생성하는 단계(S460), 제1 및 제2 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S470), 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하는 단계(S480) 및 게임 데이터를 유저측 디바이스로 전송하는 단계(S490)를 포함할 수 있다.
보다 상세하게는, 서버(200)는 유저측 디바이스로부터 유저시드를 수신할 수 있다. 또한, 서버(200)는 유저시드와 서버시드를 조합한 조합시드를 생성할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하는 해시 함수의 출력 값인 제1 유저확인용 해시 값을 생성할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 서버(200)는 데이터베이스에서 복수의 데크 정보를 검색하고 이들 중에서 랜덤 값에 미리 매칭된 하나의 데크 정보를 선택할 수 있다. 복수의 데크들 각각은 N(N은 2이상의 자연수)개의 카드를 포함할 수 있다. 그리고 복수의 데크 정보 각각은 각자의 카드 위치 정보를 포함할 수 있다. 카드 위치 정보는 게임 환경에서 하나의 데크를 구성하는 카드들이 분배되는 순서 정보와 매칭될 수 있다. 즉, 카드들의 위치 정보에 따라서 게임 환경에서 순차적으로 분배되는 카드의 종류가 달라지게 된다.
서버(200)는 위치정보시드에 기초하여 선택된 데크 내의 카드의 위치를 업데이트할 수 있다. 예를 들어, 서버(200)는 조합 시드를 입력으로 하는 랜덤 함수의 출력 값인 위치정보시드를 생성할 수 있다.
위치정보시드는 서로 중복되지 않는 N개의 수들의 수열로 구성될 수 있다. 그리고 위치정보시드를 구성하는 N개의 수들 각각은 선택된 데크 내의 카드들의 위치에 대응할 수 있다. 그리고 서버(200)는 위치정보시드의 1번째 수에서 N번째 수까지 순차적으로 각 수가 지칭하는 숫자에 해당하는 위치의 카드들을 순서대로 재 배열하여 선택된 데크 내의 카드의 위치를 업데이트할 수 있다. 예들 들어, 선택된 데크에 포함된 카드가 6개 이고, 데크에 포함된 카드는 D1, D2, S1, S2, H1, H2라고 가정한다. 데크 내의 카드의 위치 정보가 업데이터되지 않은 경우라면 게임 환경에서 D1, D2, S1, S2, H1, H2 순으로 유저들에게 카드가 분배될 것이다. 또한, 위치정보시드가 {3,2,4,5,1,6}이라면, 수열 내의 1번째 수(3)에서 6번째 수(6)까지 순차적으로 각 수가 지칭하는 숫자에 해당하는 위치를 가지는 카드들이 순서대로 재 배열되어, 업데이트된 데크 내의 카드들의 위치는 S1, D2, S2, H1, D1, H2 순이 된다. 따라서 게임 환경에서 S1, D2, S2, H1, D1, H2 순으로 유저들에게 카드가 분배될 수 있다.
서버(200)는 위치정보시드를 변환할 수 있다. 예시적으로, 데크 내의 카드가 총 52개이고 위치정보시드가 {6, 10, 17, 44, 28, . . . , 2}인 총 52개의 수들로 구성된 수열로 이루어진 경우, 서버(200)는 위치정보시드 내의 수들 중 10 이상인 수에 대해서는 10의 자리를 제외하여 위치정보시드를 변환할 수 있다. 그리고 10, 20, 30, 40, 50의 경우 10의 자리를 제외하면 0이 되는데 0은 -1로 치환한다. 전술한 예에서, 변환된 위치정보시드는 {6, -1, 7, 4, 8, . . . , 2}인 총 52개의 수들로 구성된 수열로 이루진다. 그리고 서버(200)는 변환된 위치정보시드를 구성하는 각 수들을 제곱근할 수 있다. 그리고 제곱근이 long보다 커지면 지수의 가수부분만 사용하여 변환된 위치정보시드를 제차 변환할 수 있다. 그리고 제차 변환된 위치정보시드를 입력으로 하는 해시 함수의 출력 값인 제2 유저확인용 해시 값을 생성할 수 있다.
서버(200)는 게임 시작 전에 제1 및 제2 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 그리고 서버(200)는 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.
또한, 서버(200)는 게임 종료에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수 있다. 다른 측면에서 게임 종료 후 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수도 있다.
유저는 제1 유저확인용 해시 값과 서버시드를 이용하여 게임 결과를 검증할 수 있다. 또한, 실시예는 유저에게 변환된 위치정보시드와 제2 유저확인용 해시 값을 제공하여 유저로 하여금 데크 정보의 업데이트가 공정한 방식으로 이루어졌음을 신뢰하도록 한다.
또한, 실시예는 해킹 유저가 위치정보시드를 지속적으로 수집하여 게임 플레이 결과를 해킹하는 문제를 봉쇄하기 위하여, 위치정보시드를 유저측 디바이스(100)로 전송하지 않고, 변환된 위치정보시드를 전송한다.
또한, 실시예는 랜덤 값에 기초하여 선택된 데크 내의 카드의 위치를 변경함으로써, 해킹 유저가 플레이되는 데크 정보를 지속적으로 수집하여 게임 플레이 결과를 유추하게 되는 문제를 차단할 수 있다. 또한, 업데이트된 카드의 위치 정보에 대한 해시 값을 유저에게 전송함으로써 게임의 공정성에 대한 유저의 신뢰를 확보할 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.
Claims (7)
- 유저측 디바이스로부터 유저시드를 수신하는 단계;
상기 유저시드와 서버시드에 기초하여 제1 유저확인용 해시 값을 생성하는 단계;
상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계;
상기 랜덤 값에 기초하여 복수의 데크 중 어느 하나의 데크를 선택하는 단계;
위치정보시드에 기초하여 상기 선택된 데크 내의 카드의 위치를 업데이트하는 단계;
상기 위치정보시드에 기초하여 제2 유저확인용 해시 값을 생성하는 단계;
상기 제1 및 제2 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는 단계;
상기 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하는 단계; 및
상기 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제1 항에 있어서,
상기 제1 유저확인용 해시 값을 생성하는 단계는,
상기 유저시드와 상기 서버시드를 조합하여 조합시드를 생성하는 단계; 및
상기 조합시드에 기초하여 상기 제1 유저확인용 해시 값을 생성하는 단계;를 포함하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제1 항에 있어서,
상기 하나의 데크는 N(N은 2이상의 자연수)개의 카드를 포함하고,
상기 위치정보시드는 서로 중복되지 않는 N개의 수들의 수열로 구성되고,
상기 N개의 수들 각각은 상기 하나의 데크 내의 카드들의 위치에 대응하고,
상기 위치정보시드의 1번째 수에서 N번째 수까지 순차적으로 각 수가 지칭하는 숫자에 해당하는 위치의 카드들을 순서대로 재 배열하여 상기 선택된 데크 내의 카드의 위치를 업데이트하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제1 항에 있어서,
상기 위치정보시드를 변환하고, 상기 변환된 위치정보시드에 기초하여 상기 제2 유저 확인용 해시 값을 생성하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제4 항에 있어서,
상기 제1 및 제2 유저확인용 해시 값 및 상기 업데이트된 데크의 정보를 전송하고, 게임 종료에 응답하여 상기 서버시드 및 상기 변환된 위치정보시드를 전송하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제1 항에 있어서,
상기 유저측 디바이스의 요청에 응답하여 상기 유저시드 및 상기 서버시드를 이용하여 상기 제1 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계;를 더 포함하는
온라인 기반의 프로버블리티 페어 게임 방법. - 제5 항에 있어서,
상기 유저측 디바이스의 요청에 응답하여 상기 변환된 위치정보시드를 이용하여 상기 제2 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계;를 더 포함하는
온라인 기반의 프로버블리티 페어 게임 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180006344A KR102023427B1 (ko) | 2018-01-18 | 2018-01-18 | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180006344A KR102023427B1 (ko) | 2018-01-18 | 2018-01-18 | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190088163A KR20190088163A (ko) | 2019-07-26 |
KR102023427B1 true KR102023427B1 (ko) | 2019-09-23 |
Family
ID=67469835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180006344A KR102023427B1 (ko) | 2018-01-18 | 2018-01-18 | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102023427B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112090055A (zh) * | 2020-09-14 | 2020-12-18 | 涂先锋 | 一种公平性的桌面游戏数字化系统及验证方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306541A1 (en) | 2009-05-29 | 2010-12-02 | Apple Inc. | Hash function using a card shuffling process |
US20170084118A1 (en) | 2015-09-23 | 2017-03-23 | Spur Trail Investments, Inc. | System and method for provably fair gaming |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6030288A (en) * | 1997-09-02 | 2000-02-29 | Quixotic Solutions Inc. | Apparatus and process for verifying honest gaming transactions over a communications network |
KR100861649B1 (ko) | 2007-01-17 | 2008-10-02 | 엔에이치엔(주) | 온라인 게임 방법 및 시스템 |
-
2018
- 2018-01-18 KR KR1020180006344A patent/KR102023427B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306541A1 (en) | 2009-05-29 | 2010-12-02 | Apple Inc. | Hash function using a card shuffling process |
US20170084118A1 (en) | 2015-09-23 | 2017-03-23 | Spur Trail Investments, Inc. | System and method for provably fair gaming |
Also Published As
Publication number | Publication date |
---|---|
KR20190088163A (ko) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11420127B2 (en) | Device and method for recording game result by conducting game among plurality of users, and computer program | |
ES2837480T3 (es) | Métodos y aparato para una base de datos distribuida dentro de una red | |
WO2020146955A1 (en) | A method for generating random numbers in blockchain smart contracts | |
CN110941418A (zh) | 一种随机数生成的方法、装置、设备及可读存储介质 | |
US20130282640A1 (en) | Computerized system and method for calibrating sports statistics projections by player performance tiers | |
WO2020102456A1 (en) | Gambling systems and methods based on blockchain technology | |
CN115918030A (zh) | 使用区块链的可证明公平的游戏 | |
KR20190119454A (ko) | 가챠 시스템의 확률 정보를 획득하는 방법, 장치 및 컴퓨터 프로그램 | |
CN110585729A (zh) | 游戏帐号的匹配方法和装置、存储介质及电子装置 | |
CN114372589A (zh) | 一种联邦学习方法及相关装置 | |
KR101984808B1 (ko) | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 | |
BR112013033876B1 (pt) | Sistema para prover um conteúdo ou um aplicativo, métodos de controle para um sistema, para um dispositivo terminal e para um dispositivo de autenticação, dispositivo terminal, programa, dispositivo de autenticação, programa, e, mídia de armazenamento de informação | |
JP2018050973A (ja) | 乱数生成システム、乱数生成装置、乱数生成方法及びプログラム | |
KR102023427B1 (ko) | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 | |
KR102023430B1 (ko) | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 | |
JP6283846B2 (ja) | ゲームシステム、並びにそのライバル設定制御方法及びコンピュータプログラム | |
CN110490590A (zh) | 基于区块链的活动记录查询方法、装置、设备及存储介质 | |
US11784822B2 (en) | System and method for transmitting a notification to a network | |
US11113929B1 (en) | Integrated gaming system for providing real-time parlay options that satisfy user-supplied parlay parameters | |
KR102049004B1 (ko) | 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템 | |
CN107491509B (zh) | 一种用户属性信息挖掘方法、装置和介质 | |
KR20190119911A (ko) | 블록체인 기반 티켓 판매 시스템 | |
US8852000B1 (en) | Using crowd-sourcing to verify the accuracy of results of client-side determinations | |
CN114625338A (zh) | 随机数的获取方法、存储方法、装置、电子设备及介质 | |
CN112883338A (zh) | 一种基于带权重的随机洗牌算法的抽签方法及应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |