Block chain control system and block chain control program

The blockchain control system addresses mining time fluctuations by adjusting mining difficulty based on device availability, ensuring consistent mining efficiency even when devices perform normal processing.

JP2025051171APending Publication Date: 2025-04-04FUJIFILM BUSINESS INNOVATION CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023160134
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-25
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

In blockchain systems where multiple devices collaborate for mining processing, fluctuations in mining time occur when devices perform normal processing instead of mining, affecting the overall mining efficiency.

Method used

A blockchain control system where each device outputs processing availability information, allowing the system to adjust the mining difficulty level based on the number of available devices for mining, thereby stabilizing mining time.

Benefits of technology

The system effectively suppresses fluctuations in mining time even when devices are performing normal processing, ensuring consistent mining efficiency across the blockchain network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025051171000001_ABST
    Figure 2025051171000001_ABST
Patent Text Reader

Abstract

To suppress a fluctuation of a mining time even in a case where a device participated in a block chain, in which a plurality of devices cooperatively performs mining processing, performs ordinary processing other than the mining processing in the block chain.SOLUTION: Each of image processing devices 12 included in a block chain control system 10 cooperatively forms a mining pool and executes mining processing for adding a new block 40 to a block chain 32. Each of the image processing devices 12 outputs processability information indicating whether or not the mining processing is executable in the own device. On the basis of the processability information outputted by each of the image processing devices 12, a difficulty level setting section 58 sets a mining difficulty level regarding the present block 40 based on the number of image processing devices 12 capable of executing the mining processing at a point in time when the mining processing of the present block 40 is executed.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a blockchain control system and a blockchain control program. [Background technology]

[0002] Conventionally, a technology called blockchain has been known. Blockchain has a structure in which data units called blocks, each of which contains transaction information, which is information to be recorded, are linked like a chain. Blockchain is stored in multiple devices (also called nodes) that are connected to each other so that they can communicate directly with each other. This mechanism prevents tampering with the data to be recorded.

[0003] The process of adding new blocks to a blockchain is called mining. Mining is performed by each device participating in the blockchain. Generally, mining requires a huge amount of calculations. By adjusting the amount of calculations required for mining, it is possible to adjust the number of new blocks added per given time.

[0004] Conventionally, techniques for improving mining processing have been proposed. For example, Patent Document 1 discloses a mining device that includes a first calculation unit that executes various application programs such as a word processing program, a spreadsheet program, or an image processing program, and a second calculation unit that performs mining processing to add blocks to a blockchain, and in which the second calculation unit performs mining processing while the first calculation unit executes the application program.

[0005] Furthermore, Patent Document 2 discloses that in a mining pool that performs mining processing to add blocks to a blockchain, each miner participating in the mining pool sends a report indicating the results of the mining processing to the pool master device of the mining pool.

[0006] Furthermore, Patent Document 3 discloses a distributed management system for mining processes to add blocks to a blockchain, in which a management server manages the mining rate, which is the result of the mining process of each user terminal, which is a node that constitutes the blockchain, and pays rewards to users according to the mining rate. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] JP 2019-106612 A [Patent Document 2] Special Publication No. 2022-546773 [Patent Document 3] JP 2019-101797 A Summary of the Invention [Problem to be solved by the invention]

[0008] As described above, the mining process requires a huge amount of calculation, and there are cases where multiple devices participating in the blockchain work together to execute the mining process. By executing the mining process with multiple devices working together, it is possible to prevent the mining time, which is the time required for the mining process, from becoming long, even if the blockchain does not include a device with powerful calculation capabilities.

[0009] Here, a device participating in the blockchain may perform processing other than mining processing (referred to as normal processing in this specification). While a device participating in the blockchain is performing normal processing, the device may not be able to execute mining processing. Therefore, when a device participating in the blockchain performs normal processing, the computing power for mining processing of the blockchain as a whole may vary depending on whether the device is performing normal processing, and the mining time may vary.

[0010] The object of the present invention is to suppress fluctuations in mining time in a blockchain in which multiple devices work together to perform mining processing, even when devices participating in the blockchain perform normal processing other than mining processing. [Means for solving the problem]

