Method and device for verifying at least one item of data obtained from a data provision service

EP4681108A1Pending Publication Date: 2026-01-21ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2024709401
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-03-15
Filing Date
2024-03-07
Publication Date
2026-01-21

AI Technical Summary

Technical Problem

There is no technical mechanism to ensure the trustworthiness or accuracy of data provided by oracles in blockchain systems, as they can inadvertently or maliciously return erroneous or incomplete data.

Method used

A method and device for verifying data obtained from a data supply service, which involves obtaining a command, the first and second results of its execution, and comparing them to ensure data validity, with the option to execute the command itself and validate results through a third smart contract, and using electronic signatures and timestamps to verify data integrity.

Benefits of technology

This solution effectively controls and validates the information provided by data supply services, ensuring the accuracy and completeness of data, thereby addressing the trustworthiness issue and providing a new role for managing oracle data verification within blockchain systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024056088_19092024_PF_FP_ABST
    Figure EP2024056088_19092024_PF_FP_ABST
Patent Text Reader

Abstract

The invention proposes a method for verifying at least one first item of data obtained from a data provision service, the method being implemented by a verification device and characterised in that it comprises the following steps: - obtaining a command sent to the service; - obtaining the at least one first item of data corresponding to a first result of the command being executed by the service; - obtaining at least one second item of data corresponding to a second result of the command being executed by the service; - verifying the at least one first item of data according to the second result.
Need to check novelty before this filing date? Find Prior Art

Description

Method and device for verifying at least one piece of data obtained from a data supply service

[0001] 1. Field of the invention

[0002] The invention relates to the general field of telecommunications networks, and more specifically to blockchain technology.

[0003] 2. Prior Art

[0004] A blockchain is a trusted execution system that guarantees, for example, the integrity and transparency of a process's execution. In concrete terms, the blockchain forms a distributed database whose users play an active role in updating it. It securely stores, in several connected / chained data blocks, the history of all transactions made by users. It is also accessible to each user without any intermediary. Thus, each user has the possibility of verifying the data that constitutes it and therefore its validity.

[0005] Blockchain smart contracts, for example, enable the management of process task execution and the allocation of these tasks in a decentralized and reliable manner. The goal of these smart contracts is to digitize physical processes by replacing paper contracts with computer code.

[0006] To function properly, some smart contracts may require data external to the blockchain. However, the blockchain cannot access data stored outside its network. To solve this problem, the smart contract can use the services of an "oracle," which can add data from the outside world to a blockchain. Oracles provide a wide range of data, such as temperatures, sports scores, schedules, and more. Depending on the information provided by the oracles, the smart contract will execute or not.

[0007] It is clear that there is no technical mechanism to ensure that the oracle is trustworthy or that it has not made an error in providing the information.

[0008] 3. Statement of the invention

[0009] The invention improves the state of the art and proposes for this purpose a method for verifying at least one first piece of data obtained from a data supply service, the method being implemented by a verification device and characterized in that it comprises the following steps: obtaining a command sent to said service; obtaining said at least one first piece of data corresponding to a first result of execution of said command by said service; obtaining at least one second piece of data corresponding to a second result of execution of said command; verifying said at least one first piece of data as a function of said second result.

[0010] Advantageously, the invention makes it possible to check the information / data provided by a data provision service. Concretely, the method obtains a command issued, for example by a user, to a data provision service and one or more data (first data) corresponding to the result (first result) of the execution of the command by the service. It also obtains a second result of execution of the command (the command being able to be executed by the method itself) then verifies the data or data obtained from the service for example via a comparison of the results of execution of the command. If they are identical then the data or data provided by the service are considered to be verified.

[0011] According to a particular embodiment of the invention, a method as described above is characterized in that said service provides a blockchain with data external to said blockchain and in that said command is obtained from a first smart contract registered in said blockchain and said at least one first data item is obtained from a second smart contract registered in said blockchain.

[0012] Advantageously, this embodiment makes it possible to control the information / data provided by a data provision service external to a blockchain such as an oracle. As a result, this embodiment proposes a new role associated with the management of a blockchain; that of oracle data verifier.

