Random event generation method, verification method and device, storage medium, and terminal

By keeping the initial random number confidentially processed and disclosed to the user in the software application, and generating the third random number as a random seed based on the second random number provided by the user, the problem that users and management platforms are difficult to prove the fairness of random events is solved, and the transparency and fairness of random events are improved.

JP7669540B1Active Publication Date: 2025-04-28张博洋
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024004653
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-12-19
Filing Date
2024-01-16
Publication Date
2025-04-28
Estimated Expiration
2044-01-16

AI Technical Summary

Technical Problem

In software applications, it is difficult for users and management platforms to prove whether random events are secretly manipulated, resulting in users being skeptical about the fairness of random results.

Method used

The initial random number is confidential by using a confidentiality processing algorithm previously negotiated with the user and expose it to the user for verification, ensuring that the random number cannot be used again after it is disclosed. At the same time, the user provides a second random number and generates a third random number as a random seed using the previously negotiated algorithm to generate a random event.

Benefits of technology

It improves the convenience of users to verify whether random events are secretly manipulated, enhances the transparency and fairness of random events, and reduces the possibility that the management platform manipulates random results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007669540000001_ABST
    Figure 0007669540000001_ABST
Patent Text Reader

Abstract

To provide a random event generating method, a verification method and device, a storage medium, and a terminal, which improve the convenience for a user to verify whether a random event has been tampered with. The method includes a step of performing confidentiality processing on a first random number using a confidentiality processing algorithm pre-agreed with a user, based on the first random number, to provide the user with a confidentiality processing result. The first random number is arranged to maintain confidentiality for the user, to be disclosed to the user in response to a disclosure request from the user, and to be invalid after being disclosed to the user. The method also includes a step of obtaining a second random number provided by the user, and a step of generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the user, to generate a random number sequence using the third random number as a random seed, and to generate a random event derived from the random number sequence.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to the field of computer technology, and more particularly to a method and apparatus for generating and verifying random events, a storage medium, and a terminal. [Background technology]

[0002] In many software applications, random events that interact with users are related, such as lotteries for players in games, lotteries for viewers in live streaming on networks, etc. In concrete implementation, operating platforms for games, live streaming on networks, etc. generally use random numbers to generate corresponding random events. For example, in one application scenario, after a game user defeats a monster, the game manufacturer randomly grants the user some bonuses. As game business models evolve, the phenomenon of using randomness to increase game revenues has become increasingly common. A typical example is the so-called "gacha game." In such games, users can use certain resources (such as points or in-game currency) to draw items in the game, and each time they draw an item, they can obtain rare items in the game with a certain probability.

[0003] Taking a gacha game as an example, because the item draw result itself depends on probability, all users pray for good luck, but there are also cases where they experience bad luck, and users have doubts about whether the item draw system is fraudulent or rigged. Also, in order to maintain users' positivity in item draws, game makers want to prove that they are not manipulating the item draw results. Therefore, both users and game makers hope that it will be proven that there is no rigging in the gacha system.

[0004] Currently, for games where random numbers are generated on a server terminal, game makers generally prove the absence of tampering using one of the following methods: Method 1: Proving the absence of tampering by publishing the source code of the game server; Method 2: Game makers, in accordance with regulatory requirements, prove the absence of tampering by publishing the lottery odds; Method 3: Proving the absence of tampering using blockchain technology.

[0005] However, in the case of method 1, users have no way of knowing whether the code actually running on the server has been modified behind the scenes, so even the method of publishing the source code cannot convince users. In the case of method 2, if users want to investigate and confirm whether the lottery probability of the game matches the announced probability, they can only record a large number of lottery records and compare the frequency of obtaining rare items with the announced probability. Obviously, such a frequency-based probability estimation method cannot accurately determine whether the "lottery probability" matches the announced probability. In addition, this method makes it difficult to eliminate the possibility that game makers intentionally pollute and manipulate the statistical results. In addition, for individual users, it is difficult to meaningfully verify the lottery probability because the sample size is generally small. In the case of method 3, since blockchain technology is complex, it is difficult to guarantee the performance and reliability when related algorithms are applied to the gaming field. In addition, such algorithms are generally complex and difficult to understand, and users also lack related knowledge of blockchain, making it difficult to convince users. Summary of the Invention [Problem to be solved by the invention]

[0006] As described above, currently, in some software application interactions based on random events, users and operating platforms cannot easily prove whether the random events have been engineered.

[0007] The technical problem solved by the embodiments of the present invention is that in some software application interactions based on conventional random events, neither the user nor the operating platform can easily prove whether the random events have been rigged. [Means for solving the problem]

[0008] In order to solve the above technical problems, an embodiment of the present invention provides a method for generating a random event, comprising: a step of performing confidentiality processing on a first random number using a confidentiality processing algorithm pre-agreed with a user based on the first random number, and providing the confidentiality processing result to the user, wherein the first random number maintains confidentiality for the user, is disclosed to the user in response to a disclosure request from the user, and is arranged to be invalid after being disclosed to the user; a step of obtaining a second random number provided by the user; and a step of generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the user, generating a random number sequence using the third random number as a random seed, and generating a random event derived from the random number sequence.

[0009] Preferably, the step of providing the confidentiality processing result to the user includes any one of the following: displaying the confidentiality processing result to the user; and mapping the confidentiality processing result to an element sequence based on a first mapping pre-agreed with the user, and displaying the element sequence to the user, wherein a plurality of elements in the element sequence are derived from a predetermined set of symbols.

[0010] Preferably, the element sequence corresponding to the confidentiality processing result is obtained by combining a number of elements from said set of symbols.