[0011] The invention of claim 1 is a blockchain control system comprising: a plurality of devices each storing a blockchain and connected to each other so as to be able to communicate with each other, each device working in cooperation with the other devices to perform mining processing to add a new block to the blockchain; and a processor, wherein each device included in the plurality of devices outputs processing feasibility information indicating whether the mining processing can be performed on the own device; the processor obtains transaction information, which is information to be included in a block, from one of the plurality of devices, and based on the processing feasibility information output by each device, sets a mining difficulty, which is the difficulty of the mining processing for the block including the transaction information, according to the number of processing capable devices among the plurality of devices that are determined to be capable of the mining processing at the time the mining processing of the block including the transaction information is performed; and when a result of the mining processing by the processing capable devices meets a condition determined according to the mining difficulty, adds a block including the transaction information to the blockchain. The invention of claim 2 is the blockchain control system described in claim 1, characterized in that each device included in the plurality of devices transmits the transaction information to the plurality of devices when normal processing, which is processing other than the mining processing, is completed, and the processing feasibility information regarding a device included in the plurality of devices is included in the transaction information transmitted from that device. The invention of claim 3 is the blockchain control system described in claim 2, characterized in that each device included in the plurality of devices transmits the transaction information including the processing feasibility information indicating that the mining processing cannot be executed to the plurality of devices after the normal processing is completed, if a user remains logged in to the device or if there is another normal processing being executed or waiting to be executed on the device. The invention of claim 4 is the blockchain control system described in claim 2 or 3, characterized in that each device included in the plurality of devices includes number information indicating the number of processing capable devices in the header of the block based on the processing capability information included in one or more of the transaction information included in the block, and the processor sets the mining difficulty based on a comparison of the number information included in the header of the immediately previous block added to the blockchain with the number of processing capable devices calculated from the processing capability information included in one or more of the transaction information included in the current block to be added to the blockchain this time. The invention of claim 5 is the blockchain control system described in claim 1, characterized in that each device included in the plurality of devices includes mining time information indicating the mining time required for the mining process of the block in a header of the block, and the processor sets the mining difficulty based on a comparison between the mining time indicated by the mining time information included in the header of the immediately previous block added to the blockchain and a predetermined reference time. The invention of claim 6 is the blockchain control system described in claim 1, characterized in that each device included in the plurality of devices is an image processing device, and the transaction information includes information indicating the content of the processing performed by the image processing device. The invention of claim 7 is a blockchain control program that causes a computer to obtain transaction information, which is information to be included in a block, from any of a plurality of devices, each of which stores a blockchain and is connected to each other so as to be able to communicate with each other, and each device cooperates with the other devices to perform mining processing to add a new block to the blockchain; sets a mining difficulty, which is the difficulty of the mining processing for the block including the transaction information, according to the number of process-capable devices among the plurality of devices that are determined to be capable of the mining processing at the time the mining processing of the block including the transaction information is performed, based on processing feasibility information output from each device included in the plurality of devices indicating whether the mining processing can be performed on the device itself; and adds a block including the transaction information to the blockchain when a result of the mining processing by the process-capable devices meets a condition determined according to the mining difficulty. Effect of the Invention

[0012] According to the invention of claim 1 or 7, in a blockchain in which multiple devices work together to perform mining processing, fluctuations in mining time can be suppressed even when devices participating in the blockchain perform normal processing other than mining processing. According to the invention of claim 2, the processor can determine whether or not mining processing can be performed on each device within the blockchain framework. According to the invention of claim 3, in each device, it is possible to determine whether or not mining processing can be performed depending on whether a user is logged in or not, or whether normal processing is being performed or is scheduled to be performed. According to the invention of claim 4, the mining difficulty can be determined based on a comparison between the number of processing-capable devices indicated by the number information of the immediately preceding block and the number of processing-capable devices calculated from the processing feasibility information included in the current block. According to the invention of claim 5, the mining difficulty can further be determined based on the mining time for the immediately preceding block. According to the invention of claim 6, in a blockchain for preventing tampering with information indicating the contents of processing executed by an image processing device, fluctuations in mining time can be suppressed. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a schematic diagram of the configuration of a blockchain control system according to this embodiment. [Diagram 2] 1 is a schematic diagram illustrating the configuration of an image processing device according to an embodiment of the present invention. [Diagram 3] 1 is a conceptual diagram showing the structure of a blockchain. [Figure 4] FIG. 2 is a conceptual diagram showing the contents of a block header. [Diagram 5] FIG. 2 is a conceptual diagram showing the contents of transaction information. [Figure 6] 1 is a first flowchart showing the flow of processing in the image processing device according to the present embodiment. [Figure 7] 10 is a second flowchart showing the flow of processing in the image processing device according to the present embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] FIG. 1 is a schematic diagram of a configuration of a blockchain control system 10 according to this embodiment. The blockchain control system 10 is configured to include a plurality of devices that are a plurality of nodes of the blockchain. In this embodiment, the blockchain control system 10 is configured from a plurality of image processing devices 12 as a plurality of nodes of the blockchain. In this specification, the image processing device 12 included in the blockchain control system 10 is simply referred to as the image processing device 12. The image processing device 12 is a device having a print function, a copy function, a scan function, a FAX function, etc., such as a multifunction device. Note that, although FIG. 1 shows only three image processing devices 12 that constitute the blockchain control system 10, the blockchain control system 10 may include more than three image processing devices 12.

[0015] The image processing devices 12 are connected to each other via a communication line such as a LAN (Local Area Network) or a WAN (Wide Area Network) so that they can communicate with each other by P2P (Peer to Peer). P2P is a communication method in which devices communicate directly with each other without going through a server.

[0016] In the blockchain control system 10 according to this embodiment, the billing data formed in each image processing device 12 is managed by the blockchain to prevent the data from being lost or tampered with. The billing data is data that indicates the processing content of the image processing device 12. For example, the billing data formed when the image processing device 12 performs a print process includes information such as the number of prints, the output paper size, and whether the print is color or black and white. The billing data is used, for example, when determining the amount to be charged to a user who uses the image processing device 12.

[0017] Although the details will be described later, a blockchain is a form of a distributed database that is configured by linking multiple blocks. The distributed database here means that the same content of the blockchain is stored in each image processing device 12. Each block that configures the blockchain contains one or multiple pieces of transaction information to be managed. In this embodiment, each piece of transaction information is billing data. Also, each block contains a hash value (hereinafter, for convenience, referred to as the hash value of the block) of the block information of the immediately previous block that was previously added to the blockchain. The block information is information that contains transaction information and the like contained in the block. The hash value is a value obtained by irreversibly converting the target data (here, the block information of the immediately previous block). Therefore, if the transaction information included in a certain block is lost or tampered with, the hash values ​​included in all subsequent blocks will be different from the regular ones. With this mechanism, loss or tampering of transaction information (billing data in this embodiment) is suppressed.