[0013] Indeed, an oracle can accidentally or knowingly (for example when it is malicious) return erroneous data or omit data in its response. Thus, the invention makes it possible to verify the result (i.e. the data) obtained following the execution of a command by an oracle and its completeness.

[0014] Concretely, the method obtains from a first smart contract registered in the blockchain an order issued by a user to a first oracle. The method also obtains the result of the execution of the order by the first oracle, for example from a second smart contract.

[0015] According to a particular embodiment, the first and second smart contracts are one and the same smart contract.

[0016] According to a particular embodiment, the command can be obtained from the first smart contract and from the user of the blockchain. This embodiment makes it possible to compare the requests obtained and to ensure that the request to be processed by the method, i.e. issued by the first user to the oracle, is indeed the correct one.

[0017] The method then obtains a second result of executing the command, for example from a second oracle. Then, the method verifies the first result, for example by comparing it to the second result. If they are identical, then the data provided by the service (i.e., the first oracle) is considered valid.

[0018] According to a particular embodiment, the method can itself execute the command, in which case the method can be considered as the second oracle.

[0019] According to a particular embodiment of the invention, a method as described above is characterized in that said verification step corresponds to a comparison of said at least one first data item with said second result and when the result of said comparison is negative a request for validity of all or part of said second result is sent to a third smart contract registered in said blockchain.

[0020] This embodiment makes it possible to validate all or part of the second execution result of the command with a smart contract (third smart contract within the meaning of the invention) registered in the blockchain. Since a smart contract cannot be altered over time, all of the tests carried out by the third smart contract on the second execution result can be considered as certified. Thus, the result of these tests makes it possible to certify the validity of all or part of the second execution result of the command.

[0021] The invention also proposes a method for validating, by a smart contract registered in a blockchain, at least one piece of data obtained from a service for supplying said blockchain with data external to said blockchain, the method being characterized in that it comprises the following steps: obtaining a request sent to said service, said request comprising a first time stamp and a command; obtaining a first result of execution of said command by said service; obtaining all or part of a second result of execution of said command comprising said at least one piece of data associated with an electronic signature and a second time stamp;

[0022] and when said at least one data item is not included in said first result, verification of the validity of said at least one data item via checking the validity of said signature, the priority of said second time stamp compared to said first time stamp and the validity of said at least one data item as a result of said command.

[0023] Advantageously, the invention makes it possible to ensure the validity of the information / data provided by a data provision service of a blockchain.

[0024] Concretely, the method obtains for example from a first user registered on a blockchain a request for information / data(s) (query within the meaning of the invention) sent to a first oracle (data provision service within the meaning of the invention). The request comprises at least one command to be executed by the oracle and a first timestamp indicating for example the date of issue or creation of the request / query. The method then obtains the result of the execution of the command by the oracle. The result is for example obtained from a smart contract registered on the blockchain.

[0025] The method then obtains all or part of a second result of execution of the command, for example via a second user of the blockchain such as a second oracle. The response includes one or more data with, for each data obtained, an electronic signature and a second associated timestamp.

[0026] For example, when the command is a SQL (Structure Query Language) type query, the data may correspond to one or more records in a database (one or more rows in the database). The second timestamp may then correspond to information on the chronology of the writing of the data within the database, such as the index of the database when it is only accessible in writing (no deletion of record / data / row within the database) or to a timestamp of the data itself. The electronic signature may correspond to the electronic signature of the entity that feeds the database.

[0027] When the data obtained is not included in the first query execution result, the method verifies the validity of the received data by performing several tests. The first test consists of verifying that the signature associated with a piece of data is valid. Obviously, this assumes that the method has cryptographic key(s) (private and / or public) allowing this verification. The second test aims to verify that the received data is prior to the creation or issue of the query. To do this, the method verifies that the query timestamp is later than the data timestamps. Finally, the method also verifies that the received data corresponds to a valid response to the query.In case the received data corresponds to one or more rows of a database, the method checks that the set of data corresponds to a possible result of executing the SQL command.

[0028] A command is a computer instruction allowing the execution of an order, an action or a series of orders and actions.

