KR102023430B1 - Probability fair game methode and system bisised on on line - Google Patents

Probability fair game methode and system bisised on on line Download PDF

Info

Publication number
KR102023430B1
KR102023430B1 KR1020180006395A KR20180006395A KR102023430B1 KR 102023430 B1 KR102023430 B1 KR 102023430B1 KR 1020180006395 A KR1020180006395 A KR 1020180006395A KR 20180006395 A KR20180006395 A KR 20180006395A KR 102023430 B1 KR102023430 B1 KR 102023430B1
Authority
KR
South Korea
Prior art keywords
seed
user
server
game
side device
Prior art date
Application number
KR1020180006395A
Other languages
Korean (ko)
Other versions
KR20190088189A (en
Inventor
이현걸
박용관
임철재
Original Assignee
엔에이치엔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔 주식회사 filed Critical 엔에이치엔 주식회사
Priority to KR1020180006395A priority Critical patent/KR102023430B1/en
Publication of KR20190088189A publication Critical patent/KR20190088189A/en
Application granted granted Critical
Publication of KR102023430B1 publication Critical patent/KR102023430B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/40Features 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/401Secure communication, e.g. using encryption or authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computer Security & Cryptography (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

본 발명에 따른 실시예는, 유저측 디바이스로부터 유저시드를 수신하는 단계; 상기 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성하는 단계; 상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계; 상기 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계; 및 상기 유저확인용 해시 값 및 상기 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수 있다.An embodiment according to the present invention comprises the steps of: receiving a user seed from a user side device; Generating a hash value for user verification based on the user seed and the server seed; Generating a random value based on the user seed and the server seed; Determining a probability-based variable component in a game based on the random value; And transmitting game data including the hash value for the user confirmation and the determined probability-based variable component to the user side device.

Description

온라인 기반의 프로버블리티 페어 게임 방법 및 시스템{PROBABILITY FAIR GAME METHODE AND SYSTEM BISISED ON ON LINE}PROBABILITY FAIR GAME METHODE AND SYSTEM BISISED ON ON LINE

본 발명은 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for online fairness fair game.

네트워크의 보급 환경의 발달과 함께, 근래 들어 다양한 콘텐츠를 인터넷상으로 제공하는 서비스가 등장하고 있고, 이러한 콘텐츠 제공 서비스 중에서도 게임 콘텐츠 제공 서비스는 시장의 확대와 보급 속도가 가장 급격하게 성장하는 분야이다. 온라인을 통한 게임 콘텐츠 제공 서비스는 시공간의 제약 없이 원격지에 있는 불특정 사람과 동일한 게임을 플레이할 수 있다는 장점이 있다. 특히 인터넷을 통한 카드나 화투 게임은 이미 공지된 게임 방식으로 게임 콘텐츠 서비스를 제공하고 있어 현재 제공되고 있는 많은 게임 서비스들 중 가장 두각을 나타내고 있는 게임 분야이다.In recent years, with the development of the network distribution environment, services that provide various contents on the Internet have emerged. Among these contents providing services, game contents providing service is a field in which the market expansion and dissemination rate are most rapidly growing. Game content providing service through online has the advantage that it can play the same game with an unspecified person in a remote place without limitation of space and time. In particular, the card or the Hwatu game over the Internet is a game field that is the most prominent among the many game services that are currently provided by providing game content services in a known game method.

또한, 카드나 화투 게임은 대표적인 확률 기반의 게임에 해당한다. 따라서, 게임 서비스를 제공하는 주체는 확률 기반 게임의 공정성에 대한 유저들의 신뢰성을 확보하기 위하여 많은 기술적 장치를 마련하고 있다. 그러나, 유저 스스로 확률이 조작된 것이 아님을 검증하는 것이 어렵고, 온라인 확률 기반 게임은 진정한 난수가 아닌 소프트웨어적으로 생성된 난수, 즉 의사 난수를 기반으로 랜덤 값을 추출하는 점 때문에 여전히 적지 않은 수의 유저들은 확률 기반 게임의 공정성에 대한 의문을 표하고 있다. 더욱이 최근 레인보우 테이블 제작과 같이 대량의 컴퓨팅 자원을 활용하여 게임에서 나타날 수 있는 랜덤 값을 모두 수집하는 해킹 방식의 등장으로 인하여 확률 기반 게임에 대한 유저의 신뢰를 확보하기 점점 어려워지고 있다.In addition, a card or a card game is a typical probability based game. Therefore, the subject providing the game service has provided a number of technical devices in order to ensure the user's confidence in the fairness of the probability-based game. However, it is difficult for the user to verify that the probabilities are not manipulated by themselves, and online probability based games still have a small number of random numbers based on software-generated random numbers, ie, pseudo random numbers, rather than true random numbers. Users are questioning the fairness of probability-based games. Moreover, due to the emergence of a hacking method that collects all random values that can appear in a game by using a large amount of computing resources, such as making a rainbow table, it is increasingly difficult to secure user's trust in a probability-based game.

한국공개특허공보 10-2008-0085102 A1Korean Laid-Open Patent Publication 10-2008-0085102 A1

실시예는 시드 및 해시 값 생성에 대한 가역성을 제거하고, 충분한 프로세스 파워를 이용한 시드 유출 가능성을 차단하여 확률 기반 온라인 게임에 대한 유저의 신뢰를 확보하는 것을 목적으로 한다.Embodiments aim to remove reversibility for seed and hash value generation, and to secure the user's confidence in probability-based online games by blocking the possibility of seed leakage using sufficient process power.

또한, 실시예는 유저가 직접 확률 조작이 아님을 검증할 수 있도록 한 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템을 제공하는데 목적이 있다.It is also an object of the present invention to provide an online-based Probability Fair game method and system that allows a user to verify that the user is not a random manipulation.

실시예는, 게임서버가 유저측 디바이스로부터 유저시드를 수신하는 단계; 상기 게임서버가 상기 유저시드와 제1 서버시드를 조합하여 제1 조합시드를 생성하는 단계; 상기 게임서버가 상기 제1 조합시드에 기초하여 제1 해시 값을 생성하는 단계; 상기 게임서버가 제2 서버시드에 기초하여 제2 해시 값을 생성하는 단계; 상기 게임서버가 상기 제1 해시 값과 상기 제2 해시 값을 조합하여 제2 조합시드를 생성하는 단계; 및 상기 게임서버가 상기 제2 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계; 상기 게임서버가 상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계; 상기 게임서버가 상기 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계; 및 상기 게임서버가 상기 유저확인용 해시 값 및 상기 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수 있다.An embodiment may include: receiving, by a game server, a user seed from a user side device; Generating, by the game server, a first combined seed by combining the user seed and the first server seed; Generating, by the game server, a first hash value based on the first combined seed; Generating, by the game server, a second hash value based on a second server seed; Generating, by the game server, a second combined seed by combining the first hash value and the second hash value; And generating, by the game server, a hash value for user verification based on the second combined seed. Generating, by the game server, a random value based on the user seed and the server seed; Determining, by the game server, a probability-based variable component in a game based on the random value; And transmitting, by the game server, game data including the hash value for the user identification and the determined probability-based variable component to the user-side device. have.

다른 측면에서, 상기 서버시드는 제1 및 제2 서버시드를 포함하고, 상기 유저확인용 해시 값을 생성하는 단계는, 상기 유저시드와 상기 제1 서버시드를 조합하여 제1 조합시드를 생성하는 단계; 상기 제1 조합시드에 기초하여 제1 해시 값을 생성하는 단계; 상기 제2 서버시드에 기초하여 제2 해시 값을 생성하는 단계; 상기 제1 해시 값과 상기 제2 해시 값을 조합하여 제2 조합시드를 생성하는 단계; 및 상기 제2 조합시드에 기초하여 상기 유저확인용 해시 값을 생성하는 단계;를 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.In another aspect, the server seed includes a first server seed and a second server seed, and the generating of the hash value for the user verification may include: generating a first combined seed by combining the user seed and the first server seed; ; Generating a first hash value based on the first combined seed; Generating a second hash value based on the second server seed; Generating a second combined seed by combining the first hash value and the second hash value; And generating a hash value for the user identification based on the second combined seed.

또 다른 측면에서, 상기 게임서버가 상기 유저시드 및 상기 제1 서버시드에 기초하여 상기 랜덤값을 생성하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.In another aspect, the game server may provide an online-based provisiony pair game method for generating the random value based on the user seed and the first server seed.

또 다른 측면에서, 상기 게임서버가 게임 시작 전 상기 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.In another aspect, the game server may provide an online-based provisiony pair game method for transmitting the user confirmation hash value to the user side device before the game starts.

또 다른 측면에서, 상기 게임서버가 게임 종료에 응답하여 상기 서버시드를 상기 유저측 디바이스로 전송하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.In another aspect, the game server may provide an online-based provisiony fair game method for transmitting the server seed to the user side device in response to the game end.

또 다른 측면에서, 상기 게임서버가 상기 유저측 디바이스의 요청에 응답하여 상기 유저시드 및 상기 서버시드를 이용하여 상기 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 상기 유저측 디바이스로 전송하는 단계;를 더 포함하는 온라인 기반의 프로버블리티 페어 게임 방법을 제공할 수도 있다.In another aspect, the user-side device has a verification page that allows the game server to verify that the user confirmation hash value is generated using the user seed and the server seed in response to a request from the user-side device. It may also provide a method for online-based provisionality fair game further comprising the step of transmitting to.

실시예는 시드 및 해시 값 생성에 대한 가역성을 제거할 수 있다.Embodiments may remove reversibility for seed and hash value generation.

또한, 실시예는 대량의 컴퓨팅 자원을 이용한 시드나 랜덤 값 해킹 가능성을 차단할 수 있다.In addition, the embodiment may block the possibility of seed or random value hacking using a large amount of computing resources.

또한, 실시예는 시드의 유출이 발생한 상황이나 레인보우 테이블이 존재하는 상황 하에서도 유저가 실시간으로 게임 결과를 유추할 수 없도록 한다.In addition, the embodiment prevents the user from inferring the game result in real time even under the situation in which the leakage of the seed occurs or the rainbow table exists.

실시예는 유저가 직접 확률 조작이 아님을 검증할 수 있도록 하여 게임 공정성에 대한 유저의 신뢰성을 높일 수 있다.Embodiments can increase the user's confidence in the game fairness by allowing the user to verify that the user is not a direct manipulation.

도 1a는 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이다.
도 1b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이다.
도 1c는 프로버블리티 페어 게임 시스템을 설명하기 위한 개념도이다.
도 2a 내지 도 2c는 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 2d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 3c 및 도 3d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 4a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4b는 다른 측면에서의 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 4c는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
도 5a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.
도 5b는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.
1A is an exemplary diagram of a provisional fair game system according to an embodiment of the present invention.
1B is an exemplary diagram of a provisional fair game system according to another embodiment of the present invention.
FIG. 1C is a conceptual diagram for describing a provisiony fair game system. FIG.
2A through 2C are flowcharts of a method of fairness fair game according to an exemplary embodiment of the present invention.
Figure 2d is a conceptual diagram for helping to understand the Probability Fair game method.
3A and 3B are flowcharts of a method of fairness fair game according to another embodiment of the present invention.
3C and 3D are conceptual views for aiding in understanding the Probability Fair game method.
Figure 4a is a flow diagram for a method of fairness fair game according to another embodiment of the present invention.
4B is a flowchart of a method of Probability Pair game in another aspect.
Figure 4c is a conceptual diagram to help understand the Probability Fair game method.
5A is a flowchart of a method of fairness fair game according to another embodiment of the present invention.
FIG. 5B is a conceptual diagram to help understand a method of playing a fairness pair.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. Effects and features of the present invention, and methods of achieving them will be apparent with reference to the embodiments described below in detail together with the drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various forms. In the following embodiments, the terms first, second, etc. are used for the purpose of distinguishing one component from other components rather than a restrictive meaning. Also, the singular forms “a”, “an” and “the” include plural forms unless the context clearly indicates otherwise. In addition, the terms including or have means that the features or components described in the specification are present, and does not preclude the possibility of adding one or more other features or components. In addition, in the drawings, components may be exaggerated or reduced in size for convenience of description. For example, the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of description, and thus the present invention is not necessarily limited to the illustrated.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be denoted by the same reference numerals, and redundant description thereof will be omitted. .

도 1a는 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이고, 도 1b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 시스템에 대한 예시도이며, 도 1c는 프로버블리티 페어 게임 시스템을 설명하기 위한 개념도이다.FIG. 1A is an exemplary diagram of a provisional pair game system according to an embodiment of the present invention, FIG. 1B is an exemplary diagram of a provisional pair game system according to another embodiment of the present invention, and FIG. It is a conceptual diagram for demonstrating a utility game system.

도 1a 및 도 1b를 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 시스템(10)은 적어도 하나의 유저측 디바이스(100), 서버(200) 및 네트워크(300)를 포함할 수 있다.1A and 1B, a provisional fair game system 10 according to an embodiment of the present invention may include at least one user-side device 100, a server 200, and a network 300. .

도 1a 및 도 1b의 각 요소들은 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들 또는 펌웨어 컴포넌트들 또는 이러한 컴포넌트들의 임의의 조합으로 구현되거나 연관될 수 있다. 또한, 도 1a 및 도 1b의 요소들은 예를 들어 서버들, 소프트웨어 프로세서들, 그리고 엔진들 및/또는 다양한 임베디드 시스템들로 구현되거나 또는 연관될 수 있다. 그리고 요소들은 콘텐츠비딩 및/또는 분산 네트워크로써 제공할 수 있다.Each element of FIGS. 1A and 1B may be implemented or associated with hardware components, software components or firmware components or any combination of these components. In addition, the elements of FIGS. 1A and 1B may be implemented or associated with, for example, servers, software processors, and engines, and / or various embedded systems. And elements may be provided as content bidding and / or distributed network.

유저측 디바이스(100)는 다양한 작업을 수행하는 애플리케이션들을 실행하기 위한 유저가 사용하는 하나 이상의 컴퓨터 또는 다른 전자 장치이다. 예컨대, 컴퓨터, 랩탑 컴퓨터, 스마트 폰, 모바일 전화기, PDA, 태블릿 PC, 혹은 서버(200)와 통신하도록 동작 가능한 임의의 다른 디바이스를 포함한다. 다만 이에 한정되는 것은 아니고 유저측 다비이스(100)는 다양한 머신들 상에서 실행되고, 다수의 메모리 내에 저장된 명령어들을 해석하여 실행하는 프로세싱로직을 포함하고, 외부 입력/출력 디바이스상에 그래픽 사용자 인터페이스(GUI)를 위한 그래픽 정보를 디스플레이하는 프로세스들과 같이 다양한 기타 요소들을 포함할 수 있다. 아울러 유저측 다비이스(100)는 입력 장치(예를 들면 마우스, 키보드, 터치 감지 표면 등) 및 출력 장치(예를 들면 디스플레이장치, 모니터, 스크린 등)에 접속될 수 있다. 유저측 디바이스(100)에 의해 실행되는 애플리케이션들은 게임 어플리케이션, 웹 브라우저, 웹 브라우저에서 동작하는 웹 애플리케이션, 워드 프로세서들, 미디어 플레이어들, 스프레드시트들, 이미지 프로세서들, 보안 소프트웨어 또는 그 밖의 것을 포함할 수 있다.The user side device 100 is one or more computers or other electronic devices used by a user to execute applications that perform various tasks. For example, a computer, laptop computer, smart phone, mobile phone, PDA, tablet PC, or any other device operable to communicate with server 200. However, the present invention is not limited thereto, and the user-side device 100 may include a processing logic that is executed on various machines and interprets and executes instructions stored in a plurality of memories, and includes a graphical user interface (GUI) on an external input / output device. May include a variety of other elements, such as processes for displaying graphical information. In addition, the user-side device 100 may be connected to an input device (eg, a mouse, a keyboard, a touch sensitive surface, etc.) and an output device (eg, a display device, a monitor, a screen, etc.). Applications executed by the user-side device 100 may include game applications, web browsers, web applications running in a web browser, word processors, media players, spreadsheets, image processors, security software or the like. Can be.

또한, 유저측 디바이스(100)는 명령들을 저장하는 적어도 하나의 메모리(101) 및 적어도 하나의 프로세서(102)를 포함하고, 명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호를 전송, 유저시드 생성, 유저시드 입력 수신, 유저시드 전송, 게임 데이터 송수신, 각종 정보 수신하는 동작들을 포함할 수 있다.In addition, the user-side device 100 includes at least one memory 101 and at least one processor 102 that store instructions, the instructions being configured to cause the processor 102 to perform operations. By the operation, the operations may include operations for transmitting a game execution request signal, generating a user seed, receiving a user seed input, transmitting a user seed, transmitting and receiving game data, and receiving various kinds of information.

유저측 디바이스(100)에서 게임 어플리케이션이 실행되면, 유저측 디바이스(100)에서 게임 환경이 구성된다. 그리고 게임 어플리케이션은 네트워크(300)를 통해 서버(200)와 게임 데이터를 교환하여 유저측 디바이스(100) 상에서 게임 서비스가 실행되도록 한다.When a game application is executed in the user side device 100, a game environment is configured in the user side device 100. In addition, the game application exchanges game data with the server 200 through the network 300 so that the game service is executed on the user side device 100.

서버(200)가 제공하는 게임 서비스는 서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저측 디바이스(100) 상에서 구현되는 게임 환경에서 하나의 실제 유저와 적어도 하나의 컴퓨터 유저가 함께 게임을 플레이 한다. 다른 측면에서, 서버(200)가 제공하는 게임 서비스는 복수의 유저측 디바이스가 참여하여 게임이 플레이되는 형태로 구성될 수도 있다.The game service provided by the server 200 may be configured such that a virtual computer user and an actual user provided by the server 200 participate in a game together. This is one real user and at least one computer user play a game together in a game environment implemented on the user-side device 100. In another aspect, the game service provided by the server 200 may be configured in a form in which a plurality of user-side devices participate and a game is played.

서버(200)가 제공하는 게임 서비스는 프로버블리티 페어 기반의 확률 게임 서비스가 될 수 있다. 여기서의 확률 게임 서비스는 예시적으로 트럼프(trump) 등과 같이 52장의 다른 카드의 조합을 미리 결정된 룰(rule)에 근거하여 각 유저가 카드를 모으거나, 혹은 각 유저가 소지한 카드를 늘어놓음으로써 승패를 결정하는 게임이 있다. 또 다른 예로써는, 주사위와 같이 정해진 수 범위 내에서 무작위로 결정된 수에 따라서 승패가 결정되는 게임이 있다. 다만, 이에 제한되는 것은 아니고, 카드를 이용하는 포커, 블랙잭, 화투나 각종 주사위 게임이 있을 수 있으며 게임에서 사용되는 카드의 수도 게임의 종류나 동일한 게임이라도 게임의 룰에 따라 달라질 수 있다.The game service provided by the server 200 may be a probability game service based on a probability pair. In this case, the probability game service is based on a combination of 52 different cards, such as trumps, based on a predetermined rule, or a card held by each user. There is a game to determine the outcome. Another example is a game in which winning or losing is decided according to a randomly determined number within a predetermined number range such as dice. However, the present invention is not limited thereto, and there may be poker, blackjack, playing cards, or various dice games using cards, and the number of cards used in the game may vary depending on the rules of the game even if the same game is used.

도 1c를 참조하면, 서버(200)는 적어도 하나의 유저측 디바이스(100)로 게임 서비스를 제공할 수 있다. 서버(200)는 유저측 디바이스(100)로부터 게임 실행 요청을 수신하면, 게임을 구성하는 구성 요소 중에서 일부 구성 요소인 확률 기반 가변 구성 요소를 구성할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 대한 데이터를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송한다. 확률 기반 가변 구성 요소의 예시로는 카드 게임에서의 데크(Deck) 정보가 될 수 있다. 데크는 카드 한 벌을 의미한다. 그리고 확률에 따라서 복수의 데크 중 어느 하나가 선택될 수 있다. 여기서의 복수의 데크들 각각을 구성하는 카드들은 서로 섞임이 서로 다를 수 있다. 복수의 데크들 각각을 구성하는 카드들의 섞임이 다르므로 복수의 데크 중 어떤 데크가 선택되느냐에 따라서 게임 환경에서 유저들에게 분배될 카드의 종류가 달라지게 된다. 또 다른 예로, 확률 기반 가변 구성 요소는 주사위 게임에서의 주사위가 나타낼 수의 정보가 될 수 있다. 다만, 확률 기반 가변 구성 요소는 전술한 예시에 한정되는 것은 아니고, 게임을 구성하는 구성 요소 중에서 랜덤하게 결정되는 모든 게임 구성 요소가 여기에 해당될 수 있다.Referring to FIG. 1C, the server 200 may provide a game service to at least one user side device 100. When the server 200 receives a game execution request from the user device 100, the server 200 may configure a probability-based variable component, which is a part of the components of the game. The server 200 transmits game data including data about the probability-based variable component to the user side device 100. An example of the probability-based variable component may be deck information in a card game. Deck means a deck of cards. One of the plurality of decks may be selected according to the probability. The cards constituting each of the plurality of decks herein may be different from each other. Since the cards constituting each of the plurality of decks are different from each other, the type of cards to be distributed to users in the game environment varies according to which deck of the plurality of decks is selected. As another example, the probability-based variable component may be information that a dice in a dice game can represent. However, the probability-based variable component is not limited to the above-described example, and all game components randomly determined among the components constituting the game may correspond thereto.

서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201) 및 적어도 하나의 프로세서(202)를 포함하고, 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 랜덤 값 요청 신호 전송, 서버시드 생성, 유저시드 수신, 조합시드 생성, 해시 값 생성, 확률 기반 가변 구성 요소 결정, 메모리(210) 내의 데이터 검색, 게임 데이터 송수신 및 각종 전송 전송 동작을 포함할 수 있다.The server 200 includes at least one memory 201 and at least one processor 202 that store instructions, which instructions are executable by the processor 202 to cause the processor 202 to perform operations. The operations include receiving a game execution request signal, transmitting a random value request signal, generating a server seed, receiving a user seed, generating a combined seed, generating a hash value, determining a probability-based variable component, retrieving data in the memory 210, and transmitting and receiving game data. And various transmission transmission operations.

또한, 서버(200)는 확률 기반 가변 구성 요소를 생성하기 위하여 시드, 랜덤 함수 및 해시 함수를 이용할 수 있다. 랜덤 함수는 시드를 입력 받아 임의의 길이의 랜덤 값을 출력하는 함수이다. 예를 들어, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 복수의 데크 정보들 각각에 매칭시키고, 복수의 데크 정보들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 데크 정보를 선택할 수 있다. 다른 예로, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 주사위가 표현 가능한 수들 각각에 매칭시키고, 주사위가 표현 가능한 수들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 주사위의 수를 선택할 수 있다. 본 명세서에서 설명하는 랜덤 함수들은 서로 다른 종류의 랜덤 함수가 될 수 있다. 따라서, 랜덤 함수들은 각각 동일한 입력에 대한 서로 다른 값을 출력할 수 있으나 이에 한정하는 것은 아니다.In addition, the server 200 may use a seed, a random function, and a hash function to generate a probability-based variable component. The random function is a function that receives a seed and outputs a random value of arbitrary length. For example, the server 200 may match all of the random values output from the random function to each of the plurality of deck information, and select deck information previously matched to the random value output from the random function among the plurality of deck information. have. As another example, the server 200 may match all of the random values that can be output from the random function to each of the numbers that can be represented by the dice, and select the number of dice previously matched to the random values output from the random function among the numbers that can be represented by the dice. have. The random functions described herein may be different kinds of random functions. Accordingly, the random functions may output different values for the same input, but the present invention is not limited thereto.

해쉬 함수는 임의의 길이를 갖는 메시지인 시드를 입력 받아 고정된 길이의 해쉬 값을 출력하는 함수이다. 해쉬 함수는 키를 사용하지 않으므로 같은 입력에 대해서는 항상 같은 출력이 나오게 된다. 이러한 함수를 사용하는 목적은 입력 시드에 대한 변경할 수 없는 증거 값을 뽑아냄으로서 시드의 오류나 변조를 탐지할 수 있는 무결성을 제공할 수 있다. 해시 함수의 예시로는, SHA(Secure Hash Algorithm), HAS-160가 있으나 이에 제한되는 것은 아니고 공지의 해시 함수를 이용할 수 있다.The hash function receives a seed having a random length and outputs a fixed length hash value. Since hash functions do not use keys, the same output will always be the same for the same input. The purpose of using these functions is to extract immutable evidence for the input seed to provide integrity to detect errors or tampering with the seed. Examples of hash functions include, but are not limited to, Secure Hash Algorithm (SHA) and HAS-160, and known hash functions may be used.

서버(200)는 랜덤 함수와 해시 함수의 입력 값 중 적어도 일부가 되는 시드를 생성할 수 있고, 아울러 게임 서비스를 구성하여 이를 유저측 디바이스(100)로 제공할 수 있다. 다른 측면에서, 서버(200)는 시드를 생성하는 시드 생성 서버(210) 및 게임서버(220)로 구성될 수 있다. 게임서버(220)는 시드 생성 서버(210)로부터 생성된 시드를 수신하여 확률 기반 가변 구성 요소를 생성하고 유저측 디바이스(100)로 게임 서비스를 제공할 수 있다.The server 200 may generate a seed that is at least part of input values of a random function and a hash function, and may configure a game service and provide the seed to the user side device 100. In another aspect, the server 200 may be composed of a seed generation server 210 and a game server 220 for generating a seed. The game server 220 may receive the seed generated from the seed generation server 210 to generate a probability-based variable component and provide a game service to the user side device 100.

네트워크(300)는 유저측 디바이스(100) 및 서버(200)들과 같은, 다양한 네트워크 노드들 사이에서 통신을 용이하게 하는 임의의 요소 또는 시스템을 포함할 수 있다. 예컨대 네트워크(300)는 컴퓨터 네트워크들, 전화 또는 다른 통신 네트워크들, 인터넷 등과 같은 하나 이상의 전기통신 네트워크들을 포함할 수 있다. 아울러 네트워크(300)는 광역(예: WAN) 또는 근거리(예: LAN)를 포괄하는 공유형 공공, 또는 사설의 데이터 네트워크를 포함할 수 있다. 일부 구현들에서, 네트워크(300)는 인터넷 프로토콜(IP)을 사용하여 패킷 교환의 방식으로 데이터 교환을 용이하게 할 수 있다. 또한, 네트워크(300)는 유선 및/또는 무선 연결 및 통신을 용이하게 할 수 있다.Network 300 may include any element or system that facilitates communication between various network nodes, such as user-side device 100 and servers 200. For example, network 300 may include one or more telecommunication networks, such as computer networks, telephone or other communications networks, the Internet, and the like. In addition, the network 300 may include a shared public or private data network covering a wide area (eg, WAN) or local area (eg, LAN). In some implementations, the network 300 can facilitate data exchange in the manner of packet exchange using the Internet Protocol (IP). In addition, the network 300 may facilitate wired and / or wireless connections and communications.

도 2a 내지 도 2c는 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이고, 도 2d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.2A to 2C are flowcharts illustrating a method for playing a fairness pair game according to an embodiment of the present invention, and FIG.

도 2a 내지 도 2d를 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법(S100)은 매크로 정보에 기초하여 서버시드를 생성하는 단계(S110), 서버시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S120), 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S130), 서버시드에 기초하여 랜덤 값을 생성하는 단계(S140), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S150), 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S160) 및 게임 종료 후 서버시드를 유저측 디바이스로 전송하는 단계(S170)를 포함할 수 있다.2A to 2D, in the method of Probability Fair Game S100 according to an embodiment of the present invention, generating a server seed based on macro information (S110), and a hash for user verification based on the server seed. Generating a value (S120), transmitting a hash value for the user confirmation to the user side device (S130), generating a random value based on the server seed (S140), and based on a probability in the game based on the random value. Determining a variable component (S150), transmitting game data including the determined probability-based variable component (S160) and transmitting a server seed to the user-side device after the game ends (S170). It may include.