[0018] If it were possible to easily add blocks to a blockchain, a malicious user could easily add fraudulent blocks (for example, blocks containing falsified transaction information) to the blockchain. Therefore, in a blockchain, restrictions are generally imposed for adding new blocks. An algorithm called PoW (Proof of Work) has been proposed as one of such restrictions. PoW is a mechanism in which a processor of a blockchain node (the image processing device 12 in this embodiment) is made to repeat calculations, and when the calculation results satisfy a predetermined condition, a new block is permitted to be added to the blockchain. In the blockchain of this embodiment, PoW is also used as a restriction for adding a new block.

[0019] The process for adding a new block to the blockchain is called mining. In mining by PoW, the node processor calculates the hash value of the latest block added to the blockchain by inputting a composite value obtained by combining block information of the latest block added to the blockchain, i.e., one or more pieces of transaction information included in the block, the hash value of the block immediately preceding the block, and a value called a nonce, into a hash function. For example, a function such as SHA-256 is used as the hash function. If the calculated hash value is less than a predetermined threshold (called a difficulty target), the mining process is successful and a new block is permitted to be added to the blockchain. The hash value that is less than the threshold is called a correct hash value. If the calculated hash value is equal to or greater than the threshold, the processor changes the nonce value and calculates the hash value again. Note that, due to the characteristics of the hash function, if the input data (here, the nonce value) is slightly different, the output hash value changes significantly. In this way, the processor repeats the calculation of the hash value while changing the nonce value until the hash value becomes less than the threshold (in other words, until the correct hash value is obtained). Generally, the amount of calculation required to obtain a correct hash value is enormous.

[0020] In this specification, the difficulty of the mining process is called the mining difficulty. In the case of PoW, the mining difficulty can be adjusted by the above-mentioned threshold. That is, the smaller the threshold value, the more difficult it is for the mining process to succeed, and the larger the threshold value, the more likely it is for the mining process to succeed.

[0021] As described above, a huge amount of calculation is required to make the mining process successful. Therefore, it has been proposed to have multiple nodes work together to perform the mining process. A group of nodes that work together to perform the mining process is called a mining pool. In this embodiment, multiple image processing devices 12 form a mining pool, and the multiple image processing devices 12 (more specifically, their processors) work together to perform the mining process.

[0022] 2 is a schematic diagram of the configuration of the image processing device 12. The image processing device 12 is a device that executes mining processing and normal processing (processing other than mining processing, as described above). The normal processing in the image processing device 12 is, for example, printing processing, scanning processing, copying processing, and fax processing. Since each image processing device 12 included in the blockchain control system 10 has a similar configuration, one image processing device 12 will be described here.

[0023] The communication IF (Interface) 20 is composed of, for example, a network adapter. The communication IF 20 performs a function of communicating with other devices via a communication line. In particular, in this embodiment, the communication IF 20 performs a function of communicating with other image processing devices 12 by P2P.

[0024] The input IF 22 is configured with, for example, a button, a touch panel, etc. The input IF 22 is used when the user inputs instructions to the image processing device 12.

[0025] The display 24 is configured by, for example, a liquid crystal display, an organic EL (Electro Luminescence) display, etc. Various screens are displayed on the display 24 in response to instructions from a processor 50, which will be described later.

[0026] The printer 26 is, for example, a laser printer or an inkjet printer, and is a mechanism that performs a print process to form an image on a print medium such as paper based on an input print job. If the printer 26 is a laser printer, the printer 26 is composed of, for example, a photosensitive drum, a charging roller, a transfer roller, a fixing roller, toner, etc. If the printer 26 is an inkjet printer, the printer 26 is composed of a nozzle, a charging electrode plate, a deflection electrode plate, ink, etc.

[0027] The scanner 28 includes a light source, and an image sensor such as a charge-coupled device (CCD), etc. The scanner 28 is a mechanism that performs a scan process to optically read a paper medium and acquire image data.

[0028] The memory 30 includes a hard disk drive (HDD), an embedded multi media card (eMMC), a read only memory (ROM), or a random access memory (RAM). A block chain control program for operating each part of the image processing device 12 is stored in the memory 30. The block chain control program can also be stored in a computer-readable non-transitory storage medium such as a universal serial bus (USB) memory or an SD card. The image processing device 12 can read and execute the block chain control program from such a storage medium. In addition, as shown in FIG. 2, a block chain 32 is stored in the memory 30.

[0029] 3 is a conceptual diagram showing the structure of the blockchain 32. As described above, the blockchain 32 has a structure in which a plurality of blocks 40 are linked together. Each block 40 includes a header 42 and transaction information 44.

[0030] FIG. 4 is a conceptual diagram showing the contents of the header 42 included in each block 40. As shown in FIG. 4, in this embodiment, the header 42 includes the hash value of the immediately preceding block 40, a nonce, information indicating the mining time, information indicating the mining difficulty, and the number of machines that cannot be mined. The hash value of the immediately preceding block 40 is the correct hash value calculated when the immediately preceding block 40 is added to the blockchain 32. The nonce is the nonce used when the correct hash value of the block 40 is calculated. The mining time is the time required for the mining process for the block 40. In other words, the mining time is the time required from the start of the mining process for the block 40 until the mining process is successful (i.e., until the correct hash value is calculated). The mining difficulty is the mining difficulty when the block 40 is added to the blockchain 32. In this embodiment, the threshold value when the correct hash value is calculated is included in the header 42 as the mining difficulty. The number of machines that cannot be mined will be described later.

[0031] FIG. 5 is a conceptual diagram showing the contents of transaction information 44 included in each block 40. As shown in FIG. 5, in this embodiment, the transaction information 44 includes billing data, a device ID, information indicating the processing date and time, and a continuation processing flag. As described above, the billing data is data indicating the processing content of the image processing device 12. The device ID is an identifier that uniquely identifies the image processing device 12 that executed the processing related to the billing data. The processing date and time is the date and time when the image processing device 12 completed the processing related to the billing data. The processing continuation flag has a value of ON or OFF. The continuation flag will be described later.