[0011] Preferably, the second random number is obtained by one of the following methods: obtaining the second random number by mapping an element selected by the user from the element sequence according to a second mapping agreed upon with the user; or the user inputting the second random number arbitrarily.

[0012] Preferably, the step of obtaining the second random number by copying an element selected by the user from the element sequence according to a second mapping agreed with the user includes the step of obtaining the second random number by copying an element sequence obtained by arranging an element selected by the user from the element sequence according to a second mapping agreed with the user.

[0013] Preferably, the user instructs a device used by the user to store the confidentiality processing result and the second random number.

[0014] Preferably, the method for generating a random event further includes the step of performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation.

[0015] Preferably, the method further comprises the step of receiving a confirmation of the user for the confidentiality processing result before obtaining the second random number provided by the user.

[0016] An embodiment of the present invention further provides a method for verifying a random event, comprising the steps of: sending a disclosure request to an operating platform in response to a user's verification operation, the disclosure request requesting the operating platform to disclose a first random number; receiving the first random number; obtaining a second random number, generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the operating platform, generating a random number sequence using the third random number as a random seed, and verifying whether the random event derived from the random number sequence is the same as the random event actually generated by the operating platform.

[0017] An embodiment of the present invention further provides a random event generation device, including: a confidentiality unit that performs confidentiality processing on a first random number using a confidentiality processing algorithm pre-agreed with a user based on the first random number, and provides a confidentiality processing result to the user, wherein the first random number maintains confidentiality for the user, is disclosed to the user in response to a disclosure request from the user, and is configured to be invalid after being disclosed to the user; an acquisition unit that acquires a second random number provided by the user; and a random event generation unit that generates a third random number based on the first random number and the second random number using an algorithm pre-agreed with the user, generates a random number sequence using the third random number as a random seed, and generates a random event derived from the random number sequence.

[0018] An embodiment of the present invention further provides a random event verification device, which includes: a sending unit for sending a disclosure request to an operating platform in response to a user's verification operation, the disclosure request including: a sending unit for requesting the operating platform to disclose a first random number; a receiving unit for receiving the first random number; and a verification unit for obtaining a second random number, generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the operating platform, generating a random number sequence using the third random number as a random seed, and verifying whether the random event derived from the random number sequence is the same as the random event actually generated by the operating platform.

[0019] An embodiment of the present invention further provides a computer-readable storage medium having a computer program stored thereon, the computer program, when executed by a processor, performing steps of the above-mentioned random event generation method or steps of the above-mentioned random event verification method.

[0020] An embodiment of the present invention further provides a terminal including a memory and a processor, wherein the memory stores a computer program executable by the processor, and when the processor executes the computer program, it performs steps of the above-mentioned random event generation method or steps of the above-mentioned random event verification method. Effect of the Invention

[0021] Compared with the prior art, the technical solutions of the embodiments of the present invention have the following beneficial effects: A third random number is generated based on the first random number and the second random number using an algorithm previously agreed with the user, a random number sequence is generated using the third random number as a random seed, and a random event is further generated derived from the random number sequence. A confidentiality processing algorithm previously agreed with the user is used to perform confidentiality processing on the first random number, and a confidentiality processing result is provided to the user. The first random number can be disclosed to the user in response to a request from the user, and is arranged to be invalid after disclosure. In this way, the user requests that the first random number be disclosed through a disclosure request, and after knowing the first random number, the user performs confidentiality processing on the first random number based on the previously agreed confidentiality processing algorithm, and verifies whether the first random number has been replaced by comparing the consistency between the confidentiality processing result obtained by the user and the disclosed confidentiality processing result. Furthermore, the authenticity of a third random number as a random seed is verified based on the first random number and the second random number, and a random event derived from a random number sequence generated using the third random number as a random seed is verified to be the same as a random event actually generated by the operating platform, thereby verifying the authenticity of the random event, thereby achieving verification of whether the generated random event has been tampered with. Generating a random event in this manner can improve the convenience of a user in verifying whether a random event has been tampered with. [Brief description of the drawings]

[0022] [Figure 1] 1 is a flowchart of a method for generating random events in one embodiment of the present invention. [Diagram 2] FIG. 2 is a schematic diagram of a user interface display. [Diagram 3] FIG. 11 is a schematic diagram of another user interface display. [Figure 4] FIG. 13 is a schematic diagram showing yet another user interface display. [Diagram 5] FIG. 13 is a schematic diagram showing yet another user interface display. [Figure 6]1 is a flowchart of a method for verifying a random event in one embodiment of the present invention. [Figure 7] 1 is a structural schematic diagram of a random event generating device in one embodiment of the present invention; [Figure 8] 1 is a structural schematic diagram of a random event verification device in an embodiment of the present invention; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] As described above, currently, in some software application interactions based on random events, users and operating platforms may not be able to easily prove whether the random events have been engineered.

[0024] In order to solve the above problem, in an embodiment of the present invention, the first random number can be disclosed to a user in response to a user's request, and is configured to be invalid after disclosure. In this way, a user can request that the first random number be disclosed by a disclosure request, and after knowing the first random number, the user performs confidentiality processing on the first random number based on a pre-agreed confidentiality processing algorithm, and verifies whether the first random number has been replaced by comparing the consistency between the confidentiality processing result obtained by the user and the disclosed confidentiality processing result. Furthermore, the authenticity of the third random number as a random seed is verified based on the first random number and the second random number, and the authenticity of the random event is verified by verifying whether the random event derived from the random number sequence generated using the third random number as the random seed is the same as the random event actually generated by the operating platform, thereby realizing verification of whether the generated random event has been tampered with. Generating a random event in this manner can improve the convenience of the user to verify whether the random event has been tampered with.

