KR102023430B1 - Probability fair game methode and system bisised on on line - Google Patents
Probability fair game methode and system bisised on on line Download PDFInfo
- 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
Links
- 238000012795 verification Methods 0.000 claims abstract description 33
- 238000012790 confirmation Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000015654 memory Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/71—Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/401—Secure communication, e.g. using encryption or authentication
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- 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
본 발명은 온라인 기반의 프로버블리티 페어 게임 방법 및 시스템에 관한 것이다.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.
실시예는 시드 및 해시 값 생성에 대한 가역성을 제거하고, 충분한 프로세스 파워를 이용한 시드 유출 가능성을 차단하여 확률 기반 온라인 게임에 대한 유저의 신뢰를 확보하는 것을 목적으로 한다.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
도 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
또한, 유저측 디바이스(100)는 명령들을 저장하는 적어도 하나의 메모리(101) 및 적어도 하나의 프로세서(102)를 포함하고, 명령들은 프로세서(102)로 하여금 동작들을 수행하게 하기 위해 프로세서(102)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호를 전송, 유저시드 생성, 유저시드 입력 수신, 유저시드 전송, 게임 데이터 송수신, 각종 정보 수신하는 동작들을 포함할 수 있다.In addition, the user-
유저측 디바이스(100)에서 게임 어플리케이션이 실행되면, 유저측 디바이스(100)에서 게임 환경이 구성된다. 그리고 게임 어플리케이션은 네트워크(300)를 통해 서버(200)와 게임 데이터를 교환하여 유저측 디바이스(100) 상에서 게임 서비스가 실행되도록 한다.When a game application is executed in the
서버(200)가 제공하는 게임 서비스는 서버(200)가 제공하는 가상의 컴퓨터 유저와 실제 유저가 함께 게임에 참여하는 형태로 구성될 수 있다. 이는 유저측 디바이스(100) 상에서 구현되는 게임 환경에서 하나의 실제 유저와 적어도 하나의 컴퓨터 유저가 함께 게임을 플레이 한다. 다른 측면에서, 서버(200)가 제공하는 게임 서비스는 복수의 유저측 디바이스가 참여하여 게임이 플레이되는 형태로 구성될 수도 있다.The game service provided by the
서버(200)가 제공하는 게임 서비스는 프로버블리티 페어 기반의 확률 게임 서비스가 될 수 있다. 여기서의 확률 게임 서비스는 예시적으로 트럼프(trump) 등과 같이 52장의 다른 카드의 조합을 미리 결정된 룰(rule)에 근거하여 각 유저가 카드를 모으거나, 혹은 각 유저가 소지한 카드를 늘어놓음으로써 승패를 결정하는 게임이 있다. 또 다른 예로써는, 주사위와 같이 정해진 수 범위 내에서 무작위로 결정된 수에 따라서 승패가 결정되는 게임이 있다. 다만, 이에 제한되는 것은 아니고, 카드를 이용하는 포커, 블랙잭, 화투나 각종 주사위 게임이 있을 수 있으며 게임에서 사용되는 카드의 수도 게임의 종류나 동일한 게임이라도 게임의 룰에 따라 달라질 수 있다.The game service provided by the
도 1c를 참조하면, 서버(200)는 적어도 하나의 유저측 디바이스(100)로 게임 서비스를 제공할 수 있다. 서버(200)는 유저측 디바이스(100)로부터 게임 실행 요청을 수신하면, 게임을 구성하는 구성 요소 중에서 일부 구성 요소인 확률 기반 가변 구성 요소를 구성할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 대한 데이터를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송한다. 확률 기반 가변 구성 요소의 예시로는 카드 게임에서의 데크(Deck) 정보가 될 수 있다. 데크는 카드 한 벌을 의미한다. 그리고 확률에 따라서 복수의 데크 중 어느 하나가 선택될 수 있다. 여기서의 복수의 데크들 각각을 구성하는 카드들은 서로 섞임이 서로 다를 수 있다. 복수의 데크들 각각을 구성하는 카드들의 섞임이 다르므로 복수의 데크 중 어떤 데크가 선택되느냐에 따라서 게임 환경에서 유저들에게 분배될 카드의 종류가 달라지게 된다. 또 다른 예로, 확률 기반 가변 구성 요소는 주사위 게임에서의 주사위가 나타낼 수의 정보가 될 수 있다. 다만, 확률 기반 가변 구성 요소는 전술한 예시에 한정되는 것은 아니고, 게임을 구성하는 구성 요소 중에서 랜덤하게 결정되는 모든 게임 구성 요소가 여기에 해당될 수 있다.Referring to FIG. 1C, the
서버(200)는 명령들을 저장하는 적어도 하나의 메모리(201) 및 적어도 하나의 프로세서(202)를 포함하고, 명령들은 프로세서(202)로 하여금 동작들을 수행하게 하기 위해 프로세서(202)에 의해 실행 가능하고, 동작들은 게임 실행 요청 신호 수신, 랜덤 값 요청 신호 전송, 서버시드 생성, 유저시드 수신, 조합시드 생성, 해시 값 생성, 확률 기반 가변 구성 요소 결정, 메모리(210) 내의 데이터 검색, 게임 데이터 송수신 및 각종 전송 전송 동작을 포함할 수 있다.The
또한, 서버(200)는 확률 기반 가변 구성 요소를 생성하기 위하여 시드, 랜덤 함수 및 해시 함수를 이용할 수 있다. 랜덤 함수는 시드를 입력 받아 임의의 길이의 랜덤 값을 출력하는 함수이다. 예를 들어, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 복수의 데크 정보들 각각에 매칭시키고, 복수의 데크 정보들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 데크 정보를 선택할 수 있다. 다른 예로, 서버(200)는 랜덤 함수로부터 출력 가능한 모든 랜덤 값들을 주사위가 표현 가능한 수들 각각에 매칭시키고, 주사위가 표현 가능한 수들 중에서 랜덤 함수로부터 출력된 랜덤 값에 미리 매칭된 주사위의 수를 선택할 수 있다. 본 명세서에서 설명하는 랜덤 함수들은 서로 다른 종류의 랜덤 함수가 될 수 있다. 따라서, 랜덤 함수들은 각각 동일한 입력에 대한 서로 다른 값을 출력할 수 있으나 이에 한정하는 것은 아니다.In addition, the
해쉬 함수는 임의의 길이를 갖는 메시지인 시드를 입력 받아 고정된 길이의 해쉬 값을 출력하는 함수이다. 해쉬 함수는 키를 사용하지 않으므로 같은 입력에 대해서는 항상 같은 출력이 나오게 된다. 이러한 함수를 사용하는 목적은 입력 시드에 대한 변경할 수 없는 증거 값을 뽑아냄으로서 시드의 오류나 변조를 탐지할 수 있는 무결성을 제공할 수 있다. 해시 함수의 예시로는, 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
네트워크(300)는 유저측 디바이스(100) 및 서버(200)들과 같은, 다양한 네트워크 노드들 사이에서 통신을 용이하게 하는 임의의 요소 또는 시스템을 포함할 수 있다. 예컨대 네트워크(300)는 컴퓨터 네트워크들, 전화 또는 다른 통신 네트워크들, 인터넷 등과 같은 하나 이상의 전기통신 네트워크들을 포함할 수 있다. 아울러 네트워크(300)는 광역(예: WAN) 또는 근거리(예: LAN)를 포괄하는 공유형 공공, 또는 사설의 데이터 네트워크를 포함할 수 있다. 일부 구현들에서, 네트워크(300)는 인터넷 프로토콜(IP)을 사용하여 패킷 교환의 방식으로 데이터 교환을 용이하게 할 수 있다. 또한, 네트워크(300)는 유선 및/또는 무선 연결 및 통신을 용이하게 할 수 있다.
도 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
서버(200)는 유저측 디바이스(100)에 게임 서비스를 제공하면서 유저 정보 및 게임 플레이 정보를 데이터베이스화하여 저장하고, 이를 지속적으로 업데이트 할 수 있다.The
도 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
도 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
도 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
한편, 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.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
서버(200)는 생성한 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 또한, 서버(200)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다.The
유저측 디바이스(100)는 유저확인용 해시 값을 수신하면 이를 디스플레이할 수 있다. 다른 측면에서, 유저측 디바이스(100)는 유저가 유저확인용 해시 값 표시 아이콘을 디스플레이할 수 있다. 그리고 해당 아이콘에 대한 유저의 선택에 응답하여 서버(200)로부터 수신한 유저확인용 해시 값을 디스플레이할 수 있다.The user-
서버(200)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 일부 실시예에 따르면, 32bit 체제인 서버(200)에서의 서버시드는 2의 32승에 해당하거나 이에 근접한 숫자로 구성될 수 있고, 64bit 체제인 서버(200)에서의 서버시드는 2의 64승에 해당하거나 이에 근접한 숫자로 구성될 수 있다. The
또한, 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 또한, 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 유저측 디바이스(100)는 수신된 게임 데이터에 기초하여 게임을 플레이할 수 있다.In addition, the
또한, 서버(200)는 게임 종료 후 서버시드를 유저측 디바이스(100)로 전송할 수 있다.In addition, the
또한, 프로버블리티 페어 게임 방법(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
다른 측면에서, 검증용페이지는 서버(200)가 사용한 해시 함수를 이용하여 출력 값을 계산할 수 있도록 하는 페이지로 연결하는 링크를 포함하는 형태로 구성될 수도 있다. 따라서, 유저는 검증용페이지 상에서(또는, 검증용페이지 상의 링크에 연결된 페이지 상에서) 서버(200)로부터 수신한 서버시드를 입력하여 서버(200)로부터 수신한 유저확인용 해시 값과 동일한 값이 나오는지를 검증할 수 있다.In another aspect, the verification page may be configured to include a link to a page that allows the
본 발명의 실시예에 따르면, 서버(200)는 매크로 정보에 기초하여 서버 시드를 생성한다. 따라서, 해킹 등의 원인으로 서버(200)가 생성 가능한 모든 서버시드에 대한 정보를 유저가 알고 있는 경우라고 하여도, 유저는 확률 기반 가변 구성 요소를 결정할 때 실제 어떤 서버시드가 이용될지 유추하는 것은 매우 어렵다.According to an embodiment of the present invention, the
또한, 서버(200)는 매 게임 마다 서로 다른 매크로 정보를 이용하여 서버시드를 생성하도록 구성될 수도 있다. 따라서, 유저가 대량의 컴퓨팅 자원을 이용한다고 하여도 유저가 현재 게임에서 사용할 서버시드를 실시간으로 유추하는 것이 거의 불가능하게 한다.In addition, the
도 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
서버(200)는 매크로 정보를 입력으로 하는 랜덤 함수의 출력 값인 서버시드를 생성할 수 있다.The
유저시드 및 서버시드는 숫자, 문자 또는 숫자열이나 문자열 또는 숫자와 문자의 조합으로 구성될 수 있으나 이에 제한되는 것은 아니다.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
서버(200)는 조합시드에 기초하여 유저확인용 해시 값을 생성할 수 있다. 예를 들어, 서버(200)는 AAABBB 문자열인 조합시드를 입력으로 하여 #!ojqncui@$ 문자열인 유저확인용 해시 값을 출력하는 해시 함수를 이용하여 유저확인용 해시 값을 생성할 수 있다.The
서버(200)는 유저확인용 해시 값을 유저측 디바이스로 전송할 수 있다. 그리고 서버(200)는 조합시드를 입력으로 하여 랜덤 값을 출력하는 랜덤 함수를 이용하여 조합시드에 대한 랜덤 값을 생성하고, 생성된 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 결정된 확률 기반 가변 구성 요소를 포함하는 게임 데이터를 유저측 다비이스(100)로 전송하여 게임이 플레이되도록 할 수 있다. 그리고 서버(200)는 게임 종료 후 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The
유저는 서버(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
또한, 실시예는 랜덤 값 생성 시 유저시드를 이용하므로 유저의 게임의 공정성에 대한 신뢰도를 향상시킬 수 있다. 아울러 실시예는 서버시드를 생성할 때 유저의 게임 플레이 결과에 따라 변동 가능한 매크로 정보를 이용하므로 서버시드가 유출될 가능성 및 레인보우 테이블을 이용한 시드 해킹 가능성을 최소화할 수 있다.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
실시예는 서버시드가 모두 유출된 상황에서도 서버시드로 이용될 랜덤 값을 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(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
도 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
게임서버(220)는 J개의 시드 생성 서버(210)들 중 수학식 1로부터의 결과 값에 대응하는 하나의 시드 생성 서버를 선택하고 선택된 시드 생성 서버로 랜덤 값을 요청할 수 있다.The
[수학식 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
게임서버(220)는 시드 생성 서버로부터 랜덤 값을 수신하고 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 생성한 유저확인용 해시 값을 유저측디바이스(100)로 전송할 수 있다. 그리고 게임서버(220)는 서버시드를 입력으로 하는 랜덤 함수의 출력 값을 생성할 수 있다. 그리고 게임서버(220)는 랜덤 값에 기초하여 게임 내의 확률 가변 구성 요소를 결정할 수 있다. 그리고 게임서버(220)는 결정된 확률 기반 가변 요소를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 유저측 디바이스(100)의 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The
다른 측면에서 도 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
게임서버(220)는 수신된 랜덤 값을 서버시드로 이용할 수 있다. 그리고 게임서버(220)는 유저시드와 서버시드를 조합한 조합시드를 생성하고, 조합시드를 입력으로 하는 해시 함수의 출력 값인 유저확인용 해시 값을 생성할 수 있다. 그리고 게임서버(220)는 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임서버(220)는 조합시드에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정하고, 결정된 확률 기반 가변 요소에 대한 정보를 포함하는 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다. 또한, 게임이 종료된 이후 유저측 디바이스(100)는 게임서버(220)로 게임 검증을 요청할 수 있다. 게임서버(220)는 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수 있다.The
실시예는 서버시드가 모두 유출된 상황에서도 확률 기반 가변 구성 요소를 결정하기 위한 기초 정보인 서버시드에 대한 정보를 해킹할 수 없도록 한다. 보다 상세하게는, 게임서버(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
또한, 실시예는 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 다르게 설정함으로써 서버시드의 해킹 가능성을 원천 봉쇄할 수 있다. 예를 들어, 특정 유저가 다수의 유저측 디바이스를 통제하면서 게임 실행 요청 신호의 횟수를 해킹한 경우라 할지라도 특정 유저가 복수의 시드 생성 서버들 각각의 랜덤 값 생성 알고리즘을 모두 파악하지 않는 한 실시간으로 서버시드를 해킹하는 것은 거의 불가능하기 때문이다.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
또한, 서버(200)는 서버시드를 생성할 수 있다. 다른 측면에서, 서버(200)는 게임서버와 시드 생성 서버로 구성될 수 있다. 그리고 전술한 방식에 따라 게임서버가 시드 생성 서버로부터 수신한 랜덤 값을 서버시드로 이용할 수도 있다. 그리고 서버(200)는 유저시드와 서버시드에 기초하여 유저확인용 해시 값을 생성할 수 있다.In addition, the
다른 측면에서 서버시드는 제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
또한, 서버(200)는 유저시드와 서버시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 예를 들어, 랜덤 함수는 제1 조합시드를 입력으로 하는 랜덤 함수의 출력 값인 랜덤 값을 생성할 수 있다. 그리고 서버(200)는 생성한 랜덤 값에 기초하여 게임 내의 확률 기반 가변 구성 요소를 결정할 수 있다. 그리고 서버(200)는 확률 기반 가변 구성 요소에 기초로 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.In addition, the
또한, 서버(200)는 게임 종료 후 유저측 디바이스(100)로 서버시드 및 랜덤 값을 전송할 수 있다. 다른 측면에서, 서버(200)는 게임 종료 후 유저측 디바이스(100)로부터의 게임 검증 요청에 응답하여 서버시드를 유저측 디바이스(100)로 전송할 수도 있다.In addition, the
실시예는 제2 조합시드에 기초하여 생성된 유저확인용 해시 값을 유저측 디바이스(100)로 전송하므로 유저는 유저확인용 해시 값으로부터 서버시드를 유추할 수 없도록 한다. 즉, 유저확인용 해시 값과 시드가 서로 일대일로 매칭되지 않도록 하여, 레인보우 테이블을 제작하는 방식으로 서버 시드 유출이 거의 불가능하도록 한다.Since the embodiment transmits the user confirmation hash value generated based on the second combined seed to the
도 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
서버(200)는 위치정보시드에 기초하여 선택된 데크 내의 카드의 위치를 업데이트할 수 있다. 예를 들어, 서버(200)는 조합 시드를 입력으로 하는 랜덤 함수의 출력 값인 위치정보시드를 생성할 수 있다. The
위치정보시드는 서로 중복되지 않는 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
서버(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
서버(200)는 게임 시작 전에 제1 및 제2 유저확인용 해시 값을 유저측 디바이스(100)로 전송할 수 있다. 그리고 서버(200)는 카드의 위치가 업데이트된 데크의 정보에 기초하여 게임 데이터를 구성하고, 구성된 게임 데이터를 유저측 디바이스(100)로 전송할 수 있다.The
또한, 서버(200)는 게임 종료에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수 있다. 다른 측면에서 게임 종료 후 유저측 디바이스(100)의 게임 검증 요청에 응답하여 서버시드와 변환된 위치정보시드를 유저측 디바이스(100)로 전송할 수도 있다.In addition, the
유저는 제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-
또한, 실시예는 랜덤 값에 기초하여 선택된 데크 내의 카드의 위치를 변경함으로써, 해킹 유저가 플레이되는 데크 정보를 지속적으로 수집하여 게임 플레이 결과를 유추하게 되는 문제를 차단할 수 있다. 또한, 업데이트된 카드의 위치 정보에 대한 해시 값을 유저에게 전송함으로써 게임의 공정성에 대한 유저의 신뢰를 확보할 수 있다.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.
상기 게임서버가 상기 유저시드 및 상기 제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.
상기 게임서버가 게임 시작 전 상기 유저확인용 해시 값을 상기 유저측 디바이스로 전송하는
온라인 기반의 프로버블리티 페어 게임 방법.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.
상기 게임서버가 게임 종료에 응답하여 상기 서버시드를 상기 유저측 디바이스로 전송하는
온라인 기반의 프로버블리티 페어 게임 방법.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.
상기 게임서버가 상기 유저시드 및 상기 서버시드를 이용하여 상기 유저확인용 해시 값이 생성되는 것을 검증할 수 있는 검증용페이지를 상기 유저측 디바이스로 전송하는 단계;를 더 포함하는
온라인 기반의 프로버블리티 페어 게임 방법.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.
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100861649B1 (en) | 2007-01-17 | 2008-10-02 | 엔에이치엔(주) | Online game method and system |
-
2018
- 2018-01-18 KR KR1020180006395A patent/KR102023430B1/en active IP Right Grant
Patent Citations (4)
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 |