[0032] Returning to Fig. 2, the processor 50 is composed of, for example, a CPU (Central Processing Unit) etc. The processor 50 is communicatively connected to the communication IF 20, the input IF 22, the display 24, the printer 26, the scanner 28, and the memory 30 via a data bus. The processor 50 performs the functions of an authentication processing unit 52, a normal processing unit 54, a transaction information creation unit 56, a difficulty setting unit 58, and a mining processing unit 60 by a blockchain control program stored in the memory 30.

[0033] The authentication processing unit 52 , the normal processing unit 54 , and the transaction information creation unit 56 are functions that are primarily related to the creation and transmission of the transaction information 44 to be included in the block 40 .

[0034] The authentication processing unit 52 authenticates a user who uses the image processing device 12. For example, the image processing device 12 has a card reader (not shown), and the authentication processing unit 52 authenticates the user by a user ID obtained by the card reader reading the user's ID card. The authentication processing unit 52 may also authenticate the user by having the user input a user ID and password. A state in which a user is authenticated is expressed as the user being logged in to the image processing device 12. When the user finishes using the image processing device 12, the user inputs a logout instruction to the image processing device 12 from the input IF 22 or the like. The authentication processing unit 52 cancels the authentication of the user based on the instruction.

[0035] The normal processing unit 54 performs control for executing normal processing based on a job as a processing command input by a user to the image processing device 12. For example, when the normal processing unit 54 receives a print job from a user, it causes the printer 26 to execute a printer process. Also, for example, when the normal processing unit 54 receives a scan job from a user, it causes the scanner 28 to execute a scan process.

[0036] When normal processing under the control of the normal processing unit 54 is completed, the transaction information creation unit 56 creates transaction information 44 (see FIG. 5) related to the normal processing. Specifically, the transaction information creation unit 56 creates billing data related to the normal processing based on attribute information of the job related to the normal processing. In addition, the transaction information creation unit 56 obtains its own device ID (which may be stored in advance in the memory 30) and the processing date and time when the processing of the job related to the normal processing is completed, and includes these in the transaction information 44.

[0037] Furthermore, the transaction information creation unit 56 includes a continuation processing flag as processing availability information in the transaction information 44. The continuation processing flag is a flag indicating whether or not the image processing device 12 is continuing normal processing. As described above, mining processing is performed in a mining pool consisting of multiple image processing devices 12 that are multiple nodes of the blockchain, but in this embodiment, an image processing device 12 that is performing normal processing is considered to be unable to perform mining processing. In other words, the continuation processing flag can also be said to be information indicating whether or not mining processing can be performed in the image processing device 12.

[0038] In this embodiment, the transaction information creation unit 56 turns the continuation processing flag ON when at least one of the following conditions is met: the user remains logged in to the image processing device 12 after the normal processing is completed, or there is a job being executed or a job waiting to be executed in the image processing device 12. When the continuation processing flag is ON, this means that the image processing device 12 cannot execute mining processing. On the other hand, the transaction information creation unit 56 turns the continuation processing flag OFF when both of the following conditions are met: the user logs out after the normal processing is completed, and there is no job being executed or a job waiting to be executed in the image processing device 12. When the continuation processing flag is OFF, this means that the image processing device 12 can execute mining processing.

[0039] The transaction information creation unit 56 broadcasts the created transaction information 44 to the other image processing devices 12 included in the blockchain control system 10.

[0040] In this way, when normal processing is executed in each image processing device 12 included in the blockchain control system 10, transaction information 44 is transmitted simultaneously from the image processing device 12 that executed the normal processing to the other image processing devices 12. Each image processing device 12 accumulates and stores in the memory 30 the transaction information 44 acquired from any of the multiple image processing devices 12 included in the blockchain control system 10 (including its own device).

[0041] The difficulty level setting unit 58 and the mining processing unit 60 are functions related to the mining process of the block 40 including the transaction information 44 transmitted from the image processing device 12 itself or from another image processing device 12 .

[0042] The difficulty level setting unit 58 sets the mining difficulty level for the current block 40 prior to the mining process for the current block 40, which is the block 40 that the mining processing unit 60 is currently attempting to add to the blockchain 32.

[0043] In this embodiment, first, the difficulty level setting unit 58 calculates the number of image processing devices 12 whose continuation processing flag is ON based on the device ID and the continuation processing flag of each transaction information 44 (hereinafter, referred to as the current transaction information 44) included in the current block 40, and sets this as the number of image processing devices that cannot be mined. In other words, the number of image processing devices that cannot be mined is information indicating the number of image processing devices 12 that are determined to be unable to perform mining processing at the time of performing mining processing of the current block 40. Note that the current transaction information 44 may include multiple transaction information 44 including the same device ID. For example, this may be the case when the same image processing device 12 processes multiple jobs in a short period of time. In this case, the difficulty level setting unit 58 refers to only the continuation processing flag included in the transaction information 44 with the latest processing date and time among the multiple transaction information 44 including the same device ID. This allows the difficulty level setting unit 58 to calculate the number of image processing devices that cannot be mined based on the latest state of the image processing device 12 (i.e., whether mining processing is possible or not).

[0044] The number of units unable to mine included in the header 42 of the block 40 indicates the number of image processing devices 12 unable to perform mining processing within the range of the image processing devices 12 related to the current transaction information 44, and may not necessarily indicate the number of image processing devices 12 unable to perform mining processing among all image processing devices 12 included in the blockchain control system 10. However, if each image processing device 12 performs processing with a certain frequency, the current transaction information 44 is expected to include transaction information 44 transmitted from a large number of image processing devices 12, and the number of units unable to mine calculated by the difficulty setting unit 58 is expected to be close to the number of image processing devices 12 unable to perform mining processing for the entire blockchain control system 10.