[0025] In order to make the above objectives, features and advantageous effects of the embodiments of the present invention more comprehensible, the specific embodiments of the present invention will be described in detail below in conjunction with the drawings.

[0026] An embodiment of the present invention provides a method for generating random events, which is applicable to an operating platform for interactive software applications. Specifically, an interactive software application usually involves an operating platform and a number of devices connected to the operating platform via a network, and users connect to the operating platform via their respective devices to realize various functions such as games, live streaming on a network, etc. The operating platform is a variety of servers on which service-side programs are deployed, and the devices used by users may be computers, smartphones, tablets, game consoles, etc., on which client programs are executed, and the client programs and the service-side programs interact with each other and cooperate to realize various interactive services and functions.

[0027] Referring to FIG. 1, the random event generating method of the present embodiment includes the following steps 11 to 13.

[0028] Step 11: Based on the first random number, perform confidentiality processing on the first random number using a confidentiality processing algorithm pre-agreed with a user, and provide the confidentiality processing result to the user, wherein the first random number maintains confidentiality for the user, is disclosed to the user in response to a disclosure request from the user, and is configured to be invalid after being disclosed to the user.

[0029] Step 12: Obtain a second random number provided by the user.

[0030] Step 13: Using an algorithm previously agreed upon with the user, generate a third random number based on the first random number and the second random number, generate a random number sequence using the third random number as a random seed, and generate a random event derived from the random number sequence.

[0031] As can be seen from the above, the first random number can be disclosed to the user in response to the user's request, and is configured to be invalid after disclosure. In this way, the user requests the first random number to be disclosed through a disclosure request, and after knowing the first random number, the user performs confidentiality processing on the first random number based on a pre-agreed confidentiality processing algorithm, and verifies whether the first random number has been replaced by comparing the confidentiality processing result obtained by the user with the disclosed confidentiality processing result for consistency. Furthermore, the authenticity of the third random number as a random seed is verified based on the first random number and the second random number, and the authenticity of the random event is verified by verifying whether the random event derived from the random number sequence generated using the third random number as the random seed is the same as the random event actually generated by the operating platform, thereby realizing verification of whether the generated random event has been tampered with. Generating the random event in this manner can improve the convenience of the user in verifying whether the random event has been tampered with.

[0032] In a specific implementation of step 11, the first random number is provided by an operating platform. The operating platform may be a game maker's operating platform, a live streaming company's operating platform, etc. The user may be a game player, a live streaming viewer, a participant of other types of random events, etc.

[0033] The operating platform may agree on relevant algorithms with users, such as algorithms used to generate random events (e.g., confidentiality processing algorithm, random seed generation algorithm, random event derivation algorithm, etc.), so as to make the relevant algorithms publicly available. The operating platform may also agree on relevant algorithms with users, such as to make the relevant code for generating random events public. Here, the operating platform may also pre-agree on relevant algorithms with users in other ways, which are not described here.

[0034] In a specific implementation, the confidentiality processing algorithm in step 11 satisfies the following conditions: Condition 1: it is difficult to find a different first random number that makes the confidentiality processing results after confidentiality processing of two first random numbers the same, i.e., it has the feature of resistance to collision attacks; Condition 2: it is difficult to obtain the first random number by inverse estimation based only on the confidentiality processing result, i.e., it has the feature of resistance to preimage attacks.

[0035] In some embodiments, the confidentiality processing algorithm includes a cryptographic hash function, which may be, for example, a SHA256 function, a SM3 function, a SHA3 function, etc. In this case, the confidentiality processing result is a hash value obtained by performing a hash calculation on the first random number using the cryptographic hash function.

[0036] In some alternative embodiments, the confidentiality processing algorithm may include a digital signature function.

[0037] In the process of generating a random event, the operating platform provides the user with the confidentiality processing result of the first random number, i.e., discloses the confidentiality processing result to the user, but the first random number maintains confidentiality to the user. If the user requests that the first random number be disclosed through a disclosure request, the operating platform discloses the first random number to the user. After being disclosed to the user, the first random number becomes invalid. When generating subsequent random events, the invalid first random number will not be used, and when generating a random event again thereafter, a new first random number will be generated.

[0038] In specific implementation, the confidentiality processing result can be provided to the user in one of the following ways:

[0039] In some non-limiting embodiments, the confidentiality processing result is displayed to the user, i.e., the confidentiality processing result is displayed in its original form to the user, for example, the confidentiality processing result may be displayed in a user interface.

[0040] In some other non-limiting examples, the confidentiality processing result is mapped to an element sequence using a first mapping pre-agreed with the user, and the element sequence is displayed to the user, where a number of elements in the element sequence are from a pre-defined set of symbols, where the elements in the pre-defined set of symbols are at least one of letters, words, pictures, emoticons, etc., where the pre-defined set of symbols is pre-agreed with the user.

[0041] In some embodiments, the element sequence corresponding to the confidentiality processing result is obtained by combining a number of elements from the set of symbols.

[0042] For example, the confidentiality processing result is mapped to the element sequence using a Combinatorial Number System (CNS) encoding method (the full English name of the Combinatorial Number System may be combinatorial representation of integers or combinadic), or another predetermined mapping method such as string concatenation is used to map the confidentiality processing result to the element sequence.

[0043] In some non-limiting embodiments, before step 12, the user's confirmation information for the confidentiality processing result is received. That is, the confidentiality processing result is confirmed by the user. In other words, the first random number is confirmed by the user. In this way, the user's doubts about the operation platform using the first random number beneficial to the user can be further resolved.

