(19)
(11)EP 3 944 181 A1

(12)EUROPEAN PATENT APPLICATION
published in accordance with Art. 153(4) EPC

(43)Date of publication:
26.01.2022 Bulletin 2022/04

(21)Application number: 20779318.3

(22)Date of filing:  23.03.2020
(51)International Patent Classification (IPC): 
G06Q 99/00(2006.01)
G06Q 30/02(2012.01)
G06Q 30/06(2012.01)
H04L 9/06(2006.01)
(52)Cooperative Patent Classification (CPC):
G06Q 99/00; H04L 9/06; G06Q 30/02; G06Q 30/06
(86)International application number:
PCT/KR2020/003922
(87)International publication number:
WO 2020/197204 (01.10.2020 Gazette  2020/40)
(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Designated Extension States:
BA ME
Designated Validation States:
KH MA MD TN

(30)Priority: 22.03.2019 KR 20190033212

(71)Applicant: Bsquarelab
Seoul 06021 (KR)

(72)Inventors:
  • AHN, Kye Hyuk
    Bucheon-si Gyeonggi-do 14581 (KR)
  • KIM, Chang Yong
    Yongin-si Gyeonggi-do 16944 (KR)

(74)Representative: KASTEL Patentanwälte PartG mbB 
St.-Cajetan-Straße 41
81669 München
81669 München (DE)

  


(54)METHOD AND APPARATUS FOR CONDUCTING FAIR LOTTERY WHILE REDUCING TRANSACTION COST BY USING BLOCKCHAIN NETWORK


(57) Disclosed is a method for conducting a lottery transparently and fairly while using a blockchain at a low cost by performing fewer transactions, the method comprising the steps in which: (a) when lottery participation requests are obtained from user terminals, a service server causes an allocation module to generate a lottery pool; (b) the service server causes a processing module to generate representative lottery pool information, and then transmits same to a blockchain network; (c) the service server registers the transmitted representative lottery pool information or processed information thereof in the blockchain network, causes a lottery smart contractor to generate a winning reference number, and to register same in the blockchain network, and then to transmit the winning reference number to the service server or another device; and (d) the service server causes a determination module or said another device to determine a specific user terminal that has won.




Description

TECHNICAL FIELD



[0001] The present invention relates to a method of performing a fair lottery while reducing transaction costs using a blockchain network.

BACKGROUND



[0002] It is not easy to fairly distribute limited resources, such as popular liberal arts classes that everyone wants to register, concert seats for world stars, and high-speed train tickets for holidays. In most cases, a simple digital first-come-first-served method is used to distribute such limited resources, and the resources are distributed to those who apply over the Internet earlier. However, the digital first-come-first-served method has a problem in that the winner is determined by unreasonable factors such as the Internet speed in the corresponding area and the operation speed of the computer.

[0003] One of various experimental methods proposed to replace the above-mentioned method is a random lottery method. By receiving applications for obtaining the corresponding resource for a set period of time and randomly determining winners among them, the method provides an advantage of not being affected by the unreasonable factors described above. However, the disadvantage of this method is that the lottery process is not transparent, so it is difficult to gain trust from the applicants. In other words, when the lottery is performed internally within the server, the applicants may not trust the lottery process because, for example, the person in charge of the lottery may select a particular applicant as a winner with a bias.

[0004] On the other hand, blockchain technology is a technology that prevents data tampering based on distributed computing technology by storing data to be managed in a block, which is a chain-type distributed data storage environment based on the P2P technology.

[0005] If the blockchain technology is applied to the aforementioned random lottery method, the lottery process can be transparently disclosed, so the advantages of the random lottery method can be taken, and the disadvantages can be eliminated. However, such attempt is lacking.

DETAILED DESCRIPTION OF THE INVENTION


Technical Problems



[0006] An object of the present invention is to solve the above problems.

[0007] An object of the present invention is to provide a method for performing a fair lottery while reducing transaction costs using a blockchain network to allow resources to be distributed in an equitable way such that the applicants can trust the lottery method.

Technical Solutions



[0008] The characteristic configuration of the present invention for achieving the objects of the present invention as described above and for realizing the characteristic effects to be described later is as follows.

[0009] According to an aspect of the present invention, there is provided a method of performing a lottery transparently and fairly while using a blockchain at a low cost by performing fewer transactions. The method includes (a) upon obtaining a plurality of lottery participation requests from user terminals, causing, by a service server, an allocation module to generate a lottery pool by assigning pool table values to the plurality of lottery participation requests; (b) causing, by the service server, a processing module to generate at least one representative lottery pool information using information associated with the lottery pool, and transmitting the representative lottery pool information to a blockchain network; (c) registering, by the service server, the transmitted representative lottery pool information or processed information thereof in the blockchain network, and causing a lottery smart contract registered in the blockchain network to generate at least one winning reference number, to register it in the blockchain network, and to transmit the winning reference number to the service server or another device; and (d) causing, by the service server, a determination module included in the service server or in the another device to determine at least one particular user terminal as a winner among the user terminals with reference to the winning reference number.

[0010] In some embodiments, in step (b), the service server causes the processing module to generate the representative lottery pool information that represents the lottery pool by applying at least one hash operation to the information associated with the lottery pool after extracting the information.

[0011] In some embodiments, in step (c), the service server causes the lottery smart contract to generate a random seed value using information on the blockchain network, and to generate the winning reference number using the random seed value.

[0012] In some embodiments, the information on the blockchain network comprises at least some of (i) miner's address information of a particular block included in the blockchain network, (ii) difficulty information of the particular block, (iii) gas limit information of the particular block, (iv) number information of the particular block, (v) timestamp information corresponding to the particular block, and (vi) a particular hash value corresponding to the particular block.

[0013] In some embodiments, the service server causes the lottery smart contract to generate a winning sequence that includes a plurality of the winning reference numbers by performing a pseudo-random number generation using the random seed value.

[0014] In some embodiments, the service server causes the lottery smart contract to perform the pseudo-random number generation according to an equation,



[0015] where a and c are arbitrary constants, M is a number equal to or greater than a number of lottery participation requests, and Xn+1 and Xn are numbers that are recursively generated using the equation starting from X0, which corresponds to the random seed value.

[0016] In some embodiments, step (d) comprises causing, by the service server, the determination module or the another device to determine particular user terminals by obtaining the generated winning reference numbers in an order of generation, and by applying a modular operation to each of the winning reference numbers; and in order to determine a K+1th particular user terminal, the service server causes the determination module or the another device to: after determining a Kth particular user terminal corresponding to a Kth winning reference number, where K is an integer equal to or greater than 1 and equal to or less than N-1, decrease by 1 the pool table values of the lottery participation requests that are greater than a pool table value corresponding to the Kth particular user terminal; update the lottery pool to make a greatest pool table value, among the pool table values before decreasing the pool table values, to correspond to the Kth particular user terminal; and apply the modular operation on a K+1th winning reference number based on a number obtained by subtracting K from a number corresponding to the number of the lottery participation requests, thereby determining the K+1th selected user terminal with respect to the updated lottery pool.

[0017] In some embodiments, in step (b), the service server causes the processing module to generate a plurality of representative lottery pool information representing each part by applying a hash operation to information on each of a plurality of parts constituting the lottery pool.

[0018] In some embodiments, the representative lottery pool information, which is registered in the blockchain and available for viewing by a user, is used as a reference for the user to verify whether the lottery pool has been tampered with, and the representative lottery pool information is used as the reference for comparison with test lottery pool information that is generated by the user based on published information associated with the lottery pool and published information associated with a hash operation.

[0019] According to another aspect of the present invention, there is provided a service server that performs a lottery transparently and fairly while using a blockchain at a low cost by performing fewer transactions. The service server comprises one or more memories for storing instructions, and one or more processors configured to execute the instructions, and the processor is configured to: (I) upon obtaining a plurality of lottery participation requests from user terminals, cause an allocation module to generate a lottery pool by assigning pool table values to the plurality of lottery participation requests; (II) cause a processing module to generate at least one representative lottery pool information using information associated with the lottery pool, and transmit the representative lottery pool information to a blockchain network; (III) subsequent to registering the transmitted representative lottery pool information or processed information thereof in the blockchain network, cause a lottery smart contract registered in the blockchain network to generate at least one winning reference number, to register it in the blockchain network, and to transmit the winning reference number to the service server or another device; and (IV) cause a determination module included in the service server or in the another device to determine at least one particular user terminal as a winner among the user terminals with reference to the winning reference number.

[0020] In some embodiments, in process (II), the processor is configured to cause the processing module to generate the representative lottery pool information that represents the lottery pool by applying at least one hash operation to the information associated with the lottery pool after extracting the information.

[0021] In some embodiments, in process (III), the processor is configured to cause the lottery smart contract to generate a random seed value using information on the blockchain network, and to generate the winning reference number using the random seed value.

[0022] In some embodiments, the information on the blockchain network comprises at least some of (i) miner's address information of a particular block included in the blockchain network, (ii) difficulty information of the particular block, (iii) gas limit information of the particular block, (iv) number information of the particular block, (v) timestamp information corresponding to the particular block, and (vi) a particular hash value corresponding to the particular block.

[0023] In some embodiments, the processor is configured to cause the lottery smart contract to generate a winning sequence that includes a plurality of the winning reference numbers by performing a pseudo-random number generation using the random seed value.

[0024] In some embodiments, the processor is configured to cause the lottery smart contract to perform the pseudo-random number generation according to an equation,



[0025] where a and c are arbitrary constants, M is a number equal to or greater than the number of lottery participation requests, and Xn+1 and Xn are numbers that are recursively generated using the equation starting from X0, which corresponds to the random seed value.

[0026] In some embodiments, in process (II), the processor is configured to cause the determination module or the another device to determine particular user terminals by obtaining the generated winning reference numbers in an order of generation, and by applying a modular operation to each of the winning reference numbers; and in order to determine a K+1th particular user terminal, the processor is configured to cause the determination module or the another device to: after determining a Kth particular user terminal corresponding to a Kth winning reference number, where K is an integer equal to or greater than 1 and equal to or less than N-1, decrease by 1 the pool table values of the lottery participation requests that are greater than a pool table value corresponding to the Kth particular user terminal; update the lottery pool to make a greatest pool table value, among the pool table values before decreasing the pool table values, to correspond to the Kth particular user terminal; and apply the modular operation on a K+1th winning reference number based on a number obtained by subtracting K from a number corresponding to the number of the lottery participation requests, thereby determining the K+1th selected user terminal with respect to the updated lottery pool.

[0027] In some embodiments, in process (II), the processor is configured to cause the processing module to generate a plurality of representative lottery pool information representing each part by applying a hash operation to information on each of a plurality of parts constituting the lottery pool.

[0028] In some embodiments, the representative lottery pool information, which is registered in the blockchain and available for viewing by a user, is used as a reference for the user to verify whether the lottery pool has been tampered with, and the representative lottery pool information is used as the reference for comparison with test lottery pool information that is generated by the user based on published information associated with the lottery pool and published information associated with a hash operation.

Advantageous Effects



[0029] The present invention offers advantages effects by providing a method of performing a fair lottery using a selective algorithm based on the situations by storing the factors for the lottery in the blockchain network, to allow the resources to be distributed in an equitable way such that the applicants can trust the lottery method.

BRIEF DESCRIPTION OF THE DRAWINGS



[0030] 

FIG. 1 is a schematic diagram showing the configuration of a service server for performing a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

FIG. 2 is a schematic diagram showing the overall configuration of a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

FIG. 3 is a flowchart illustrating a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

FIG. 4 is a schematic diagram illustrating a process of updating a lottery pool for a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.


DETAILED DESCRIPTION



[0031] Reference is made to the accompanying drawings, which show by way of illustration exemplary embodiments in which the present invention may be implemented. These examples are described in sufficient detail to allow the invention to be implemented by those skilled in the art. It should be understood that the various exemplary embodiments of the present invention may be different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein with respect to one exemplary embodiment may be implemented in other embodiments without departing from the spirit and scope of the invention. In addition, it should be understood that the location or arrangement of individual components within each disclosed exemplary embodiment may be modified without departing from the spirit and scope of the present invention. Accordingly, the detailed description set forth below is not intended to be taken in a limiting sense, and the scope of the present invention, if properly described, is limited only by the appended claims, along with all scopes equivalent to those claimed. Like reference numerals in the drawings refer to the same or similar functions throughout the various aspects.

[0032] Hereinafter, in order to enable those of ordinary skill in the art to easily practice the present invention, preferred exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

[0033] FIG. 1 is a schematic diagram showing the configuration of a service server for performing a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

[0034] Referring to FIG. 1, a service server 100 may include an allocation module 130, a processing module 140, and a determination module 150. Here, input/output and calculation processes of the allocation module 130, the processing module 140, and the determination module 150 may be performed by a communication unit 110 and a processor 120. However, in FIG. 1, a detailed connection relationship between the communication unit 110 and the processor 120 is omitted. Further, a memory 115 may be in a state in which various instructions to be described later are stored, and the processor 120 may be configured to execute the instructions stored in the memory 115. As such, the present invention can be carried out as the processor 120 performs the processes described herein. Even though the service server 100 is described as above, the case where the service server 100 includes an integrated processor, in which a medium for implementing the present invention, a processor, and a memory are integrated, is not excluded.

[0035] Hereinabove, the service server 100 has been described, and reference will now be made to FIG. 2 to describe a blockchain network 200 in communication with the service server 100 and its interworking relationship.

[0036] FIG. 2 is a schematic diagram showing the overall configuration of a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

[0037] Since the blockchain network 200 in communication with the service server 100 is required to have registered a lottery smart contract, which will be described later, it may be a blockchain adopting a smart contract technique, typically an Ethereum network. However, the present invention is not limited thereto. As described above, the service server 100 and the blockchain network 200 can exchange data by interacting with each other, and an API may be used in this process.

[0038] Hereinafter, referring to FIG. 3, the lottery method of the present invention will be described in detail.

[0039] FIG. 3 is a flowchart illustrating a method of performing a fair lottery while reducing transaction costs using a blockchain network according to an exemplary embodiment of the present invention.

[0040] In general, the service server 100 may have previously distributed the lottery smart contract to the blockchain network 200 (S00). This step may have been basically performed before the lottery process of the present invention begins. Thereafter, the service server 100 may generate a lottery pool, which will be described later, and then transmit representative lottery pool information that represents the lottery pool to the blockchain network 200 (S01). Subsequently, the service server 100 may cause the blockchain network 200 to generate a lottery reference value (S02), and after obtaining the lottery reference value, the service server 100 may determine a particular user terminal by using the lottery reference value (S03). With this general configuration, the method will be described in more detail below.

[0041] First, the service server 100 may obtain a plurality of lottery participation requests from user terminals. Here, the user terminals may transmit the lottery participation requests via packets generated using the SSL standard. Accordingly, the lottery participation requests may be transmitted while maintaining confidentiality. Also, upon receiving the lottery participation requests, the service server 100 may verify the user terminals via mobile phone authentication.

[0042] Thereafter, the service server 100 may cause the allocation module 130 to generate the lottery pool by allocating a pool table value to each of the plurality of lottery participation requests. Each of the allocated pool table values may be set to contiguous integers to ensure interoperability with winning reference numbers, which will be described later, but is not limited thereto. For example, each of the pool table values may be an integer starting from 0, in the order in which the respective lottery participation requests are obtained.

[0043] Thereafter, the service server 100 may cause the processing module 140 to generate at least one representative lottery pool information with reference to the information associated with the lottery pool. More specifically, the representative lottery pool information may be generated by the service server 100 causing the processing module 140 to apply at least one hash operation to the information associated with the lottery pool after extracting the information.

[0044] The representative lottery pool information may be understood as information that contains information associated with the lottery pool in a condensed manner. As shown in the drawings, and as will be described later, it is a value to be registered in the blockchain network 200 and posted so that other users can check it. It would be most straightforward if the entire lottery pool is registered in the blockchain network 200 as it is, but such implementation can increase the transaction costs since a large capacity is required for the transmission. Therefore, in the present invention, in order to decrease the transaction costs, the representative lottery pool information containing the information associated with the lottery pool is registered in the blockchain network 200 so that the users can check it. Furthermore, by publishing the lottery pool and the hash operation, the users can trust the lottery process. In other words, the representative lottery pool information is registered in the blockchain network 200 as evidence that the manager of the service server 100 did not commit inequitable conducts such as tampering with the lottery pool. More specifically, any user can verify the reliability of the lottery pool by generating test lottery pool information using the published lottery pool and hash operation and comparing it with the registered representative lottery pool information.

[0045] In detail, the above-described information associated with the extracted lottery pool may include pool table values or binary values for each lottery participation request. That is, it may include the pool table values, the binary values, or both. Also, the hash operation may be an operation using a hash algorithm such as MD5 or SHA, but is not limited thereto.

[0046] In another exemplary embodiment, instead of generating one representative lottery pool information, a plurality of representative lottery pool information may be generated. More specifically, the service server 100 may cause the processing module 140 to generate a plurality of representative lottery pool information representing each part, by applying a hash operation to information associated with each of a plurality of parts constituting the lottery pool. For example, among the lottery participation requests, one representative lottery pool information representing the requests having a pool table value of 0 or above and 100 or below and another representative lottery pool information representing the requests having a pool table value of 101 or above and 200 or below may be generated.

[0047] Subsequent to at least one representative lottery pool information being generated, the service server 100 may deliver it to the blockchain network 200.

[0048] Thereafter, the service server 100 may register the delivered representative lottery pool information or the processed information thereof in the blockchain network 200. The processed information of the representative lottery pool information may be generated by applying another hash operation to the representative lottery pool information or applying a predetermined transformation operation to the representative lottery pool information.

[0049] Thereafter, the service server 100 may cause the lottery smart contract previously registered in the blockchain network 200 to generate at least one winning reference number and then register it in the blockchain network 200.

[0050] More specifically, the service server 100 may cause the lottery smart contract to generate a random seed value based on information associated with the blockchain network 200, and then to use the random seed value to generate the winning reference number. Here, the information associated with the blockchain network 200 may include at least some of (i) miner's address information of a particular block included in the blockchain network 200, (ii) difficulty information of a particular block, (iii) gas limit information of a particular block, (iv) number information of a particular block, (v) timestamp information corresponding to a particular block, and (vi) specific hash values corresponding to a particular block. The above-mentioned difficulty information of a particular block may be the mining difficulty of the particular block.

[0051] In addition, a particular block may be a block used when registering the representative lottery pool information in the blockchain network 200, or a block to be used when registering a winning reference number, which will be described later, in the blockchain network 200, or a block currently being used or a block that has been used in the past and stored by each node. Since each value is difficult to predict, using it as the random seed value may allow values close to random to be generated.

[0052] Accordingly, as an example, the service server 100 may generate the winning reference numbers by causing the lottery smart contract to use at least some of the above-described information as a random seed value, and by performing a pseudo-random number generation using this value to generate a winning sequence including a plurality of winning reference numbers.

[0053] The pseudo-random number generation may be performed according to the following equation.



[0054] In the above equation, a and c are arbitrary constants, and are generally set to large prime numbers. M may be the number of lottery participation requests in some embodiments, and may be a large constant equal to or greater than a preset threshold in some other embodiments. Xn+1 and Xn may be the winning reference numbers recursively generated from the equation starting from X0 that corresponds to the random seed value.

[0055] Once the winning reference numbers are generated by the above-described method, the service server 100 may cause the smart contract to register the winning reference numbers in the blockchain network 200, and may cause the determination module 150 to determine at least one particular user terminal that is selected among the user terminals with reference to the winning reference numbers. In the above-described exemplary embodiment, since the winning sequence including the winning reference numbers is generated, user terminals whose pool table values correspond to the winning reference numbers may be selected. For example, if the winning sequence is 1, 7, 51, 78, user terminals having corresponding pool table values may be selected as particular user terminals. In the other exemplary embodiment described above, particular user terminals may be selected using numbers that are in the same size range as the pool table values by performing a modular operation on the numbers included in the winning sequence with a value corresponding to the number of lottery participation requests. For example, if the winning sequence is 12583725, 6543864396, and 3496340, and the size of the lottery pool is 100, a modular operation using 100 may be applied to select user terminals corresponding to 25, 96, and 40 as the particular user terminals.

[0056] With respect to the process after the winning reference number is generated, the above description has been provided for a case where the winning reference number is generated and then transmitted back to the service server 100. However, in practice, the winning reference numbers do not need to be transmitted back to the service server 100. That is, when the winning reference numbers are generated, the service server 100 may cause the lottery smart contract to transmit the winning reference numbers to other devices. The other devices may include a terminal of another user or another server. Thereafter, the service server 100 may cause the other devices to determine particular user terminals as described above with reference to the winning reference numbers.

[0057] Whereas an exemplary embodiment of the present invention has been described above, a modified exemplary embodiment that is capable of preventing a problem that may arise from overlapped winning reference numbers will be described below.

[0058] That is, when the service server 100 causes the lottery smart contract to generate the winning reference numbers, an exemplary embodiment in which the method is slightly modified can be derived. More specifically, the service server 100 may cause the determination module 150 or the above-described other devices to obtain the winning reference numbers in the order in which they are generated, and then to apply the modular operation to each winning reference number to determine a particular user terminal. Further, in order to determine the K+1th particular user terminal (K is an integer equal to or greater than 1 and equal to or less than N-1), after determining the Kth particular user terminal that corresponds to the Kth winning reference number, remove the Kth particular user terminal from the lottery pool, decrease pool table values of lottery participation requests having pool table values greater than the pool table value corresponding to the Kth particular user terminal by one, update the lottery pool table such that the pool table value that was the greatest before decreasing the pool table values corresponds to the Kth particular user terminal in the lottery pool, and subsequently determine the K+1th particular user terminal by applying a modular operation to the K+1th winning reference number using the number of lottery participation requests subtracted by K, with respect to the updated lottery pool. As can be seen from the description, this exemplary embodiment is based on an embodiment in which M is a constant equal to or greater than a predetermined threshold among the above-described embodiments. Here, using a number obtained by subtracting K from the number corresponding to the number of lottery participation requests is to conform to the above-described lottery pool update process whenever a particular user terminal is selected. This relationship will be more clearly described below with reference to FIG. 4.

[0059] FIG. 4 is a schematic diagram illustrating a process of updating the lottery pool to perform a method of performing a fair lottery while reducing transaction costs using a blockchain network according to a modified exemplary embodiment of the present invention.

[0060] Referring to FIG. 4, such a modified embodiment can be more specifically seen. The upper box of the drawing shows a status before the Kth particular user terminal is determined, and it can be seen that A has a pool table value of 467, A' has 468, and B, C, and D have 467, 468, and 469, respectively. If it is confirmed that the result of applying the modular operation to the Kth winning reference number is 467, A will be determined as the Kth particular user terminal. In this case, A is sent to the back of the lottery pool, and the user terminals that were behind A can be advanced forward one by one. Accordingly, as shown in the drawing, the pool table value of A' will become 467, and the pool table values of B, C, and D will become 466, 467, and 468, respectively. Further, the pool table value of A will be 1000. Here, since the modular operation is applied to the winning reference numbers, and thus the value is decreased by one for this, the values sent back from the lottery pool will not be selected again. That is, if the value obtained by applying the modular operation to the Kth winning reference number ranges from 0 to 1000, the K+1th winning reference number may have a corresponding range from 0 to 999. However, the present invention is not limited to such an algorithm, and various modifications may be adopted.

[0061] One of the advantages of this exemplary embodiment is that even if the winning reference number is duplicated, the user terminal that actually wins the lottery will not be duplicated. In the example of FIG. 4, even if the K+1th winning reference number is confirmed as 467 again, A would not be selected as the K+1th particular user terminal again. Instead, A', which is another user terminal, will be determined as the K+1th particular user terminal.

[0062] Due to the above modified exemplary embodiment, even if the winning reference number is duplicated, it is possible to prevent problems from occurring.

[0063] The exemplary embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through 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. The program instructions recorded on the computer-readable recording medium may be specifically designed and configured for the present invention, or may be known and available to those skilled in the computer software field. Examples of the computer-readable recording medium include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical disks such as floptical disks, 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 language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

[0064] In the foregoing, the present invention has been described with specific matters such as specific components and limited exemplary embodiments and drawings, but these are only provided to help a more general understanding of the present invention, and the present invention is not limited to the above exemplary embodiments. Those of ordinary skill in the art to which the present invention pertains can devise various modifications and variations from these descriptions.

[0065] Therefore, the spirit of the present invention should not be limited to the above-described exemplary embodiments. Rather, not only the claims described below, but also all equivalent modifications belong to the scope of the spirit of the present invention.


Claims

1. A method for conducting a lottery transparent and fairly while using blockchain at a low cost by performing fewer transactions, the method comprising:

(a) upon obtaining a plurality of lottery participation requests from user terminals, causing, by a service server, an allocation module to generate a lottery pool by assigning pool table values to the plurality of lottery participation requests;

(b) causing, by the service server, a processing module to generate at least one representative lottery pool information using information associated with the lottery pool, and transmitting the representative lottery pool information to a blockchain network;

(c) registering, by the service server, the transmitted representative lottery pool information or processed information thereof in the blockchain network, and causing a lottery smart contract registered in the blockchain network to generate at least one winning reference number, to register it in the blockchain network, and to transmit the winning reference number to the service server or another device; and

(d) causing, by the service server, a determination module included in the service server or in the another device to determine at least one particular user terminal as a winner among the user terminals with reference to the winning reference number.


 
2. The method of claim 1, wherein, in step (b), the service server causes the processing module to generate the representative lottery pool information that represents the lottery pool by applying at least one hash operation to the information associated with the lottery pool after extracting the information.
 
3. The method of claim 2, wherein, in step (c), the service server causes the lottery smart contract to generate a random seed value using information on the blockchain network, and to generate the winning reference number using the random seed value.
 
4. The method of claim 3, wherein the information on the blockchain network comprises at least some of (i) miner's address information of a particular block included in the blockchain network, (ii) difficulty information of the particular block, (iii) gas limit information of the particular block, (iv) number information of the particular block, (v) timestamp information corresponding to the particular block, and (vi) a particular hash value corresponding to the particular block.
 
5. The method of claim 3, wherein the service server causes the lottery smart contract to generate a winning sequence that includes a plurality of the winning reference numbers by performing a pseudo-random number generation using the random seed value.
 
6. The method of claim 5, wherein the service server causes the lottery smart contract to perform the pseudo-random number generation according to an equation,

where a and c are arbitrary constants, M is a number equal to or greater than a number of lottery participation requests, and Xn+1 and Xn are numbers that are recursively generated using the equation starting from X0, which corresponds to the random seed value.
 
7. The method of claim 6, wherein step (d) comprises causing, by the service server, the determination module or the another device to determine particular user terminals by obtaining the generated winning reference numbers in an order of generation, and by applying a modular operation to each of the winning reference numbers, and
wherein, in order to determine a K+1th particular user terminal, the service server causes the determination module or the another device to:

after determining a Kth particular user terminal corresponding to a Kth winning reference number, where K is an integer equal to or greater than 1 and equal to or less than N-1, decrease by 1 the pool table values of the lottery participation requests that are greater than a pool table value corresponding to the Kth particular user terminal;

update the lottery pool to make a greatest pool table value, among the pool table values before decreasing the pool table values, to correspond to the Kth particular user terminal; and

apply the modular operation on a K+1th winning reference number based on a number obtained by subtracting K from a number corresponding to the number of the lottery participation requests, thereby determining the K+1th selected user terminal with respect to the updated lottery pool.


 
8. The method of claim 1, wherein, in step (b), the service server causes the processing module to generate a plurality of representative lottery pool information representing each part by applying a hash operation to information on each of a plurality of parts constituting the lottery pool.
 
9. The method of claim 1, wherein the representative lottery pool information, which is registered in the blockchain and available for viewing by a user, is used as a reference for the user to verify whether the lottery pool has been tampered with, and
wherein the representative lottery pool information is used as the reference for comparison with test lottery pool information that is generated by the user based on published information associated with the lottery pool and published information associated with a hash operation.
 
10. A service server that performs a lottery transparently and fairly while using a blockchain at a low cost by performing fewer transactions, the service server comprising:

at least one memory for storing instructions; and

at least one processor configured to execute the instructions,

wherein the processor is configured to:

(I) upon obtaining a plurality of lottery participation requests from user terminals, cause an allocation module to generate a lottery pool by assigning pool table values to the plurality of lottery participation requests;

(II) cause a processing module to generate at least one representative lottery pool information using information associated with the lottery pool, and transmit the representative lottery pool information to a blockchain network;

(III) subsequent to registering the transmitted representative lottery pool information or processed information thereof in the blockchain network, cause a lottery smart contract registered in the blockchain network to generate at least one winning reference number, to register it in the blockchain network, and to transmit the winning reference number to the service server or another device; and

(IV) cause a determination module included in the service server or the another device to determine at least one particular user terminal as a winner among the user terminals with reference to the winning reference number.


 
11. The service server of claim 10, wherein, in process (II), the processor is configured to cause the processing module to generate the representative lottery pool information that represents the lottery pool by applying at least one hash operation to the information associated with the lottery pool after extracting the information.
 
12. The service server of claim 11, wherein, in process (III), the processor is configured to cause the lottery smart contract to generate a random seed value using information on the blockchain network, and to generate the winning reference number using the random seed value.
 
13. The service server of claim 12, wherein the information on the blockchain network comprises at least some of (i) miner's address information of a particular block included in the blockchain network, (ii) difficulty information of the particular block, (iii) gas limit information of the particular block, (iv) number information of the particular block, (v) timestamp information corresponding to the particular block, and (vi) a particular hash value corresponding to the particular block.
 
14. The service server of claim 12, wherein the processor is configured to cause the lottery smart contract to generate a winning sequence that includes a plurality of the winning reference numbers by performing a pseudo-random number generation using the random seed value.
 
15. The service server of claim 14, wherein the processor is configured to cause the lottery smart contract to perform the pseudo-random number generation according to an equation,


where a and c are arbitrary constants, M is a number equal to or greater than the number of lottery participation requests, and Xn+1 and Xn are numbers that are recursively generated using the equation starting from X0, which corresponds to the random seed value.
 
16. The service server of claim 15, wherein, in process (II), the processor is configured to cause the determination module or the another device to determine particular user terminals by obtaining the generated winning reference numbers in an order of generation, and by applying a modular operation to each of the winning reference numbers, and
wherein, in order to determine a K+1th particular user terminal, the processor is configured to cause the determination module or the another device to:

after determining a Kth particular user terminal corresponding to a Kth winning reference number, where K is an integer equal to or greater than 1 and equal to or less than N-1, decrease by 1 the pool table values of the lottery participation requests that are greater than a pool table value corresponding to the Kth particular user terminal;

update the lottery pool to make a greatest pool table value, among the pool table values before decreasing the pool table values, to correspond to the Kth particular user terminal; and

apply the modular operation on a K+1th winning reference number based on a number obtained by subtracting K from a number corresponding to the number of the lottery participation requests, thereby determining the K+1th selected user terminal with respect to the updated lottery pool.


 
17. The service server of claim 10, wherein, in process (II), the processor is configured to cause the processing module to generate a plurality of representative lottery pool information representing each part by applying a hash operation to information on each of a plurality of parts constituting the lottery pool.
 
18. The service server of claim 10, wherein the representative lottery pool information, which is registered in the blockchain and available for viewing by a user, is used as a reference for the user to verify whether the lottery pool has been tampered with, and
wherein the representative lottery pool information is used as the reference for comparison with test lottery pool information that is generated by the user based on published information associated with the lottery pool and published information associated with a hash operation.
 




Drawing
















Search report