WO2022149604A1 - 方法及びプログラム - Google Patents

方法及びプログラム Download PDF

Info

Publication number
WO2022149604A1
WO2022149604A1 PCT/JP2022/000284 JP2022000284W WO2022149604A1 WO 2022149604 A1 WO2022149604 A1 WO 2022149604A1 JP 2022000284 W JP2022000284 W JP 2022000284W WO 2022149604 A1 WO2022149604 A1 WO 2022149604A1
Authority
WO
WIPO (PCT)
Prior art keywords
candidate information
nonce candidate
nonce
value
user
Prior art date
Application number
PCT/JP2022/000284
Other languages
English (en)
French (fr)
Inventor
高司 松原
Original Assignee
株式会社Mrsホールディングズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Mrsホールディングズ filed Critical 株式会社Mrsホールディングズ
Priority to KR1020237026663A priority Critical patent/KR20230129268A/ko
Priority to CN202280009254.2A priority patent/CN116710918A/zh
Priority to US18/260,474 priority patent/US20240056308A1/en
Priority to EP22736772.9A priority patent/EP4277200A1/en
Publication of WO2022149604A1 publication Critical patent/WO2022149604A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • This disclosure relates to methods and programs.
  • Patent Document 1 discloses that a user terminal accessing a web site is made to perform mining of a virtual currency in which transaction information is managed using a blockchain.
  • the method according to one embodiment of the present disclosure is It is a method to generate a nonce candidate value to obtain the hash value of the block connected to the blockchain.
  • the terminal device that functions as a node of the blockchain network
  • An acquisition step to acquire multiple nonce candidate information that can be distinguished by each user,
  • An allocation step in which different values are assigned to each of two or more nonce candidate information among the plurality of nonce candidate information.
  • An output step that outputs the two or more nonce candidate information in a manner recognizable by the user, and
  • a storage step for storing a value assigned to one nonce candidate information selected based on a user's operation from the two or more nonce candidate information, and a storage step. Includes performing one or more specific processes with, and generating one nonce candidate value using one or more values stored as a result of the specific process being executed one or more times.
  • the method according to one embodiment of the present disclosure is It is a method to generate a nonce candidate value to obtain the hash value of the block connected to the blockchain.
  • the terminal device that functions as a node of the blockchain network
  • An acquisition step to acquire multiple nonce candidate information that can be distinguished by each user,
  • An allocation step in which different values are assigned to each of two or more nonce candidate information among the plurality of nonce candidate information.
  • An output step that outputs the two or more nonce candidate information in a manner recognizable by the user, and
  • the program according to one embodiment of the present disclosure is It is a program to generate a nonce candidate value to obtain the hash value of the block connected to the blockchain.
  • the specific process having the above is executed one or more times, and one nonce candidate value is generated using one or more values stored as a result of the specific process being executed one or more times.
  • the technique related to the blockchain is improved.
  • the system 1 includes a plurality of terminal devices 10 and a server 20.
  • Each terminal device 10 and server 20 can communicate via a network including, for example, a mobile communication network and the Internet.
  • the terminal device 10 is an arbitrary computer that can be used by the user.
  • a device such as a smartphone, a tablet terminal, or a PC (Personal Computer) can be adopted as the terminal device 10.
  • a PC Personal Computer
  • the server 20 includes one or more computers.
  • Each terminal device 10 functions as a node of the blockchain network.
  • each terminal device 10 connects to the server 20 and performs a login process.
  • the server 20 stores the IP address of each terminal device 10 to which login permission is given.
  • Each terminal device 10 to which login permission is given is connected to each other by P2P (Peer to Peer) communication.
  • P2P Peer to Peer
  • Each terminal device 10 stores blockchain data in at least one storage of its own device and the cloud.
  • the hash rate of a computer that performs mining depends on the computing power of the computer. For this reason, it is common for businesses participating in mining to introduce expensive computers with high computing power and mechanically repeat determination and verification of nonce candidate values. Further, as the hash rate of the entire blockchain increases, it is common practice to increase the difficulty of mining in order to maintain the hash rate at a predetermined target value. Therefore, conventionally, there is a problem that it is difficult for an individual who uses a computer having a relatively low computing power, for example, to participate in mining.
  • the difficulty of mining the blockchain increases to the extent that it is practically impossible to find the correct nonce, and as a result, there is a problem that the hard fork of the blockchain has to be implemented.
  • the technique related to the blockchain is improved in that the problem can be solved.
  • the terminal device 10 that functions as a node of the blockchain network executes a process having an acquisition step, an allocation step, an output step, and a storage step (hereinafter, also referred to as “specific processing”) one or more times.
  • the terminal device 10 acquires a plurality of nonce candidate information that can be distinguished by each user.
  • each of the plurality of nonce candidate information may be image information of a card on which different symbols (that is, user-distinguishable symbols) are written.
  • the terminal device 10 assigns different values to each of two or more nonce candidate information among the plurality of nonce candidate information.
  • the value assigned to each nonce candidate information may be kept secret from the user.
  • each nonce candidate information may be assigned a value represented by an integer of 0 or more and 9 or less, but the user cannot recognize which value is assigned to which nonce candidate information.
  • the terminal device 10 outputs the two or more nonce candidate information in a manner recognizable by the user.
  • each of the two or more nonce candidate information may be output on the display of the terminal device 10 as an image of a card on which different symbols are written.
  • the terminal device 10 stores the value assigned to one nonce candidate information selected based on the user's operation from the two or more nonce candidate information. For example, a value represented by an integer of 0 or more and 9 or less assigned to one selected nonce candidate information may be stored.
  • the terminal device 10 generates one nonce candidate value using one or more values stored as a result of executing the specific process one or more times. For example, when the specific process is executed five times, five values each represented by an integer of 0 or more and 9 or less can be stored. Then, a 5-digit nonce candidate value in which the five values are arranged can be generated.
  • the nonce candidate value is determined using the value assigned to the nonce candidate information selected based on the user's operation from the two or more nonce candidate information.
  • the hash rate of the terminal device 10 does not depend on the computing power because the user's operation for selecting the nonce candidate information is required to determine the nonce candidate value. Therefore, for example, the technique related to the blockchain is improved in that even an individual who uses a computer having a relatively low computing power can easily participate in mining.
  • the value assigned to each nonce candidate information is concealed from the user.
  • the user cannot intentionally select the nonce candidate information to which the desired value is assigned, and as a result, the desired nonce candidate value cannot be intentionally input from the terminal device 10. .. Therefore, for example, it is possible to prevent fraudulent acts such as finding the correct nonce in a short time using a computer with high computing power prepared separately from the terminal device 10 and inputting the nonce from the terminal device 10. So, the technology related to blockchain will be further improved.
  • the terminal device 10 includes a communication unit 11, an output unit 12, an input unit 13, a storage unit 14, and a control unit 15.
  • the communication unit 11 includes one or more communication interfaces that communicate via a network such as the Internet.
  • the communication interface corresponds to, for example, a mobile communication standard such as 4G (4th Generation) or 5G (5th Generation), a wired LAN (Local Area Network) standard, or a wireless LAN standard, but is not limited to these and is an arbitrary communication standard. May correspond to.
  • the terminal device 10 communicates with the server 20 and another terminal device 10 via the communication unit 11.
  • the output unit 12 includes one or more output devices that output information so that the user can recognize it.
  • the output device is, for example, a display that outputs information as an image, a speaker that outputs information by voice, a vibrator that outputs information by vibration, and the like, but is not limited thereto.
  • the input unit 13 includes one or more input devices that detect a user's operation.
  • the input device is, for example, a physical key, a capacitance key, a touch screen integrally provided with the display of the output unit 12, a microphone for receiving voice input, a camera, and the like, but is not limited thereto.
  • the storage unit 14 includes one or more memories.
  • the memory is, for example, a semiconductor memory, a magnetic memory, an optical memory, or the like, but is not limited thereto.
  • Each memory included in the storage unit 14 may function as, for example, a main storage device, an auxiliary storage device, or a cache memory.
  • the storage unit 14 stores arbitrary information used for the operation of the terminal device 10. For example, the storage unit 14 may store a system program, an application program, and the like.
  • the control unit 15 includes one or more processors, one or more programmable circuits, one or more dedicated circuits, or a combination thereof.
  • the processor is, for example, a general-purpose processor such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit), or a dedicated processor specialized for a predetermined process, but is not limited thereto.
  • the programmable circuit is, for example, FPGA (Field-Programmable Gate Array), but is not limited to this.
  • the dedicated circuit is, for example, an ASIC (Application Specific Integrated Circuit), but is not limited to this.
  • the control unit 15 controls the operation of the entire terminal device 10.
  • the server 20 includes a communication unit 21, a storage unit 22, and a control unit 23.
  • the communication unit 21 includes one or more communication interfaces that communicate via a network such as the Internet.
  • the communication interface corresponds to, for example, a wired LAN standard or a wireless LAN standard, but is not limited to these and may correspond to any communication standard.
  • the server 20 communicates with each terminal device 10 via the communication unit 21.
  • the storage unit 22 includes one or more memories. Each memory included in the storage unit 22 may function as, for example, a main storage device, an auxiliary storage device, or a cache memory.
  • the storage unit 22 stores arbitrary information used for the operation of the server 20.
  • the storage unit 22 may store a system program, an application program, a database, and the like.
  • the control unit 23 includes one or more processors, one or more programmable circuits, one or more dedicated circuits, or a combination thereof.
  • the control unit 23 controls the operation of the entire server 20.
  • each terminal device 10 The operation of each terminal device 10 according to the present embodiment will be described with reference to FIG.
  • the operation is, as a general rule, an operation of determining a nonce candidate value based on information hidden from the user and the user's operation.
  • Step S100 The control unit 15 of the terminal device 10 acquires a plurality of nonce candidate information that can be distinguished by each user.
  • this step is also referred to as an “acquisition step”.
  • control unit 15 may acquire a plurality of nonce candidate information stored in advance in the storage unit 14, or may acquire a plurality of nonce candidate information from the server 20 via the communication unit 11. good.
  • 16 nonce candidate information is acquired as a plurality of nonce candidate information, but the number of acquired nonce candidate information may be 2 or more.
  • the plurality of nonce candidate information is, for example, as shown in FIG. 5, image information of 16 cards on which different symbols are written.
  • the plurality of nonce candidate information is not limited to image information, and is arbitrary data that can be converted into binary data, such as a contrast signal, a blinking light signal, an audio signal, a vibration signal, a Bluetooth (registered trademark) signal, or an infrared signal. May be. Regardless of which information is adopted as the nonce candidate information, the output plurality of nonce candidate information can be distinguished by the user.
  • the nonce candidate information is also simply referred to as a “card”.
  • control unit 15 assigns different names to each of the acquired plurality of nonce candidate information.
  • any alphanumerical character 0 to 9 and a to f is assigned as a name to each of the 16 nonce candidate information.
  • the name of the card on which the "glasses pattern" is written in the figure is "0".
  • the name assigned to each nonce candidate information is not limited to any alphanumerical characters 0 to 9 and a to f, and may be arbitrary data unified to 1 byte or 2 bytes.
  • Step S101 The control unit 15 assigns different values to each of two or more nonce candidate information among the acquired plurality of nonce candidate information.
  • this step is also referred to as an “allocation step”.
  • a value indicating an integer of 0 to 9 is randomly assigned to each of the 10 nonce candidate information out of the acquired 16 nonce candidate information.
  • the value of the nonce candidate information (the card on which the "tree nut pattern" is written in the figure) whose name is "2" is "3".
  • the number of nonce candidate information to which a value is assigned is not limited to 10, and may be 2 or more.
  • values may be assigned to all 16 acquired nonce candidate information.
  • the value assigned to each nonce candidate information is not limited to any integer from 0 to 9, and may be any real number.
  • the name and value assigned to each nonce candidate information are kept secret from the user. Therefore, the user cannot recognize the name and value of each nonce candidate information.
  • Step S102 The control unit 15 randomly determines the order of each of the two or more nonce candidate information in step S101.
  • this step is also referred to as a “decision step”.
  • the order is determined for each of the 10 nonce candidate information to which the value is assigned.
  • the order of the nonce candidate information (the card on which the "tree nut pattern" is written in the figure) whose name is "2" is "10".
  • the control unit 15 stores a parameter called "phase" in the storage unit 14 as shown in FIG.
  • the phase is used to determine the validity of the value stored in the storage step described later.
  • the phase is determined based on the names and values assigned to each of the 10 nonce candidate information and the order determined for each of the 10 nonce candidate information.
  • the phase is a 20-digit character string in which names and values are arranged in order from the nonce candidate information having the earliest order.
  • the phase is "c485e650a27198376923".
  • the first digit "c" and the second digit "4" from the left side of the phase are the names of nonce candidate information (card with “banana pattern” in the figure) whose order is “1". Corresponds to "c” and the value "4".
  • the third digit "8” and the fourth digit "5" from the left side of the phase are the nonce candidate information (the card with the "apple pattern” in the figure) whose order is “2”. Corresponds to the name "8" and the value "5".
  • Step S103 The control unit 15 outputs two or more nonce candidate information in step S101 in a manner recognizable by the user.
  • this step is also referred to as an “output step”.
  • control unit 15 outputs the ten nonce candidate information shown in FIG. 6 as a card image on the display of the output unit 12.
  • the user can recognize the nonce candidate information displayed as an image on the display.
  • control unit 15 displays, for example, the screen shown in FIG. 7 on the display of the output unit 12.
  • the "deck” on the screen is a bundle of 10 cards corresponding to 10 nonce candidate information stacked in order from the latest one.
  • a "banana symbol” card (name is “c” nonce candidate information) whose order is "1" is shown.
  • the control unit 15 waits for the user's operation.
  • the control unit 15 detects the user's operation on the button described as “put this card” as shown in FIG. 8, the control unit 15 puts the top card of the deck into play.
  • the cards in the field are “banana symbols” cards whose order is “1".
  • the top card of the deck is a card of "apple pattern” whose order is "2" (nonce candidate information whose name is "8").
  • the control unit 15 returns the card in the field to the bottom of the deck and puts the top card of the deck into play. ..
  • the 10 cards (that is, the two or more nonce candidate information in step S101) are in the order determined in the determination step each time the user's operation on the "place this card” button is detected. It is put into play one by one.
  • the last card put into play means a card selected from 10 cards based on the user's operation.
  • the control unit 15 causes the user to select one card from the ten cards.
  • Step S104 The control unit 15 selects one nonce candidate information (here, here) when one nonce candidate information is selected from the two or more nonce candidate information in step S101 based on the user's operation.
  • a field card a parameter called a “selection value” is stored in the storage unit 14 as described later.
  • this step is also referred to as a “memory step”.
  • the control unit 15 selects one card to be put into play based on the user's operation on the "place this card” button from the ten cards in the deck.
  • the selected value of the selected card that is, the last card put into play, is stored in the storage unit 14.
  • the selection value is a parameter that includes the order, name, and value of the cards in the field. For example, the order of the cards with the "temple design" in the field in FIG. 10 is “3", the name is "e", and the value is "6". In such a case, the selected value "03 & e6" of the card is stored. The two digits "03" from the left side of the selected value indicate the card order "3".
  • the second digit "e” from the right side of the selected value indicates the card name "e”.
  • the first digit "6" from the right side of the selected value indicates the card value "6".
  • the selected value is shown in the figure for explanation, the selected value is not displayed on the screen and is kept secret from the user.
  • the selection value stored in the storage unit 14 is updated every time the card in the field changes.
  • Step S105 The control unit 15 repeats a loop of specific processing (that is, repeatedly executing the specific processing) having the above-mentioned steps S100 to S104 (that is, an acquisition step, an allocation step, a determination step, an output step, and a storage step). It is decided based on the user's operation whether or not to end. If it is determined to end the loop (step S105-Yes), the process proceeds to step S106. On the other hand, if it is determined not to end the loop (step S105-No), the process returns to step S100.
  • control unit 15 waits for the user's operation.
  • the control unit 15 detects the user's operation on the button described as "select the next card" as shown in FIG. 9, for example, the control unit 15 determines that the loop is not terminated. If it is determined that the loop is not terminated, the process returns to step S100 and the next specific process is executed.
  • the execution result of the specific process is managed independently each time the specific process is executed. For example, for each time the specific process is executed, a field, a deck, and a "Place this card” button are displayed on the screen. In the example shown in FIG. 10, a new place, a deck, and a "place this card” button corresponding to the second specific process are displayed. Further, for example, the phase and the selection value are stored in the storage unit 14 each time the specific process is executed.
  • control unit 15 detects the user's operation on the button described as "puzzle challenge", it determines that the loop is terminated.
  • Step S106 When it is determined in step S105 that the loop is terminated (step S105-No), the control unit 15 is assigned to each of the two or more nonce candidate information in the allocation step for each time the specific process is executed. The validity of the value stored in the storage step is determined based on the order determined for each of the two or more nonce candidate information in the value and the determination step and the value and order stored in the storage step. do. If it is determined that the value is valid for all the times when the specific process is executed (step S106-Yes), the process proceeds to step S107. On the other hand, when it is determined that the value is not valid at least once when the specific process is executed (step S106-No), the process ends.
  • control unit 15 determines the validity of the value stored in the storage step based on the phase and the selected value.
  • phase is a parameter based on the name, value, and order of the 10 cards (see FIG. 6).
  • the selection value is a parameter including the name, value, and order of the last card put into play (see FIG. 10).
  • FIG. 11 shows the information stored in the storage unit 14 as a result of the above-mentioned specific processing being executed five times.
  • the first phase is "c485e650a27198376923” and the selection value is "03 & e6".
  • the control unit 15 separates the selection value into the first selection value “03” and the second selection value “e6”.
  • the control unit 15 reads by two digits from the left side of the phase, and acquires the read value of the number of times equal to the first selection value.
  • the third read value that is, the 5th to 6th digits from the left side of the phase
  • "e6" is acquired.
  • the control unit 15 stores the value stored in the first storage step of the specific process (here, “e6”). , "6" is determined to be valid.
  • the control unit 15 determines that the value stored in the storage step of the first specific process is not valid.
  • the control unit 15 determines the validity of the value stored in the storage step of the second and subsequent specific processes by the same procedure. If the value is determined to be valid at all times, the process proceeds to step S107. According to such a configuration, when a malicious user commits a fraudulent act of falsifying a value stored in a storage step (here, the numerical value in the first digit from the right side of the selected value), the fraudulent act is detected. Can be.
  • Step S107 When it is determined in step S106 that the value is valid for all the times when the specific process is executed (step S106-Yes), the control unit 15 results in the specific process being executed once or more.
  • One nonce candidate value is generated using one or more values stored in the storage unit 14. After that, the process ends.
  • the control unit 15 uses the value stored in the nth specific process as the nth digit value from the right side of the nonce candidate value, where n is the number of times the specific process is executed.
  • the nonce candidate value is “33686”.
  • the generation of the nonce candidate value is not limited to this method, and any method can be adopted.
  • the terminal device 10 functions as a node of the blockchain network.
  • the terminal device 10 executes a specific process including an acquisition step, an allocation step, an output step, and a storage step one or more times. Then, the terminal device 10 generates one nonce candidate value by using one or more values stored as a result of executing the specific process one or more times.
  • the nonce candidate value is determined using the value assigned to the nonce candidate information selected based on the user's operation from the two or more nonce candidate information. Since the user's operation for selecting the nonce candidate information is required to determine the nonce candidate value, the hash rate of the terminal device 10 does not depend on the computing power. Therefore, for example, the technique related to the blockchain is improved in that even an individual who uses a computer having a relatively low computing power can easily participate in mining.
  • the value assigned to each nonce candidate information may be concealed from the user. According to such a configuration, the user cannot intentionally select the nonce candidate information to which the desired value is assigned, and as a result, the desired nonce candidate value cannot be intentionally input from the terminal device 10. .. Therefore, for example, it is possible to prevent fraudulent acts such as finding the correct nonce in a short time using a computer with high computing power prepared separately from the terminal device 10 and inputting the nonce from the terminal device 10. So, the technology related to blockchain will be further improved.
  • each component or each step can be rearranged so as not to be logically inconsistent, and a plurality of components or steps can be combined or divided into one. Is.
  • the configuration and operation of the terminal device 10 or the server 20 may be distributed to a plurality of computers capable of communicating with each other.
  • the "phase” is a 20-digit character string in which the names and values are arranged in order from the nonce candidate information in the earliest order, and the selected value is a field card (that is, based on the operation of the user).
  • An example of a parameter including the order, name, and value of one selected nonce candidate information) has been described.
  • the phase may be a 10-digit character string in which the values are arranged in order from the nonce candidate information having the earliest order.
  • the phase may be "4560218793".
  • the selection value may be a parameter containing the order and value of the cards in the field.
  • the phase may be "03 & 6". Even in such a case, the control unit 15 can determine the validity of the value by the same procedure as in step S106 described above.
  • blockchain can be used for transaction management of crypto assets such as virtual currencies.
  • blockchain can be used for various purposes, not limited to transaction management of crypto assets.
  • a blockchain may be used to determine an electronic key of a locking / unlocking device used for an exhibition case, a safe, or the like, or a lottery winning number. Please note that this disclosure is applicable to blockchains used for any purpose.
  • a blockchain is used as an electronic key of a locking / unlocking device used for an exhibition case or a safe, for example.
  • a correct value determined by a combination of a plurality of digits is generally used as an electronic key.
  • a blockchain is used as the electronic key of the locking / unlocking device, for example, a correct nonce such that the hash value of the newly connected block satisfies the standard according to the difficulty of mining can be used as the electronic key.
  • a correct nonce such that the hash value of the newly connected block satisfies the standard according to the difficulty of mining can be used as the electronic key.
  • the lock / unlock device will unlock illegally. There is the problem that it can be locked.
  • FIG. 12 is a diagram showing a locking / unlocking device 100 according to a modified example.
  • the locking / unlocking device 100 is provided in, for example, an exhibition case or a safe.
  • the locking / unlocking device 100 corresponds to the terminal device 10 according to the above-described embodiment, and has the same configuration and function as the terminal device 10.
  • the number of locking / unlocking devices 100 (terminal devices 10) included in the system 1 may be 1 or more.
  • the locking / unlocking device 100 performs an unlocking operation when, for example, a correct nonce candidate value is found.
  • the locking / unlocking device 100 As in the terminal device 10 described above, the user's operation of selecting the nonce candidate information is required to determine the nonce candidate value. Therefore, fraudulent acts such as mechanical brute force attacks can be prevented. Further, according to the locking / unlocking device 100, the value assigned to each nonce candidate information is concealed from the user as in the terminal device 10 described above. Therefore, for example, a malicious user finds the correct nonce (that is, an electronic key) in a short time by using a computer with high computing power prepared separately from the lock / unlock device 100, and inputs the nonce to the lock / unlock device 100. It is possible to prevent fraudulent acts such as doing.
  • the validity of the value stored in the storage step is determined based on the phase and the selection value, as in the terminal device 10 described above. Therefore, for example, it is possible to prevent a malicious user from connecting his / her own computer to the locking / unlocking device 100 and falsifying the value stored in the storage step.
  • a general-purpose computer functions as the terminal device 10 according to the above-described embodiment
  • a program describing processing contents for realizing each function of the terminal device 10 according to the above-described embodiment is stored in the memory of a general-purpose computer, and the program is read and executed by a processor. Therefore, the invention according to the present embodiment can also be realized as a program that can be executed by a processor or a non-temporary computer-readable medium that stores the program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephone Function (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成する方法であって、端末装置10が、ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、2つ以上のナンス候補情報の中からユーザの操作に基づいて選択された1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、を有する特定処理を1回以上実行すること、及び特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成することを含む。

Description

方法及びプログラム 関連出願の相互参照
 本出願は、2021年1月8日に日本国において提出された特願2021-002371号の優先権を主張するものであり、この先の出願の開示全体を、ここに参照のために取り込む。
 本開示は、方法及びプログラムに関する。
 従来、ブロックチェーンに関する技術が知られている。例えば特許文献1には、ブロックチェーンを用いて取引情報が管理される仮想通貨のマイニングを、webサイトにアクセスしたユーザ端末に実行させることが開示されている。
特開2019-117555号公報
 ブロックチェーンに関する技術には改善の余地があった。
 かかる事情に鑑みてなされた本開示の目的は、ブロックチェーンに関する技術を改善することにある。
 本開示の一実施形態に係る方法は、
 ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成する方法であって、
 ブロックチェーンネットワークのノードとして機能する端末装置が、
  ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
  前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
  前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
  前記2つ以上のナンス候補情報の中からユーザの操作に基づいて選択された1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
 を有する特定処理を1回以上実行すること、及び
 前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成すること
を含む。
 本開示の一実施形態に係る方法は、
 ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成する方法であって、
 ブロックチェーンネットワークのノードとして機能する端末装置が、
  ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
  前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
  前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
  前記2つ以上のナンス候補情報の中から1つのナンス候補情報が選択された場合に、選択された前記1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
 を有する特定処理を1回以上実行すること、及び
 前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成することを含む。
 本開示の一実施形態に係るプログラムは、
 ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成するためのプログラムであって、
 ブロックチェーンネットワークのノードとして機能するコンピュータに、
  ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
  前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
  前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
  前記2つ以上のナンス候補情報の中から1つのナンス候補情報を選択させるステップと、
  選択された前記1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
 を有する特定処理を1回以上実行すること、及び
 前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成すること
を実行させる。
 本開示の一実施形態によれば、ブロックチェーンに関する技術が改善される。
本開示の一実施形態に係るシステムの概略構成を示すブロック図である。 端末装置の概略構成を示すブロック図である。 サーバの概略構成を示すブロック図である。 端末装置の動作を示すフローチャートである。 複数のナンス候補情報のそれぞれに割り当てられるパラメータの例を示す図である。 「位相」パラメータの例を示す図である。 端末装置に表示される画面の第1例を示す図である。 端末装置に表示される画面の第2例を示す図である。 端末装置に表示される画面の第3例を示す図である。 端末装置に表示される画面の第4例を示す図である。 特定処理が5回実行された結果として記憶された情報の例を示す図である。 本開示の一実施形態の変形例に係る施解錠装置を示す図である。
 以下、本開示の実施形態について説明する。
(実施形態の概要)
 図1を参照して、本開示の実施形態に係るシステム1の概要について説明する。システム1は、複数の端末装置10と、サーバ20と、を備える。各端末装置10及びサーバ20は、例えば移動体通信網及びインターネット等を含むネットワークを介して通信可能である。
 端末装置10は、ユーザが使用可能な任意のコンピュータである。例えばスマートフォン、タブレット端末、又はPC(Personal Computer)等の装置が、端末装置10として採用可能である。図1では5つの端末装置10が図示されているが、システム1が備える端末装置10の数は2つ以上であればよい。サーバ20は、1つ以上のコンピュータを含んで構成される。
 本実施形態では、コンソーシアム型ブロックチェーンが用いられる。各端末装置10は、ブロックチェーンネットワークのノードとして機能する。例えば各端末装置10は、サーバ20に接続してログイン処理を行う。サーバ20は、ログイン許可を与えた各端末装置10のIPアドレスを記憶する。ログイン許可が与えられた各端末装置10は、P2P(Peer to Peer)通信で互いに接続される。各端末装置10は、自装置及びクラウドの少なくとも一方のストレージにブロックチェーンデータを保存する。
 ブロックチェーンに新たなブロックを連結するためには、当該ブロックのハッシュ値が採掘難易度に応じた基準を満たすような正解のナンスを見つけ出すこと、すなわちマイニングに成功することが必要となる。従来、マイニングを行うコンピュータのハッシュレートは、当該コンピュータの演算能力に依存する。このためマイニングに参加する事業者は、演算能力の高い高価なコンピュータを導入して、ナンス候補値の決定及び検証を機械的に繰り返すことが一般的である。また、ブロックチェーン全体のハッシュレートが高まると、ハッシュレートを所定の目標値に維持するために採掘難易度を増加させることが一般的に行われている。したがって従来は、例えば演算能力が比較的低いコンピュータを用いる個人にとって、マイニングに参加することが困難であるという課題がある。また、正解のナンスを見つけ出すことが実質的に不可能となる程度までブロックチェーンの採掘難易度が増加してしまい、その結果ブロックチェーンのハードフォークを実施せざるを得なくなるという課題がある。これに対して本実施形態によれば、かかる課題が解決可能となる点で、ブロックチェーンに関する技術が改善される。
 ここで本実施形態の概要について説明し、詳細については後述する。ブロックチェーンネットワークのノードとして機能する端末装置10は、取得ステップと、割当ステップと、出力ステップと、記憶ステップと、を有する処理(以下、「特定処理」ともいう。)を1回以上実行する。
 取得ステップにおいて端末装置10は、ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する。例えば、複数のナンス候補情報のそれぞれは、互いに異なる図柄(すなわち、ユーザが区別可能な図柄)が記されたカードの画像情報であり得る。
 割当ステップにおいて端末装置10は、当該複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる。各ナンス候補情報に割り当てられた値は、ユーザに対して秘匿されてもよい。かかる場合、例えば各ナンス候補情報に0以上9以下の整数で示される値が割り当てられ得るが、どのナンス候補情報にどの値が割り当てられたかをユーザは認識することができない。
 出力ステップにおいて端末装置10は、当該2つ以上のナンス候補情報をユーザが認識可能な態様で出力する。例えば、当該2つ以上のナンス候補情報のそれぞれが、互いに異なる図柄が記されたカードの画像として端末装置10のディスプレイ上に出力され得る。
 記憶ステップにおいて端末装置10は、当該2つ以上のナンス候補情報の中からユーザの操作に基づいて選択された1つのナンス候補情報に割り当てられた値を記憶する。例えば、選択された1つのナンス候補情報に割り当てられた0以上9以下の整数で示される値が記憶され得る。
 そして端末装置10は、特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成する。例えば、特定処理が5回実行された場合、それぞれが0以上9以下の整数で示される5つの値が記憶され得る。そして、当該5つの値を並べた5桁のナンス候補値が生成され得る。
 このように、本実施形態では、2つ以上のナンス候補情報の中からユーザの操作に基づいて選択されたナンス候補情報に割り当てられている値を用いて、ナンス候補値が決定される。かかる構成によれば、ナンス候補値の決定には、ナンス候補情報を選択するユーザの操作が必要となるので、端末装置10のハッシュレートが演算能力に依存しない。したがって、例えば演算能力が比較的低いコンピュータを用いる個人であってもマイニングへの参加が容易になる点で、ブロックチェーンに関する技術が改善される。
 更に本実施形態では、各ナンス候補情報に割り当てられた値がユーザに対して秘匿される。かかる構成によれば、ユーザは、所望の値が割り当てられたナンス候補情報を意図的に選択することができず、結果として所望のナンス候補値を端末装置10から意図的に入力することができない。したがって、例えば事業者が端末装置10とは別に用意した演算能力の高いコンピュータを用いて正解のナンスを短時間で発見し、当該ナンスを端末装置10から入力するという不正行為が防止可能となる点で、ブロックチェーンに関する技術が更に改善する。
 次に、システム1の各構成について詳細に説明する。
(端末装置の構成)
 図2に示すように、端末装置10は、通信部11と、出力部12と、入力部13と、記憶部14と、制御部15と、を備える。
 通信部11は、例えばインターネット等のネットワークを介して通信する1つ以上の通信インタフェースを含む。当該通信インタフェースは、例えば4G(4th Generation)若しくは5G(5th Generation)等の移動体通信規格、有線LAN(Local Area Network)規格、又は無線LAN規格に対応するが、これらに限られず任意の通信規格に対応してもよい。本実施形態において、端末装置10は、通信部11を介してサーバ20及び他の端末装置10と通信する。
 出力部12は、情報をユーザが認識可能となるように出力する1つ以上の出力装置を含む。当該出力装置は、例えば情報を画像で出力するディスプレイ、情報を音声で出力するスピーカ、又は情報を振動で出力するバイブレータ等であるが、これらに限られない。
 入力部13は、ユーザの操作を検出する1つ以上の入力装置を含む。当該入力装置は、例えば物理キー、静電容量キー、出力部12のディスプレイと一体的に設けられたタッチスクリーン、音声入力を受け付けるマイク、又はカメラ等であるが、これらに限られない。
 記憶部14は、1つ以上のメモリを含む。メモリは、例えば半導体メモリ、磁気メモリ、又は光メモリ等であるが、これらに限られない。記憶部14に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部14は、端末装置10の動作に用いられる任意の情報を記憶する。例えば、記憶部14は、システムプログラム及びアプリケーションプログラム等を記憶してもよい。
 制御部15は、1つ以上のプロセッサ、1つ以上のプログラマブル回路、1つ以上の専用回路、又はこれらの組合せを含む。プロセッサは、例えばCPU(Central Processing Unit)若しくはGPU(Graphics Processing Unit)等の汎用プロセッサ、又は所定の処理に特化した専用プロセッサであるがこれらに限られない。プログラマブル回路は、例えばFPGA(Field-Programmable Gate Array)であるがこれに限られない。専用回路は、例えばASIC(Application Specific Integrated Circuit)であるがこれに限られない。制御部15は、端末装置10全体の動作を制御する。
(サーバの構成)
 図3に示すように、サーバ20は、通信部21と、記憶部22と、制御部23と、を備える。
 通信部21は、例えばインターネット等のネットワークを介して通信する1つ以上の通信インタフェースを含む。当該通信インタフェースは、例えば有線LAN規格又は無線LAN規格に対応するが、これらに限られず任意の通信規格に対応してもよい。本実施形態において、サーバ20は、通信部21を介して各端末装置10と通信する。
 記憶部22は、1つ以上のメモリを含む。記憶部22に含まれる各メモリは、例えば主記憶装置、補助記憶装置、又はキャッシュメモリとして機能してもよい。記憶部22は、サーバ20の動作に用いられる任意の情報を記憶する。例えば、記憶部22は、システムプログラム、アプリケーションプログラム、及びデータベース等を記憶してもよい。
 制御部23は、1つ以上のプロセッサ、1つ以上のプログラマブル回路、1つ以上の専用回路、又はこれらの組合せを含む。制御部23は、サーバ20全体の動作を制御する。
(端末装置の動作フロー)
 図4を参照して、本実施形態に係る各端末装置10の動作について説明する。当該動作は、概略として、ユーザに対して秘匿される情報と、ユーザの操作と、に基づいてナンス候補値を決定する動作である。
 ステップS100:端末装置10の制御部15は、ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する。以下、本ステップを「取得ステップ」ともいう。
 具体的には、制御部15は、予め記憶部14に記憶された複数のナンス候補情報を取得してもよく、或いは通信部11を介してサーバ20から複数のナンス候補情報を取得してもよい。本実施形態では、複数のナンス候補情報として16個のナンス候補情報が取得されるが、取得されるナンス候補情報の数は2以上であればよい。また、本実施形態において複数のナンス候補情報は、例えば図5に示すように、それぞれ異なる図柄が記された16枚のカードの画像情報である。しかしながら複数のナンス候補情報は、画像情報に限られず、例えばコントラスト信号、光の点滅信号、音声信号、振動信号、Bluetooth(登録商標)信号、又は赤外線信号等、バイナリデータに変換可能な任意のデータであってもよい。いずれの情報がナンス候補情報として採用されるにしても、出力された複数のナンス候補情報はユーザによってそれぞれ区別可能である。以下、説明の簡便のため、ナンス候補情報を単に「カード」ともいう。
 ここで制御部15は、取得された複数のナンス候補情報のそれぞれに互いに異なる名称を割り当てる。図5に示す例では、16個のナンス候補情報のそれぞれに、0~9及びa~fの何れかの英数字が名称として割り当てられる。例えば、図中で「メガネの図柄」が記されたカードの名称は「0」である。しかしながら、各ナンス候補情報に割り当てられる名称は、0~9及びa~fの何れかの英数字に限られず、1バイト又は2バイトに統一された任意のデータであってもよい。
 ステップS101:制御部15は、取得された複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる。以下、本ステップを「割当ステップ」ともいう。
 本実施形態では、図5に示すように、取得された16個のナンス候補情報のうち10個のナンス候補情報のそれぞれに、0~9の何れかの整数を示す値がランダムに割り当てられる。例えば、名称が「2」であるナンス候補情報(図中で「木の実の図柄」が記されたカード)の値は「3」である。しかしながら、値が割り当てられるナンス候補情報の数は10に限られず、2以上であればよい。例えば、取得された16個のナンス候補情報の全てに値が割り当てられてもよい。また、各ナンス候補情報に割り当てられる値は、0~9の何れかの整数に限られず、任意の実数であってもよい。
 各ナンス候補情報に割り当てられた名称及び値は、ユーザに対して秘匿される。したがって、ユーザは各ナンス候補情報の名称及び値を認識することができない。
 ステップS102:制御部15は、ステップS101の2つ以上のナンス候補情報のそれぞれについて順番をランダムに決定する。以下、本ステップを「決定ステップ」ともいう。
 本実施形態では、図5に示すように、値が割り当てられた10個のナンス候補情報のそれぞれについて順番が決定される。例えば、名称が「2」であるナンス候補情報(図中で「木の実の図柄」が記されたカード)の順番は「10」である。
 ここで制御部15は、図6に示すように「位相」と称するパラメータを記憶部14に記憶する。位相は、後述する記憶ステップで記憶される値の正当性の判定に用いられる。位相は、10個のナンス候補情報のそれぞれに割り当てられた名称及び値、並びに10個のナンス候補情報のそれぞれについて決定された順番に基づいて決定される。例えば本実施形態では、位相は、順番が早いナンス候補情報から順に名称と値を並べた20桁の文字列である。図6に示す例では、位相は「c485e650a27198376923」である。例えば、位相の左側から1桁目の「c」と2桁目の「4」は、順番が「1」であるナンス候補情報(図中で「バナナの図柄」が記されたカード)の名称「c」と値「4」に対応する。同様に、位相の左側から3桁目の「8」と4桁目の「5」は、順番が「2」であるナンス候補情報(図中で「リンゴの図柄」が記されたカード)の名称「8」と値「5」に対応する。
 ステップS103:制御部15は、ステップS101の2つ以上のナンス候補情報をユーザが認識可能な態様で出力する。以下、本ステップを「出力ステップ」ともいう。
 本実施形態では、制御部15は、図6に示される10個のナンス候補情報を、出力部12のディスプレイ上にカードの画像で出力する。ユーザは、ディスプレイに画像として表示されたナンス候補情報を認識可能である。
 具体的には、制御部15は、例えば図7に示す画面を出力部12のディスプレイに表示する。当該画面上の「山札」は、10個のナンス候補情報に相当する10枚のカードが、順番の遅いものから順に積み上げられた束である。図7において山札の一番上には、順番が「1」である「バナナの図柄」のカード(名称が「c」であるナンス候補情報)が示されている。
 制御部15は、ユーザの操作を待ち受ける。制御部15は、図8に示すように「今回のカードを置く」と記載されたボタンに対するユーザの操作を検出すると、山札の一番上のカードを場に出す。図8において、場のカードは順番が「1」である「バナナの図柄」のカードである。また図8において、山札の一番上のカードは、順番が「2」である「リンゴの図柄」のカード(名称が「8」であるナンス候補情報)である。制御部15は、「今回のカードを置く」ボタンに対するユーザの操作が検出される度に、場のカードを山札の一番下に戻すとともに、山札の一番上のカードを場に出す。このように、10枚のカード(すなわち、ステップS101の2つ以上のナンス候補情報)は、「今回のカードを置く」ボタンに対するユーザの操作が検出される度に、決定ステップで決定された順番で1枚ずつ場に出される。最後に場に出されたカードは、ユーザの操作に基づいて10枚のカードの中から選択されたカードを意味する。換言すると、制御部15は、10枚のカードの中から1枚のカードをユーザに選択させる。
 ステップS104:制御部15は、ステップS101の2つ以上のナンス候補情報の中からユーザの操作に基づいて1つのナンス候補情報が選択された場合に、選択された1つのナンス候補情報(ここでは、場のカード)について、後述するように「選択値」と称するパラメータを記憶部14に記憶する。以下、本ステップを「記憶ステップ」ともいう。
 具体的には、制御部15は、山札である10枚のカードの中から「今回のカードを置く」ボタンに対するユーザの操作に基づいて場に出す1枚のカードが選択された場合に、選択された当該1枚のカード、すなわち最後に場に出されたカードの選択値を記憶部14に記憶する。選択値は、場のカードの順番、名称、及び値を含むパラメータである。例えば図10で場に出されている「神殿の図柄」が記されたカードの順番は「3」、名称は「e」、値は「6」である。かかる場合、当該カードの選択値「03&e6」が記憶される。選択値の左側から2桁分の「03」は、カードの順番「3」を示す。選択値の右側から2桁目の「e」は、カードの名称「e」を示す。選択値の右側から1桁目の「6」は、カードの値「6」を示す。なお、図中には説明のため選択値が図示されているが、選択値は画面上には表示されず、ユーザに対して秘匿される。記憶部14に記憶される選択値は、場のカードが変わるたびに更新される。
 ステップS105:制御部15は、上述したステップS100~S104(すなわち、取得ステップ、割当ステップ、決定ステップ、出力ステップ、及び記憶ステップ)を有する特定処理のループ(すなわち、特定処理を繰り返し実行すること)を終了するか否かを、ユーザの操作に基づいて決定する。ループを終了すると判定された場合(ステップS105-Yes)、プロセスはステップS106に進む。一方、ループを終了しないと判定された場合(ステップS105-No)、プロセスはステップS100に戻る。
 具体的には、制御部15は、ユーザの操作を待ち受ける。制御部15は、例えば図9に示されるように「次のカードを選ぶ」と記載されたボタンに対するユーザの操作を検出すると、ループを終了しないと判定する。ループを終了しないと判定された場合、ステップS100に戻って次回の特定処理が実行される。
 特定処理の実行結果は、特定処理が実行された回ごとに独立して管理される。例えば、特定処理が実行された各回について、画面上に場、山札、及び「今回のカードを置く」ボタンが表示される。図10に示す例では、2回目の特定処理に対応する新たな場、山札、及び「今回のカードを置く」ボタンが表示されている。また例えば、特定処理が実行された各回について、位相及び選択値が記憶部14に記憶される。
 なお、「カードを変更」と記載されたボタンに対するユーザの操作が検出されると、例えば前回以前の特定処理に対応する場のカードを変更可能となってもよい。
 一方、制御部15は、「パズルチャレンジ」と記載されたボタンに対するユーザの操作を検出すると、ループを終了すると判定する。
 ステップS106:ステップS105でループを終了すると判定された場合(ステップS105-No)、制御部15は、特定処理が実行された各回について、割当ステップで2つ以上のナンス候補情報のそれぞれに割り当てられた値及び決定ステップで2つ以上のナンス候補情報のそれぞれについて決定された順番と、記憶ステップで記憶された値及び順番と、に基づいて、記憶ステップで記憶された当該値の正当性を判定する。特定処理が実行された全ての回について値が正当であると判定された場合(ステップS106-Yes)、プロセスはステップS107に進む。一方、特定処理が実行された少なくとも1回について値が正当でないと判定された場合(ステップS106-No)、プロセスは終了する。
 本実施形態では、制御部15は、位相と選択値とに基づいて、記憶ステップで記憶された値の正当性を判定する。上述したように位相は、10枚のカードの名称、値、及び順番に基づくパラメータである(図6参照)。選択値は、最後に場に出されたカードの名称、値、及び順番を含むパラメータである(図10参照)。
 図11を参照して具体的に説明する。図11は、上述した特定処理が5回実行された結果として記憶部14に記憶された情報を示す。例えば1回目の位相は「c485e650a27198376923」であり、選択値は「03&e6」である。制御部15は、選択値を第1選択値「03」と第2選択値「e6」に分離する。制御部15は、位相の左側から2桁ずつリードしていき、第1選択値に等しい回数目のリード値を取得する。ここでは第1選択値が「03」であるので、3回目のリード値(すなわち、位相の左側から5~6桁目)である「e6」が取得される。制御部15は、取得されたリード値(ここでは「e6」)と第2選択値(ここでは「e6」)とが等しい場合、1回目の特定処理の記憶ステップで記憶された値(ここでは、「6」)が正当であると判定する。一方、制御部15は、取得されたリード値と第2選択値とが異なる場合、1回目の特定処理の記憶ステップで記憶された値が正当でないと判定する。制御部15は、同様の手順で2回目以降の特定処理の記憶ステップで記憶された値の正当性を判定する。全ての回において値が正当であると判定されると、プロセスはステップS107に進む。かかる構成によれば、悪意のあるユーザが例えば記憶ステップで記憶された値(ここでは、選択値の右側から1桁目の数値)を改ざんする不正行為を行った場合に、当該不正行為を検出し得る。
 ステップS107:ステップS106で、特定処理が実行された全ての回について値が正当であると判定された場合(ステップS106-Yes)、制御部15は、特定処理が1回以上実行された結果として記憶部14に記憶された1つ以上の値を用いて1つのナンス候補値を生成する。その後、プロセスは終了する。
 本実施形態では、制御部15は、特定処理が実行された回数をnとして、n回目の特定処理で記憶された値を、ナンス候補値の右側からn桁目の値として用いる。図11に示す例では、ナンス候補値は「33686」となる。しかしながら、ナンス候補値の生成には、当該手法に限られず、任意の手法が採用可能である。
 以上述べたように、本実施形態に係る端末装置10は、ブロックチェーンネットワークのノードとして機能する。端末装置10は、取得ステップと、割当ステップと、出力ステップと、記憶ステップと、を有する特定処理を1回以上実行する。そして端末装置10は、特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成する。
 かかる構成によれば、2つ以上のナンス候補情報の中からユーザの操作に基づいて選択されたナンス候補情報に割り当てられている値を用いて、ナンス候補値が決定される。ナンス候補値の決定には、ナンス候補情報を選択するユーザの操作が必要となるので、端末装置10のハッシュレートが演算能力に依存しない。したがって、例えば演算能力が比較的低いコンピュータを用いる個人であってもマイニングへの参加が容易になる点で、ブロックチェーンに関する技術が改善される。
 また、各ナンス候補情報に割り当てられた値がユーザに対して秘匿されてもよい。かかる構成によれば、ユーザは、所望の値が割り当てられたナンス候補情報を意図的に選択することができず、結果として所望のナンス候補値を端末装置10から意図的に入力することができない。したがって、例えば事業者が端末装置10とは別に用意した演算能力の高いコンピュータを用いて正解のナンスを短時間で発見し、当該ナンスを端末装置10から入力するという不正行為が防止可能となる点で、ブロックチェーンに関する技術が更に改善する。
 本開示を諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形及び改変を行ってもよいことに注意されたい。したがって、これらの変形及び改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部又は各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部又はステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
 例えば、上述した実施形態において、端末装置10又はサーバ20の構成及び動作を、互いに通信可能な複数のコンピュータに分散させた実施形態も可能である。
 また上述した実施形態において、「位相」は、順番が早いナンス候補情報から順に名称と値を並べた20桁の文字列であり、選択値は、場のカード(すなわち、ユーザの操作に基づいて選択された1つのナンス候補情報)の順番、名称、及び値を含むパラメータである例について説明した。しかしながら、位相及び選択値が、ナンス候補情報の名称を含まない変形例も実現可能である。具体的には、位相は、順番が早いナンス候補情報から順に値を並べた10桁の文字列であってもよい。例えば図6において、位相は「4560218793」であってもよい。選択値は、場のカードの順番及び値を含むパラメータであってもよい。例えば図10において、位相は「03&6」であってもよい。かかる場合であっても、制御部15は、上述したステップS106と同様の手順で値の正当性を判定可能である。
 また、ブロックチェーンは例えば仮想通貨等の暗号資産の取引管理に利用され得る。しかしながらブロックチェーンは、暗号資産の取引管理に限られず、様々な目的で利用可能である。例えば、展示ケース若しくは金庫等に用いられる施解錠装置の電子キー、又は宝くじの当選番号等の決定にブロックチェーンが利用されてもよい。本開示は、任意の目的で利用されるブロックチェーンに適用可能である点に留意されたい。
 一具体例として、例えば展示ケース又は金庫等に用いられる施解錠装置の電子キーにブロックチェーンを利用する場合を考える。ブロックチェーンを利用しない従来の施解錠装置では、複数桁の数字の組合せにより定められた正解値が電子キーとして一般的に用いられる。一方、施解錠装置の電子キーにブロックチェーンを利用する場合、例えば新たに連結するブロックのハッシュ値が採掘難易度に応じた基準を満たすような正解のナンスが電子キーとして用いられ得る。しかしながらいずれの場合であっても、例えば悪意のあるユーザが有線又は無線を介して自身のコンピュータを施解錠装置に接続して総当たり攻撃を機械的に実施した場合、施解錠装置が不正に解錠され得るという課題がある。
 これに対して、上述した実施形態の変形例によれば、施解錠装置が不正に解錠される可能性が低減される。図12は、変形例に係る施解錠装置100を示す図である。施解錠装置100は、例えば展示ケース又は金庫等に設けられる。施解錠装置100は、上述した実施形態に係る端末装置10に相当し、端末装置10と同様の構成及び機能を有する。本変形例では、システム1が備える施解錠装置100(端末装置10)の数は1以上であればよい。施解錠装置100は、例えば正解のナンス候補値が発見された場合に解錠動作を行う。施解錠装置100によれば、上述した端末装置10と同様に、ナンス候補値の決定にはナンス候補情報を選択するユーザの操作が必要となる。このため、機械的な総当たり攻撃等の不正行為が防止可能となる。また、施解錠装置100によれば、上述した端末装置10と同様に、各ナンス候補情報に割り当てられた値がユーザに対して秘匿される。したがって、例えば悪意のあるユーザが施解錠装置100とは別に用意した演算能力の高いコンピュータを用いて正解のナンス(すなわち、電子キー)を短時間で発見し、当該ナンスを施解錠装置100に入力するという不正行為が防止可能となる。また、施解錠装置100によれば、上述した端末装置10と同様に、位相と選択値とに基づいて、記憶ステップで記憶された値の正当性が判定される。したがって、例えば悪意のあるユーザが自身のコンピュータを施解錠装置100に接続して、記憶ステップで記憶された値を改ざんするという不正行為が防止可能となる。
 また、例えば汎用のコンピュータを、上述した実施形態に係る端末装置10として機能させる実施形態も可能である。具体的には、上述した実施形態に係る端末装置10の各機能を実現する処理内容を記述したプログラムを、汎用のコンピュータのメモリに格納し、プロセッサによって当該プログラムを読み出して実行させる。したがって、本実施形態に係る発明は、プロセッサが実行可能なプログラム、又は当該プログラムを記憶する非一時的なコンピュータ可読媒体としても実現可能である。
1  システム
10  端末装置
11  通信部
12  出力部
13  入力部
14  記憶部
15  制御部
20  サーバ
21  通信部
22  記憶部
23  制御部
100  施解錠装置

Claims (8)

  1.  ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成する方法であって、
     ブロックチェーンネットワークのノードとして機能する端末装置が、
      ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
      前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
      前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
      前記2つ以上のナンス候補情報の中からユーザの操作に基づいて選択された1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
     を有する特定処理を1回以上実行すること、及び
     前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成すること
    を含む、方法。
  2.  ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成する方法であって、
     ブロックチェーンネットワークのノードとして機能する端末装置が、
      ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
      前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
      前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
      前記2つ以上のナンス候補情報の中から1つのナンス候補情報が選択された場合に、選択された前記1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
     を有する特定処理を1回以上実行すること、及び
     前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成すること
    を含む、方法。
  3.  請求項1又は2に記載の方法であって、
     前記割当ステップで前記2つ以上のナンス候補情報のそれぞれに割り当てられた値は、ユーザに対して秘匿される、方法。
  4.  請求項1から3の何れか一項に記載の方法であって、
     前記出力ステップにおいて、前記2つ以上のナンス候補情報は、ディスプレイ上に画像で出力される、方法。
  5.  請求項1から4の何れか一項に記載の方法であって、
     前記特定処理は、前記2つ以上のナンス候補情報のそれぞれについて順番をランダムに決定する決定ステップを更に有しており、
     前記出力ステップにおいて、前記2つ以上のナンス候補情報は、ユーザの操作が検出される度に、前記決定ステップで決定された順番で1つずつ出力され、
     前記記憶ステップにおいて、前記2つ以上のナンス候補情報のうち最後に出力された1つのナンス候補情報に割り当てられた値が記憶される、方法。
  6.  請求項5に記載の方法であって、
     前記記憶ステップにおいて、選択された前記1つのナンス候補情報に割り当てられた値と、前記1つのナンス候補情報について前記決定ステップで決定された順番と、が記憶され、
     前記端末装置が、前記割当ステップで前記2つ以上のナンス候補情報のそれぞれに割り当てられた値及び前記決定ステップで前記2つ以上のナンス候補情報のそれぞれについて決定された順番と、前記記憶ステップで記憶された値及び順番と、に基づいて、前記記憶ステップで記憶された値の正当性を判定することを更に含む、方法。
  7.  請求項1から6の何れか一項に記載の方法であって、
     前記割当ステップで前記2つ以上のナンス候補情報のそれぞれに割り当てられる値は、0以上9以下の整数であり、
     前記特定処理が1回以上実行された結果として記憶された前記1つ以上の値のそれぞれが、前記1つのナンス候補値の各桁の値として用いられる、方法。
  8.  ブロックチェーンに連結するブロックのハッシュ値を得るためのナンス候補値を生成するためのプログラムであって、
     ブロックチェーンネットワークのノードとして機能するコンピュータに、
      ユーザがそれぞれ区別可能な複数のナンス候補情報を取得する取得ステップと、
      前記複数のナンス候補情報のうち2つ以上のナンス候補情報のそれぞれに互いに異なる値を割り当てる割当ステップと、
      前記2つ以上のナンス候補情報をユーザが認識可能な態様で出力する出力ステップと、
      前記2つ以上のナンス候補情報の中から1つのナンス候補情報を選択させるステップと、
      選択された前記1つのナンス候補情報に割り当てられた値を記憶する記憶ステップと、
     を有する特定処理を1回以上実行すること、及び
     前記特定処理が1回以上実行された結果として記憶された1つ以上の値を用いて1つのナンス候補値を生成すること
    を実行させる、プログラム。
PCT/JP2022/000284 2021-01-08 2022-01-06 方法及びプログラム WO2022149604A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020237026663A KR20230129268A (ko) 2021-01-08 2022-01-06 방법 및 프로그램
CN202280009254.2A CN116710918A (zh) 2021-01-08 2022-01-06 方法和程序
US18/260,474 US20240056308A1 (en) 2021-01-08 2022-01-06 Method and program
EP22736772.9A EP4277200A1 (en) 2021-01-08 2022-01-06 Method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021002371A JP2022107425A (ja) 2021-01-08 2021-01-08 方法及びプログラム
JP2021-002371 2021-01-08

Publications (1)

Publication Number Publication Date
WO2022149604A1 true WO2022149604A1 (ja) 2022-07-14

Family

ID=82357728

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/000284 WO2022149604A1 (ja) 2021-01-08 2022-01-06 方法及びプログラム

Country Status (6)

Country Link
US (1) US20240056308A1 (ja)
EP (1) EP4277200A1 (ja)
JP (1) JP2022107425A (ja)
KR (1) KR20230129268A (ja)
CN (1) CN116710918A (ja)
WO (1) WO2022149604A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190305968A1 (en) * 2018-03-27 2019-10-03 Ca, Inc. Human-solved puzzles as proof-of-work for blockchain

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6345871B1 (ja) 2017-12-27 2018-06-20 株式会社グルーツ 仮想通貨管理装置、仮想通貨管理方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190305968A1 (en) * 2018-03-27 2019-10-03 Ca, Inc. Human-solved puzzles as proof-of-work for blockchain

Also Published As

Publication number Publication date
CN116710918A (zh) 2023-09-05
EP4277200A1 (en) 2023-11-15
US20240056308A1 (en) 2024-02-15
JP2022107425A (ja) 2022-07-21
KR20230129268A (ko) 2023-09-07

Similar Documents

Publication Publication Date Title
JP6518838B6 (ja) ネットワーク内の分散データベースのための方法及び装置
CN114556865A (zh) 电子装置和使用该电子装置管理区块链地址的方法
JP4421892B2 (ja) ランダム部分的パターン認識に基づく認証システム及びその方法
US10630675B2 (en) Generating web service picture passwords with user-specific cypher keys
US8260718B2 (en) System and method for authenticating an end user
JP5514890B1 (ja) 連続的な不正アクセスを防止する方法
US8959603B2 (en) Authentication system
JP6803702B2 (ja) サーバおよびプログラム
US9471760B2 (en) Authentication of an end user
US20240064020A1 (en) Blocking sensitive data
JP6445570B2 (ja) デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム
WO2022149604A1 (ja) 方法及びプログラム
CN114365134A (zh) 使用不可克隆函数的安全身份证
JP5511449B2 (ja) 情報処理装置、情報処理装置の認証方法及びプログラム
WO2021179258A1 (zh) 数字签名方法、数字签名装置、系统和存储介质
JP5458713B2 (ja) 認証装置、認証方法、認証プログラム
CN112650763A (zh) 产品额度的配置方法、相关设备和存储介质
US20230281585A1 (en) Systems and Methods for Managing Network-Agnostic Smart Contracts
Swammy et al. Creation of a distributed ledger
CN112291355B (zh) 区块链钱包的密钥备份和恢复方法与装置
US20220391486A1 (en) Method and system for facilitating user authentication via multidimensional passwords
JP4793751B2 (ja) パスワード認証装置、方法、プログラム及び携帯電話装置
TW202308351A (zh) 電腦實施方法及系統
KR101646203B1 (ko) 단말기에서의 사용자 인증 방법 및 콘텐츠 정보를 이용하여 사용자 인증을 수행하는 단말기
KR20060134255A (ko) 비밀정보 입력 및 해석 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22736772

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280009254.2

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 18260474

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20237026663

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020237026663

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022736772

Country of ref document: EP

Effective date: 20230808