[0044] In a specific implementation, a user operates a device to send a request to exchange the confidentiality processing result to the operating platform. For example, the user interface is provided with an "exchange" operation button for exchanging the confidentiality processing result, and when the user triggers the "exchange" button, a request to exchange the confidentiality processing result is sent to the operating platform. When the request to exchange the confidentiality processing result is received, the operating platform regenerates a new first random number and provides the confidentiality processing result corresponding to the new first random number to the user. In this case, the confidentiality processing result corresponding to the new first random number is displayed on the user interface.

[0045] In step 12, the second random number provided by the user can be generated in a variety of ways, examples of which are given below.

[0046] In some embodiments, the second random number is obtained by mapping an element selected by the user from the sequence of elements according to a second mapping agreed with the user.

[0047] A user selects some or all of the elements from a sequence of elements that correspond to a confidentiality processing result, and obtains the second random number by mapping the sequence of elements obtained by arranging the elements selected by the user from the sequence of elements according to a second mapping agreed upon with the user.

[0048] In some embodiments, the second mapping includes an encoding scheme according to the Factorial Number System (FNS), which may be called factoradic in English.

[0049] In a specific implementation, when a user selects an element from the elements of the element sequence corresponding to the confidentiality processing result, the user can perform at least one operation on the element, such as sorting, inserting, deleting, picking, transforming, etc. The transformation can include one or more of rotation, mirroring, color changing, substitution, etc. In this way, by providing a plurality of predetermined operations on the element, the randomness of the generation of the second random number can be ensured, and the operating platform can easily control and save the operating cost.

[0050] A user can manipulate an element in the element sequence corresponding to the confidentiality processing result through an interaction manner such as clicking, dragging, or pressing a key. After completing the manipulation on the element in the element sequence, the manipulated element sequence is recorded, and the manipulated element sequence is mapped according to a second predetermined mapping to obtain a second random number. The length of the manipulated element sequence may be the same as or different from the length of the element sequence corresponding to the confidentiality processing result.

[0051] In some other embodiments, the second random number is arbitrarily input by the user. The content input by the user may be a character, a picture, a character, etc. In this case, the second random number may not depend on the element sequence corresponding to the confidentiality processing result. In this way, the randomness of the second random number provided by the user is further improved to avoid being predicted in advance by the operating platform, and the probability of manipulation of the operating platform is further reduced.

[0052] In some non-limiting examples, a sensitive information detection is performed on the second random number provided by the user, and if the sensitive information detection result indicates that the second random number contains sensitive information, the user is prompted to provide a new second random number. The second random number containing the sensitive information may be discarded.

[0053] The sensitive information detection for the second random number can be realized by a preset sensitive thesaurus or a sensitive information detection machine learning model, etc. According to different types of the second random number, the specific detection method is different, and can be selected according to actual needs.

[0054] In some non-limiting examples, the second random number can be displayed. For example, the second random number is displayed in a user interface. Of course, the second random number may not be displayed depending on the display arrangement of the second random number by the user.

[0055] Furthermore, the device used by the user may be instructed to store the confidentiality processing result and the second random number. Storing the confidentiality processing result and the second random number facilitates subsequent investigation by the user. The device used by the user may be instructed to store the confidentiality processing result and the second random number in the form of a screenshot. The device used by the user may be instructed to store the confidentiality processing result and the second random number in the form of a screen recording. Furthermore, the device used by the user may be instructed to capture the confidentiality processing result and the second random number and store them in text form.

[0056] The device used by the user may store the confidentiality processing result and the second random number in the device used by the user in response to an instruction from the operating platform. The device used by the user may further store the confidentiality processing result and the second random number in the device used by the user in response to a storage operation by the user.

[0057] In addition, in response to the user's storage operation, the operating platform performs an anti-tampering processing operation on the stored confidentiality processing result and the second random number. The anti-tampering processing operation includes at least one of a digital watermarking technology processing or a digital signature technology processing on the stored confidentiality processing result and the second random number. For example, adding a digital watermark or a digital signature to the confidentiality processing result and the second random number can effectively prevent the user from maliciously tampering with the confidentiality processing result and the second random number.

[0058] In order for those skilled in the art to easily understand the method for generating the second random number, some examples will be used for explanation below.

[0059] Example 1 The elements in the set of predetermined symbols are emoticons. The emoticons can include basic emoticons and rotated emoticons based on the basic emoticons after rotating them by a predetermined angle, for example, 90 degrees, 180 degrees, 270 degrees, or other angles. That is, the set of predetermined symbols is a set of emoticons.

[0060] The confidentiality processing result of the first random number is converted into an element sequence with a length of n using the encoding method of CNS, and displayed on the user interface, where n is a positive integer. Refer to Figure 2, take n equal to 16 as an example, and the element sequence obtained by converting the confidentiality processing result is x1, x2...x 16 In practice, the element sequence obtained by copying the confidentiality processing result is not limited to being displayed in the form of a matrix, and other suitable methods may be adopted, which are not described here.

[0061] The user may drag the emoticons in the element sequence corresponding to the confidentiality processing result displayed in the user interface to re-sort them, or rotate the emoticons displayed in the user interface according to a predetermined rotation angle. After the user's operation is completed, the sequence on the user interface becomes y1, y2...y 16 and the FNS encoding method is used to encode y1, y2...y 16 into the second random number.

[0062] Example 2 The elements of the set of predetermined symbols are numbers. In the following, an example will be described in which the set of predetermined symbols is a set of hexadecimal numbers.