[0029] An electronic signature (or digital signature) is a sequence of characters used to authenticate the author of data (for example, the entity that added data to a database) and to guarantee its authenticity. An electronic signature can also guarantee the inalterability of the data once it has been signed by the entity that holds / shares it. As is well known, most existing digital signature procedures are based on asymmetric cryptography such as the RSA algorithm.

[0030] According to a particular embodiment of the invention, a method as described above is characterized in that the verification step is followed by a step of issuing a notification of validity of said at least one item of data.

[0031] This embodiment makes it possible to inform / notify a user of the blockchain (oracle or not) of the validity or invalidity of the data obtained.

[0032] According to a particular embodiment of the invention, a method as described above is characterized in that said verification step is preceded by a step of obtaining (E20) a parameter whose value corresponds to a financial amount and in that when the result of said verification is positive all or part of the value of said parameter is sent (E120, E121) to a user of said blockchain.

[0033] This embodiment makes it possible to remunerate a user (for example a second oracle) of the blockchain when the latter provides / finds valid data (i.e. data which corresponds to all or part of a possible result of execution of the command) not transmitted by the oracle. To do this, the method obtains, for example from the first oracle, a parameter whose value corresponds to a financial amount. The value of the parameter can correspond to an amount denominated in a currency of a country, to a defined number of tokens of a cryptocurrency or more generally to any market value (for example calculation tokens of a computer server). Concretely, the parameter can be assimilated to a deposit / escrow granted by the oracle in the event of an error by the latter.When an error is confirmed, all or part of the deposit is returned to the user (for example on one of their smart contracts) who detected the error, i.e. to the user who provided the process with valid data not transmitted by the oracle.

[0034] The invention also relates to a device for verifying at least one first piece of data obtained from a data supply service, characterized in that it comprises: a first module for obtaining a command sent to said service; a second module for obtaining said at least one first piece of data corresponding to a first result of execution of said command by said service; a third module for obtaining at least one second piece of data corresponding to a second result of execution of said command; a module for verifying said at least one first piece of data as a function of said second result.

[0035] The term module can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or subroutines or more generally to any element of a program capable of implementing a function or a set of functions as described for the modules concerned. In the same way, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions for the module concerned (integrated circuit, smart card, memory card, etc.).

[0036] The invention also relates to a computer program comprising instructions for implementing the verification and / or validation method described above according to any of the particular embodiments described above, when said program is executed by a processor. The method can be implemented in various ways, in particular in hard-wired form or in software form. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.

[0037] The invention also relates to a recording medium or information medium readable by a computer, and comprising instructions of a computer program as mentioned above. The recording media mentioned above can be any entity or device capable of storing the program. For example, the medium can comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a hard disk. Furthermore, the recording media can correspond to a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means. The programs according to the invention can in particular be downloaded from a network such as the Internet.

[0038] This verification device and the computer program implementing the verification method have characteristics and advantages similar to those described previously in relation to the verification method.

[0039] The computer program implementing the validation method has characteristics and advantages similar to those described previously in relation to the validation method.

[0040] 4. List of figures

[0041] Other characteristics and advantages of the invention will appear more clearly on reading the following description of particular embodiments, given as simple illustrative and non-limiting examples, and the appended drawings, among which:

[0042] Illustrates an example of an environment for implementing the invention according to a particular embodiment of the invention;

[0043] It represents the hardware architecture of a verification device according to a particular embodiment.

[0044] The diagram represents in the form of a flowchart the main stages of the verification and validation processes according to a particular embodiment of the invention,

[0045] 5. Description of an embodiment of the invention

[0046] Illustrates an example of an environment for implementing the invention according to a particular embodiment. The environment represented comprises a blockchain BC and a database BDD. The environment also comprises two terminals O and BH belonging to users of the blockchain capable of providing the blockchain with data external to the blockchain. Terminal O belongs, for example, to an oracle. Terminal BH integrates a verification device capable of implementing the verification method and may also belong to an oracle. The environment further comprises a terminal S belonging to a user of the blockchain BC.

[0047] The BC blockchain and / or a smart contract registered on the BC blockchain is capable of implementing the validation process.

[0048] The O, S and BH terminals are, for example, terminals of the smartphone type (smartphone in English), tablet, server, connected television, connected object, on-board computer of a car, personal computer or any other terminal capable of communicating (sending and / or receiving requests) according to state-of-the-art technologies via, for example, an IP network (100), the network being able to be private or public.