보다 상세하게는, 서버(200)는 매크로 정보에 기초하여 서버시드를 생성할 수 있다(S110). 매크로 정보는 일정한 규칙성 없이 매 게임 마다 변동 가능한 정보이다. 예를 들어, 매크로 정보는 유저 정보 및 게임 플레이 정보를 포함할 수 있다. 유저 정보는 유저의 게임 등급 레벨, 특정 게임에서의 승패 정보, 특정 게임에서의 게임 등수나 유저가 보유한 가상 머니 등 매 게임 마다 변동이 가능한 유저만의 고유 정보가 될 수 있다. 또한, 게임 플레이 정보는 게임의 진행 과정 정보, 게임의 결과 정보 등 특정 게임 환경에서 나타난 다양한 게임 시나리오 정보가 될 수 있다.In more detail, the server 200 may generate a server seed based on the macro information (S110). Macro information is information that can change from game to game without any regularity. For example, the macro information may include user information and game play information. The user information may be unique information unique to the user that can be changed in every game, such as a game rating level of the user, win / loss information in a specific game, game ranking in a specific game, or virtual money held by the user. In addition, the game play information may be various game scenario information shown in a specific game environment, such as game progress information and game result information.

서버(200)는 유저측 디바이스(100)에 게임 서비스를 제공하면서 유저 정보 및 게임 플레이 정보를 데이터베이스화하여 저장하고, 이를 지속적으로 업데이트 할 수 있다.The server 200 may store and store the user information and the game play information in a database while providing a game service to the user device 100, and may continuously update the same.