[0063] The SHA256 hash value of the confidentiality processing result is calculated, and the confidentiality processing result is copied to an element sequence by taking the first n digits, and displayed on the user interface, where the length of the element sequence corresponding to the confidentiality processing result is n. See Fig. 3 for example, n=9. The user interface includes a left display pane 31 and a right display pane 32. The element sequence x1, x2...x9 corresponding to the confidentiality processing result is displayed in the right display pane 32.

[0064] The user selects some or all elements from the element sequence x1, x2...x9 in the right display pane 32, and the selected elements are displayed in the left display pane 31. The elements x1, x2...x9 in the right display pane 32 can be repeatedly selected. Take Fig. 4 as an example, the elements selected by the user are x9, x9, x8 and x1.

[0065] After the user operation is completed, the element sequence in the left display pane 31 after the operation is y1, y2...y m Let the sequence of elements y1, y2...y m to a second random number, where m is a positive integer. For example, given a sequence of elements y1, y2...y m By calculating the hash value of m into the second random number.

[0066] Example 3 The elements in the set of predetermined symbols are a combination of numbers and letters. For example, the elements in the set of predetermined symbols are a set consisting of decimal numbers 0-9 and 26 letters. A trivial mapping is used to map the confidentiality processing result corresponding to the first random number. A trivial mapping is also called an identity mapping, which is a mapping from a set to itself, and for any element, the result after mapping is the same as the original element. That is, the original form of the confidentiality processing result is displayed. Referring to FIG. 5, for example, the confidentiality processing result is displayed in the first display frame 51, and the value of the confidentiality processing result a' is xxxxxx. The user inputs numbers or letters in the second display frame 52, and after the user inputs, the sequence input in the second display frame after the operation is y1, y2...y m If so, then y1, y2...y m to the second random number. For example, to combine characters into a string, y1, y2...y m into the second random number.

[0067] Example 4 The elements in a given set of symbols can be letters, words, pictures, emoticons, etc. The CNS encoding method copies the confidentiality processing result to an element sequence, and the element sequence x1, x2...x nThe elements in come from a given set of symbols. The sequence of elements x1, x2...x n in the user interface. As shown in Example 1, the user is presented with a sequence of elements x1, x2...x n As shown in Example 2, the user may further sort the elements in n The user may select some or all elements from the sequence of elements x1, x2...x n After manipulating the sequence of elements y1, y2……y m Get y1, y2...y in FNS encoding format. m into the second random number.

[0068] Let the number of elements in the set of symbols be p, where p is a positive integer. If we take n elements from the set of symbols and form a combination, the summation is of the following kind: [Number 1]. Therefore, we construct a map using a method such as CNS coding.

[0069]

number

[0070] Certain combinations of x1…x n The y1...y obtained by arranging m In the case of , the number of arrangement methods is [Number 2] kinds, so a mapping of the second random number is obtained by constructing it using a method such as FNS encoding.

[0071]

number

[0072] For n=m, y1…y m By recording the first random number, the confidentiality processing result of the first random number and the second random number can be recorded at the same time. This is because the confidentiality processing result can be decrypted from the included combination information, and the second random number can be decrypted from the included sequence information.

[0073] For example, the set of agreed symbols is {A, B, C, D, E}, and if n=m=3, then the total number of ways to take three elements from the set of symbols to form a combination is [Number 3]=10, and therefore a mapping from confidentiality processing results to element sequences is constructed according to the lexicographical order, i.e., confidentiality processing result 0 corresponds to the element sequence ABC, confidentiality processing result 1 corresponds to the element sequence ABD, confidentiality processing result 2 corresponds to the element sequence ABE, confidentiality processing result 3 corresponds to the element sequence ACD, confidentiality processing result 4 corresponds to the element sequence ACE, confidentiality processing result 5 corresponds to the element sequence ADE, confidentiality processing result 6 corresponds to the element sequence BCD, confidentiality processing result 7 corresponds to the element sequence BCE, confidentiality processing result 8 corresponds to BDE, and confidentiality processing result 9 corresponds to the element sequence CDE.

[0074]

number

[0075] For each combination extracted, the number of arrangement methods is [number 4]=6 kinds, and therefore, a mapping from the element sequence y1y2y3 to the second random number is constructed according to the dictionary order. For example, for the combination ABC, the following mapping is constructed, that is, the element sequence ABC corresponds to the second random number 0, the element sequence ACB corresponds to the second random number 1, the element sequence BAC corresponds to the second random number 2, the element sequence BCA corresponds to the second random number 3, the element sequence CAB corresponds to the second random number 4, and the element sequence CBA corresponds to the second random number 5. Also, for example, for the combination ABE, the following mapping is constructed, that is, the element sequence ABE corresponds to the second random number 0, the element sequence AEB corresponds to the second random number 1, the element sequence BAE corresponds to the second random number 2, the element sequence BEA corresponds to the second random number 3, the element sequence EAB corresponds to the second random number 4, and the element sequence EBA corresponds to the second random number 5.

[0076]

number

[0077] If y1y2y3 is CAB, the confidentiality processing result can be decrypted to 0 and the second random number to 4; if y1y2y3 is AEB, the confidentiality processing result can be decrypted to 2 and the second random number to 1.

[0078] In a specific implementation of step 13, the random seed generation algorithm for generating the third random number may include any one of a Key Derivation Function (KDF), an XOR function, a string concatenation function, etc.

[0079] In a specific implementation of step 13, a random number sequence can be generated using an algorithm agreed upon with a user with the third random number as a random seed. The generated random number sequence can be one or more. Each random number sequence corresponds to a random event. The generated random event can be determined based on a mapping between the random number sequence and the random event. The specific algorithm for deriving the random event from the random number sequence can be selected according to actual needs and is not limited here.