[0049] According to a particular embodiment of the invention, the BC blockchain can be hosted by one or more computer servers.

[0050] The illustrates a device DISP configured to implement the verification method according to a particular embodiment of the invention. The device DISP has the conventional architecture of a computer, and notably comprises a memory MEM, a processing unit UT, equipped for example with a processor PROC, and driven by the computer program PG stored in memory MEM. The computer program PG comprises instructions for implementing the steps of the verification method as described later in support of the, when the program is executed by the processor PROC.

[0051] At initialization, the code instructions of the computer program PG are for example loaded into a memory before being executed by the processor PROC. The processor PROC of the processing unit UT notably implements the steps of the verification method according to any one of the particular embodiments described in relation to the and according to the instructions of the computer program PG.

[0052] The DISP device comprises a first obtaining module OBT1 capable of obtaining a command issued to a data supply service such as, for example, an oracle of a blockchain. The command can be obtained from a user of the blockchain or from a smart contract registered in the blockchain.

[0053] The DISP device also comprises a second OBT2 obtaining module capable of obtaining at least one piece of data corresponding to a result of execution of the command by the data supply service.

[0054] The DISP device also comprises a third obtaining module OBT3 capable of obtaining a second result of execution of said command. The second result is for example obtained by the DISP device following the execution of the command by the verification method.

[0055] The DISP device further comprises a verification module VERIF of the data(s) obtained via the OBT2 module. The verification is carried out, for example, by comparing the data(s) with the second result obtained via the OBT3 module.

[0056] Illustrates steps of the verification and validation methods according to a particular embodiment of the invention in connection with the implementation environment described in support of the.

[0057] During step E30, the oracle O sends to a smart contract SC V a parameter whose value corresponds to a financial amount, for example a number of tokens of a cryptocurrency, a number of tokens offering credits for using the BC blockchain or an amount denominated in an official currency of a country (Euro, Dollars, etc.). Concretely, the oracle O transfers a sum of money to the smart contract SC V This money can be seen as a deposit granted by the oracle O, allowing for example to guarantee a certain quality of service / execution of action(s) on its part. When the oracle makes an error, the deposit can be used to compensate the client and / or remunerate the actor who detected the error. The parameter is received by the smart contract SC V during step E20.

[0058] At step E21 the smart contract SC Vobtains from a client's terminal S an order whose recipient is the oracle O (not shown). The smart contract SC V also obtains a first timestamp associated with the received order. This timestamp corresponds, for example, to the date on which the order was received by the SC smart contract V and / or a block number in the BC blockchain associated with the order. Alternatively, the timestamp may correspond to the date of creation of the order and / or issue by the terminal S.

[0059] Alternatively, the order is obtained from a customer's smart contract (SC C ). The order is for example obtained via or following the reception of an event broadcast within the blockchain indicating the emission, by the client's smart contract, of the order to the oracle O.

[0060] According to a particular embodiment of the invention, the smart contract SC V relays the command obtained from the client's terminal S or the smart contract SC C to the oracle and the BH terminal. Alternatively, the command is obtained by the BH terminal via or following the reception of an event broadcast within the blockchain indicating the issuance of the command to the oracle O.

[0061] The command is obtained by the oracle O and the terminal BH respectively in steps E31 and E41. During step E32, the oracle executes the command. The command is for example capable of obtaining a set of rows from a table stored in a digital storage space such as a file, a BDD database, etc. For example, the command may correspond to a query carried out in a computer language such as SQL, NoSQL, OQL, Prolog or to a list of filtering parameters making it possible to obtain, from the BDD database, one or more records (i.e. rows).

[0062] Consider the case of an SQL query for weather data. The database / DB table might be:IndexLatitudeLongitudeTemperaturePrecipitation(Millimeter)DateSignature140.77-73.9615°C5mmD1S1240.77-73.968°C8mmD2S2340.77-73.966°C7mmD3S3440.77-73.9611°C0mmD4S4540.77-73.969°C0mmD5S5