[0045] The number of image processing devices 12 included in the blockchain control system 10 is not changed very frequently. Therefore, the number of image processing devices 12 capable of executing mining processing can be obtained by subtracting the number of devices not capable of mining from the total number of image processing devices 12 included in the blockchain control system 10. Therefore, it can be said that the number of devices not capable of mining processing is information indicating the number of devices capable of mining, which is the number of image processing devices 12 capable of mining processing. In addition, the difficulty level setting unit 58 may calculate the number of image processing devices 12 whose continuation processing flag is OFF based on the device ID and the continuation processing flag of each current transaction information 44 instead of the number of devices not capable of mining, and include the number of devices capable of mining as number information in the header 42.

[0046] The difficulty level setting unit 58 calculates the number of units that cannot be mined for the block 40 each time the block 40 is added to the blockchain 32. As will be described in detail later, the mining processing unit 60 includes the number of units that cannot be mined for the block 40 calculated by the difficulty level setting unit 58 in the header 42 of the block 40 (see FIG. 4). That is, the header 42 of the immediately preceding block 40 described below includes the number of units that cannot be mined, which indicates the number of image processing devices 12 that are determined to be unable to perform mining processing at the time when mining processing of the immediately preceding block 40 is performed.

[0047] Next, the difficulty level setting unit 58 refers to the header 42 of the immediately preceding block 40 and obtains the number of non-mining machines in the immediately preceding block 40. Then, the number of non-mining machines in the current block 40 is compared with the number of non-mining machines in the immediately preceding block 40. Then, if the number of non-mining machines in the current block 40 is greater than the number of non-mining machines in the immediately preceding block 40, the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 to be lower than the mining difficulty level for the immediately preceding block 40. On the other hand, if the number of non-mining machines in the current block 40 is less than the number of non-mining machines in the immediately preceding block 40, the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 to be higher than the mining difficulty level for the immediately preceding block 40.

[0048] In this embodiment, the mining difficulty level is set by comparing the number of units not capable of mining between the current block 40 and the immediately preceding block 40, but this is based on the premise that the total number of image processing devices 12 included in the blockchain control system 10 does not fluctuate significantly. To repeat, if the total number of image processing devices 12 included in the blockchain control system 10 can be grasped, the number of units not capable of mining can be said to be information indicating the number of image processing devices 12 capable of mining. Therefore, if the number of units not capable of mining for the current block 40 is greater than the number of units not capable of mining for the immediately preceding block 40, it can be said that the processing capacity of the mining pool when executing the mining process for the current block 40 is smaller than the processing capacity of the mining pool when executing the mining process for the immediately preceding block 40. Therefore, the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 lower than the mining difficulty level for the immediately preceding block 40 in order to suppress fluctuations in the mining time for the current block 40 relative to the immediately preceding block 40. On the other hand, if the number of non-mining machines for the current block 40 is smaller than the number of non-mining machines for the immediately preceding block 40, it can be said that the processing capacity of the mining pool when executing the mining process for the current block 40 is smaller than the processing capacity of the mining pool when executing the mining process for the immediately preceding block 40, and therefore the difficulty level setting unit 58 sets the mining difficulty for the current block 40 higher than the mining difficulty for the immediately preceding block 40 in order to suppress fluctuations in the mining time for the current block 40 relative to the immediately preceding block 40. In this way, conceptually, the difficulty level setting unit 58 sets the mining difficulty for the current block 40 based on a comparison between the number of mining machines for the current block 40 and the number of mining machines for the immediately preceding block 40.

[0049] When the header 42 includes the number of mining capable vehicles, if the current number of mining capable vehicles is less than the immediately preceding number of mining capable vehicles, the difficulty setting unit 58 sets the mining difficulty for the current block 40 to be lower than the mining difficulty for the immediately preceding block 40, and if the current number of mining capable vehicles is greater than the immediately preceding number of mining capable vehicles, the difficulty setting unit 58 sets the mining difficulty for the current block 40 to be higher than the mining difficulty for the immediately preceding block 40.

[0050] In this embodiment, the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 based on a comparison between the number of mining-unavailable machines (or the number of mining-available machines) for the current block 40 and the number of mining-unavailable machines (or the number of mining-available machines) for the immediately preceding block 40, but the mining difficulty level for the current block 40 may be set based on the number of mining-unavailable machines (or the number of mining-available machines) for the current block 40, without relying on a comparison with the immediately preceding block 40. For example, difficulty level information indicating the correspondence between the number of mining-unavailable machines or the number of mining-available machines and the mining difficulty level may be stored in advance in the memory 30, and the difficulty level setting unit 58 may set the mining difficulty level for the current block 40 based on the number of mining-unavailable machines (or the number of mining-available machines) for the current block 40 and the difficulty level information.

[0051] Furthermore, the difficulty setting unit 58 may set the mining difficulty for the current block 40 based on a comparison between the mining time indicated by the mining time information included in the header 42 of the immediately previous block 40 previously added to the blockchain and a predetermined reference time. In detail, if the mining time of the immediately previous block 40 is longer than the reference time, the difficulty setting unit 58 sets the mining difficulty for the current block 40 lower than the mining difficulty for the immediately previous block 40. On the other hand, if the mining time of the immediately previous block 40 is shorter than the reference time, the difficulty setting unit 58 sets the mining difficulty for the current block 40 higher than the mining difficulty for the immediately previous block 40.

[0052] The mining processing unit 60 executes mining processing for the current block 40 including the current transaction information 44 at a predetermined timing (for example, when the number of pieces of transaction information 44 that have not been mined and are stored in the memory 30 reaches a predetermined number, or at a predetermined time interval). As described above, the mining processing unit 60 executes mining processing in cooperation with the mining processing units 60 of the other image processing devices 12. In particular, the mining processing unit 60 executes mining processing when both conditions are satisfied: a user is not logged in to the own device, and there is no job being executed or waiting to be executed in the own device, that is, when the own device is capable of mining processing. On the other hand, the mining processing unit 60 does not execute mining processing when at least one of the conditions is satisfied: a user is logged in to the own device, or there is a job being executed or waiting to be executed in the own device, that is, when the own device is not capable of mining processing.

[0053] The mining process performed by the mining processing unit 60 is as described above. That is, the mining processing unit 60 calculates a hash value of one or more pieces of current transaction information 44, the hash value of the immediately preceding block 40, and a composite value of the nonce. If the hash value resulting from the mining process meets the condition that it is less than a threshold value set by the difficulty setting unit 58, which will be described later, the mining process is successful. The mining processing unit 60 repeats the calculation of the hash value while changing the nonce until it obtains the correct hash value.

[0054] If the mining process is successful, the mining processing unit 60 forms the current block 40 including the header 42 (see FIG. 4) and the current transaction information 44 (see FIG. 5). Then, the current block 40 is added to the blockchain 32.

[0055] The outline of the block chain control system 10 according to this embodiment has been described above. The flow of processing by the image processing device 12 will be described below with reference to the flowcharts shown in FIGS.

[0056] FIG. 6 is a flowchart showing a process flow in which the image processing device 12 creates and transmits the transaction information 44.

[0057] In step S10, the normal processing section 54 performs control for executing normal processing, which is processing related to the job inputted by the user, in accordance with the job, and completes the processing.

[0058] In step S12, the transaction information creation unit 56 creates billing data related to the normal processing carried out in step S10 based on the attribute information of the job completed in step S10.

[0059] In step S14, the transaction information creation unit 56 determines whether or not there is a normal process being executed or waiting to be executed in the image processing device 12, which is its own device. If there is a normal process being executed or waiting to be executed, the process proceeds to step S16, where the transaction information creation unit 56 sets the continuation process flag to ON. If there is no normal process being executed or waiting to be executed, the process proceeds to step S18.

[0060] In step S18, the transaction information creation unit 56 determines whether or not the user is currently logged in to its own device. If the user is currently logged in, the process proceeds to step S18, and if the user is not currently logged in, the process proceeds to step S20.

[0061] In step S20, the transaction information creator 56 sets the continuation processing flag to OFF.

[0062] In step S22, the transaction information creation unit 56 creates transaction information 44 including the billing data created in step S12, the device ID of the device itself, the completion date and time of normal processing in step S10, and the continuation processing flag set in step S16 or step S18.

[0063] In step S24, the transaction information creation unit 56 broadcasts the transaction information 44 created in step S22 to the other image processing devices 12 included in the block chain control system 10.

[0064] FIG. 7 is a flowchart showing the flow of the mining difficulty setting process by the difficulty setting unit 58 and the mining process for the current block 40 by the mining processing unit 60.

[0065] In step S30, the mining processing unit 60 judges whether or not its own device is capable of mining processing. That is, the mining processing unit 60 judges that mining processing is possible when both of the following conditions are met: a user is not logged in to its own device, and there is no job being executed or waiting to be executed on its own device; and judges that mining processing is not possible when at least one of the following conditions is met: a user is logged in to its own device, or there is a job being executed or waiting to be executed on its own device. If mining processing is not possible on its own device, the process ends. If mining processing is possible on its own device, the process proceeds to step S32.

[0066] In step S32, the difficulty level setting unit 58 selects one of the transaction information 44 stored in the memory 30 that has not been subjected to mining processing.

[0067] In step S34, the difficulty level setting unit 58 checks the continuation processing flag of the transaction information 44 selected in step S32. If the continuation processing flag is ON, the process proceeds to step S36. If the continuation processing flag is OFF, the process bypasses step S36 and proceeds to step S38.

[0068] In step S36, the difficulty level setting unit 58 increments the number of mining-disabled machines for the current block 40 (i.e., increases it by 1).

[0069] In step S38, the difficulty level setting unit 58 determines whether or not there remains unprocessed transaction information 44 that has not been mined. If there remains unprocessed transaction information 44, the process returns to step S32, and in step S32 again, the difficulty level setting unit 58 selects the unprocessed transaction information 44 and repeats the processes of steps S34 to S36. In the processes of steps S32 to S38, the number of units that cannot be mined for the current block 40 is calculated. If there is no unprocessed transaction information 44, the process proceeds to step S40.

[0070] In step S40, the difficulty level setting unit 58 acquires the header 42 of the immediately preceding block 40. In particular, the difficulty level setting unit 58 acquires the mining time and the number of units not capable of mining of the immediately preceding block 40.

[0071] In step S42, the difficulty setting unit 58 compares the mining time of the immediately preceding block 40 acquired in step S40 with a predetermined reference time. If the mining time of the immediately preceding block 40 is longer than the reference time, the process proceeds to step S44, where the difficulty setting unit 58 sets the mining difficulty for the current block 40 lower than the mining difficulty for the immediately preceding block 40. If the mining time of the immediately preceding block 40 is shorter than the reference time, the process proceeds to step S46, where the difficulty setting unit 58 sets the mining difficulty for the current block 40 higher than the mining difficulty for the immediately preceding block 40. If the mining time of the immediately preceding block 40 is the same as the reference time, the process proceeds to step S48.