[0080] In the process of generating a random number sequence using the third random number as a random seed, external state information such as a timestamp is referred to, or state information within the software application is used to adjust the generated random events by adjusting the generated one or more random number sequences. In this way, it is possible to realize that the generated random events are different depending on the time when the user triggers the generation of the random events. Or, the generated random events are different depending on the state within the software application, and the randomness of the generation of the random events can be further improved. The state information within the software application may be state information within a game, etc.

[0081] It should be noted that the random numbers in the embodiments of the present invention, for example the first random number, the second random number and the third random number, are not limited to numbers in the strict sense, but may be computer data, for example a character string or a bit string.

[0082] The embodiment of the present invention further provides a method for verifying a random event, which is applicable to a device used by a user. In an interactive software application, an operating platform and a plurality of devices connected to the operating platform via a network are usually involved, and a user connects to the operating platform through each device to realize various functions such as games and network live distribution. The operating platform may be various servers on which service-side programs are arranged, and the devices used by the user may be computers, smartphones, tablets, game consoles, etc., on which client programs are executed, and the client programs and the service-side programs interact with each other and cooperate to realize various interactive services and functions. The client programs may be third-party programs or programs developed by the operating platform. Referring to FIG. 6, the method for verifying a random event includes the following steps 61 to 63.

[0083] Step 61: In response to the user's verification operation, send a disclosure request to an operating platform, where the disclosure request requests the operating platform to disclose a first random number.

[0084] Step 62: Receive the first random number.

[0085] Step 63: Obtain a second random number, and use an algorithm pre-agreed with the operating platform to generate a third random number based on the first random number and the second random number, and generate a random number sequence using the third random number as a random seed, and verify whether the random event derived from the random number sequence is the same as the random event actually generated by the operating platform.

[0086] In specific implementation, for the specific steps of the operating platform actually generating random events, refer to the description in steps 11 to 13 provided in the above embodiment, and the specific generation process of random events will not be described here.

[0087] In a specific implementation, in step 61, a random event verification entry is provided in the user interface, and a user performs a verification operation on the random event actually generated by the operating platform through the random event verification entry. The random event verification entry may be a button, a link, or may have various suitable forms such as an input box for a first random number and a second random number.

[0088] When detecting a user's verification operation, the operating platform sends a disclosure request to the operating platform in response to the user's verification operation. After receiving the disclosure request, the operating platform provides a first random number to the user. The device used by the user can store the first random number. For example, the first random number is stored in a screen recording manner, a screenshot manner, a text manner, etc.

[0089] Furthermore, the stored first random number has been subjected to a tamper-proof processing operation, which can include at least one of a digital watermarking process or a digital signature process on the stored first random number.

[0090] In step 63, the first random number may be input by a user, may be obtained from the operating platform, or may be obtained by obtaining the first random number stored in the device used by the user. The second random number may be input by a user, or may be obtained by obtaining the confidentiality processing result and the second random number stored in the device used by the user.

[0091] In some embodiments, after receiving the first random number disclosed by the operating platform, a confidentiality processing algorithm pre-agreed with the operating platform is used to perform confidentiality processing on the first random number, and determine whether the confidentiality processing result by the confidentiality processing is the same as the confidentiality processing result actually provided by the operating platform. The confidentiality processing result actually provided by the operating platform may be the confidentiality processing result stored in the device used by the user. If the confidentiality processing result by the confidentiality processing is the same as the confidentiality processing result actually provided by the operating platform, the operating platform has not exchanged the first random number in an underhanded manner. If the confidentiality processing result by the confidentiality processing is different from the confidentiality processing result actually provided by the operating platform, the operating platform has an underhanded act of exchanging the first random number.

[0092] Furthermore, when a tamper-proof processing operation is performed on the first random number, the confidentiality processing result, and the second random number, the integrity of the tamper-proof processing on the first random number, the confidentiality processing result, and the second random number is verified to verify whether the tamper-proof processing has been corrupted. If the tamper-proof processing is corrupted, a notification that the tamper-proof processing has been corrupted is output. Also, the user may be warned to re-enter the first random number and the second random number.

[0093] In some non-limiting examples, if the first random number differs from the first random number actually provided by the operating platform and / or the second random number differs from the second random number actually provided by the operating platform, an indication that the random numbers do not match is output.

[0094] In some non-limiting embodiments, if the third random number obtained by calculation based on the first random number and the second random number is different from the third random number actually provided by the operating platform, an indication that the third random number has been tampered with is output.

[0095] In a specific implementation of step 63, if the random event derived from the random number sequence is the same as the random event actually generated by the operating platform, it is determined that the operating platform has not tampered, that is, the random event actually generated by the operating platform has no cheating phenomenon; if the random event derived from the random number sequence is different from the random event actually generated by the operating platform, it is determined that the operating platform is suspected of tampering, and a notification is output that the random event has been tampered with.

[0096] Although the above embodiments have been described using games as examples, the technical solutions of the embodiments are not limited to games and can also be applied to various software applications related to interactive random events, such as live network distribution.

[0097] An embodiment of the present invention further provides a random event generating device. Referring to FIG. 7, the random event generating device 70 includes: a confidentiality unit 71 that performs confidentiality processing on the first random number using a confidentiality processing algorithm previously agreed upon with a user based on the first random number, and provides the user with a confidentiality processing result, the confidentiality unit 71 being configured to maintain confidentiality for the user, to disclose the first random number to the user in response to a disclosure request from the user, and to become invalid after being disclosed to the user; an obtaining unit 72 for obtaining a second random number provided by the user; and a random event generation unit 73 that generates a third random number based on the first random number and the second random number using an algorithm previously agreed upon with the user, generates a random number sequence using the third random number as a random seed, and generates a random event derived from the random number sequence.