[0063] The BDD database stores chronologically the temperature and rainfall readings of a weather station identified by its GPS position (latitude, longitude). Each new record added to the BDD table (index +1) is associated with an electronic signature Sn of the service that entered the information in the table and with a time data Dn (second time stamp in the sense of the invention) indicating for example the date of the temperature and rainfall measurements. In our case the electronic signature can correspond to the signature of the national meteorological service of the country or locality that manages the weather station in question.

[0064] Alternatively, the signature may correspond to a digital fingerprint (e.g. a hash) of a unique piece of data belonging to the signatory and stored in one of their smart contracts within the blockchain.

[0065] The database obtains the SQL query in step E52 and sends the result to the oracle O in step E53.

[0066] In our example the SQL query can be:

[0067] Select * From BDD where Index ≥ 2

[0068] Once the result is received by the oracle O (E33), it retransmits it (E34) to the smart contract SC V . The result received by the SC smart contract V during step E24 can for example correspond to:IndexLatitudeLongitudeTemperaturePrecipitation(Millimeter)DateSignature240.77-73.968°C8mmD2S2340.77-73.966°C7mmD3S3440.77-73.9611°C0mmD4S4

[0069] In the example described above, the record of index 5 is not present, although it also corresponds to a possible result of the SQL query / command. The result provided by the oracle O is therefore partial (error by omission). This error can be accidental (data integrity problem following a technical / network problem) or caused by the oracle, for example, when it optimizes its processes to go faster, resulting in a lack of verification and lower processing quality.

[0070] The information being provided by a so-called trusted entity, i.e. the oracle O, the smart contract SC V may not perform a validity test.

[0071] According to a particular embodiment of the invention, the smart contract SC V can test the signature(s) of the data received from oracle O (result of the command received during step E24).

[0072] The SC smart contract V sends (E24_1) to the SC client's smart contract C the result of the command obtained from the oracle O, the result being received by the smart contract of the client SC C at step E14_1. Obviously this assumes that the smart contract SC V knows the email address of the SC smart contract C . The address of the SC smart contract C is for example obtained when the order is received from the SC client's smart contract C (E21). Alternatively, the email address of the SC smart contract C is sent from terminal S at the same time as the command (E21).

[0073] In case the signatures are tested and they are not valid the SC smart contract V sends (E24_1) instead of or in addition to the command result a parameter indicating that the data sent is not valid.

[0074] In step E45, the terminal BH sends a request to the smart contract SC C to get the result of the command provided by the oracle to the SC smart contract C.

[0075] According to a particular embodiment of the invention, the sending of the request can be issued following the reception (for example from the blockchain or from the terminal S) by the terminal BH of an event indicating that the smart contract SC C and / or SC V received the command result from oracle O.

[0076] Alternatively, the BH terminal sends a request to the SC smart contract V to get the command result provided by the oracle.

[0077] The request is received by the SC smart contract Cin step E15. The result received in step E14_1 is then transmitted to the terminal BH (E16) and then received by the terminal BH in step E46. At this stage, the terminal BH has the command received in step E41 and the result of the command provided by the oracle O in step E46. The terminal BH can then verify the result, for example, on behalf of the user of the terminal S. Thus, in step E47, the terminal BH sends the command to the database BDD. The command is received by the database in step E57. The result of the command is obtained by the database BDD in step E58 and then transmitted to the terminal BH in step E48. The terminal BH then compares (E49) the two results of the command obtained respectively in steps E46 and E48 in order to verify the result transmitted by the oracle O to the smart contract SC V. When the results are identical, the verification process considers that the result provided by the oracle O to the smart contract SC C / SC V is valid. Otherwise, the verification process tests the validity of all or part of the data obtained during step E48 from the blockchain and more particularly from the smart contract SC V which implements the validation process. Concretely, the terminal BH sends (E49) a request for validation of all or part of the data obtained during step E48 to the smart contract SC V. La demande est reçue puis traitée par le contrat intelligent SCVà l’étape E29. Concrètement le contrat intelligent SCVréalise (cumulativement ou alternativement) trois tests afin de déterminer si les données reçues du terminal BH sont valides.