[0072] In step S48, the difficulty level setting unit 58 compares the number of non-mining machines in the current block 40 calculated in steps S32 to S38 with the number of non-mining machines in the immediately preceding block 40 acquired in step S40. If the number of non-mining machines in the current block 40 is greater than the number of non-mining machines in the immediately preceding block 40, the process proceeds to step S50, where the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 lower than the mining difficulty level for the immediately preceding block 40. If the number of non-mining machines in the current block 40 is less than the number of non-mining machines in the immediately preceding block 40, the process proceeds to step S52, where the difficulty level setting unit 58 sets the mining difficulty level for the current block 40 higher than the mining difficulty level for the immediately preceding block 40. If the number of non-mining machines in the current block 40 is the same as the number of non-mining machines in the immediately preceding block 40, the process proceeds to step S54.

[0073] The processes in steps S40 to S52 set the mining difficulty for the current block 40. In this embodiment, a threshold value in PoW is set as the mining difficulty.

[0074] In step S54, the mining processing unit 60 calculates a hash value of the current transaction information 44, the hash value of the immediately preceding block 40, and the combined value of the nonce.

[0075] In step S56, the mining processing unit 60 determines whether the hash value calculated in step S54 is the correct hash value, i.e., whether the hash value calculated in step S54 is less than the threshold value set in steps S40 to S52. If the hash value calculated in step S54 is not the correct hash value, the process returns to step S54, where the mining processing unit 60 changes the nonce and calculates the hash value again. If the hash value calculated in step S54 is the correct hash value, the process proceeds to step S58.

[0076] In step S58, the mining processing unit 60 forms the current block 40 including the header 42 and the current transaction information 44. Then, the current block 40 is added to the blockchain 32.

[0077] Although the embodiment of the present invention has been described above, the present invention is not limited to the above embodiment, and various modifications are possible without departing from the spirit of the present invention.

[0078] For example, in this embodiment, the devices constituting the blockchain control system 10 and each storing the blockchain 32 are the image processing devices 12, and the data managed by the blockchain 32 is billing data. However, the devices constituting the blockchain control system 10 may be other devices. Furthermore, the data managed by the blockchain 32 may be data other than billing data.

[0079] In the present embodiment, each image processing device 12 includes a continuation processing flag as processing feasibility information indicating whether or not the mining process can be executed in the transaction information 44, and then transmits the transaction information 44 to the other image processing devices 12 at once. As a result, each image processing device 12 outputs the processing feasibility information. However, each image processing device 12 does not necessarily need to include the processing feasibility information in the transaction information 44, and may output the processing feasibility information by other methods. For example, each image processing device 12 may intermittently transmit the processing feasibility information to a predetermined server. Then, when performing the mining process of the current block 40, the difficulty level setting unit 58 may obtain the number of image processing devices 12 that can execute the mining process for the current block 40 based on the processing feasibility information transmitted from each image processing device 12 stored in the server. However, by including the processing feasibility information in the transaction information 44, each image processing device 12 can obtain the processing feasibility information within the framework of the blockchain 32 without the need to prepare a separate server for storing the processing feasibility information.

[0080] In the above embodiment, the processor refers to a processing device in a broad sense, and includes at least one of a general-purpose processing device (e.g., a CPU (Central Processing Unit)) and a dedicated processing device (e.g., a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a programmable logic device). The processor may not be a single processing device, but may be a device formed by the cooperation of multiple processing devices located at physically separate locations.

[0081] (Additional Note) (((1))) A plurality of devices each storing a blockchain and connected to each other in a communicable manner, each of which cooperates with the other devices to perform a mining process for adding a new block to the blockchain; A processor; Equipped with Each device included in the plurality of devices outputs processing capability information indicating whether the mining processing can be executed on the own device; The processor, Obtaining transaction information, which is information to be included in a block, from any one of the plurality of devices; Based on the processing feasibility information output by each device, a mining difficulty level is set, which is the difficulty level of the mining process for the block including the transaction information, according to the number of processing capable devices that are devices that are determined to be capable of the mining process at the time of executing the mining process for the block including the transaction information, among the plurality of devices; When a result of the mining process by the processing device meets a condition determined according to the mining difficulty, a block including the transaction information is added to the blockchain. A blockchain control system. (((2))) Each device included in the plurality of devices transmits the transaction information to the plurality of devices when a normal process other than the mining process is completed; The process capability information regarding a device included in the plurality of devices is included in the transaction information transmitted from the device. The blockchain control system described in (((1))) is characterized in that (((3))) each of the devices included in the plurality of devices transmits, to the plurality of devices, the transaction information including the processing feasibility information indicating that the mining processing is not executable, when a user continues to log in to the device after the normal processing is completed, or when there is another normal processing being executed or waiting to be executed on the device; The blockchain control system described in (((2))) is characterized in that (((4))) Each of the devices included in the plurality of devices includes, in a header of the block, number information indicating the number of the processable devices, based on the processability information included in one or more of the transaction information included in the block; The processor, setting the mining difficulty level based on a comparison between the number information included in the header of the immediately previous block added to the blockchain and the number of processing-capable devices calculated from the processing feasibility information included in one or more pieces of transaction information included in the current block to be added to the blockchain this time; A blockchain control system as described in (((2))) or (((3))). (((5))) Each device included in the plurality of devices includes, in a header of a block, mining time information indicating the mining time required for the mining process of the block, The processor, Setting the mining difficulty based on a comparison between the mining time indicated by the mining time information included in the header of the immediately previous block added to the blockchain and a predetermined reference time; 1. A blockchain control system according to any one of claims ((1)) to ((4)). (((6))) each of the devices included in the plurality of devices is an image processing device; the transaction information includes information indicating the content of the processing executed by the image processing device; 1. A blockchain control system according to any one of claims ((1)) to (((5))). (((7))) On the computer, A plurality of devices each storing a blockchain and connected to each other so as to be able to communicate with each other, each of which cooperates with the other devices to perform mining processing for adding a new block to the blockchain, to obtain transaction information, which is information to be included in a block, from any one of the plurality of devices; based on processing capability information output from each device included in the plurality of devices indicating whether the device itself is capable of executing the mining processing, set a mining difficulty level, which is the difficulty level of the mining processing for the block including the transaction information, according to the number of processing capable devices that are determined to be capable of the mining processing at the time of executing the mining processing for the block including the transaction information, among the plurality of devices; When a result of the mining process by the processing device meets a condition determined according to the mining difficulty, a block including the transaction information is added to the blockchain. A blockchain control program.