[0098] In a specific implementation, the random event generating device 70 can realize the random event generating method, and the random event generating device 70 includes units for realizing each step in the random event generating method. For the specific operation principle and operation method of the random event generating device 70, please refer to the description of the random event generating method in the above embodiment, and will not be described here.

[0099] An embodiment of the present invention further provides a random event verification device. Referring to FIG. 8, the random event verification device 80 includes: A sending unit 81 for sending a disclosure request to an operating platform in response to a user's verification operation, the disclosure request requesting the operating platform to disclose a first random number; a receiving unit 82 for receiving the first random number; and a verification unit 83 for obtaining a second random number, generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the operating platform, generating a random number sequence using the third random number as a random seed, and verifying whether the random event derived from the random number sequence is the same as the random event actually generated by the operating platform.

[0100] In a specific implementation, the above-mentioned random event verification device 80 can realize the above-mentioned random event verification method, and the random event verification device 80 includes units for realizing each step in the above-mentioned random event verification method. For the specific operation principle and operation method of the random event verification device 80, please refer to the description of the random event verification method in the above embodiment, and will not be described here.

[0101] An embodiment of the present invention further provides a computer-readable storage medium having a computer program stored thereon, the computer program, when executed by a processor, performing steps of the random event generation method provided by any one of the above embodiments of the present invention, or steps of the random event verification method provided by any one of the above embodiments.

[0102] The computer-readable storage medium may include non-volatile or non-transitory memory, and may include an optical disk, a mechanical hard disk, a solid-state hard disk, and the like.

[0103] An embodiment of the present invention further provides a terminal including a memory and a processor, wherein the memory stores a computer program executable on the processor, and when the processor executes the computer program, it performs steps of the random event generation method provided by any one of the above embodiments, or steps of the random event verification method provided by any one of the above embodiments.

[0104] The memory and the processor are coupled, and the memory may be located within the terminal or outside the terminal. The memory and the processor may be connected by a communication bus.

[0105] The terminal includes terminal devices such as smartphones, computers, tablets, game consoles, etc., but is not limited to these, and may also be servers, cloud platforms, etc.

[0106] The above embodiments may be implemented in whole or in part in software, hardware, firmware or any other combination. When implemented in software, the above embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, it generates in whole or in part the processes or functions according to those described in the embodiments of the present application. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer program may be stored in a computer-readable storage medium or may be transmitted from one computer-readable storage medium to another, for example, the computer program may be transmitted from one website, computer, server or data center to another website, computer, server or data center in a wired or wireless manner.

[0107] Each functional unit in each embodiment of the present invention may be integrated into one processing unit, each unit may be included physically separately, or two or more units may be integrated into one unit. The integrated units may be realized in the form of hardware, or in the form of a combination of hardware and software functional units. For example, for each device or product applied or integrated into a chip, each included module / unit may be realized in the form of hardware such as a circuit, or at least some of the modules / units may be realized in the form of a software program, and the software program may be executed by a processor integrated in the chip, and the remaining (if any) modules / units may be realized in the form of hardware such as a circuit, and for each device or product applied or integrated into a chip module, each included module / unit may be realized in the form of hardware such as a circuit, and different modules / units may be located in the same component (e.g., chip, circuit module, etc.) of the chip module, or in different components, or at least some of the modules / units may be realized in the form of software. For each device or product applied to or integrated into the terminal, each included module / unit is realized in the form of a hardware such as a circuit, and different modules / units are located in the same component (e.g., chip, circuit module, etc.) or in different components within the terminal; or at least some of the modules / units are realized in the form of a software program, the software program is executed by a processor integrated within the terminal, and the remaining modules / units (if any) are realized in the form of hardware such as a circuit.

[0108] The descriptions of first, second, third, etc. in the examples of the present application are intended to illustrate and distinguish the subject matter being described, and are not intended to indicate any particular limitation on the number of devices in the embodiments of the present application, and cannot constitute limitations on the embodiments of the present application.

[0109] Here, in this embodiment, the numbers of each step do not limit the order in which the steps are executed.

[0110] As can be understood by those skilled in the art, all or some of the steps in each method of the above embodiments can be completed by instructing relevant hardware using a program, and the program can be stored in any one of computer-readable storage media, including ROM, RAM, magnetic disk, optical disk, etc.

[0111] Although the present invention has been disclosed as above, the present invention is not limited thereto. Those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention, and therefore the scope of protection of the present invention is limited by the scope of the claims. [Explanation of symbols]

[0112] 51 First display frame 52 Second display frame 70 Generator 71 Confidentiality Unit 72 Acquired Units 73 Random Event Generation Unit 80 Verification Device 81 Transmitter unit 82 Receiving unit 83 Verification Unit

Claims

1. 1. A method for generating random events, comprising: A step of performing confidentiality processing on the first random number using a confidentiality processing algorithm pre-agreed with a user based on the first random number, and providing the confidentiality processing result to the user, wherein the first random number maintains confidentiality for the user, is disclosed to the user in response to a disclosure request from the user, and is arranged to be invalid after being disclosed to the user; obtaining a second random number provided by the user; generating a third random number based on the first random number and the second random number using a random seed generation algorithm previously agreed upon with a user, generating a random number sequence using the third random number as a random seed, and generating a random event derived from the random number sequence; Including, The step of providing the user with a confidentiality processing result includes: mapping the confidentiality processing result to a sequence of elements based on a first mapping pre-agreed with the user, and displaying the sequence of elements to the user, wherein a number of elements in the sequence of elements are derived from a set of predetermined symbols; The method of generating a random event, wherein the second random number is obtained by the user manipulating the element sequence.