[0078] The first test consists of verifying that the signature (Sn) associated with each received data (record) is valid. Obviously, this assumes that the process has cryptographic key(s) (private and / or public) allowing this verification. The second test aims to verify that the received data is indeed prior to the creation or the emission of the request. To do this, the process verifies that the timestamp of the command is indeed later than the timestamps of the data received from the BH terminal. Finally, the process also verifies that the received data corresponds to a valid response to the request. In our example, the process verifies that the received data corresponds to a possible result of executing the SQL command. Concretely, the process verifies that the index of the data received from the BH terminal is indeed ≥ 2.

[0079] Alternatively, the comparison of the results of the command obtained respectively during steps E46 and E48 and carried out by the terminal BH can be carried out by the smart contract SC V .

[0080] According to a particular embodiment of the invention, when data received from the terminal BH is not included in the result of the command obtained from the oracle (E24) and this data is determined as valid by the smart contract SC V , then all or part of the deposit is paid to the terminal BH (steps E121, E131) and / or to the client S (steps E120, E110) via, for example, a transfer of all or part of the amount of the deposit to a smart contract of the client (SC C ) or the holder of the BH terminal (SC BH ).

[0081] Of course, the valid data received from the BH terminal and not included in the command result obtained from the oracle (E24) can also be sent to the client's smart contract (SC C ) during step E120.

[0082] It goes without saying that the embodiment described above has been given for purely indicative purposes and is in no way limiting, and that numerous modifications can easily be made by those skilled in the art without departing from the scope of the invention. According to other particular embodiments of the invention, the invention also applies to data other than weather data, such as, for example, information on the recycling of elements constituting a manufactured product, making it possible, for example, to calculate the carbon footprint of the product in question or information on the traceability of elements of a product such as the parts of an automobile.

Claims

Method for verifying at least one first data item obtained from a data supply service (O), the method being implemented by a verification device (DISP) and characterized in that it comprises the following steps: - obtaining (E41) a command sent to said service; - obtaining (E46) said at least one first data item corresponding to a first result of execution of said command by said service, said at least one first data item having been sent by said service to a block chain (BC); - obtaining (E48) at least one second data item corresponding to a second result of execution of said command; - verifying (E49) said at least one first data item as a function of said second result. The method of claim 1 wherein said command is obtained from a first smart contract (SC V) registered in said blockchain and said at least one first data is obtained from a second smart contract (SC C ) registered in said blockchain. Method according to claim 1 in which said verification step corresponds to a comparison of said at least one first data item with said second result and when the result of said comparison is negative a request for validity of all or part of said second result is sent (E49) to a third smart contract (SC V ) registered in said blockchain. Validation process, by a smart contract (SC V) registered in a blockchain, at least one piece of data obtained from a service for supplying said blockchain with data external to said blockchain (O), the method being characterized in that it comprises the following steps: - obtaining a request sent to said service, said request comprising a first time stamp and a command; - obtaining (E24) a first result of execution of said command by said service; - obtaining (E29) all or part of a second result of execution of said command comprising said at least one piece of data associated with an electronic signature and a second time stamp;and when said at least one data item is not included in said first result - verification (E29) of the validity of said at least one data item via the check of the validity of said signature, of the anteriority of said second time stamp in relation to said first time stamp and of the validity of said at least one data item as a result of said command.; Method according to claim 4 wherein said verification step is followed by a step of transmitting (E120, E121) a notification of validity of said at least one item of data. Method according to claim 4 in which said verification step is preceded by a step of obtaining (E20) a parameter whose value corresponds to a financial amount and in that when the result of said verification is positive all or part of the value of said parameter is sent (E120, E121) to a user of said blockchain. Verification device (DISP) of at least one first data item obtained from a data supply service characterized in that it comprises:- a first module (OBT1) for obtaining a command issued to said service;- a second module (OBT2) for obtaining said at least one first data item corresponding to a first result of execution of said command by said service, said at least one first data item having been issued by said service to a blockchain (BC);- a third module (OBT3) for obtaining at least one second data item corresponding to a second result of execution of said command;- a verification module (VERIF) of said at least one first data item as a function of said second result. Computer program comprising instructions for implementing the verification and validation methods according to any one of claims 1 to 3 and 4 to 6, when the program is executed by a processor.