도 2a를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임에서의 미리 설정된 등수에 해당하는 유저의 게임 머니 정보를 검색하는 단계(S111a), 검색한 게임 머니 정보에 기초하여 서버시드를 생성하는 단계(S112a)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서 1등을 기록한 유저를 데이터베이스에서 검색하고 해당 유저의 게임 머니 정보를 읽어 드릴 수 있다. 그리고 게임 머니 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다.Referring to FIG. 2A, an exemplary server seed generation step (S110) may be performed by retrieving game money information of a user corresponding to a predetermined rank in a previous game from a database (S111a), based on the retrieved game money information. Generating a server seed may include a step (S112a). For example, the server 200 may search a database for a user who recorded first place in a previous game and read game money information of the corresponding user. In addition, an output value of a random function that takes game money information as an input can be used as a server seed.

도 2b를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임에서의 카드 분배 순서 정보를 검색하는 단계(S111b) 및 카드 분배 순서 정보에 기초하여 서버시드를 생성하는 단계(S112b)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서의 게임 시나리오에 따른 유저들에게 카드가 분배된 순서 정보를 데이터베이스에서 검색할 수 있다. 그리고 검색된 카드 분배 순서 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다. 여기서의 카드 분배 순서는 게임 플레이 과정 중의 특정 시점에 분배된 카드에 대한 정보가 될 수 있다. 다른 측면에서, 게임 플레이 과정 중의 특정 시구간 동안 분배된 모든 카드에 대한 정보가 될 수 있다. 또 다른 측면에서, 게임 플레이 과정 중의 특정 시점부터 분배된 x개의 카드에 대한 정보가 될 수 있다. 다만, 이에 한정하는 것은 아니다.Referring to FIG. 2B, an exemplary server seed generation step S110 may include retrieving card distribution order information of a previous game from a database (S111b) and generating a server seed based on the card distribution order information (S112b). ) May be included. For example, the server 200 may search the database for order information in which cards are distributed to users according to a game scenario in a previous game. The server seed may use an output value of a random function that receives the retrieved card distribution order information. The card dispensing order may be information about cards dispensed at a specific point in time during the game play process. In another aspect, it may be information about all cards dispensed during a particular time period during the game play process. In another aspect, it may be information about the x cards dispensed from a particular point in time during the game play process. However, the present invention is not limited thereto.