2. the element sequence corresponding to the confidentiality processing result is obtained by combining a plurality of elements from the set of symbols; The method for generating random events according to claim 1 .

3. The second random number is 2. The method of claim 1, further comprising obtaining the second random number by mapping an element selected by the user from the sequence of elements according to a second mapping agreed upon with the user.

4. The second random number is 3. The method for generating a random event according to claim 2, further comprising obtaining the second random number by mapping an element selected by the user from the sequence of elements according to a second mapping agreed upon with the user.

5. obtaining the second random number by mapping an element selected by the user from the sequence of elements according to a second mapping agreed with the user, obtaining the second random number by mapping an element sequence obtained by arranging elements selected by the user from the element sequence according to a second mapping agreed upon with the user; The method for generating random events according to claim 3, further comprising:

6. obtaining the second random number by mapping an element selected by the user from the sequence of elements according to a second mapping agreed with the user, obtaining the second random number by mapping an element sequence obtained by arranging elements selected by the user from the element sequence according to a second mapping agreed upon with the user; The method for generating random events according to claim 4, further comprising:

7. instructing a device used by the user to store the confidentiality processing result and the second random number; The method of claim 1 , further comprising:

8. instructing a device used by the user to store the confidentiality processing result and the second random number; The method of claim 1 , further comprising:

9. instructing a device used by the user to store the confidentiality processing result and the second random number; The method of claim 2 further comprising:

10. instructing a device used by the user to store the confidentiality processing result and the second random number; The method of claim 5 further comprising:

11. instructing a device used by the user to store the confidentiality processing result and the second random number; The method of claim 6 further comprising:

12. performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation; The method of claim 7 further comprising:

13. performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation; The method of claim 8 further comprising:

14. performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation; The method of claim 9 further comprising:

15. performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation; The method of claim 10, further comprising:

16. performing a tamper-proof processing operation on the stored confidentiality processing result and the second random number in response to a user's storage operation; The method of claim 11 further comprising:

17. prior to obtaining a second random number provided by the user; receiving a confirmation from the user of the confidentiality processing result; The method of claim 1 , further comprising:

18. A method for verifying a random event, comprising: In response to the user's verification operation, sending a disclosure request to an operating platform, the disclosure request requesting the operating platform to disclose a first random number; receiving the first random number; Obtaining a second random number, generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the operating platform, generating a random number sequence using the third random number as a random seed, and verifying whether the random event derived from the random number sequence is the same as the random event actually generated by the operating platform; Including, The first random number is performing confidentiality processing on the first random number using a confidentiality processing algorithm previously agreed upon with a user based on the first random number, and providing a confidentiality processing result to the user; a first random number, the confidentiality processing result being mapped to an element sequence based on a first mapping previously agreed upon with the user, the element sequence being displayed to the user, and a plurality of elements in the element sequence being elements derived from a set of predetermined symbols; the second random number being derived from the user manipulating the sequence of elements; A method for verifying a random event, comprising:

19. A random event generating device, comprising: a confidentiality unit that performs confidentiality processing on the first random number using a confidentiality processing algorithm pre-agreed with a user based on the first random number, and provides the user with a confidentiality processing result, the confidentiality unit being configured to maintain confidentiality for the first random number with respect to the user, to disclose the first random number to the user in response to a disclosure request from the user, and to become invalid after being disclosed to the user; an acquiring unit for acquiring a second random number provided by the user; a random event generating unit for generating a third random number based on the first random number and the second random number using a random seed generating algorithm previously agreed upon with a user, generating a random number sequence using the third random number as a random seed, and generating a random event derived from the random number sequence; Including, The confidentiality unit comprises: mapping the confidentiality processing result into a sequence of elements based on a first mapping previously agreed upon with the user, and displaying the sequence of elements to the user, the elements in the sequence of elements being derived from a set of predetermined symbols; A random event generating device, characterized in that the second random number is obtained by the user manipulating the element sequence.

20. A random event verification device, comprising: A sending unit for sending a disclosure request to an operating platform in response to a user's verification operation, the disclosure request requesting the operating platform to disclose a first random number; a receiving unit for receiving the first random number; a verification unit for obtaining a second random number, generating a third random number based on the first random number and the second random number using an algorithm pre-agreed with the operating platform, generating a random number sequence using the third random number as a random seed, and verifying whether a random event derived from the random number sequence is the same as a random event actually generated by the operating platform; Including, The first random number is performing confidentiality processing on the first random number using a confidentiality processing algorithm previously agreed upon with a user based on the first random number, and providing a confidentiality processing result to the user; a first random number, the confidentiality processing result being mapped to an element sequence based on a first mapping previously agreed upon with the user, the element sequence being displayed to the user, and a plurality of elements in the element sequence being elements derived from a set of predetermined symbols; the second random number being derived from the user manipulating the sequence of elements; A random event verification device comprising:

21. A computer-readable storage medium having a computer program stored thereon, When the computer program is executed by a processor, the computer program executes the random event generation method according to any one of claims 1 to 17 or the random event verification method according to claim 18. A computer-readable storage medium comprising:

22. A terminal including a memory and a processor, The memory stores a computer program executable by the processor; When the processor executes the computer program, the processor executes steps of the random event generation method according to any one of claims 1 to 17 or steps of the random event verification method according to claim 18. A terminal characterized by: