Program, information processing method, information processing device, and information processing system
The program uses a blockchain system to record and track approval data, ensuring secure and transparent approval processes by recording and verifying approval requests and responses, addressing challenges in existing electronic approval systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- THE JAPAN STEEL WORKS LTD
- Filing Date
- 2024-12-23
- Publication Date
- 2026-07-03
AI Technical Summary
Existing electronic approval systems face challenges in ensuring smooth and secure approval processes for approval target files, particularly in ensuring the integrity and authenticity of the approval process.
A program that utilizes a blockchain system to record approval data, including approval requester information, and sends notifications to recipients for approval or rejection, ensuring secure and transparent tracking of the approval process.
Enables smooth and secure approval processes by ensuring the integrity and authenticity of the approval process, allowing for transparent tracking and verification of file approvals.
Smart Images

Figure 2026111304000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a program, an information processing method, an information processing apparatus, and an information processing system.
Background Art
[0002] In approval processing within an organization such as a company, an electronic approval workflow system may be used. In an electronic approval workflow system, various approval target files that require approval from each approval requester are electronically circulated via a network, and confirmation work regarding approval or disapproval by each approval requester is performed. Patent Document 1 discloses an approval system in which each approval requester performs electronic approval by affixing an approval seal.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present disclosure is to provide a program or the like that enables smooth approval of approval target files.
Means for Solving the Problems
[0005] A program according to an aspect of the present disclosure receives, from a user who is the approval requester of an approval target file, the approval target file and a first approval requester, records first approval data including the first approval requester in a blockchain system, sends a notification of an approval request to the first approval requester, receives, from the user of the first approval requester, either a second approval requester associated with the approval or rejection information indicating rejection, and records second approval data including the second approval requester or the rejection information in the blockchain system.
Effects of the Invention
[0006] This disclosure provides a program and the like that enables the smooth approval of files subject to approval. [Brief explanation of the drawing]
[0007] [Figure 1] This is an explanatory diagram showing an overview of the information processing system. [Figure 2] This is a block diagram showing an example of a storage server configuration. [Figure 3] This block shows an example of a node configuration. [Figure 4] This is a block diagram showing the internal configuration of the processing server. [Figure 5] This is a block diagram showing the internal configuration of the user terminal. [Figure 6] This is a diagram showing an example of a user registration screen. [Figure 7] This is an explanatory diagram showing an example of a user database record layout. [Figure 8] This is a flowchart showing the processing performed by the processing server and user terminal. [Figure 9] This is a flowchart showing the processing performed by the processing server and user terminal. [Figure 10] This is a flowchart showing the processing performed by the processing server and user terminal. [Figure 11] This is a flowchart showing the processing performed by the processing server and user terminal. [Figure 12] This is a flowchart showing the processing performed by the processing server and user terminal. [Figure 13] This figure shows an example of an information input screen. [Figure 14] This is an explanatory diagram showing an example of a record layout for a large-capacity storage unit. [Figure 15] This is an explanatory diagram showing the connections of the newly generated blocks. [Figure 16] This figure shows an example of an input screen for approval or rejection. [Figure 17]This is a diagram showing an example of a recipient input screen. [Figure 18] This is a diagram showing an example of a recipient input screen. [Figure 19] This is a diagram showing an example of an information input screen. [Figure 20] This is an explanatory diagram showing an example of a record layout of a mass storage unit. [Figure 21] This is a flowchart showing the processing of a processing server.
Mode for Carrying Out the Invention
[0008] A program, an information processing method, an information processing apparatus, and an information processing system according to an embodiment of the present disclosure will be described below with reference to the drawings. The present disclosure is not limited to these examples, but is defined by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims. At least a part of the embodiments described below may be arbitrarily combined.
[0009] (First Embodiment) FIG. 1 is an explanatory diagram showing an overview of an information processing system 100. The information processing system 100 includes a storage server 1, a plurality of information processing terminals (nodes) 21 constituting a blockchain system 2, a processing server 3, and a user terminal 4. Each device and terminal transmits and receives information via a network N such as the Internet.
[0010] The storage server 1 is a data server device mainly responsible for storing data, and is an information processing device that performs processing, storage, and transmission / reception of various information. The storage server 1 is, for example, a server device, a personal computer, or a general-purpose tablet PC (personal computer), etc.
[0011] Blockchain System 2 is a system that utilizes distributed ledger technology or a distributed network. Blockchain System 2 consists of multiple nodes 21 that perform consensus processing. Nodes 21 are, for example, server devices, personal computers, or general-purpose tablet PCs (personal computers). Figure 1 shows an example where Blockchain System 2 consists of five nodes 21, but the number of nodes 21 is not limited to five. Each node 21 maintains a copy of the data in Blockchain System 2 by communicating with each other. Blockchain System 2 stores data by generating units of data called blocks and linking them together like a chain.
[0012] Blockchain system 2 may be public, private, or consortium-type. The unit of data may be individual transactions rather than blocks. Data may be stored in formats other than a chain, such as directed acyclic graphs.
[0013] Processing Server 3 is an information processing device that handles, stores, and transmits various types of information. Processing Server 3 plays a central role as the server for application functions, such as data processing or communication between Nodes 21. Processing Server 3 can be, for example, a server device, a personal computer, or a general-purpose tablet PC (personal computer).
[0014] Network N includes the Internet and carrier networks. Carrier networks are networks provided by telecommunications carriers that implement wireless communication based on standards such as next-generation or next-next-generation high-speed mobile communication standards.
[0015] This section outlines the approval workflow using the information processing system 100. Processing server 3, which performs various processes related to the approval workflow, receives the file to be approved and the first approval recipient from the user requesting approval via user terminal 4. Processing server 3 records the file to be approved in storage server 1, and the first approval data, including the hash values of the first approval recipient and the file to be approved, in blockchain system 2, and sends an approval request notification to the first approval recipient. Processing server 3 receives either a second approval recipient or rejection information indicating rejection of approval from the user of the first approval recipient. The second approval data, including the second approval recipient or rejection information, is recorded in blockchain system 2. By repeating the above, multiple approval recipients can be made to approve the file to be approved.
[0016] Figure 2 is a block diagram showing an example configuration of storage server 1. Storage server 1 includes a control unit 11, a storage unit 12, a communication unit 13, and a large-capacity storage unit 14. Each component is connected by a bus.
[0017] The control unit 11 includes an arithmetic processing unit such as a CPU (Central Processing Unit), MPU (Micro-Processing Unit), GPU (Graphics Processing Unit), FPGA (Field Programmable Gate Array), DSP (Digital Signal Processor), or quantum processor. The control unit 11 performs various information processing and control processing related to the storage server 1 by reading and executing a control program stored in the storage unit 12. In Figure 2, the control unit 11 is described as a single processor, but it may be a multi-processor.
[0018] The storage unit 12 includes memory elements such as RAM (Random Access Memory) or ROM (Read Only Memory) and stores control programs or data necessary for the control unit 11 to execute processing. The storage unit 12 also temporarily stores data necessary for the control unit 11 to execute arithmetic processing. The communication unit 13 is a communication module for performing communication-related processing, and connection to the network N is made via the communication unit 13.
[0019] The large-capacity storage unit 14 includes a recording medium such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive). The storage unit 12 and the large-capacity storage unit 14 may be configured as an integrated storage device. The large-capacity storage unit 14 stores information necessary for the approval workflow, including the files to be approved.
[0020] Storage Server 1 may perform various information processing and control processing on a single computer, or it may be performed in a distributed manner across multiple computers. Storage Server 1 may be implemented using multiple virtual machines located within a single server, or it may be implemented using a cloud server.
[0021] Figure 3 is a block diagram showing an example configuration of node 21. Node 21 includes a control unit 211, a storage unit 212, a communication unit 213, a block generation unit 214, and a block verification unit 215. Each component is connected by a bus.
[0022] The control unit 211 includes an arithmetic processing unit such as a CPU, MPU, GPU, FPGA, DSP, or quantum processor, and performs various information processing and control processing related to node 21 by reading and executing a control program stored in the storage unit 212. The control unit 211 cooperates autonomously and in a distributed manner with the control units 211 of other nodes 21 to maintain the latest blockchain data in the storage unit 212.
[0023] The control program can be deployed on a single computer, at a single site, or distributed across multiple sites and interconnected by a communication network to run on multiple computers. In Figure 3, the control unit 211 is described as a single processor, but it may be a multiprocessor.
[0024] The memory unit 212 includes memory elements such as RAM or ROM, and stores control programs or data necessary for the control unit 211 to execute processing. The memory unit 212 also stores information necessary for verifying the information within a block, as well as blockchain data.
[0025] The communication unit 213 is a communication module for performing communication-related processing and exchanges information about blocks among the nodes 21 belonging to the blockchain system 2. The communication unit 213 transmits information received from the processing server 3, etc., blocks generated by the block generation unit 214 (described later), and blocks received from other nodes 21 to other nodes 21 as appropriate, thereby sharing the latest blockchain with as many nodes 21 as possible.
[0026] The block generation unit 214 generates a block, which is data to be connected to the blockchain, containing information based on the previous block and information such as transactions received by the communication unit 213 (described later). The block verification unit 215 performs predetermined processing and verifies the contents of the block when connecting it.
[0027] The configuration shown in Figure 3 is merely an example; any node 21 capable of performing the predetermined consensus process, adding data to the blockchain, and referencing information recorded on the blockchain is acceptable, regardless of its specific configuration.
[0028] Figure 4 is a block diagram showing the internal configuration of the processing server 3. The processing server 3, which primarily processes information exchanged between each device and terminal, includes a control unit 31, a storage unit 32, and a communication unit 33. The control unit 31 includes an arithmetic processing unit such as a CPU, MPU, GPU, FPGA, DSP, or quantum processor. The control unit 31 performs various information processing and control processing related to the processing server 3 by reading and executing a control program P stored in the storage unit 32. The communication unit 33 is a communication module for performing communication-related processing.
[0029] The storage unit 32 includes memory elements such as RAM or ROM, and stores a user database (DB) 321 that aggregates user names and contact information, and a control program P necessary for the control unit 31 to execute processing. The storage unit 32 temporarily stores data necessary for the control unit 31 to execute arithmetic processing. The storage unit 32 may also act as a storage server 1. The communication unit 33 is a communication module for performing communication-related processing, and connection to the network N is made via the communication unit 33.
[0030] The control program P of the processing server 3 can be deployed on a single computer, at one site, or distributed across multiple sites and interconnected by a communication network to run on multiple computers. The control program P may be a control program 51P stored in a computer-readable storage medium 5, which the control unit 31 reads and stores in the storage unit 32. In Figure 4, the control unit 31 is described as a single processor, but it may be a multiprocessor. The processing server 3 may function as node 21 of the blockchain system 2.
[0031] Figure 5 is a block diagram showing the internal configuration of the user terminal 4. The user terminal 4 is the terminal primarily operated by the user and includes a control unit 41, a communication unit 42, a storage unit 43, a display unit 44, and an operation unit 45. The control unit 41 includes an arithmetic processing unit such as a CPU, MPU, GPU, FPGA, DSP, or quantum processor. The control unit 41 performs various information processing and control processing related to the user terminal 4 by reading and executing a control program stored in the storage unit 43.
[0032] The communication unit 42 is a communication module for performing communication-related processing, and connection to the network N is made via the communication unit 42. The storage unit 43 includes memory elements such as RAM or ROM and stores control programs or data necessary for the control unit 41 to execute processing. The storage unit 43 temporarily stores data necessary for the control unit 41 to execute arithmetic processing.
[0033] The display unit 44 is an information display device such as a monitor, which displays various information transmitted from the control unit 41 in a way that the user can visually understand. The operation unit 45 is the operation unit of the user terminal 4, and is, for example, a keyboard, mouse, or touch panel.
[0034] Next, we will explain the approval workflow process using the information processing system 100. In the following, we will explain the process by which user AAA, the source of the approval request, obtains approval from user BBB, the first recipient of the approval request, and user CCC, the second recipient of the approval request and the final recipient of the approval request, for the approval of the file to be approved, which is a proposal for the purchase of item M. User AAA's user terminal 4 and the configuration of user terminal 4 will be appended with "A", user BBB's user terminal 4 and the configuration of user terminal 4 will be appended with "B", and user CCC's user terminal 4 and the configuration of user terminal 4 will be appended with "C".
[0035] The number of users to whom approval is requested is not limited to two users, BBB and CCC, but can be any number. Storage server 1, node 21, and processing server 3 receive commands made via the operation unit 45 of user terminal 4 and execute each process. The files to be approved may be, for example, Word files, Excel files, PDF (Portable Document Format) files, video files, or audio files.
[0036] Before the approval workflow begins, users who will be using the approval workflow must register as users. Figure 6 shows an example of a user registration screen. Upon request from a user who wishes to register, the control unit 31 sends the user registration screen to the user terminal 4. The user registration screen includes input fields for username and contact information. The username can be anything that identifies the user, such as the user's name, nickname, or other name. The contact information can be anything to which various notifications will be sent, such as an email address or SNS account.
[0037] The control unit 41 of the user terminal 4 receives the username and contact information via the operation unit 45 and transmits the entered username and contact information to the processing server 3. The control unit 31 of the processing server 3 receives the username and contact information and saves it to the user database 321, thereby completing user registration.
[0038] Figure 7 is an explanatory diagram showing an example of the record layout of User DB321. User DB321 includes a Username column and a Contact column. The Username column stores the user's name as the username. The Contact column stores the user's email address as the contact information.
[0039] Figures 8 to 12 are flowcharts showing the processing on the processing server 3 and user terminal 4. To start the approval workflow, user terminal 4A receives input from user AAA, including the title, source of the approval request, sender, recipient, and the file to be approved (step S401).
[0040] Figure 13 shows an example of an information input screen. The information input screen is for receiving input from user AAA for the title, source of approval request, sender, recipient, and the file to be approved. The information input screen is sent from processing server 3 to user terminal 4A in response to user AAA's request. The information input screen includes input fields for title, source of approval request, sender, and recipient, a file selection command, and a display field for the selected file.
[0041] The title is a title that can be set arbitrarily, and it is desirable, but not limited to, a concise string that allows each user to understand the gist of the contents of the file to be approved. The approval requester is, for example, the username of the person making the approval request. The sender is the information of the user who is entering information on the information input screen, for example, the username of the person making the approval request. The recipient is the information of the person making the approval, for example, the username of the first person to whom the approval request was made. The file selection command is a command button for selecting the file to be approved stored on user terminal 4 or the online file server, and the selected file display field is a field that displays the file name of the file selected by the file selection command.
[0042] In this example, the information input screen has "Approval Request for Purchase M" as the title, the username of the approval requester "AAA" in the approval requester information field, the username of the approval requester "AAA" in the sender field, the username of the first approval request recipient "BBB" in the recipient field, and "File.doc" as the file.
[0043] The control unit 41A transmits the received title, approval requester, sender, recipient, and the file to be approved to the processing server 3 (step S402). The control unit 31 of the processing server 3 receives the title, approval requester, sender, recipient, and the file to be approved (step S301). The control unit 31 calculates a hash value based on the received file to be approved (step S302). The hash value is calculated using a hash function such as SHA256 or SHA512.
[0044] The control unit 31 sends the title, sender, recipient, file to be approved, and hash value to the storage server 1 for storage (step S303). The control unit 11 of the storage server 1 assigns an identification number to the received title, sender, recipient, file to be approved, and hash value. The control unit 11 stores the identification number, title, sender, recipient, file to be approved, and hash value, along with the date of storage, in the large-capacity storage unit 14.
[0045] Figure 14 is an explanatory diagram showing an example of the record layout of the large-capacity storage unit 14. The large-capacity storage unit 14 stores records including an ID column, a date column, a title column, a sender column, a recipient column, a file column, and a hash value column.
[0046] The ID column stores the identification number. The Date column stores the date on which the control unit 11 stored the identification number, title, sender, recipient, file to be approved, and hash value in the large-capacity storage unit 14. The Title column stores the title. The Sender column stores the sender. The Recipient column stores the recipient. The File column stores the file to be approved. The Hash Value column stores the hash value of the file to be approved.
[0047] The control unit 31 obtains the identification number, sender, receiver, and hash value of the file to be approved from the large-capacity storage unit 14. The control unit 31 records the first approval data, including the first approval request recipient, in the blockchain system 2 by transmitting the first approval data, including the identification number, sender, receiver, and hash value of the file to be approved, to each node 21 that constitutes the blockchain system 2 (step S304). The sender of the first approval data is "AAA", the receiver of the first approval data is "BBB", the hash value of the file to be approved is the hash value of File.doc, and the identification number is "240111001". The control unit 31 stores the first approval data in the storage unit 32.
[0048] Node 21, having received the first approval data, performs a consensus process to generate a block containing the first approval data, which will be connected to the blockchain.
[0049] Figure 15 is an explanatory diagram showing the connection of the newly generated block. Below, we will explain the consensus process when a new block, n+1, containing the first confirmation data, is added to a blockchain that has been connected up to block n.
[0050] The control unit 211 of each node 21 that receives the first approval data performs a Proof of Work (PoW) as a consensus process. The control unit 211 first searches for a nonce value, which is a value that adjusts the hash value. In this embodiment, the nonce value is a value that, when inserted into the calculation of a hash value using a specific hash function based on the sender, receiver, hash value of the first approval data, the hash value of the file to be approved, the identification number, and the hash value of the previous block n, satisfies certain conditions in the calculated hash value.
[0051] In this embodiment, the certain conditions that the nonce value must satisfy are set by the number of zeros in the hash value header. For example, the condition may be deemed satisfied when the top 10 digits of the hash value are zero (e.g., 00000000003b8...). When the certain conditions imposed on the hash value in PoW are defined by the number of zeros in the hash value header, changing the setting of the number of zeros in the header changes the difficulty of searching for the nonce value, and thus adjusts the processing load of the search process. Note that the above conditions are examples and are not limited to them.
[0052] The block generation unit 214 of node 21, which was the first to successfully find the correct nonce value, generates the latest block n+1, which includes a transaction containing the sender, receiver, hash value of the file to be approved, and identification number of the first approval data, the hash value of the previous block n, the searched nonce value, and the creation time of block n+1. The control unit 211 of node 21 that generated block n+1 shares the generated block n+1 with each other node 21 via the communication unit 213. Each node 21 that has received the block verifies in the block verification unit 215 whether block n+1 is a valid block containing the correct nonce value.
[0053] If block n+1 is valid, the control unit 211 of each node 21 connects block n+1 to block n of the blockchain stored in the memory unit 212. If block n+1 is not valid, each node 21 is notified of this, and each control unit 211 performs the nonce value search process again.
[0054] When block n+1 is connected to the blockchain, the control unit 211 sends a block connection notification to the processing server 3. The control unit 31 of the processing server 3 receives this notification. The block connection notification includes an identification number included in the connected block.
[0055] The control unit 31 refers to the recipient of the first approval data (user BBB) in the storage unit 32 based on the identification number included in the block connection notification. The control unit 31 refers to the user DB 321 and obtains the contact information for user BBB. The control unit 31 sends an approval request notification containing a guidance link with the identification number and the file to be approved via email to the obtained contact (step S305).
[0056] User terminal 4B receives a notification of approval request including a guidance link and the file to be approved (step S501). Control unit 41B displays the file to be approved included in the approval request notification on display unit 44B via operation of operation unit 45B by user BBB (step S502). Control unit 41B accepts the selection of the identification number of the guidance link and transmits the identification number to processing server 3 (step S503).
[0057] The control unit 31 receives an identification number (step S306). Based on the received identification number, the control unit 31 retrieves the file to be approved from the large-capacity storage unit 14 of the storage server 1 (step S307). The control unit 31 calculates the hash value of the retrieved file to be approved (step S308). Based on the received identification number, the control unit 31 retrieves the hash value of the file to be approved from the blockchain system 2 (step S309). The control unit 31 compares the calculated hash value with the retrieved hash value and determines whether the hash values match (step S310).
[0058] If the control unit 31 determines that the hash values match (step S310: YES), the control unit 31 sends an approval or rejection input screen (first input screen) containing information that the file to be approved has not been tampered with and its title to the user terminal 4B (step S311). The control unit 41B of the user terminal 4B receives the approval or rejection input screen containing information that the file to be approved has not been tampered with and its title (step S504). The control unit 41B displays the approval or rejection input screen on the display unit 44B.
[0059] Figure 16 shows an example of an approval or rejection input screen. The approval or rejection input screen includes a title, identification number, file tampering status, and approval or rejection command buttons. In this example, as shown in Figure 16, the title is "Approval Request M Purchase", the identification number is "240111001", and the file tampering status displays "No Tampering", indicating that the file has not been tampered with.
[0060] User BBB views the file to be approved, which is guaranteed to be tamper-free, as displayed on the display unit 44B in step S502. User BBB selects either the approve or reject command button on the approve or reject input screen. The control unit 41B accepts the selection of the approve or reject command button. The control unit 41B determines whether or not the selection of the approve command button has been accepted (step S505).
[0061] If the control unit 41B determines that it has received the selection of the approval command button (step S505: YES), the control unit 41B sends approval information indicating approval for the file to be approved to the processing server 3 (step S506). The control unit 31 of the processing server 3 receives the approval information (step S312). The control unit 31 sends the recipient input screen (second input screen), the confirmed title, the source of the approval request, the sender, and the identification number to the user terminal 4B (step S313).
[0062] The control unit 41B of the user terminal 4B receives the recipient input screen, title, approval requester, sender, and identification number (step S507). The control unit 41B displays the recipient input screen, title, approval requester, sender, and identification number on the display unit 44B. Figure 17 shows an example of the recipient input screen. The recipient input screen includes fields for title, approval requester, sender, recipient, and identification number. The gray fields on the recipient input screen in Figure 17 indicate items that have already been entered when the recipient input screen is displayed on the display unit 44B. In this example, the recipient input screen is displayed on the display unit 44B with the title "Approval Request M Purchase", the approval requester's username "AAA" in the approval requester information, the approval requester's username "BBB" in the sender field, and "240111001" in the identification number field.
[0063] User BBB enters the username "CCC" of the second approval request recipient (final approval request recipient) in the recipient field on the recipient input screen. The control unit 41B accepts the input of username "CCC" as the recipient (step S508). The control unit 41B sends the entered recipient and identification information to the processing server 3 (step S509). The control unit 31 of the processing server 3 receives the recipient and identification number (step S314).
[0064] The control unit 31 determines whether or not it received final approval information indicating approval by the final approver in step S314 (step S315). If it determines that it did not receive final approval information (step S315: NO), the control unit 31 repeats the process in step S304. In this example, the recipient is the username "CCC" and it is not final approval information, so the control unit 31 determines that it did not receive final approver information and performs the process in step S304.
[0065] As part of the processing in step S304, the control unit 31 transmits the second approval data, including the identification number, sender, and receiver, and the hash value obtained in step S309, to each node 21 constituting the blockchain system 2, thereby recording the second approval data, including the second approval request recipient, in the blockchain system 2. The processing server 3 and user terminal 4 perform similar processing from steps S305 to S507.
[0066] As part of the process in step S508, the control unit 41C accepts the input of final approval information as the recipient. Figure 18 shows an example of the recipient input screen. In this example, with the title "Approval Request M Purchase", the username of the approval requester "AAA" in the approval requester information field, the username of the approval requester "CCC" in the sender field, and "240111001" in the identification number field, the recipient input screen is displayed on the display unit 44C. Since user CCC is the final approval requester, the final approval information is entered in the recipient field of the recipient input screen. The final approval information entered in the recipient field can be, for example, the string "END" as shown in Figure 18, but it may be other strings or specific symbols.
[0067] As part of step S509, the control unit 41C transmits the input final approval information, along with the identification number, to the processing server 3 on behalf of the receiver. As part of step S314, the control unit 31 of the processing server 3 receives the final approval information and the identification number. As part of step S315, the control unit 31 determines whether or not it received the final approval information in step S314. If it determines that it has received the final approval information (step S315: YES), the control unit 31 transmits the final approval data, which includes the identification number, sender, final approval information, and the hash value obtained in step S309, to each node 21 constituting the blockchain system 2, thereby recording the final approval data, which includes the final approval information, in the blockchain system 2 (step S316).
[0068] In this example, since the control unit 31 received the final approval information in step S314, the control unit 31 determines that it has received the final approval information. The control unit 31 records the final approval data, including the final approval information, in the blockchain system 2 by sending the final approval data, which has "CCC" as the sender, the hash value of the file to be approved as the hash value of File.doc, the identification number as "240111001", and includes "END" as the final approval information, to each node 21 that makes up the blockchain system 2.
[0069] The control unit 31 reads all recipients who have approved the approval target file from the blockchain system 2 based on the identification number (step S317). The control unit 31 transmits the identification number, the usernames of the retrieved recipients, and the final approval information to the user terminal 4A (step S318). In this example, the usernames of users BBB and CCC are read and transmitted to the user terminal 4A along with the identification number and the final approval information.
[0070] User terminal 4A receives the identification number, the usernames of the retrieved recipients, and the final approval information (step S403). User terminal 4A displays the received identification number, the usernames of the retrieved recipients, and the final approval information on display unit 44A (step S404). As a result of the above processing, the approval workflow is completed because the file to be approved has been approved by all approval requestors.
[0071] In step S310, if the control unit 31 determines that the hash values do not match (step S310: NO), the control unit 31 sends tampering information to the approval request recipient (step S319). In this example, as part of the process in step S319, the control unit 31 sends an approval or rejection input screen to the approval request recipient's user terminal 4, displaying "Tampered" in the file tampering status. Alternatively, as part of the process in step S319, the control unit 31 may send an email to the approval request recipient's user terminal 4 containing an identification number and the message "It has been tampered with." The approval request recipient's user terminal 4 receives the tampering information (step S510).
[0072] The following describes the case where tampering information is sent to user terminal 4B. The control unit 31 sends an approval or rejection input screen to user terminal 4B with the title "Approval Request M Purchase", the identification number "240111001", and the file tampering status "Tampered". The control unit 41B receives the approval or rejection input screen. The control unit 41B displays the received approval or rejection input screen on the display unit 44B. User BBB recognizes that the file to be approved has been tampered with by viewing the approval or rejection input screen displayed on the display unit 44B. Because the file to be approved has been tampered with, user BBB does not select an approval or rejection command button.
[0073] The control unit 31 sends a notification of tampering to the approval requester (step S320). In this example, as part of the process in step S320, the control unit 31 sends an email to the user terminal 4A containing an identification number and the message "It has been tampered with." The control unit 41A receives the notification of tampering (step S405). Since the file to be approved has been tampered with, the approval workflow is terminated.
[0074] If, in step S505, the control unit 41B determines that it did not accept the selection of the approval command button (step S505: NO), the control unit 41B assumes that the rejection command button was selected and sends rejection information indicating approval rejection to the processing server 3 (step S511).
[0075] The control unit 31 receives rejection information (step S321). The control unit 31 records the second approval data, including the rejection information, in the blockchain system 2 by sending the second approval data, which includes the identification number, sender, rejection information, and the hash value obtained in step S309, to each node 21 that constitutes the blockchain system 2 (step S322). In step S322, the identification number of the second approval data can be "240111001", the sender can be "BBB", and the rejection information can be the string "BACK", for example, but it can be any other string or a specific symbol. In step S505, if the control unit 41C determines that it did not accept the selection of the approval command button, the control unit 41C and the control unit 31 perform the same processing.
[0076] The control unit 31 sends a notification of approval rejection to the user terminal 4A that requested the approval (step S323). In this example, as part of the process in step S323, the control unit 31 sends an email to the user terminal 4A containing an identification number and the message "Rejected." The control unit 41A receives the approval rejection notification (step S406). Since the file to be approved has been rejected, the approval workflow ends.
[0077] Based on the above, it is possible to realize a program or the like that enables the smooth approval of files subject to approval.
[0078] While PoW was used as an example of consensus processing, other methods such as POI (Proof of Importance), POS (Proof of Stake), PoET (Proof of Elapsed Time), CFT (Crush fault tolerance), or BFT (Byzantine fault tolerance) may also be used.
[0079] Each command button on the approval or rejection input screen may only be displayed if accessed from the user terminal 4 of the relevant approval requesting party. If tampering occurs, at least one of the command buttons may not be displayed.
[0080] The information processing system 100 may have a configuration in which the processing server 3 takes on the role of the storage server 1, and the storage server 1 is not included. In the configuration that does not include the storage server 1, the storage unit 32 may take on the role of the large-capacity storage unit 14.
[0081] The control unit 31 may set a secret key for each user during user registration. A field for entering the secret key may be provided on the information input screen. The control unit 31 may accept the title, approval requester, sender, recipient, and the file to be approved from the control unit 41 only if the sender's username and secret key match.
[0082] If the control unit 31 receives rejection information from the control unit 41B in step S321, the control unit 31 may send a recipient input screen to the user terminal 4B. The control unit 41B of the user terminal 4B may receive the recipient input screen and display it on the display unit 44B. User BBB may enter the string "BACK" as rejection information in the recipient field of the recipient input screen. The control unit 41B may accept the input of rejection information as a recipient. The control unit 41B may send the entered rejection information to the processing server 3. The control unit 31 of the processing server 3 may receive the recipient. In step S316, the control unit 31 may record the second approval data including the rejection information in the blockchain system 2 by sending the second approval data, which includes the identification number, sender, rejection information, and the hash value obtained in step S309, to each node 21 constituting the blockchain system 2.
[0083] (Second Embodiment) The second embodiment describes a form in which the recipient of the approval request does not need to be specified. In the following, the same configurations, processes, or procedures as in the first embodiment will not be described.
[0084] The approval workflow processing using the information processing system 100 in the second embodiment will be explained with some modifications to Figures 8 to 12. In the following, the process by which user AAA, the source of the approval request, obtains approval of the approval target file, which is a proposal for the purchase of item M, from user BBB, the first recipient of the approval request, and user CCC, the second recipient of the approval request and the final recipient of the approval request.
[0085] To initiate the approval workflow, user terminal 4A receives input from user AAA, including the title, source of the approval request, sender, recipient, and the file to be approved (step S401).
[0086] Figure 19 shows an example of an information input screen. The information input screen in the second embodiment includes input fields for title, approval requester, sender, and multiple recipients, a file selection command, a display field for the selected file, and a display field for the rank. The rank indicates the order in which each recipient approves the files to be approved. Approval of the files to be approved is performed starting with the highest-ranking approval requester.
[0087] In this example, the information input screen has "Approval Request for Purchase M" as the title, the username of the approval requester "AAA" in the approval requester information field, the username of the approval requester "AAA" in the sender field, the username of the first recipient "BBB" in the highest-ranking recipient field, the username of the second recipient "CCC" in the second-ranking recipient field, and "File.doc" as the file. Therefore, in this example, the higher-ranking user BBB will approve the file first, and the lower-ranking user CCC will approve it later.
[0088] After the processing server 3 and user terminal 4A perform the same processing as in the first embodiment from step S402 to step S302, the control unit 31 performs the processing in step S303. In step S303, the control unit 31 sends the title, sender, ranking of all recipients, all recipients, the file to be approved, and the hash value to the storage server 1 and stores them in the large-capacity storage unit 14.
[0089] Figure 20 is an explanatory diagram showing an example of the record layout of the large-capacity storage unit. The large-capacity storage unit 14 stores records including an ID column, a date column, a title column, a sender column, a rank column, a recipient column, a file column, and a hash value column. The ID column, date column, title column, sender column, recipient column, file column, and hash value column are the same as in the first embodiment. The rank column stores the rank of the recipient. The file column and hash value column may be stored only in records with a rank of "1", as shown in Figure 20.
[0090] After step S303, the control unit 31 records the first approval data, including the first approval request recipient with the highest rank, in the blockchain system 2 (step S304). The control unit 31 records the second approval data in the blockchain system 2 by sending the first approval data, including the identification number, sender, and receiver, and the hash value obtained in step S309, to each node 21 that constitutes the blockchain system 2. In this example, the sender of the first approval data is "AAA", the receiver is "BBB", the hash value of the file to be approved is the hash value of File.doc, and the identification number is "240111001".
[0091] After step S304, the processing server 3 and user terminal 4 perform the processing from steps S305 to S312. Figure 21 is a flowchart of the processing server 3. After step S312, the control unit 31 refers to the large-capacity storage unit 14 (step S324). The control unit 31 refers to a record that has the same identification number and recipient as the identification number and recipient included in the first approval data. The control unit 31 determines whether there is a record that has the same identification number as the referred record and is ranked 1 higher (step S325). If it is determined that such a record exists (step S325: YES), the control unit 31 obtains the username of the recipient of that record (step S326).
[0092] In this example, the identification number and recipient included in the first approval data are "240111001" and "BBB," respectively. Therefore, the control unit 31 refers to the record where the identification number is "240111001" and the recipient is "BBB." Since the rank of the referred record is "1," the control unit 31 determines whether there is a record where the identification number is "240111001" and the rank is "2." Since a record with the identification number "240111001" and the rank is "2" exists in the large-capacity storage unit 14, the control unit 31 retrieves the username "CCC" of the recipient of that record.
[0093] After step S326, the control unit 31 records the second approval data, which includes the second-ranked second approval request recipient, in the blockchain system 2 (step S304). The control unit 31 records the second approval data in the blockchain system 2 by transmitting the second approval data, which includes the identification number, sender, and receiver, and the hash value obtained in step S309, to each node 21 that constitutes the blockchain system 2.
[0094] In the second embodiment, the sender of the second approval data is the username of the user who selected the approval command button, and the receiver is the username of the receiver obtained from the large-capacity storage unit 14. Therefore, in this example, the sender of the second approval data is "BBB", the receiver is "CCC", the hash value of the file to be approved is the hash value of File.doc, and the identification number is "240111001".
[0095] The processing server 3 and the user terminal 4 perform the same processing from steps S305 to S325. In step S325, if there is no record in the large-capacity storage unit 14 with the same identification number as the referenced record and a rank one greater (step S325: NO), the control unit 31 performs the processing in step S316. In this example, the record with the same identification number as the referenced record and a rank one greater is the record with the identification number "240111001" and a rank of "3". Since this record does not exist in the large-capacity storage unit 14, the control unit 31 performs step S316.
[0096] The control unit 31 records the final approval data, including the identification number, sender, final approval information, and the hash value obtained in step S309, in the blockchain system 2 by sending this data to each node 21 that constitutes the blockchain system 2 (step S316). In this example, the sender of the final approval data is "CCC", the recipient is "END", the hash value of the file to be approved is the hash value of File.doc, and the identification number is "240111001". The processing server 3 and user terminal 4A perform the processing from steps S317 to S404 and terminate the approval workflow.
[0097] Based on the above, it is possible to realize a program that enables smoother approval of files to be approved by eliminating the process of the approval requesting party designating the recipient.
[0098] 1: Storage server, 2: Blockchain system, 3: Processing server, 4: User terminal, 21: Node, 51P: Control program, 100: Information processing system
Claims
1. The user who requested the approval of the file to be approved has provided the file to be approved and the first recipient of the approval request. The first approval data, including the aforementioned first approval request recipient, is recorded in the blockchain system. Send a notification of the approval request to the aforementioned first approval request recipient. The user who submitted the first approval request receives either a second approval request in connection with the approval, or rejection information indicating the rejection of the approval. The second approval data, including the second approval request recipient or the rejection information, is recorded in the blockchain system. A program that instructs a computer to perform a process.
2. The approval target file received from the user who requested the approval is recorded in storage. The first approval data, including the first approval request recipient and the hash value of the file to be approved, is recorded in the blockchain system. The system determines whether the hash value of the file to be approved recorded in the storage system matches the hash value of the file to be approved recorded in the blockchain system. If a match is determined, the system receives either a second approval request from the first approval request recipient or rejection information indicating the rejection of the approval from the first approval request recipient user. The program according to claim 1, which causes a computer to perform a process.
3. If a mismatch is detected, the altered information will be sent to the user to whom the approval request was made. The program according to claim 2, which causes a computer to perform a process.
4. If the second approval data, including the aforementioned rejection information, is recorded in the blockchain system, a notification of the rejection will be sent to the approval requestor. The program according to claim 1, which causes a computer to perform a process.
5. The user to whom the final approval request was made will provide final approval information indicating final approval. The final approval data, including the aforementioned final approval information, is recorded in the blockchain system. Send a notification of final approval to the aforementioned approval requestor. The program according to claim 1, which causes a computer to perform a process.
6. The input screen for entering the recipient of the first approval request is sent to the approval requestor. The system accepts the first approval request recipient entered on the input screen. The program according to claim 1, which causes a computer to perform a process.
7. A first input screen for entering approval information or rejection information for the aforementioned file subject to approval is sent to the first approval request recipient. If the aforementioned approval information is entered, a second input screen for entering the second approval request recipient is sent to the first approval request recipient. The second approval request recipient entered on the second input screen is accepted. The program according to claim 1, which causes a computer to perform a process.
8. The user who made the approval request receives the file to be approved and multiple approval request recipients ranked in order. The first approval data, including the first approval request recipient with the highest ranking, is recorded in the blockchain system. The user to whom the first approval request was received either approval information indicating approval or rejection information, Upon receiving the aforementioned approval information, the second approval data, including the second approval request recipient with the second highest ranking, is recorded in the blockchain system. The program according to claim 1, which causes a computer to perform a process.
9. The user who requested the approval of the file to be approved has provided the file to be approved and the first recipient of the approval request. The first approval data, including the aforementioned first approval request recipient, is recorded in the blockchain system. Send a notification of the approval request to the aforementioned first approval request recipient. The user who submitted the first approval request receives either a second approval request in connection with the approval, or rejection information indicating the rejection of the approval. The second approval data, including the second approval request recipient or the rejection information, is recorded in the blockchain system. Information processing methods.
10. The approval target file received from the user who requested the approval is recorded in storage. The first approval data, including the first approval request recipient and the hash value of the file to be approved, is recorded in the blockchain system. The system determines whether the hash value of the file to be approved recorded in the storage system matches the hash value of the file to be approved recorded in the blockchain system. If a match is determined, the system receives either a second approval request from the first approval request recipient or rejection information indicating the rejection of the approval from the first approval request recipient user. The information processing method according to claim 9.
11. If a mismatch is detected, the altered information will be sent to the user to whom the approval request was made. The information processing method according to claim 10.
12. If the second approval data, including the aforementioned rejection information, is recorded in the blockchain system, a notification of the rejection will be sent to the approval requestor. The information processing method according to claim 9.
13. The user to whom the final approval request was made will provide final approval information indicating final approval. The final approval data, including the aforementioned final approval information, is recorded in the blockchain system. Send a notification of final approval to the aforementioned approval requestor. The information processing method according to claim 9.
14. The input screen for entering the recipient of the first approval request is sent to the approval requestor. The system accepts the first approval request recipient entered on the input screen. The information processing method according to claim 9.
15. A first input screen for entering approval information or rejection information for the aforementioned file subject to approval is sent to the first approval request recipient. If the aforementioned approval information is entered, a second input screen for entering the second approval request recipient is sent to the first approval request recipient. The second approval request recipient entered on the second input screen is accepted. The information processing method according to claim 9.
16. The user who made the approval request receives the file to be approved and multiple approval request recipients ranked in order. The first approval data, including the first approval request recipient with the highest ranking, is recorded in the blockchain system. The user to whom the first approval request was received either approval information indicating approval or rejection information, Upon receiving the aforementioned approval information, the second approval data, including the second approval request recipient with the second highest ranking, is recorded in the blockchain system. The information processing method according to claim 9.
17. The user who requested the approval of the file to be approved has provided the file to be approved and the first recipient of the approval request. The first approval data, including the aforementioned first approval request recipient, is recorded in the blockchain system. Send a notification of the approval request to the aforementioned first approval request recipient. The user who submitted the first approval request receives either a second approval request in connection with the approval, or rejection information indicating the rejection of the approval. The second approval data, including the second approval request recipient or the rejection information, is recorded in the blockchain system. An information processing device equipped with a processing unit that performs processing.
18. The approval target file received from the user who requested the approval is recorded in storage. The first approval data, including the first approval request recipient and the hash value of the file to be approved, is recorded in the blockchain system. The system determines whether the hash value of the file to be approved recorded in the storage system matches the hash value of the file to be approved recorded in the blockchain system. If a match is determined, the system receives either a second approval request from the first approval request recipient or rejection information indicating the rejection of the approval from the first approval request recipient user. The information processing apparatus according to claim 17, comprising a processing unit that performs processing.
19. The system comprises a processing server that performs processing related to the approval of files to be approved, and a storage server that records the files to be approved. The aforementioned processing server, The user who requested the approval of the aforementioned file for approval receives the aforementioned file for approval and the first recipient of the approval request. The received approval target file is recorded on the storage server. The first approval data, including the aforementioned first approval request recipient, is recorded in the blockchain system. Send a notification of the approval request to the aforementioned first approval request recipient. The user who submitted the first approval request receives either a second approval request in connection with the approval, or rejection information indicating the rejection of the approval. The second approval data, including the second approval request recipient or the rejection information, is recorded in the blockchain system. An information processing system having a processing unit that performs processing.
20. The aforementioned processing server, The first approval data, including the first approval request recipient and the hash value of the file to be approved, is recorded in the blockchain system. The system determines whether the hash value of the file to be approved recorded on the storage server matches the hash value of the file to be approved recorded on the blockchain system. If a match is determined, the system receives either a second approval request from the first approval request recipient or rejection information indicating the rejection of the approval from the first approval request recipient user. The information processing system according to claim 19, having a processing unit that performs processing.