도 2c를 참조하면, 예시적으로 서버시드 생성 단계(S110)는 데이터베이스로부터 이전 게임 플레이 상황에서 유저들의 버린 카드 정보를 검색하는 단계(S111c) 및 버린 카드 정보에 기초하여 서버시드를 생성하는 단계(S112C)를 포함할 수 있다. 예를 들어, 서버(200)는 이전 게임에서의 게임 시나리오에 따른 유저들이 버린 카드 정보를 데이터베이스에서 검색할 수 있다. 그리고 검색된 카드 정보를 입력으로 하는 랜덤 함수의 출력 값을 서버시드로 이용할 수 있다. 여기서의 유저들이 버린 카드 정보는 게임 플레이 과정 중의 특정 시점에 버려진 카드에 대한 정보가 될 수 있다. 다른 측면에서, 게임 플레이 과정 중의 특정 시구간 동안 버려진 카드들에 대한 정보가 될 수 있다. 또 다른 측면에서, 게임 플레이 과정 중의 특정 시점부터 버려진 x개의 카드에 대한 정보가 될 수 있다. 다만, 이에 한정하는 것은 아니다.Referring to FIG. 2C, an exemplary server seed generation step S110 may include retrieving discarded card information of users in a previous game play situation from a database (S111c) and generating a server seed based on discarded card information ( S112C). For example, the server 200 may search the database for card information discarded by users according to a game scenario of a previous game. In addition, an output value of a random function using the retrieved card information as an input may be used as a server seed. The card information discarded by the users may be information about a card discarded at a specific time during the game play process. In another aspect, it may be information about cards discarded during a particular time period during the gameplay process. In another aspect, it may be information about the x cards discarded from a certain point in the game play process. However, the present invention is not limited thereto.

한편, 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.On the other hand, the server seed may be composed of numbers, letters or strings or strings or a combination of numbers and characters, but is not limited thereto.

또한, 서버(200)는 매크로 정보에 기초하여 생성한 서버시드가 32bit 또는 64bit의 길이에 해당하지 않는 경우 인코딩 또는 해시를 통해 수의 길이를 조절할 수도 있다.In addition, when the server seed generated based on the macro information does not correspond to the length of 32bit or 64bit, the server 200 may adjust the length of the number through encoding or hashing.

서버(200)는 생성한 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 또한, 서버(200)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다.The server 200 may generate a hash value for user verification, which is an output value of a hash function that takes the generated server seed as an input. In addition, the server 200 may transmit a hash value for user verification to the user device 100.

유저측 디바이스(100)는 유저확인용 해시 값을 수신하면 이를 디스플레이할 수 있다. 다른 측면에서, 유저측 디바이스(100)는 유저가 유저확인용 해시 값 표시 아이콘을 디스플레이할 수 있다. 그리고 해당 아이콘에 대한 유저의 선택에 응답하여 서버(200)로부터 수신한 유저확인용 해시 값을 디스플레이할 수 있다.The user-side device 100 may display the hash value for checking the user when it is received. In another aspect, the user-side device 100 may display a hash value display icon for the user confirmation. In response to the user's selection of the icon, a hash value for the user confirmation received from the server 200 may be displayed.

서버(200)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 일부 실시예에 따르면, 32bit 체제인 서버(200)에서의 서버시드는 2의 32승에 해당하거나 이에 근접한 숫자로 구성될 수 있고, 64bit 체제인 서버(200)에서의 서버시드는 2의 64승에 해당하거나 이에 근접한 숫자로 구성될 수 있다. The server 200 may generate a random value that is an output value of a random function that takes a server seed as an input. According to some embodiments, the server seed in the server 200 in the 32-bit system may be configured to a number equal to or close to 32 powers of two, and the server seed in the server 200 in the 64-bit system corresponds to 64 powers of two. Or a number close to this.

또한, 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 또한, 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 유저측 디바이스(100)는 수신된 게임 데이터에 기초하여 게임을 플레이할 수 있다.In addition, the server 200 may determine the probability-based variable component in the game based on the generated random value. In addition, the server 200 may transmit game data including the determined probability-based variable component to the user side device 100. The user-side device 100 may play a game based on the received game data.

또한, 서버(200)는 게임 종료 후 서버시드를 유저측 디바이스(100)로 전송할 수 있다.In addition, the server 200 may transmit the server seed to the user-side device 100 after the game ends.

또한, 프로버블리티 페어 게임 방법(S100)은 유저측 디바이스의 요청에 응답하여 서버시드를 이용하여 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 전송하는 단계를 더 포함할 수 있다.In addition, the provisional fair game method (S100) may further include the step of transmitting a verification page for verifying that the hash value for the user confirmation is generated using the server seed in response to a request from the user side device. have.

검증용페이지에는 서버(200)가 사용한 해시 함수가 미리 프로그램될 수 있다. The hash page used by the server 200 may be programmed in the verification page.

다른 측면에서, 검증용페이지는 서버(200)가 사용한 해시 함수를 이용하여 출력 값을 계산할 수 있도록 하는 페이지로 연결하는 링크를 포함하는 형태로 구성될 수도 있다. 따라서, 유저는 검증용페이지 상에서(또는, 검증용페이지 상의 링크에 연결된 페이지 상에서) 서버(200)로부터 수신한 서버시드를 입력하여 서버(200)로부터 수신한 유저확인용 해시 값과 동일한 값이 나오는지를 검증할 수 있다.In another aspect, the verification page may be configured to include a link to a page that allows the server 200 to calculate an output value using a hash function used by the server 200. Therefore, the user inputs a server seed received from the server 200 on the verification page (or on a page connected to a link on the verification page) and outputs the same value as the hash value for the user confirmation received from the server 200. Can be verified.

본 발명의 실시예에 따르면, 서버(200)는 매크로 정보에 기초하여 서버 시드를 생성한다. 따라서, 해킹 등의 원인으로 서버(200)가 생성 가능한 모든 서버시드에 대한 정보를 유저가 알고 있는 경우라고 하여도, 유저는 확률 기반 가변 구성 요소를 결정할 때 실제 어떤 서버시드가 이용될지 유추하는 것은 매우 어렵다.According to an embodiment of the present invention, the server 200 generates a server seed based on the macro information. Therefore, even if the user knows all server seeds that can be generated by the server 200 due to hacking or the like, the user infers which server seed is actually used when determining the probability-based variable component. Very difficult.

또한, 서버(200)는 매 게임 마다 서로 다른 매크로 정보를 이용하여 서버시드를 생성하도록 구성될 수도 있다. 따라서, 유저가 대량의 컴퓨팅 자원을 이용한다고 하여도 유저가 현재 게임에서 사용할 서버시드를 실시간으로 유추하는 것이 거의 불가능하게 한다.In addition, the server 200 may be configured to generate a server seed using different macro information for each game. Thus, even if the user uses a large amount of computing resources, it becomes almost impossible for the user to infer in real time the server seed to be used in the current game.

도 2e는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다.2E is a flow chart of a method of fairness fair game according to another embodiment of the present invention.

도 2e를 참조하면, 본 발명의 실시예에 따른 프로버블리티 페어 게임 방법(S100)은 유저측 디바이스로부터 유저시드를 수신하는 단계(S110), 매크로 정보에 기초하여 서버시드를 생성하는 단계(S120), 유저시드 및 서버시드를 조합한 조합시드를 생성하는 단계(S130), 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S140), 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S150), 조합시드에 기초하여 랜덤 값을 생성하는 단계(S160), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S170), 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S180) 및 게임 종료 후 서버시드를 유저측 디바이스로 전송하는 단계(S190)를 포함할 수 있다.Referring to FIG. 2E, in step S100, a provisional fair game method according to an exemplary embodiment of the present invention receives a user seed from a user side device (S110), and generates a server seed based on macro information (S120). Generating a combined seed combining the user seed and the server seed (S130), generating a hash value for the user confirmation based on the combined seed (S140), and transmitting the hash value for the user confirmation to the user side device. Step S150, generating a random value based on the combined seed (S160), determining a probability-based variable component in the game based on the random value (S170), a game including the determined probability-based variable component The method may include transmitting data to the user side device (S180) and transmitting the server seed to the user side device after the game is terminated (S190).

보다 상세하게는, 유저측 디바이스(100)에서 프로버블리티 페어 게임이 실행되면, 유저측디바이스(100)는 유저시드를 서버(200)로 전송할 수 있다. 유저측 디바이스(100)는 프로버블리티 페어 게임의 실행 시 유저측 디바이스(100)에 미리 설치된 난수 생성 프로그램에 의해서 자동으로 생성되는 유저시드를 서버(200)로 전송할 수 있다. 난수 생성 프로그램은 다양한 유저측 디바이스(100)의 특성과 관련되거나 유저의 게임 정보와 관련된 다양한 입력 변수에 기초하여 유저시드를 생성할 수 있다. 난수 생성 프로그램에 의해 생성된 유저시드는 유저가 확인 가능하도록 유저측 디바이스(100)에서 표시될 수 있다. 다른 측면에서, 유저측 디바이스(100)는 유저가 입력한 유저시드를 서버(200)로 전송할 수도 있다. In more detail, when the probabilities fair game is executed in the user device 100, the user device 100 may transmit the user seed to the server 200. The user side device 100 may transmit the user seed automatically generated by the random number generation program pre-installed in the user side device 100 to the server 200 when the provisional fair game is executed. The random number generation program may generate a user seed based on various input variables related to characteristics of various user-side devices 100 or related to game information of the user. The user seed generated by the random number generation program may be displayed on the user side device 100 so that the user can check. In another aspect, the user-side device 100 may transmit the user seed input by the user to the server 200.

서버(200)는 매크로 정보를 입력으로 하는 랜덤 함수의 출력 값인 서버시드를 생성할 수 있다.The server 200 may generate a server seed that is an output value of a random function that takes macro information as an input.

유저시드 및 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.User seed and server seed may be composed of, but is not limited to, numbers, letters or strings or strings or combinations of numbers and letters.

서버(200)는 유저시드 및 서버시드를 조합한 조합시드를 생성할 수 있다. 예를 들어, 서버(200)는 AAA라는 문자열인 유저시드와 BBB라는 문자열인 서버시드를 조합하여 AAABBB라는 문자열인 조합시드를 생성할 수 있다.The server 200 may generate a combined seed combining the user seed and the server seed. For example, the server 200 may generate a combination seed that is a string AAABBB by combining a user seed that is a string AAA and a server seed that is a string BBB.

서버(200)는 조합시드에 기초하여 유저확인용 해시 값을 생성할 수 있다. 예를 들어, 서버(200)는 AAABBB 문자열인 조합시드를 입력으로 하여 #!ojqncui@$ 문자열인 유저확인용 해시 값을 출력하는 해시 함수를 이용하여 유저확인용 해시 값을 생성할 수 있다.The server 200 may generate a hash value for user verification based on the combined seed. For example, the server 200 may generate a hash value for the user verification by using a hash function that outputs a hash value for the user verification, which is a #! Ojqncui @ $ string, by inputting a combination seed that is an AAABBB string.

서버(200)는 유저확인용 해시 값을 유저측 디바이스로 전송할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하여 랜덤 값을 출력하는 랜덤 함수를 이용하여 조합시드에 대한 랜덤 값을 생성하고, 생성된 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 다비이스(100)로 전송하여 게임이 플레이되도록 할 수 있다. 그리고 서버(200)는 게임 종료 후 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The server 200 may transmit the hash value for the user confirmation to the user side device. The server 200 may generate a random value for the combined seed by using a random function that outputs a random value by inputting the combined seed, and determine a probability-based variable component in the game based on the generated random value. . The server 200 may transmit game data including the determined probability-based variable component to the user-side device 100 to play the game. The server 200 may transmit the server seed to the user-side device 100 in response to a request of the user-side device 100 after the game is finished.

유저는 서버(200)에서 사용된 해시 함수를 이용하여 수신한 서버시드와 미리 알고 있는 유저시드를 조합한 조합시드를 입력으로 할 때 해시 함수가 유저확인용 해시 값이 출력되는지를 확인함으로써 확률의 공정성을 검증할 수 있다.When a user inputs a combination seed that combines a received server seed and a known user seed using the hash function used by the server 200, the hash function checks whether a hash value for user confirmation is output. You can verify fairness.

또한, 실시예는 랜덤 값 생성 시 유저시드를 이용하므로 유저의 게임의 공정성에 대한 신뢰도를 향상시킬 수 있다. 아울러 실시예는 서버시드를 생성할 때 유저의 게임 플레이 결과에 따라 변동 가능한 매크로 정보를 이용하므로 서버시드가 유출될 가능성 및 레인보우 테이블을 이용한 시드 해킹 가능성을 최소화할 수 있다.In addition, since the embodiment uses the user seed when generating a random value, it is possible to improve the reliability of the fairness of the user's game. In addition, the embodiment uses the macro information that can be changed according to the game play result of the user when generating the server seed, it is possible to minimize the possibility of leaking the server seed and the possibility of seed hacking using the rainbow table.

한편, 매크로 정보를 이용하여 서버시드를 생성하는 방식은 다른 실시예에도 적용될 수 있다.Meanwhile, the method of generating a server seed using macro information may be applied to other embodiments.

도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다. 그리고 도 3c 및 도 3d는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.3A and 3B are flowcharts of a method of fairness fair game according to another embodiment of the present invention. 3C and 3D are conceptual diagrams to help understanding of a process of fairness pair game.

도 1b, 도 3a 및 도 3c를 참조하면, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)은 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 카운팅 정보를 포함하는 랜덤 값 요청 신호를 시드 생성 서버로 전송하는 단계(S220), 수신된 랜덤 값에 기초하여 유저확인용 해시 값을 생성하는 단계(S230), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S240), 수신된 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정하는 단계(S250), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S260) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S270)를 포함할 수 있다.1B, 3A, and 3C, the provisional fair game method (S200) according to another embodiment of the present invention includes counting the number of times of receiving a game execution request signal from a user side device (S210), Transmitting a random value request signal including counting information to the seed generation server (S220), generating a hash value for user verification based on the received random value (S230), and generating the generated user verification hash value for the user. Transmitting to the side device (S240), determining a probability variable component in the game based on the received random value (S250), and transmitting game data including the determined probability-based variable element to the user side device ( And transmitting the random value to the user side device after the game is terminated (S270).

보다 상세하게는, 게임서버(220)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신하면 카운팅 정보를 업데이트 할 수 있다. 즉, 복수의 유저측 디바이스들 각각으로부터 게임 실행 요청 신호가 수신될 때마다 수신 횟수를 카운팅할 수 있다. 그리고 게임서버(220)는 특정 유저측 디바이스로부터 게임 실행 요청 신호를 수신하면 카운팅 정보를 업데이트하고, 업데이트된 카운팅 숫자를 시드 생성 서버(210)로 전송하면서 랜덤 값을 요청할 수 있다. 시드 생성 서버(210)는 랜덤 값 요청에 응답하여 수신된 카운팅 숫자를 기초로 랜덤 값을 생성할 수 있다. 즉, 시드 생성 서버(210)는 카운팅 숫자를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 게임서버(220)는 시드 생성 서버(210)로부터 수신된 랜덤 값을 서버시드로 이용할 수 있다. 또한, 게임서버(220)는 서버시드에 기초하여 유저확인용 해시 값을 생성하여 이를 유저측 디바이스(100)로 전송할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정할 수 있다. 그리고 게임서버(220)는 결정된 확률 가변 구성 요소 정보를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 유저측 디바이스(100)는 수신된 게임 데이터에 기초하여 게임을 플레이할 수 있다. 그리고 유저측 디바이스(100)는 게임 종료 후 게임 검증을 위하여 게임서버(220)로 게임 검증 요청을 할 수 있다. 그리고 게임서버(220)는 게임 검증 요청에 응답하여 랜덤 값인 서버시드를 유저측 디바이스(100)로 전송할 수 있다.In more detail, the game server 220 may update the counting information when the game execution request signal is received from the user device 100. That is, each time a game execution request signal is received from each of the plurality of user-side devices, the number of receptions may be counted. When the game server 220 receives a game execution request signal from a specific user-side device, the game server 220 may update the counting information, and may request a random value while transmitting the updated counting number to the seed generation server 210. The seed generation server 210 may generate a random value based on the counting number received in response to the random value request. That is, the seed generation server 210 may generate a random value that is an output value of a random function that takes a counting number as an input. The game server 220 may use the random value received from the seed generation server 210 as the server seed. In addition, the game server 220 may generate a hash value for the user confirmation based on the server seed and transmit it to the user side device 100. The game server 220 may determine the probability variable component in the game based on the output value of the random function using the server seed as an input. The game server 220 may transmit game data including the determined variable probability component to the user device 100. The user-side device 100 may play a game based on the received game data. In addition, the user device 100 may request a game verification request to the game server 220 for game verification after the game ends. The game server 220 may transmit a server seed having a random value to the user side device 100 in response to the game verification request.

실시예는 서버시드가 모두 유출된 상황에서도 서버시드로 이용될 랜덤 값을 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(200)는 복수의 유저측 디바이스로부터의 게임 실행 요청 신호를 수신하면 이를 카운팅하고, 카운팅 정보를 시드 생성 서버로 전송한다. 그리고 시드 생성 서버는 수신된 카운팅 정보에 기초하여 랜덤 값을 생성한다. 즉, 카운팅 정보가 달라지면 랜덤 값 또한 달라질 수 있다. 이 경우, 특정 유저가 시드 생성 서버의 랜덤 값 생성 알고리즘을 해킹한 경우라고 하여도, 특정 유저의 디바이스가 게임서버(220)에 몇 번째로 게임 실행 요청 신호를 전송하였는지 유추하기 매우 곤란하다. 따라서, 실시예는 유저로 하여금 시드 생성 서버(210)가 생성하는 랜덤 값을 실시간으로 파악하는 것이 매우 어렵도록 한다.The embodiment prevents hacking of a random value to be used as a server seed even when all server seeds are leaked. More specifically, the game server 200 counts the game execution request signals from the plurality of user-side devices, and transmits the counting information to the seed generation server. The seed generation server generates a random value based on the received counting information. That is, if the counting information is different, the random value may also be different. In this case, even when a specific user hacks a random value generation algorithm of the seed generation server, it is very difficult to infer how many times a device of a specific user transmits a game execution request signal to the game server 220. Therefore, the embodiment makes it very difficult for a user to grasp in real time the random value generated by the seed generation server 210.

도 1b, 도 3a 및 도 3d를 참조하여, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)을 다른 측면에서 설명한다. 실시예는 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 미리 등록된 복수개의 시드 생성 서버의 개수 정보 및 카운팅 정보에 기초하여 복수개의 시드 생성 서버 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청하는 단계(S220), 수신된 랜덤 값에 기초하여 유저확인용 해시 값을 생성하는 단계(S230), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S240), 수신된 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정하는 단계(S250), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S260) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S270)를 포함할 수 있다.1B, 3A, and 3D, a provisional fair game method S200 according to another embodiment of the present invention will be described in another aspect. According to an embodiment of the present invention, the number of times of receiving the game execution request signal from the user device may be counted (S210), based on the count information and the counting information of the plurality of seed generation servers registered in advance. Requesting a random value to the generation server (S220), generating a hash value for user verification based on the received random value (S230), and transmitting the generated hash value for user verification to a user side device (S240). ), Determining a probability variable component in the game based on the received random value (S250), transmitting game data including the determined probability-based variable element to a user side device (S260) and a random value after the game ends. It may include the step of transmitting to the user-side device (S270).

보다 상세하게는, 게임서버(220)는 복수의 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신할 수 있다. 여기서의 게임 실행 요청 신호는 게임서버(220)가 서버시드의 생성 동작을 개시하도록 하는 신호가 될 수 있다. 그리고 게임서버(220)는 수신되는 게임 실행 요청 신호를 카운팅 할 수 있다. 그리고 게임서버(220)는 미리 등록된 복수개의 시드 생성 서버(210)의 개수 정보와 카운팅 정보에 기초하여 복수개의 시드 생성 서버(210) 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청할 수 있다. 예를 들어, 게임서버(200)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신하고, 카운팅 정보를 업데이트(예를 들어 현재 카운팅 숫자가 21인 경우 업데이터된 카운팅 숫자는 22가 된다)할 수 있다. 그리고 6개의 시드 생성 서버(210)들 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청할 수 있다.In more detail, the game server 220 may receive a game execution request signal from the plurality of user-side devices 100. Here, the game execution request signal may be a signal for the game server 220 to initiate a server seed generation operation. The game server 220 may count the received game execution request signal. The game server 220 may request a random value from any one of the seed generation servers 210 based on the number information and counting information of the seed generation servers 210 registered in advance. For example, the game server 200 receives a game execution request signal from the user device 100 and updates the counting information (for example, when the current counting number is 21, the updated counting number becomes 22). Can be. In addition, a random value may be requested to any one of the six seed generation servers 210.

게임서버(220)는 J개의 시드 생성 서버(210)들 중 수학식 1로부터의 결과 값에 대응하는 하나의 시드 생성 서버를 선택하고 선택된 시드 생성 서버로 랜덤 값을 요청할 수 있다.The game server 220 may select one seed generation server corresponding to the result value from Equation 1 among the J seed generation servers 210 and request a random value from the selected seed generation server.

[수학식 1][Equation 1]

카운팅된 수%미리 등록된 랜덤 서버의 개수=결과 값Counted%% Number of registered random servers = Result

전술한 예에서, 카운팅된 숫자가 22이고 미리 등록된 시드 생성 서버(210)의 개수가 6개이므로 22를 6으로 나눈 후 나머지는 4가 된다. 따라서 결과 값은 4가 된다. 이 경우, 게임 서버(220)는 4번째 시드 생성 서버로 랜덤 값을 요청할 수 있다. 다른 측면에서, 결과 값 4에 미리 매칭된 시드 생성 서버로 랜덤 값을 요청할 수 있다.In the above example, since the counted number is 22 and the number of pre-registered seed generation servers 210 is six, the remainder is four after dividing 22 by six. The result is therefore 4. In this case, the game server 220 may request a random value from the fourth seed generation server. In another aspect, a random value may be requested to the seed generation server previously matching the result value 4.

게임서버(220)는 시드 생성 서버로부터 랜덤 값을 수신하고 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 생성한 유저확인용 해시 값을 유저측디바이스(100)로 전송할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값을 생성할 수 있다. 그리고 게임서버(220)는 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정할 수 있다. 그리고 게임서버(220)는 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The game server 220 may receive a random value from the seed generation server and use the received random value as a server seed. The game server 220 may generate a hash value for user verification, which is an output value of a hash function that takes a server seed as an input. The game server 220 may transmit the generated user confirmation hash value to the user side device 100. The game server 220 may generate an output value of a random function using the server seed as an input. The game server 220 may determine the probability variable component in the game based on the random value. The game server 220 may transmit game data including the determined probability-based variable element to the user side device 100. In addition, the game server 220 may transmit the server seed to the user-side device 100 in response to a request from the user-side device 100.

다른 측면에서 도 3b를 참조하면, 본 발명의 다른 실시예에 따른 프로버블리티 페어 게임 방법(S200)은 유저측 디바이스로부터의 게임 실행 요청 신호의 수신 횟수를 카운팅하는 단계(S210), 유저측 디바이스로부터 유저시드를 수신하는 단계(S220), 미리 등록된 복수개의 시드 생성 서버의 개수 정보 및 카운팅 정보에 기초하여 복수개의 시드 생성 서버 중 어느 하나의 시드 생성 서버로 랜덤 값을 요청하는 단계(S230), 수신된 랜덤 값과 유저시드를 조합하여 조합시드를 생성하는 단계(S240), 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S250), 생성한 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S260), 조합시드에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S270), 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스로 전송하는 단계(S280) 및 게임 종료 후 랜덤 값을 유저측 디바이스로 전송하는 단계(S290)를 포함할 수 있다.In another aspect, referring to FIG. 3B, the method for probability pair game according to another embodiment of the present invention (S200) includes counting a number of times of receiving a game execution request signal from a user side device (S210), and a user side device. Receiving a user seed from (S220), Requesting a random value to any one of the plurality of seed generation server based on the number information and counting information of the plurality of seed generation server registered in advance (S230) Generating a combined seed by combining the received random value with the user seed (S240), generating a hash value for user verification based on the combined seed (S250), and generating the generated hash value for the user identification device on the user side device. Transmitting the data to the processor (S260), determining the probability-based variable component in the game based on the combined seed (S270), and the game data including the determined probability-based variable element. And transmitting the random value to the user side device after the game is terminated (S280).

예를 들어, 보다 상세하게 설명하면 게임서버(220)는 유저측 디바이스(100)로부터 게임 실행 요청 신호를 수신할 때마다 수를 하나씩 증가시키는 방식으로 게임 실행 요청 신호를 카운팅할 수 있다. 그리고 게임서버(220)는 유저측 디바이스(100)에서 생성된 유저시드를 수신할 수 있다. 다른 측면에서 게임 실행 요청 신호는 유저시드 정보를 포함할 수도 있다. 그리고 게임서버(220)는 전술한 수학식 1에 따라 미리 등록된 복수개의 시드 생성 서버의 개수 정보와 현재의 카운팅 수 정보에 기초하여 수학식 1의 결과값을 계산할 수 있다. 그리고 게임서버(220)는 계산된 결과값에 매칭되는 시드 생성 서버로 랜덤 값을 요청할 수 있다. 시드 생성 서버(210)는 게임서버(220)로부터 수신된 랜덤 값 요청 신호에 응답하여 랜덤 값을 생성하고 이를 게임서버(220)로 전송할 수 있다.For example, in more detail, the game server 220 may count the game execution request signal by increasing the number by one each time the game execution request signal is received from the user device 100. In addition, the game server 220 may receive a user seed generated by the user-side device 100. In another aspect, the game execution request signal may include user seed information. The game server 220 may calculate a result value of Equation 1 based on the number information of the plurality of seed generation servers registered in advance and the current counting information according to Equation 1 described above. The game server 220 may request a random value from the seed generation server that matches the calculated result. The seed generation server 210 may generate a random value in response to the random value request signal received from the game server 220 and transmit the random value to the game server 220.

게임서버(220)는 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 유저시드와 서버시드를 조합한 조합시드를 생성하고, 조합시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 조합시드에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하고, 결정된 확률 기반 가변 요소에 대한 정보를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임이 종료된 이후 유저측 디바이스(100)는 게임서버(220)로 게임 검증을 요청할 수 있다. 게임서버(220)는 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The game server 220 may use the received random value as a server seed. The game server 220 may generate a combined seed that combines a user seed and a server seed, and generate a hash value for user verification, which is an output value of a hash function that takes the combined seed as an input. The game server 220 may transmit a hash value for checking the user to the user device 100. In addition, the game server 220 may determine a probability-based variable element in the game based on the combination seed, and transmit game data including information on the determined probability-based variable element to the user side device 100. In addition, after the game is terminated, the user device 100 may request a game verification from the game server 220. The game server 220 may transmit the server seed to the user side device 100 in response to the game verification request of the user side device 100.

실시예는 서버시드가 모두 유출된 상황에서도 확률 기반 가변 구성 요소를 결정하기 위한 기초 정보인 서버시드에 대한 정보를 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(200)는 복수의 유저측 디바이스로부터의 게임 실행 요청 신호를 수신하면 이를 카운팅하고, 카운팅 정보에 따라서 랜덤 값을 요청할 시드 생성 서버를 선택한다. 따라서 특정 유저측 디바이스는 자신의 게임 실행 요청 신호가 게임서버(220)에 몇 번째로 전송되었는지 유추하기 매우 어렵다. 이는 특정 유저가 서버시드로 이용될 랜덤 값을 유추하는 것을 매우 곤란하게 하는 효과를 가진다.The embodiment prevents hacking information on the server seed, which is the basic information for determining the probability-based variable component, even when all the server seeds are leaked. More specifically, the game server 200 counts the game execution request signals from the plurality of user-side devices, and selects a seed generation server to request a random value according to the counting information. Therefore, it is very difficult for a particular user-side device to infer how many times his game execution request signal is transmitted to the game server 220. This has the effect of making it very difficult for a particular user to infer a random value to be used as a server seed.

또한, 실시예는 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 다르게 설정함으로써 서버시드의 해킹 가능성을 원천 봉쇄할 수 있다. 예를 들어, 특정 유저가 다수의 유저측 디바이스를 통제하면서 게임 실행 요청 신호의 횟수를 해킹한 경우라 할지라도 특정 유저가 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 모두 파악하지 않는 한 실시간으로 서버시드를 해킹하는 것은 거의 불가능하기 때문이다.In addition, the embodiment may block the possibility of hacking the server seed by differently setting the random value generation algorithm of each of the plurality of seed generation servers. For example, even if a specific user hacks the number of game execution request signals while controlling a plurality of user-side devices, unless a specific user knows all the random value generation algorithms of each of the plurality of seed generation servers, real time. Because hacking server seeds is almost impossible.

한편 본 실시예에서 설명한 서버시드 생성 방식은 다른 실시예에도 적용될 수 있다.Meanwhile, the server seed generation method described in this embodiment may be applied to other embodiments.

도 4a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이고, 도 4b는 다른 측면에서의 프로버블리티 페어 게임 방법에 대한 흐름도이며. 도 4c는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.FIG. 4A is a flowchart of a method for playing a fairness pair game according to another embodiment of the present invention, and FIG. 4B is a flowchart of a method for playing a fairness pair game from another aspect. Figure 4c is a conceptual diagram to help understand the Probability Fair game method.

도 4a 내지 도 4c를 참조하면, 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법(S300)은 서버가 유저측 디바이스로부터 유저시드를 수신하는 단계(S310), 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성하는 단계(S320), 유저시드와 서버시드에 기초하여 랜덤값을 생성하는 단계(S330), 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계(S340), 유저측 디바이스로 유저확인용 해시 값을 전송하는 단계(S350), 결정된 확률 기반 가변 구성 요소를 기초로 게임 데이터를 생성하는 단계(S360), 게임 데이터를 유저측 디바이스로 전송하는 단계(S370) 및 유저측 디바이스로 서버시드를 전송하는 단계(S380)를 포함할 수 있다.4A through 4C, in a method of receiving a user seed from a user side device, the server may receive a user seed from a user side device (S310), according to another embodiment of the present invention. Generating a hash value for the user confirmation based on (S320), generating a random value based on the user seed and the server seed (S330), determining a probability-based variable component in the game based on the random value ( S340, transmitting a user identification hash value to a user side device (S350), generating game data based on the determined probability-based variable component (S360), and transmitting game data to the user side device ( S370) and transmitting the server seed to the user-side device (S380).

보다 상세하게는, 서버(200)는 유저측 디바이스(100)로부터 유저시드를 수신할 수 있다. 다른 측면에서, 복수의 유저측 디바이스가 하나의 게임에 참여한 경우 서버(200)는 복수의 유저측 디바이스(100)로부터 유저시드를 수신할 수도 있다. 이 경우, 수신된 복수의 유저시드 중 어느 하나의 유저시드만을 이용할 수도 있다. 또 다른 측면에서, 하나의 게임에 복수의 유저가 참여한 경우 서버(200)는 복수의 유저측 디바이스 중 어느 하나의 디바이스에만 유저시드를 요청할 수도 있다.In more detail, the server 200 may receive a user seed from the user side device 100. In another aspect, when the plurality of user-side devices participate in one game, the server 200 may receive a user seed from the plurality of user-side devices 100. In this case, only one user seed among the plurality of received user seeds may be used. In another aspect, when a plurality of users participate in one game, the server 200 may request a user seed only from any one of the plurality of user-side devices.

또한, 서버(200)는 서버시드를 생성할 수 있다. 다른 측면에서, 서버(200)는 게임서버와 시드 생성 서버로 구성될 수 있다. 그리고 전술한 방식에 따라 게임서버가 시드 생성 서버로부터 수신한 랜덤 값을 서버시드로 이용할 수도 있다. 그리고 서버(200)는 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성할 수 있다.In addition, the server 200 may generate a server seed. In another aspect, the server 200 may be composed of a game server and a seed generation server. In addition, according to the above-described method, the game server may use a random value received from the seed generation server as the server seed. The server 200 may generate a hash value for user verification based on the user seed and the server seed.

다른 측면에서 서버시드는 제1 및 제2 서버시드를 포함할 수 있다.In another aspect the server seed may comprise a first and a second server seed.

서버(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)로 유저확인용 해시 값을 전송할 수 있다.The server 200 may generate a first combined seed that combines the user seed and the first server seed (S321). For example, the server 200 may generate a first combined seed that is a string AAABBB by combining the user seed which is a string AAA and the first server seed that is a string BBB. In operation S322, the server 200 may generate a first hash value based on the first combined seed. For example, the hash function may generate a first hash value of #! Ojqncui @ $ string by inputting a first combination seed, which is an AAABBB string. In operation S323, the server 200 may generate a second hash value based on the second server seed. For example, the hash function may generate a second hash value of ^ & nxcaoi! # $ Q string by inputting a second server seed, which is a CCC string. In addition, the server 200 may generate a second combined seed that combines the first hash value and the second hash value (S324). For example, the server 200 may combine the first hash value of the string #! Ojqncui @ $ and the second hash value of the ^ & nxcaoi! # $ Q string to match the first hash value of the #! Ojqncui @ $ ^ & nxcaoi! # $ Q string. Two combination seeds can be generated. The server 200 may generate a hash value for user verification based on the second combined seed (S325). For example, the hash function may generate a hash value for the user verification of the string% $ #% vssdf3! & 4 by inputting the second combination seed having the string #! Ojqncui @ $ ^ & nxcaoi! # $ Q. In addition, the server 200 may transmit a hash value for checking a user to the user device 100.

또한, 서버(200)는 유저시드와 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 예를 들어, 랜덤 함수는 제1 조합시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 기초로 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.In addition, the server 200 may generate a random value that is an output value of a random function that takes a user seed and a server seed as input. For example, the random function may generate a random value that is an output value of the random function that takes the first combined seed as an input. The server 200 may determine the probability-based variable component in the game based on the generated random value. The server 200 may configure game data based on the probability-based variable component, and transmit the configured game data to the user side device 100.

또한, 서버(200)는 게임 종료 후 유저측 디바이스(100)로 서버시드 및 랜덤 값을 전송할 수 있다. 다른 측면에서, 서버(200)는 게임 종료 후 유저측 디바이스(100)로부터의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수도 있다.In addition, the server 200 may transmit the server seed and the random value to the user device 100 after the game ends. In another aspect, the server 200 may transmit the server seed to the user side device 100 in response to a game verification request from the user side device 100 after the game ends.

실시예는 제2 조합시드에 기초하여 생성된 유저확인용 해시 값을 유저측 디바이스(100)로 전송하므로 유저는 유저확인용 해시 값으로부터 서버시드를 유추할 수 없도록 한다. 즉, 유저확인용 해시 값과 시드가 서로 일대일로 매칭되지 않도록 하여, 레인보우 테이블을 제작하는 방식으로 서버 시드 유출이 거의 불가능하도록 한다.Since the embodiment transmits the user confirmation hash value generated based on the second combined seed to the user side device 100, the user cannot infer the server seed from the user confirmation hash value. That is, the user identification hash value and the seed are not matched one-to-one with each other, so that the server seed leakage is almost impossible by producing a rainbow table.

도 5a는 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법에 대한 흐름도이다. 그리고 도 5b는 프로버블리티 페어 게임 방법에 대한 이해를 돕기 위한 개념도이다.5A is a flowchart of a method of fairness fair game according to another embodiment of the present invention. 5B is a conceptual diagram to help understand the process of fairness fair game.

도 5a 및 도 5b를 참조하면, 본 발명의 또 다른 실시예에 따른 프로버블리티 페어 게임 방법(S400)은 유저측 디바이스로부터 유저시드를 수신하는 단계(S410), 유저시드와 서버시드에 기초하여 제1 유저확인용 해시 값을 생성하는 단계(S420), 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계(S430), 랜덤 값에 기초하여 복수의 데크 중 어느 하나의 데크를 선택하는 단계(S440), 위치정보시드에 기초하여 선택된 데크 내의 카드의 위치를 업데이트하는 단계(S450), 위치정보시드에 기초하여 제2 유저확인용 해시 값을 생성하는 단계(S460), 제1 및 제2 유저확인용 해시 값을 유저측 디바이스로 전송하는 단계(S470), 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하는 단계(S480) 및 게임 데이터를 유저측 디바이스로 전송하는 단계(S490)를 포함할 수 있다.5A and 5B, according to another embodiment of the present invention, a method of providing a fairness pair game (S400) may include receiving a user seed from a user side device (S410), based on the user seed and the server seed. Generating a first user identification hash value (S420), generating a random value based on the user seed and the server seed (S430), and selecting one of a plurality of decks based on the random value. (S440), updating the position of the card in the selected deck based on the location information seed (S450), generating a second user identification hash value based on the location information seed (S460), first and second Transmitting the hash value for the user confirmation to the user side device (S470), constructing the game data based on the information of the deck whose position of the card is updated (S480), and transmitting the game data to the user side device ( S490) It can hamhal.

보다 상세하게는, 서버(200)는 유저측 디바이스로부터 유저시드를 수신할 수 있다. 또한, 서버(200)는 유저시드와 서버시드를 조합한 조합시드를 생성할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하는 해시 함수의 출력 값인 제1 유저확인용 해시 값을 생성할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 서버(200)는 데이터베이스에서 복수의 데크 정보를 검색하고 이들 중에서 랜덤 값에 미리 매칭된 하나의 데크 정보를 선택할 수 있다. 복수의 데크들 각각은 N(N은 2이상의 자연수)개의 카드를 포함할 수 있다. 그리고 복수의 데크 정보 각각은 각자의 카드 위치 정보를 포함할 수 있다. 카드 위치 정보는 게임 환경에서 하나의 데크를 구성하는 카드들이 분배되는 순서 정보와 매칭될 수 있다. 즉, 카드들의 위치 정보에 따라서 게임 환경에서 순차적으로 분배되는 카드의 종류가 달라지게 된다.In more detail, the server 200 may receive a user seed from a user side device. In addition, the server 200 may generate a combined seed combining the user seed and the server seed. The server 200 may generate a first user identification hash value that is an output value of a hash function that takes a combination seed as an input. In addition, the server 200 may generate a random value that is an output value of a random function that takes a combination seed as an input. The server 200 may retrieve a plurality of deck information from a database and select one deck information previously matched to a random value among them. Each of the plurality of decks may include N cards, where N is a natural number of two or more. Each of the plurality of deck information may include respective card location information. The card position information may be matched with order information in which cards constituting one deck are distributed in a game environment. That is, the types of cards sequentially distributed in the game environment vary according to the location information of the cards.

서버(200)는 위치정보시드에 기초하여 선택된 데크 내의 카드의 위치를 업데이트할 수 있다. 예를 들어, 서버(200)는 조합 시드를 입력으로 하는 랜덤 함수의 출력 값인 위치정보시드를 생성할 수 있다. The server 200 may update the position of the card in the selected deck based on the location information seed. For example, the server 200 may generate a location information seed that is an output value of a random function that takes a combination seed as an input.

위치정보시드는 서로 중복되지 않는 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 순으로 유저들에게 카드가 분배될 수 있다.The location information seed may consist of a sequence of N numbers that do not overlap each other. Each of the N numbers constituting the location information seed may correspond to the location of the cards in the selected deck. In addition, the server 200 may sequentially update the positions of the cards in the selected deck by rearranging the cards of the positions corresponding to the numbers indicated by the numbers from the first number to the Nth number of the location information sequentially. For example, suppose there are six cards included in the selected deck, and the cards included in the deck are D1, D2, S1, S2, H1, H2. If the location information of the cards in the deck is not updated, the cards will be distributed to users in the order of D1, D2, S1, S2, H1, H2 in the game environment. Also, if the location information seed is {3,2,4,5,1,6}, the position information seed has a position corresponding to the number indicated by each number sequentially from the first number (3) to the sixth number (6) in the sequence. The cards are rearranged in order, so that the positions of the cards in the updated deck are in the order S1, D2, S2, H1, D1, H2. Therefore, in the game environment, cards may be distributed to users in the order of S1, D2, S2, H1, D1, and 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 유저확인용 해시 값을 생성할 수 있다.The server 200 may convert the location information seed. For example, there are 52 cards in the deck and the location information seed is {6, 10, 17, 44, 28,. . . , 2}, the server 200 may convert the location information seed by removing 10 digits for the number 10 or more of the number in the location information seed. In the case of 10, 20, 30, 40, and 50, except for the place of 10, it becomes 0, and 0 is replaced with -1. In the above example, the converted location information seed is {6, -1, 7, 4, 8,. . . , 2}, consisting of 52 numbers. The server 200 may square the respective numbers constituting the converted location information seed. If the square root is larger than long, the transformed location information seed may be transformed using only the mantissa part of the exponent. In addition, a second user confirmation hash value, which is an output value of a hash function that receives the secondary transformed location information seed, may be generated.

서버(200)는 게임 시작 전에 제1 및 제2 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 그리고 서버(200)는 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.The server 200 may transmit the first and second user confirmation hash values to the user side device 100 before the game starts. The server 200 may configure game data based on the information of the deck whose position of the card is updated, and transmit the configured game data to the user side device 100.

또한, 서버(200)는 게임 종료에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수 있다. 다른 측면에서 게임 종료 후 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수도 있다.In addition, the server 200 may transmit the server seed and the converted location information seed to the user side device 100 in response to the end of the game. In another aspect, the server seed and the converted location information seed may be transmitted to the user device 100 in response to the game verification request of the user device 100 after the game ends.

유저는 제1 유저확인용 해시 값과 서버시드를 이용하여 게임 결과를 검증할 수 있다. 또한, 실시예는 유저에게 변환된 위치정보시드와 제2 유저확인용 해시 값을 제공하여 유저로 하여금 데크 정보의 업데이트가 공정한 방식으로 이루어졌음을 신뢰하도록 한다.The user can verify the game result using the first user identification hash value and the server seed. In addition, the embodiment provides the user with the converted location information seed and the second user confirmation hash value to allow the user to trust that the deck information has been updated in a fair manner.

또한, 실시예는 해킹 유저가 위치정보시드를 지속적으로 수집하여 게임 플레이 결과를 해킹하는 문제를 봉쇄하기 위하여, 위치정보시드를 유저측 디바이스(100)로 전송하지 않고, 변환된 위치정보시드를 전송한다. In addition, in an embodiment, in order to block the problem of the hacking user continuously collecting location information seeds and hacking the game play result, the location information seeds are not transmitted to the user-side device 100, but the converted location information seeds are transmitted. do.

또한, 실시예는 랜덤 값에 기초하여 선택된 데크 내의 카드의 위치를 변경함으로써, 해킹 유저가 플레이되는 데크 정보를 지속적으로 수집하여 게임 플레이 결과를 유추하게 되는 문제를 차단할 수 있다. 또한, 업데이트된 카드의 위치 정보에 대한 해시 값을 유저에게 전송함으로써 게임의 공정성에 대한 유저의 신뢰를 확보할 수 있다.In addition, the embodiment may block the problem of inferring the game play result by continuously collecting the deck information played by the hacking user by changing the position of the card in the selected deck based on the random value. In addition, the user's trust in the fairness of the game can be secured by transmitting the hash value of the updated position information of the card to the user.

이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention described above can be implemented in the form of program instructions that can be executed by various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be modified with one or more software modules to perform the processing according to the present invention, and vice versa.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.Particular implementations described in the present invention are embodiments and do not limit the scope of the present invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings by way of example shows a functional connection and / or physical or circuit connections, in the actual device replaceable or additional various functional connections, physical It may be represented as a connection, or circuit connections. In addition, unless specifically mentioned, such as "essential", "important" may not be a necessary component for the application of the present invention.

또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.In addition, although the detailed description of the present invention has been described with reference to a preferred embodiment of the present invention, those skilled in the art or those skilled in the art having ordinary knowledge in the technical field described in the claims to be described later It will be understood that various modifications and variations can be made in the present invention without departing from the scope of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification but should be defined by the claims.

Claims (6)

게임서버가 유저측 디바이스로부터 유저시드를 수신하는 단계;
상기 게임서버가 상기 유저시드와 제1 서버시드를 조합하여 제1 조합시드를 생성하는 단계;
상기 게임서버가 상기 제1 조합시드에 기초하여 제1 해시 값을 생성하는 단계;
상기 게임서버가 제2 서버시드에 기초하여 제2 해시 값을 생성하는 단계;
상기 게임서버가 상기 제1 해시 값과 상기 제2 해시 값을 조합하여 제2 조합시드를 생성하는 단계; 및
상기 게임서버가 상기 제2 조합시드에 기초하여 유저확인용 해시 값을 생성하는 단계;
상기 게임서버가 상기 유저시드와 서버시드에 기초하여 랜덤 값을 생성하는 단계;
상기 게임서버가 상기 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하는 단계; 및
상기 게임서버가 상기 유저확인용 해시 값 및 상기 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 상기 유저측 디바이스로 전송하는 단계;를 포함하는
온라인 기반의 프로버블리티 페어 게임 방법.
The game server receiving a user seed from a user side device;
Generating, by the game server, a first combined seed by combining the user seed and the first server seed;
Generating, by the game server, a first hash value based on the first combined seed;
Generating, by the game server, a second hash value based on a second server seed;
Generating, by the game server, a second combined seed by combining the first hash value and the second hash value; And
Generating, by the game server, a hash value for user identification based on the second combined seed;
Generating, by the game server, a random value based on the user seed and the server seed;
Determining, by the game server, a probability-based variable component in a game based on the random value; And
And transmitting, by the game server, game data including the hash value for the user identification and the determined probability-based variable component to the user-side device.
How to play online based Probability Fair.
삭제delete 제1 항에 있어서,
상기 게임서버가 상기 유저시드 및 상기 제1 서버시드에 기초하여 상기 랜덤 값을 생성하는
온라인 기반의 프로버블리티 페어 게임 방법.
According to claim 1,
The game server generates the random value based on the user seed and the first server seed
How to play online based Probability Fair.
제1 항에 있어서,
상기 게임서버가 게임 시작 전 상기 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는
온라인 기반의 프로버블리티 페어 게임 방법.
According to claim 1,
The game server transmits the user confirmation hash value to the user side device before starting the game.
How to play online based Probability Fair.
제1 항에 있어서,
상기 게임서버가 게임 종료에 응답하여 상기 서버시드를 상기 유저측 디바이스로 전송하는
온라인 기반의 프로버블리티 페어 게임 방법.
According to claim 1,
The game server transmits the server seed to the user side device in response to the end of the game
How to play online based Probability Fair.
제1 항에 있어서,
상기 게임서버가 상기 유저시드 및 상기 서버시드를 이용하여 상기 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 상기 유저측 디바이스로 전송하는 단계;를 더 포함하는
온라인 기반의 프로버블리티 페어 게임 방법.
According to claim 1,
And transmitting, to the user-side device, a verification page for verifying that the user seed and the user confirmation hash value are generated using the user seed and the server seed.
How to play online based Probability Fair.
KR1020180006395A 2018-01-18 2018-01-18 Probability fair game methode and system bisised on on line KR102023430B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180006395A KR102023430B1 (en) 2018-01-18 2018-01-18 Probability fair game methode and system bisised on on line

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180006395A KR102023430B1 (en) 2018-01-18 2018-01-18 Probability fair game methode and system bisised on on line

Publications (2)

Publication Number Publication Date
KR20190088189A KR20190088189A (en) 2019-07-26
KR102023430B1 true KR102023430B1 (en) 2019-09-23

Family

ID=67469899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180006395A KR102023430B1 (en) 2018-01-18 2018-01-18 Probability fair game methode and system bisised on on line

Country Status (1)

Country Link
KR (1) KR102023430B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102394499B1 (en) * 2021-11-29 2022-05-04 주식회사 행복한다람쥐단 Method for generating and verifying probabilistic items, and apparatuses using the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000513983A (en) 1996-12-31 2000-10-24 ウォーカー アセット マネージメント リミテッド パートナーシップ Method and apparatus for securing electronic games
JP2001514909A (en) 1997-09-02 2001-09-18 クィックソティック ソルーションズ インク. Apparatus and process for ensuring fair game progress through a communication network
US20170084118A1 (en) * 2015-09-23 2017-03-23 Spur Trail Investments, Inc. System and method for provably fair gaming
US20170161991A1 (en) * 2015-12-02 2017-06-08 Aryo Ayati System and method for public verification of a gambling website or gaming event

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100861649B1 (en) 2007-01-17 2008-10-02 엔에이치엔(주) Online game method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000513983A (en) 1996-12-31 2000-10-24 ウォーカー アセット マネージメント リミテッド パートナーシップ Method and apparatus for securing electronic games
JP2001514909A (en) 1997-09-02 2001-09-18 クィックソティック ソルーションズ インク. Apparatus and process for ensuring fair game progress through a communication network
US20170084118A1 (en) * 2015-09-23 2017-03-23 Spur Trail Investments, Inc. System and method for provably fair gaming
US20170161991A1 (en) * 2015-12-02 2017-06-08 Aryo Ayati System and method for public verification of a gambling website or gaming event

Also Published As

Publication number Publication date
KR20190088189A (en) 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 (en) Methods and apparatus for a distributed database within a network
US11734260B2 (en) Methods and apparatus for a distributed database within a network
EP3912023A1 (en) A method for generating random numbers in blockchain smart contracts
CN110941418A (en) Random number generation method, device, equipment and readable storage medium
CN115918030A (en) Fair demonstrable game using blockchains
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
CN110585729A (en) Game account matching method and device, storage medium and electronic device
KR20190119454A (en) Method, apparatus, and computer program for obtaning probability information of gacha system
BR112013033876B1 (en) System for providing content or an application, control methods for a system, for a terminal device and for an authentication device, terminal device, program, authentication device, program, and information storage media
CN114372589A (en) Federated learning method and related device
KR20220122994A (en) Proveably fair games using blockchain
JP2018050973A (en) Random number generation system, random number generation device, random number generation method and program
KR102023430B1 (en) Probability fair game methode and system bisised on on line
KR102023427B1 (en) Probability fair game methode and system bisised on on line
JP6283846B2 (en) GAME SYSTEM, Rival Setting Control Method, and Computer Program
KR101984808B1 (en) Probability fair game methode and system bisised on on line
US11113929B1 (en) Integrated gaming system for providing real-time parlay options that satisfy user-supplied parlay parameters
KR102049004B1 (en) Probability fair game methode and system bisised on on line
KR20190119911A (en) Ticket Selling System Based on Blockchain
US20220005310A1 (en) Method for Executing a User-Guided Lottery
CN114625338A (en) Random number acquisition method, random number storage device, electronic equipment and medium
CN112883338A (en) Lottery drawing method based on random shuffling algorithm with weight and application
US20140323217A1 (en) Method and server for providing item according to joining an event in online game

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