[0082] According to the invention related to (((1))) or (((7))), in a blockchain in which multiple devices work together to perform mining processing, fluctuations in mining time can be suppressed even when devices participating in the blockchain perform normal processing other than mining processing. According to the invention related to (((2))), the processor can determine whether or not mining processing can be performed on each device within the blockchain framework. According to the invention related to (((3))), in each device, it is possible to determine whether or not mining processing can be performed depending on whether or not a user is logged in, or whether or not normal processing is being performed or is scheduled to be performed. According to the invention related to (((4))), the mining difficulty can be determined based on a comparison between the number of processing-capable devices indicated by the number information of the immediately preceding block and the number of processing-capable devices calculated from the processing feasibility information included in the current block. According to the invention related to (((5))), the mining difficulty can further be determined based on the mining time for the immediately preceding block. According to the invention related to (((6))), in a blockchain for preventing tampering with information indicating the contents of processing performed by an image processing device, fluctuations in mining time can be suppressed. [Explanation of symbols]

[0083] 10 Blockchain control system, 12 Image processing device, 20 Communication IF, 22 Input IF, 24 Display, 26 Printer, 28 Scanner, 30 Memory, 32 Blockchain, 40 Block, 42 ​​Header, 44 Transaction information, 50 Processor, 52 Authentication processing unit, 54 Normal processing unit, 56 Transaction information creation unit, 58 Difficulty setting unit, 60 Mining processing unit.

Claims

1. A plurality of devices each storing a blockchain and connected to each other in a communicable manner, each of which cooperates with the other devices to perform a mining process for adding a new block to the blockchain; A processor; Equipped with Each device included in the plurality of devices outputs processing capability information indicating whether the mining processing can be executed on the own device; The processor, Obtaining transaction information, which is information to be included in a block, from any one of the plurality of devices; Based on the processing feasibility information output by each device, a mining difficulty level is set, which is the difficulty level of the mining process for the block including the transaction information, according to the number of processing capable devices that are devices that are determined to be capable of the mining process at the time of executing the mining process for the block including the transaction information, among the plurality of devices; When a result of the mining process by the processing device meets a condition determined according to the mining difficulty, a block including the transaction information is added to the blockchain. A blockchain control system.

2. Each device included in the plurality of devices transmits the transaction information to the plurality of devices when a normal process other than the mining process is completed; The process capability information regarding a device included in the plurality of devices is included in the transaction information transmitted from the device. The block chain control system according to claim 1.

3. each of the devices included in the plurality of devices transmits, to the plurality of devices, the transaction information including the processing feasibility information indicating that the mining processing is not executable, when a user continues to log in to the device after the normal processing is completed, or when there is another normal processing being executed or waiting to be executed on the device; The block chain control system according to claim 2.

4. Each of the devices included in the plurality of devices includes, in a header of the block, number information indicating the number of the processable devices, based on the processability information included in one or more pieces of transaction information included in the block; The processor, setting the mining difficulty level based on a comparison between the number information included in the header of the immediately previous block added to the blockchain and the number of processing-capable devices calculated from the processing feasibility information included in one or more pieces of transaction information included in the current block to be added to the blockchain this time; The block chain control system according to claim 2 or 3.

5. Each device included in the plurality of devices includes, in a header of a block, mining time information indicating the mining time required for the mining process of the block, The processor, Setting the mining difficulty based on a comparison between the mining time indicated by the mining time information included in the header of the immediately previous block added to the blockchain and a predetermined reference time; The block chain control system according to claim 1.

6. each of the devices included in the plurality of devices is an image processing device; the transaction information includes information indicating the content of the processing executed by the image processing device; The block chain control system according to claim 1.

7. On the computer, A plurality of devices each storing a blockchain and connected to each other so as to be able to communicate with each other, each of which cooperates with the other devices to perform mining processing for adding a new block to the blockchain, to obtain transaction information, which is information to be included in a block, from any one of the plurality of devices; based on processing capability information output from each device included in the plurality of devices indicating whether the device itself is capable of executing the mining processing, set a mining difficulty level, which is the difficulty level of the mining processing for the block including the transaction information, according to the number of processing capable devices that are determined to be capable of the mining processing at the time of executing the mining processing for the block including the transaction information, among the plurality of devices; When a result of the mining process by the processing device meets a condition determined according to the mining difficulty, a block including the transaction information is added to the blockchain. A blockchain control program.

Citation Information

Patent Citations

  • Distribution management system and method for mining processing

    JP2019101797A

  • Cryptocurrency mining system

    JP2019106612A

  • Method and device for tracking and measuring proof-of-work contributions in a mining pool

    JP2022546773A