WO2019145620A1 - Secure system for transactions between terminals - Google Patents

Secure system for transactions between terminals Download PDF

Info

Publication number
WO2019145620A1
WO2019145620A1 PCT/FR2019/050086 FR2019050086W WO2019145620A1 WO 2019145620 A1 WO2019145620 A1 WO 2019145620A1 FR 2019050086 W FR2019050086 W FR 2019050086W WO 2019145620 A1 WO2019145620 A1 WO 2019145620A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
terminal
address
cryptoprocessor
servers
Prior art date
Application number
PCT/FR2019/050086
Other languages
French (fr)
Inventor
Jean-Marc Seigneur
Original Assignee
Réputaction
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Réputaction filed Critical Réputaction
Priority to EP19705552.8A priority Critical patent/EP3743871A1/en
Publication of WO2019145620A1 publication Critical patent/WO2019145620A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the invention relates to a secure system and method for transactions between terminals.
  • the invention also relates to a payment terminal for the realization of this system as well as an information recording medium for implementing this method.
  • each block comprising several transactions and a thumbprint of a previous block in the blockchain, each transaction being a digital message which contains at least the following information:
  • At least one arrival address of this transaction having been constructed from a pair of public / private keys containing a private key and a public key corresponding to this private key,
  • At least one start address which unambiguously identifies an arrival address of a transaction previously stored in the blockchain
  • a digital signature of the transaction obtained by signing at least the start and end addresses with the private key, this signature enabling the set of servers to verify that this transaction has been generated by a terminal having access to this private key,
  • this payment terminal able to communicate with the set of servers, this payment terminal being equipped with:
  • a cryptoprocessor comprising a secure memory accessible only by the cryptoprocessor
  • a transmitter / receiver capable of establishing an information exchange link with another terminal
  • this collection terminal able to communicate with the set of servers, this collection terminal being equipped with:
  • a transmitter / receiver capable of establishing an information exchange link with another terminal
  • the set (6) of servers is able to record a first transaction containing a first arrival address and a first object identifier transferred to this first arrival address
  • the secure memory comprises a first pair of public / private keys from which the first arrival address has been generated, this first pair of public / private keys comprising: A first private key which is the only one to validly sign a second transaction having a starting address which unambiguously identifies the first address of arrival, and
  • the collection terminal is able to obtain and store in its memory a second arrival address and a second pair of public / private keys from which the second arrival address has been generated, this second pair of public / private keys comprising a second private key and a second public key corresponding to this second private key,
  • the cryptoprocessor is able, in response to the reception of the second arrival address, to construct the second transaction, signed with the first private key, between a start address unambiguously identifying the first arrival address and this second address; arrival,
  • the payment and collection terminals are able to transmit all transactions built or received to the set of servers when they are connected to this set of servers,
  • the payment terminals and collection are able to establish, through their respective transmitters / receivers, an exchange of information between them.
  • one of these known systems is that developed to transfer cryptocurrency known as "Bitcoin” between terminals. Subsequently, this system is simply called “Bitcoin system”.
  • this system In the Bitcoin system, the set of servers performs operations known as “mining” or “mining” in English.
  • One of the essential functions of the server set is to prevent fraud.
  • the known systems are designed to make, if possible, the fraud known as "double-spending" in French or the term “double-spending".
  • This fraud is defined below in the particular case of the Bitcoin system. However, it can be defined similarly in any secure transaction system. In the Bitcoin system, this fraud consists of:
  • a cryptocurrency sum X of a first start address called UTXO ("Unspent Transaction Output") in the Bitcoin system
  • UTXO Unspent Transaction Output
  • Bitcoin address a first destination address
  • the computer servers of the set that check in particular whether the starting address of the received transaction does not correspond to a starting address already registered in the blockchain. If the starting address of the received transaction has already been used, the set of computer servers considers this transaction invalid and is therefore not registered in the blockchain. Thanks to this, double-spending is made impossible.
  • an offline transaction is not necessarily a transaction when which no connection to an information transmission network exists but only a transaction performed without a connection to the set of computer servers is necessary.
  • this solution is to create a common account on which is transferred an amount in Bitcoin.
  • the amount in Bitcoin can only be validly transferred from this common account to an arrival address if this transaction has been signed at the same time by means of a private key of the payment terminal and a private key of the terminal. collection.
  • an additional private computer server called “Watcher Node” is added to the existing set of servers.
  • the invention aims to solve the disadvantages of the "Lightning network" solution by ensuring the security of an off-line transaction between a payment terminal and a collection terminal, even if the collection terminal was unknown. before the payment terminal disconnects from the set of servers.
  • the invention aims at securing an off-line transaction between the payment terminal and the collection terminal without it being necessary, before being disconnected from the set of servers, that these terminals Payment and collection companies need to cooperate with each other to carry out certain on-line operations preparatory to securing the off-line transaction which will then be carried out.
  • the off-line transaction must be secure against double-spending.
  • the off-line transaction must remain compatible with the operation of online transactions.
  • the arrival address to which the subject of the offline transaction has been transferred must then be able to be used as the starting address of another transaction made, this time, on-line. .
  • the invention also relates to a payment terminal specially designed for the realization of the claimed system.
  • the embodiments of this payment terminal may include one or more of the features of the dependent claims.
  • the invention also relates to a secure method of transactions between terminals to be implemented in the claimed system.
  • the invention also relates to an information recording medium, readable by a cryptoprocessor, wherein the information recording medium includes instructions for implementing the claimed method, when these instructions are executed by the cryptoprocessor.
  • FIG. 1 is a schematic illustration of the architecture of a secure system of transactions between terminals
  • FIG. 2 is a schematic illustration of a secure memory of a payment terminal used in the system of FIG. 1;
  • FIG. 3 is a schematic illustration of a memory used in a collection terminal of the system of FIG. 1;
  • FIG. 4 is a flowchart of a secure method of transactions between terminals implemented in the system of FIG. 1.
  • public / private key pair is meant a pair of keys containing a private key and a public key.
  • the public key is different from the private key.
  • the public key makes it possible to encrypt a digital message which is then only decipherable using the private key.
  • the public key also makes it possible to decrypt a cryptogram obtained by encrypting a digital message with the private key.
  • the notions of public key and private key are well known in the field of asymmetric cryptography. Subsequently, we also say that the private key corresponds to the public key and vice versa when it comes to the public and private keys of the same pair of public / private keys.
  • a point-to-point exchange of information is an information exchange link established via an information transmission network between only two terminals. It is said that a transaction is "off-line", or “off-chain” in English, when a transaction is performed between two terminals without it being necessary for that at least one of terminals is connected to the set of computer servers responsible for validating and recording each transaction in the blockchain.
  • On-line transactions correspond to the most traditional transactions of transaction systems such as the Bitcoin system.
  • start address of a transaction, denotes a digital data that unambiguously identifies the arrival address of a previous transaction.
  • the starting address is known as the “Input” ("Input") of a transaction. It then corresponds to the concatenation of an identifier of the previous transaction and an index of an output (“Output index" in English) of this previous transaction.
  • a start address corresponds to the identifier of a UTXO (Unspent Transaction Output). Attention, with the terminology adopted here, a starting address is not a Bitcoin address because the same Bitcoin address can have several outputs. In the case of the Ethereum system, the starting address corresponds to the address of a starting account.
  • arrival address of a transaction
  • this corresponds to an output (“Output") of a transaction or to a Bitcoin address if it has only one output.
  • Output output
  • this corresponds to the address of an arrival account.
  • FIG. 1 shows a secure system 2 transactions between terminals.
  • the system 2 is described here in the particular case where the object of each transaction is a currency commonly called cryptocurrency.
  • the cryptocurrency is Bitcoin.
  • a transaction is a digital message which typically contains at least the following information:
  • an object identifier transferred that is to say here typically a transferred cryptocurrency amount expressed in Bitcoin or Satochis
  • a second script which, when executed by an electronic computer, makes it possible to load the information processed by the first script to determine whether this transaction is valid or not.
  • the starting address and the arrival address are called, respectively, input (“input”) and output (“output”).
  • the start address unambiguously identifies the arrival address of a previous transaction recorded in the blockchain, ie a UTXO.
  • the starting address comprises a Txid identifier of the previous transaction and an output index known as the "output index" which unambiguously identifies the previous transaction.
  • the arrival address comprises a unique address constructed from a pair of public / private keys.
  • the private key is used to generate the corresponding public key and the public key is then used to generate the arrival address by implementing a hash function for this purpose. English).
  • the first script is known as "pubkey script” or "scriptpubkey”.
  • the second script is known as "signaturescript” or "scriptsig”.
  • the second script contains the signature of the transaction. This signature is obtained by encrypting a digital fingerprint of the transaction with a private key known only to the payment terminal that generated this transaction.
  • the digital fingerprint is constructed from, in particular, the starting address and the arrival address of the transaction and using a hash function ("hash function" in English).
  • the second script also contains the public key that verifies this signature. In the case of the Bitcoin system, this public key is the same as that used to generate the starting address of this transaction.
  • the first script When the first script is executed, it allows in particular to check the following two conditions: - Condition 1): the starting address corresponds to the public key loaded into memory by the execution of the second script, and
  • the signature loaded by the execution of the second script is a valid signature, that is to say that it could be verified with the help of the public key also loaded by the execution of the second script and the contents of the transaction.
  • condition 1) confirms that the starting address is a starting address generated by a payment terminal that contains the public key.
  • Condition 2) confirms that the transaction has been authorized by the payment terminal that contains the private key that corresponds to this public key.
  • the system 2 comprises:
  • the network 4 is here the Internet network on which deploys the global spider web or "World Wide Web.” Through this network 4, the different servers of the set 6 as well as the different terminals are connected to each other in the form of a network known as peer-to-peer network or "Peer to Peer "in English.
  • the set 6 typically includes thousands of computer servers programmed to check transactions between terminals and record valid transactions in a database known as the "block chain". To simplify FIG. 1, only three computer servers 10 to 12 of the set 6 have been represented. The symbol "" between the servers 11 and 12 indicates that only a portion of the computer servers of the set 6 has been represented.
  • each computer server has a memory in which is recorded part or all of the block chain.
  • these memories carry the references M ref , where the index "ref" is equal to the numerical reference assigned to the computer server.
  • Each block of the block chain comprises several transactions and a digital fingerprint of a previous block of the block chain.
  • the computer server checks the validity of this transaction by executing the first and second scripts it contains. The computer server also verifies that the starting address contained in this transaction has not already been used for a previous transaction already registered in the blockchain. This last check makes it impossible or almost impossible to double-spend.
  • each computer server comprises an electronic computer programmed or configured to perform the method described with reference to Figure 4.
  • the electronic computer of a computer server wears reference CE ref , where the index "ref" is equal to the numerical reference assigned to this computer server.
  • the computer servers of the set 6 are known by the term “miner” or “miner” in English.
  • the system 2 also includes many terminals capable of carrying out transactions between them.
  • the number of terminals is ten times or a hundred times or a thousand times greater than the number of computer servers of the set 6.
  • FIG. 1 only two terminals 20 and 22 are represented.
  • the terminal 20 is here a payment terminal.
  • This terminal 20 comprises:
  • An information transmission bus 34 which allows these different components of the terminal 20 to communicate with each other.
  • the cryptoprocessor 28 may be in the form of a smart card or a Trusted Platform Module (TPM) or a hardware security module.
  • TPM Trusted Platform Module
  • Cryptoprocessor 28 is a microprocessor specifically designed to be resistant to cryptanalysis attempts such as hidden channel attacks. In particular, it is more resistant to cryptanalysis attempts than the microprocessor 24.
  • the cryptoprocessor 28 is configured to execute encryption and decryption algorithms as well as public / private key pair generation algorithms.
  • the cryptoprocessor 28 is for example made from an FPGA ("Field Programmable Gate Array”) or an ASIC ("Application-Specific Integrated Circuit”) or a programmable microcontroller.
  • the cryptoprocessor 28 forms what is known as the "Trusted Execution Environment”.
  • such cryptoprocessors are marketed by INTEL® under the name “INTEL TXT” ("Intel Trusted Execution Technology”) or by GEMALTO® under the acronym HSM ("Hardware Security Module”).
  • the cryptoprocessor 28 includes an internal secure nonvolatile electronic memory 36.
  • the memory 36 is accessible only by the cryptoprocessor 28. Thus, the owner of the terminal 20 can not read and obtain the private keys generated and stored in this memory .
  • the microprocessor 24 can not access the contents of the memory 36.
  • This memory 36 is intended to contain secret information such as private keys and cryptographic algorithms. It comprises in particular the instructions, executable by the cryptoprocessor 28, for the implementation of the method of FIG. 4.
  • the cryptoprocessor 28 further comprises a cryptanalysis attempt detection mechanism which makes it possible to know whether the cryptoprocessor 28 has been the subject of such cryptanalysis attempts.
  • the transmitter / receiver 30 is capable of establishing a point-to-point connection 40 of information exchange with another terminal of the system 2.
  • this link 40 may be:
  • USB Universal Serial Bus
  • a wireless link such as a link complying with one of the following standards: NFC (Near Field Communication) or Bluetooth.
  • the link 40 can be established between the terminals 20 and 22 independently of the fact that these terminals are or are not connected at the same time to the network 4. For example, here, it is a direct connection between the terminals 20 and 22 compliant with the Bluetooth standard.
  • the man-machine interface 32 typically comprises at least one screen for displaying information and means for acquiring information from the user of this human-machine interface.
  • the human-machine interface 30 comprises a touch screen.
  • the terminal 20 is also able to connect to the set 6 of computer servers via the network 4.
  • the terminal 20 is a smartphone or a computer or laptop.
  • the terminal 22 is a collection terminal.
  • its structure is identical to that of the terminal 20 except that it does not include the cryptoprocessor 28.
  • the components of the terminal 22 identical to those of the terminal 20 bear the same numerical references as those components of the terminal 20 but incremented by the number 20.
  • the terminal 22 is less secure than the terminal 20 since the encryption / decryption operations and the like are performed by the microprocessor 44 which is less secure than the cryptoprocessor 28.
  • the system 2 further comprises a computer server 60 of reputation information and a computer server 62 cryptographic certificate revocation. These two servers 60 and 62 are connected to the network 4. Each of the servers 60 and 62 includes:
  • a programmable microprocessor respectively 64 and 66, and
  • a non-volatile electronic memory respectively 68 and 70.
  • the microprocessor 64 is programmed to store, update and transmit, in response to a request, information on trustworthiness ("trustworthiness" in English) that can be in the terminals of the system 2.
  • the microprocessor 66 is programmed to store, update and transmit, in response to a request, information on the validity of the cryptographic certificates used in the system 2.
  • the microprocessor 66 is capable of transmitting, in response to a request, a list containing all the revoked cryptographic certificates.
  • FIG. 2 represents in more detail the contents of the memory 36.
  • the memory 36 comprises:
  • the list L Rep comprises, associated with terminal identifiers of the system 2, a confidence index.
  • a terminal equipped with a cryptoprocessor is the victim of a cryptanalysis attempt, this information is transmitted to the server 60 and the index of confidence of this terminal is decreased.
  • the confidence index of a terminal is also decreased each time it is used to defraud or to attempt to defraud.
  • the list L Rev includes a list of revoked cryptographic certificates. These revoked cryptographic certificates are no longer usable.
  • the certificate C y20 contains the public key K pub2 and a signature obtained by encrypting the information contained in this certificate using the private key of the microprocessor manufacturer 28. Thus, it is possible to verify that the cryptoprocessor 28 is an authentic cryptoprocessor manufactured by a known manufacturer.
  • the list L u contains transaction data already used to generate and perform an off-line transaction. This L u list is used here to prevent double-spending for off-line transactions.
  • FIG. 3 represents in more detail the contents of the memory 46 of the terminal 22.
  • the memory 46 here comprises in particular:
  • the cryptographic certificate C y22 is signed using a private key from the manufacturer of the terminal 22 or the microprocessor 44.
  • the cryptoprocessor 28 Initially, during a step 100, the cryptoprocessor 28 generates a pair of public / private keys containing a public key K pubi and a private key K pa . For example, the cryptoprocessor 28 first generates the key K pa in a random or pseudo-random manner or by any other means and then it constructs the key K pubi from the key K p n. Then, the cryptoprocessor 28 builds, only from the key K pubi , an arrival address @i able to receive Bitcoins.
  • a transaction Ti signed to transfer X Bitcoins to the address @i is built and transmitted to the set 6.
  • This transaction Ti can be built by a third party terminal.
  • the transaction Ti can also be constructed by the terminal 20 itself, which then transfers online Bitcoins X it already had to the address @i.
  • a step 102 in response to the receipt of the transaction Ti, the computer servers of the set 6 verify it by executing the first and second scripts of this transaction Ti. In particular, the servers of the set 6 ensure that the starting address contained in this transaction Ti has not already been used for another transaction already recorded in the blockchain. If the transaction Ti is valid, then the computer servers of the set 6 register it in the blockchain. Otherwise, that is, if the IT servers determine that the transaction Ti is invalid, it is not registered in the blockchain.
  • a step 104 regardless of the terminal that created the transaction Ti, the cryptoprocessor 28 connects to the set 6 and verifies that the transaction Ti has been recorded in the blockchain so that the cryptoprocessor 28 is sure to have X Bitcoins on the @i address. If so, the cryptoprocessor 28 stores in the memory 36 that the transfer of the X Bitcoins from the @i address is now allowed both on-line and off-line. Otherwise, this authorization is not stored in the memory 36 so that the cryptoprocessor 28 prevents the creation of any off-line transaction for the purpose of transferring X Bitcoins from the @i address.
  • Steps 100, 101, 102 and 104 are performed, for example, as described in the Bitcoin system. They are therefore not described in more detail.
  • the cryptoprocessor 28 connects to the server 60 and updates the list Rep Rep from the information downloaded from this server 60.
  • the cryptoprocessor 28 also connects to the server 62 and updates the list L Rev from the information downloaded from the server 62.
  • the terminal 22 can also update the lists L Rep and L Rev stored in its memory 46.
  • the terminal 20 disconnects from the set 6. For example, here, it is considered that the terminal 20 is disconnected from the network 4. From this moment, it is also considered that the terminal 22 is also disconnected from the set 6.
  • the terminals 20 and 22 are on a desert island without access means to the network 4. It is also assumed that, under these conditions, the terminal 20 wishes to transfer to the terminal 22 , all the X Bitcoins still available at @i via an offline transaction.
  • the terminals 20 and 22 establish the link 40 between them via the transceiver 30 and 50.
  • the terminals 20 and 22 exchange their certificates. cryptographic C y20 and C y22 .
  • the cryptoprocessor 28 and the terminal 22 then check whether the certificates, respectively, C y22 and C y20 received belong to the list L Rev. If so, that is, if one of the terminals 20 and 22 determines that the received certificate has been revoked, the process stops and, for example, the link 40 is interrupted. No off-line transactions between terminals 20 and 22 are then performed.
  • the process is interrupted and no transaction between the terminals 20 and 22 is performed.
  • the link 40 between the terminals 20 and 22 is said to be secure because, on the one hand, it is encrypted and, on the other hand, the exchanged messages are authenticated.
  • the terminal 22 transmits its identifier to the terminal 20 and the cryptoprocessor 28 verifies, using the identifier received, the confidence index associated with the terminal 22 in the list L Rep . If the confidence index associated with the terminal 22 is less than a predetermined threshold S1, no transaction is made between the terminals 20 and 22. For example, the process stops and the link 40 is interrupted. In the opposite case, the process continues with a step 116.
  • step 116 the cryptoprocessor 28 acquires via the man-machine interface 32 the choice of the user between two options, respectively, “anonymous transaction” and “non-anonymous transaction”.
  • the cryptoprocessor 28 generates a number N i pulled randomly or pseudo-random and transmits this number N ai to the terminal 22.
  • this number N ai is transmitted to the terminal 22 by a other means of communication than the link 40 to avoid the attack known as "man in the middle".
  • the number N ai is displayed on the screen of the terminal 20 in the form of a QR-code and the terminal 22 is used to scan this QR-Code and thus acquire the number N ai .
  • the number N ai is then included in all the messages exchanged between the terminals 20 and 22 via the link 40. This makes it possible to avoid the implementation of a "replay" attack.
  • the cryptoprocessor 28 acquires via the man-machine interface 32 a confirmation that the X Bitcoins associated with the address @i must be transferred to the terminal 22.
  • the cryptoprocessor 28 compares the key K pa to the content of the list L u . If the key K p n belongs to the list L u the process stops and the transaction between the terminals 20 and 22 is not performed. Indeed, if the key K pa already belongs to the list L u it means that the X Bitcoins associated with the address @i have already been spent. The interruption of the transaction in this case therefore prevents double-spending. If the key K pil does not belong to the list L u , the process continues with a step 126.
  • step 126 the cryptoprocessor 28 transmits to the terminal 22 the key K p n, the key K pubi , the Bitcoins amount transferred to the terminal 22, and the address @ 1. Therefore, the terminal 22 is capable of constructing a signed and valid transaction from the starting address address @i to another destination address.
  • the X bitcoins associated with the address @ i have been transferred from the terminal 20 to the terminal 22.
  • this transaction is anonymous because it leaves no trace in the blockchain even after a Valid transaction from the address @i to another address @ 2 was built by the terminal 22, then registered in the blockchain when the terminal 22 is connected again to the set 6.
  • the cryptoprocessor 28 prohibits the realization of any new transactions for the purpose of transferring the same X Bitcoins that those transferred during the step 126.
  • the cryptoprocessor 28 records in the list L u an identifier of the transferred object, that is to say here transferred X Bitcoins.
  • the key K p n, the key K pU bi or the address @ i unambiguously identify these transferred X Bitcoins.
  • the cryptoprocessor 28 records these keys K p n, K pubi and the address @i in the list L u contained in the memory 36.
  • the terminal 22 obtains a pair of public / private keys K pUb 2 / Kp r2 and an address @ 2 constructed from the key K pub2 . For example, here, the terminal 22 generates and stores these data as described with reference to step 100.
  • step 130 the @ 2 address is then transmitted to the terminal 20.
  • the cryptoprocessor 28 compares the keys K pri , K pubi and the address @i to the content of the list L u . If one of the keys K p n, K pubi and the address @i belongs to the list L u , the process stops and the transaction between the terminals 20 and 22 is not performed. Indeed, as already explained next to step 124, this means that the X Bitcoins associated with the address @i have already been spent. The interruption of the transaction in this case therefore prevents double-spending. If the keys K p n, K pubi and the address @i do not belong to the list L u , the process continues with a step 136.
  • step 136 the cryptoprocessor 28 builds a transaction T 2 having as the starting address address @i and as address of arrival the address @ 2 and an amount of X Bitcoins.
  • This transaction is built in the same way as for a conventional online transaction. In particular, it is signed with the key K p n.
  • step 136 the cryptoprocessor 28 transmits the transaction T 2 to the terminal 22.
  • a step 138 once the transaction T 2 has been transmitted to the terminal 22, the cryptoprocessor 28 prohibits the realization of any new transactions for the purpose of transferring the same X bitcoins that those transferred at the time. step 136. For this purpose, the cryptoprocessor 28 proceeds as described with reference to step 128. Thus, the address @i , the keys K p n and K pubi and the amount transferred are recorded in the list L u of the memory 36.
  • step 150 the link 40 is interrupted.
  • the terminals 20 and 22 each display a message on the screens, respectively, of the man-machine interfaces 32 and 52 to indicate to the users of these terminals that the transaction has been correctly performed and that the This is now over.
  • the terminal 22 builds a transaction T 3 from the address @i to another address @ 3 .
  • the transaction T 3 is signed with the key K p n received during the step 126.
  • the terminal 22 connects again to the set 6 of servers, it transmits the transaction T 3 to the computer servers of the together 6 to be registered in the blockchain.
  • the terminal 22 can build such a valid transaction because it is in possession of the key K p n.
  • the terminal 22 connects to the servers 6 and informs them of the transaction T 2 received during step 136.
  • the transaction T 2 is then verified by these computer servers and then recorded in the blockchain.
  • step 150 each time the terminal 20 wishes to perform a new transaction offline or online with a collection terminal, in a step 156, the cryptoprocessor 28 checks if the Bitcoins that the user wants to spend do not match those already spent on the off-line transaction. For example, for this, before building each new transaction, the cryptoprocessor 28 proceeds first as described in steps 124 and 132. Then, only if the starting address and public / private keys used to build this new transaction are not already in the list L u , so this new transaction is allowed.
  • the cryptoprocessor 28 is not integrated within the terminal 20 but connected to the terminal 20 via an information exchange link.
  • the cryptoprocessor 28 may be located several tens of centimeters or tens of meters or hundreds of meters from the terminal 20.
  • the certificate C y22 of the terminal 22 may be signed by the terminal 22 and not by a known manufacturer of the terminal 22 or the microprocessor 44.
  • the terminal 22 may also include a cryptoprocessor such as the cryptoprocessor 28. In this case, the steps described above are performed by the cryptoprocessor of the terminal 22 rather than by the microprocessor 44.
  • the terminal 22 verifies the confidence index of the terminal 20 and / or the certificate C y20 transmitted by this terminal 20.
  • the terminal 22 can interrupt the process of Figure 4 so that the transaction between the terminals 20 and 22 is not performed.
  • the cryptoprocessor of the terminal 22 performs the same operations as those described in steps 110 and 112 in the particular case of the cryptoprocessor 28.
  • the terminal 22 is equipped with a cryptoprocessor it can also be used in as a payment terminal. For example, it is programmed to be able to function as the terminal 20.
  • the terminal 22 can in turn perform an off-line transaction using as a means of payment the X Bitcoins it has previously received from the terminal 20.
  • an anonymous transaction it transmits offline the key K p n, which it has previously received from the terminal 20, to another collection terminal.
  • the terminal 22 can generate another signed transaction with this key K p n associated with the address @i still not used.
  • the payment terminal 20 is not obliged to verify that the certificate of the collection terminal 22 is not revoked.
  • the payment terminal 20 is not obliged to check the confidence index of the terminal 22.
  • the memory 36 may be replaced by a secure volatile memory, for example, of the INTEL® SGK type.
  • the security level is lower but still acceptable. Indeed, in the event of a power failure of the memory 36, the list L u , the key K pa and the key K pubi are erased. Therefore, the terminal 20 is unable to build a new signed transaction using the address @i as the starting address because the key K p has been erased. Thus, the loss of the list L u following a power failure does not completely question the security of the transaction system.
  • the memory 46 may be replaced by a volatile memory.
  • the server 60 can be omitted. In this case, step 112 is also omitted.
  • the server 62 may be omitted. In this case, step 110 is omitted.
  • the signature of the messages exchanged between the terminals 20 and 22 is omitted.
  • the messages exchanged between the terminals 20 and 22 via the link 40 may be protected by other encryption methods such as, for example, symmetric encryption instead of asymmetric encryption as previously described.
  • the messages exchanged between the terminals 20 and 22 may also include additional information such as a current date, a price, information on a purchased product or others.
  • the messages exchanged between the terminals 20 and 22 via the link 40 are not encrypted.
  • the absence of encryption of the link 40 is especially conceivable when the transaction T 2 is transmitted from the terminal 20 to the terminal 22.
  • the link 40 is not a point-to-point link but a point-to-multipoint link.
  • the link 40 is then established according to WIFI or other standard.
  • the link 40 can also be established via a long-distance information transmission network such as the network 4.
  • the terminals 20 and 22 do not need to be located in the vicinity. from each other to implement the method described with reference to Figure 4.
  • the collection terminal or the collection terminal may be composed of several mechanically independent parts of each other and connected to each other via information exchange links. For example, only the transmitter / receiver 50 is located near the terminal 20. The other components of the terminal 22 are deported several meters or several tens of meters away from the transceiver 50.
  • steps 100 to 104 are repeated several times to transfer Bitcoins to several different arrival addresses. From then on, the cryptoprocessor 28 can build off-line:
  • the transaction Ti constructed has several outputs and therefore several arrival addresses.
  • the cryptoprocessor 28 can construct a transaction T 2 having a single or several starting addresses each identifying a respective arrival address of this transaction Ti and the arrival address @ 2 provided by the terminal 22.
  • the starting addresses used by the transaction T 2 are registered in the list L u and a new use of the key K p n is prohibited only if this new use consists in constructing a new transaction between at least one of the departure addresses already used and a new arrival address.
  • step 136 the cryptoprocessor 28 can also build a transaction T 2 which has several addresses of arrival. For example, if the starting @i address is associated with X Bitcoins and the transaction T 2 only needs to transfer X-
  • the cryptoprocessor 28 builds a transaction T 2 which transfers XY Bitcoins from the address @i to the address of arrival @ 2 and which transfers Y Bitcoins from the address @i to the address d arrival @i.
  • this transaction T 2 is subsequently stored in the blockchain, the amounts associated with addresses @i and @ 2 in the blockchain will become, respectively, Y and XY Bitcoins.
  • the Y Bitcoins associated with the address @i can not not be spent offline because the corresponding T 2 transaction has not been verified yet.
  • the collection terminal is ready to accept the risk that the payment terminal will never reconnect to the set 6 and therefore the transaction T 2 is never recorded in the blockchain, the
  • Y Bitcoins associated with the @i address can be spent offline.
  • the Y Bitcoins can also be transferred to an address @ 4 associated with a private key K pr4 generated in advance by the terminal 20.
  • the Y Bitcoins associated with the address @ 4 can be transferred offline to a other collection terminal through an anonymous transaction as previously described if the collection terminal is willing to accept the risk that the payment terminal will never reconnect to the set 6 and therefore the transaction T 2 is never recorded in the chain of blocks. If the payment terminal does not reconnect, the remaining Y Bitcoins will also be lost to the payment terminal owner. Double-spending is prohibited even in this case.
  • the initial transmission of a public key K pub2 o can also be achieved by other means than through the link 40.
  • the terminal 20 displays on its screen a QR-code containing the key K pub2 o and the number N ai .
  • the terminal 22 then scans this QR-code to acquire these data.
  • the number N ai can also be transmitted by telephone.
  • the number N ai is displayed on the screen of the terminal 20.
  • the user of the terminal 20 calls the user of the terminal 22 and communicates by telephone the number displayed on the screen of the terminal 20.
  • the user of the terminal 22 enters in the terminal 22 the number N ai that has been communicated to him verbally. In the latter case, the terminals 20 and 22 do not need to be close to each other to perform an off-line transaction. It is also possible to transmit the number N ai by SMS ("Small Message Service”) or others.
  • Step 118 may be omitted.
  • the messages exchanged between the terminals 20 and 22 do not include the number N ai .
  • Step 126 can be simplified. For example, during this step, only the key K p n is transmitted to the terminal 22. Then, from the key K p n received, the terminal 22 generates the public key K pubi and the address @i. Indeed, in the Bitcoin system, the generation algorithms, from a private key, the corresponding public key and Bitcoin address are public algorithms known to all terminals. In particular, it is not absolutely necessary to transfer, in addition to the key K p n, the amount transferred from Bitcoins.
  • the list L u To identify transferred X Bitcoins, other information than that previously described may be recorded in the list L u .
  • the identifier of the transferred X Bitcoins is obtained by applying a bijective transformation to at least one of the elements selected from the group consisting of the key K p n, the key K pubi and the address @i.
  • the transaction T 2 can be registered in the list L u .
  • the amount of the transaction is not recorded in the list L u .
  • steps 128 and 138 there are many possible embodiments of steps 128 and 138.
  • the steps, such as verification steps 124, 132, and 156, must be adapted to the implemented embodiment of steps 128 and 138.
  • the arrival addresses, such as the @i and @ 2 addresses can be generated solely from the private key of the public / private key pair or only from the public key of this pair. or at the same time from the private key and the public key of this pair.
  • the terminal 22 can generate the keys K pub2 and K pr2 and the address @ 2 before step 130.
  • the keys K pub2 and K pr2 and the address @ 2 are generated before the terminal 22 disconnects from the server set 6 or before the link 40 is established.
  • the step 130 consists simply of obtaining, from the memory 46, the keys K pub2 and K pr2 and the address @ 2 previously generated.
  • the step 154 can be triggered automatically as soon as the terminal 22 connects for the first time to the computer servers of the set 6 after the completion of step 138.
  • the transaction T 2 built by the terminal 20 is also stored in the memory 36. Then, as soon as the terminal 20 connects to a computer server of the set 6, the cryptoprocessor 28 automatically transmits it. also this transaction T 2 to this set 6 of computer servers. It should be noted that it is not a problem to transmit the same transaction T 2 twice to the set 6 of computer servers. Indeed, only the transaction T 2 received first will then be recorded in the block chain and all copies of this transaction T 2 received later will be ignored.
  • an off-line transaction can also be performed between the terminals 20 and 22 even if, at the same time, these terminals are connected or have the opportunity to connect to the set of 6 servers.
  • the user has the choice between three options:
  • the "anonymous transaction” option is omitted. In this case, steps 116, 124, 126, 128 and 152 are omitted. Conversely, the option “non-anonymous transaction” can be omitted. In this case, steps 116, 130 to 138 and 154 are omitted.
  • the keys K pri , K pubi and the address @i can be erased, for example, when the cryptoprocessor 28 finds that the transaction T 2 has been recorded in the chain blocks. From this moment on, the cryptoprocessor 28 can also erase the keys K p n, K pubi and the address @i and / or the transaction T 2 of the list L u .
  • the arrival and departure addresses are account addresses that can be credited or debited.
  • the amount of Ethers available on an account is equal to the difference between the inputs and outputs of Ethers on this account.
  • each transaction has a serial number. It is not possible to register in the block chain two transactions from the same starting address and each with the same order number.
  • a transaction is invalid if the amount to be debited to an account is greater than the amount available on that account.
  • the transferred object is identified, for example, by the combination of the starting address and the amount transferred and possibly the amount available after the transfer.
  • the order number of the off-line transaction carried out is also recorded in the memory 36.
  • the amount transferred is useful for verifying, even in the case of off-line transactions, that the cumulative amount of the transactions carried out does not exceed the amount of Ether available on the account. Then, to prevent double-spending, the transmission of the transaction T 2 to the terminal 22 is authorized only if the amount available at this starting address is greater than or equal to the amount transferred by this transaction T 2 , the amount available to the customer. starting address being obtained from the list L u .
  • the transaction T 2 is first constructed and the verification that it does not lead to spend more than the available amount is performed after.
  • the same private key K pa can be used to sign several valid transactions from the same starting address @i from the moment when:
  • the object of the transaction is cryptocurrency.
  • the identifier of a cryptocurrency amount described up to now may be replaced by the identifier of a title deed on a tangible or intangible good such as a patent or the identifier of a contract or the identifier of any other object that may be the subject of a transaction between two terminals.
  • the system 2 makes it possible to secure an off-line transaction made between the terminals 20 and 22 without the need for the identity or an arrival address of the terminal 22 to be known before the terminals 20 and 22. 22 are disconnected from the set of servers.
  • This system 2 allows both in-line transactions that off-line, without it being necessary to change the processes executed by the set of 6 servers. In other words, this system 2 retains the advantages of existing systems. In particular, off-line transactions are as secure as in-line transactions and double-spending is made impossible. Note also that the system works even if the POS terminal is devoid of cryptoprocessor and this without compromising the security of transactions between terminals 20 and 22.

Abstract

Secure system for transactions between terminals, wherein, even in the absence of a connection to a group (6) of servers which are programmed to record transactions in a block chain, a crypto-processor (28) of a payment terminal (20) is capable: - of transmitting to a collection terminal (22) a private key which is the only one able to validly sign a transaction of an object or to transmit the signed transaction, then - of recording, in a secure memory, an identifier of the object which is transferred by the transaction, then - when a new transaction is constructed by the crypto-processor, of comparing the identifier of the object which is transferred by this new transaction to the identifier of the transferred object which is recorded in the secure memory, and - only if these identifiers match, of preventing this new transaction from being transmitted to the collection terminal.

Description

SYSTÈME SÉCURISÉ DE TRANSACTIONS ENTRE TERMINAUX  SECURE TRANSACTION SYSTEM BETWEEN TERMINALS
[001] L’invention concerne un système et un procédé sécurisés de transactions entre terminaux. L’invention concerne aussi un terminal de paiement pour la réalisation de ce système ainsi qu’un support d’enregistrement d’informations pour mettre en œuvre ce procédé. [001] The invention relates to a secure system and method for transactions between terminals. The invention also relates to a payment terminal for the realization of this system as well as an information recording medium for implementing this method.
[002] Des systèmes sécurisés connus de transactions entre terminaux comportent  [002] Known secure systems for transactions between terminals comprise
- un ensemble de serveurs programmés pour vérifier et, après vérification, enregistrer des transactions dans une chaîne de blocs, chaque bloc comportant plusieurs transactions et une empreinte numérique d'un bloc précédent dans la chaîne de blocs, chaque transaction étant un message numérique qui contient au moins les informations suivantes :  a set of servers programmed to check and, after verification, record transactions in a blockchain, each block comprising several transactions and a thumbprint of a previous block in the blockchain, each transaction being a digital message which contains at least the following information:
• au moins une adresse d'arrivée de cette transaction, cette adresse d'arrivée ayant été construite à partir d'une paire de clefs publique/privée contenant une clef privée et une clef publique correspondant à cette clef privée,  At least one arrival address of this transaction, this arrival address having been constructed from a pair of public / private keys containing a private key and a public key corresponding to this private key,
• au moins une adresse de départ qui identifie sans ambiguïté une adresse d'arrivée d'une transaction précédemment enregistrée dans la chaîne de blocs, At least one start address which unambiguously identifies an arrival address of a transaction previously stored in the blockchain,
• un identifiant d'objet transféré depuis l'adresse de départ vers l'adresse d'arrivée, • an object identifier transferred from the starting address to the arrival address,
• une signature numérique de la transaction obtenue en signant au moins les adresses de départ et d'arrivée avec la clef privée, cette signature permettant à l'ensemble de serveurs de vérifier que cette transaction a bien été générée par un terminal ayant accès à cette clef privée,  A digital signature of the transaction obtained by signing at least the start and end addresses with the private key, this signature enabling the set of servers to verify that this transaction has been generated by a terminal having access to this private key,
- un terminal de paiement apte à communiquer avec l'ensemble de serveurs, ce terminal de paiement étant équipé :  a payment terminal able to communicate with the set of servers, this payment terminal being equipped with:
• d'un cryptoprocesseur, ce cryptoprocesseur comportant une mémoire sécurisée uniquement accessible par le cryptoprocesseur,  A cryptoprocessor, this cryptoprocessor comprising a secure memory accessible only by the cryptoprocessor,
• d'un émetteur/récepteur apte à établir une liaison d'échange d'informations avec un autre terminal,  A transmitter / receiver capable of establishing an information exchange link with another terminal,
- un terminal d'encaissement apte à communiquer avec l'ensemble de serveurs, ce terminal d'encaissement étant équipé :  a collection terminal able to communicate with the set of servers, this collection terminal being equipped with:
• d'un microprocesseur,  • a microprocessor,
• d'une mémoire, et  • a memory, and
• d'un émetteur/récepteur apte à établir une liaison d'échange d'informations avec un autre terminal,  A transmitter / receiver capable of establishing an information exchange link with another terminal,
- l'ensemble (6) de serveurs est apte à enregistrer une première transaction contenant une première adresse d'arrivée et un premier identifiant d'objet transféré vers cette première adresse d'arrivée,  the set (6) of servers is able to record a first transaction containing a first arrival address and a first object identifier transferred to this first arrival address,
- la mémoire sécurisée comporte une première paire de clefs publique/privée à partir de laquelle la première adresse d'arrivée a été générée, cette première paire de clefs publique/privée comportant : • une première clef privée qui est la seule à pouvoir valablement signer une seconde transaction ayant une adresse de départ qui identifie sans ambiguïté la première adresse d'arrivée, et the secure memory comprises a first pair of public / private keys from which the first arrival address has been generated, this first pair of public / private keys comprising: A first private key which is the only one to validly sign a second transaction having a starting address which unambiguously identifies the first address of arrival, and
• une première clef publique correspondant à la première clef privée,  A first public key corresponding to the first private key,
- le terminal d'encaissement est apte à obtenir et à enregistrer dans sa mémoire, une seconde adresse d'arrivée et une seconde paire de clefs publique/privée à partir de laquelle la seconde adresse d'arrivée a été générée, cette seconde paire de clefs publique/privée comportant une seconde clef privée et une seconde clef publique correspondant à cette seconde clef privée,  the collection terminal is able to obtain and store in its memory a second arrival address and a second pair of public / private keys from which the second arrival address has been generated, this second pair of public / private keys comprising a second private key and a second public key corresponding to this second private key,
- le cryptoprocesseur est apte, en réponse à la réception de la seconde adresse d'arrivée, à construire la seconde transaction, signée avec la première clef privée, entre une adresse de départ identifiant sans ambiguïté la première adresse d'arrivée et cette seconde adresse d'arrivée,  the cryptoprocessor is able, in response to the reception of the second arrival address, to construct the second transaction, signed with the first private key, between a start address unambiguously identifying the first arrival address and this second address; arrival,
- les terminaux de paiement et d'encaissement sont aptes à transmettre toutes transactions construites ou reçues à l'ensemble de serveurs lorsqu'ils sont connectés à cet ensemble de serveurs,  the payment and collection terminals are able to transmit all transactions built or received to the set of servers when they are connected to this set of servers,
- l'ensemble de serveurs est apte, en réponse à la réception de toute transaction : - the set of servers is fit, in response to the receipt of any transaction:
• à vérifier la validité de cette transaction reçue à l'aide de la signature qu'elle contient, • to verify the validity of this received transaction with the signature it contains,
• à vérifier l'absence de double-dépense en vérifiant qu'il n'existe pas une transaction du même objet depuis la même adresse de départ déjà enregistrée dans la chaîne de blocs, et  • to verify the absence of double-spending by checking that there is not a transaction of the same object from the same starting address already registered in the blockchain, and
• seulement si ces vérifications confirment la validité de la transaction reçue et l'absence de double-dépense, à enregistrer la transaction reçue dans la chaîne de blocs,  • only if these verifications confirm the validity of the transaction received and the absence of double-spending, to record the transaction received in the blockchain,
- même en absence de connexion avec l'ensemble de serveurs, les terminaux de paiement et d'encaissement sont aptes à établir, par l'intermédiaire de leurs émetteurs/récepteurs respectifs, une liaison d'échange d'informations entre eux.  - Even in the absence of connection with the set of servers, the payment terminals and collection are able to establish, through their respective transmitters / receivers, an exchange of information between them.
[003] De l'état de la technique est connu des documents suivants :  [003] From the state of the art, the following documents are known:
- Andréas M. Antonopoulos : "Mastering Bitcoin - Unlocking Digital Cryptocurrencies", 20/12/2014, O'Reilly Media, Beijing Cambridge Farnham Kôln Sébastopol Tokyo, - Andreas M. Antonopoulos: "Mastering Bitcoin - Unlocking Digital Cryptocurrencies", 20/12/2014, O'Reilly Media, Beijing Cambridge Farnham Kôln Sevastopol Tokyo,
- Melanie Swan : "Blockchain : Blueprint for a New Economy", 8/02/2015, O'Reilly,- Melanie Swan: "Blockchain: Blueprint for a New Economy", 8/02/2015, O'Reilly,
- W02017/145008A1, - W02017 / 145008A1,
-EP2953075A1.  -EP2953075A1.
[004] Par exemple, l’un de ces systèmes connus est celui développé pour transférer de la crypto-monnaie connue sous le terme de « Bitcoin » entre terminaux. Par la suite, ce système est simplement appelé « système Bitcoin ». Dans le système Bitcoin, l'ensemble de serveurs réalise les opérations connues sous le terme de « minage » ou « mining » en anglais.  [004] For example, one of these known systems is that developed to transfer cryptocurrency known as "Bitcoin" between terminals. Subsequently, this system is simply called "Bitcoin system". In the Bitcoin system, the set of servers performs operations known as "mining" or "mining" in English.
[005] Dans ces systèmes connus pour qu’une transaction entre deux terminaux soit réalisée et validée, il faut que le terminal de paiement construise la transaction, puis la transmette à l’ensemble de serveurs. L’ensemble de serveurs vérifie la validité de la transaction et si la transaction est valide, l’enregistre dans la chaîne de blocs. Cette chaîne de blocs est plus connue sous le terme anglais de « blockchain ». [005] In these known systems for a transaction between two terminals is performed and validated, it is necessary that the payment terminal builds the transaction, then transmits to the set of servers. The server set checks the validity of the transaction and if the transaction is valid, saves it in the blockchain. This chain of blocks is better known as blockchain.
[006] L’une des fonctions essentielles de l’ensemble de serveurs est d’empêcher les fraudes. En particulier, les systèmes connus sont conçus pour rendre, si possible, impossible la fraude connue sous le terme de « double-dépense » en français ou sous le terme anglais de « double-spending ». Cette fraude est définie ci- dessous dans le cas particulier du système Bitcoin. Toutefois, elle peut être définie de façon similaire dans tout système sécurisé de transaction. Dans le système Bitcoin, cette fraude consiste :  [006] One of the essential functions of the server set is to prevent fraud. In particular, the known systems are designed to make, if possible, the fraud known as "double-spending" in French or the term "double-spending". This fraud is defined below in the particular case of the Bitcoin system. However, it can be defined similarly in any secure transaction system. In the Bitcoin system, this fraud consists of:
- à construire une première transaction qui transfert, par exemple, une somme X de crypto-monnaie d’une première adresse de départ, appelée UTXO (« Unspent Transaction Output ») dans le système Bitcoin, vers une première adresse d’arrivée, appelée « Bitcoin address » dans le système Bitcoin, puis  constructing a first transaction which transfers, for example, a cryptocurrency sum X of a first start address, called UTXO ("Unspent Transaction Output") in the Bitcoin system, to a first destination address, called "Bitcoin address" in the Bitcoin system, then
- à construire une seconde transaction qui transfert, la même somme X de crypto monnaie de la même première adresse de départ vers une seconde adresse Bitcoin d’arrivée différente de la première adresse d’arrivée.  - To build a second transaction that transfers, the same amount X crypto currency from the same first start address to a second arrival Bitcoin address different from the first arrival address.
[007] En faisant cela, la même somme X de crypto-monnaie a été dépensée deux fois, ce qui doit absolument être évité.  [007] By doing this, the same X amount of cryptocurrency has been spent twice, which must absolutely be avoided.
[008] Dans le système Bitcoin développé initialement, ce sont les serveurs informatiques de l’ensemble qui vérifient notamment si l’adresse de départ de la transaction reçue ne correspond pas à une adresse de départ déjà enregistrée dans la chaîne de blocs. Si l’adresse de départ de la transaction reçue a déjà été utilisée, l’ensemble de serveurs informatiques considère que cette transaction est invalide et elle n’est donc pas enregistrée dans la chaîne de blocs. Grâce à cela, la double- dépense est rendue impossible.  [008] In the Bitcoin system initially developed, it is the computer servers of the set that check in particular whether the starting address of the received transaction does not correspond to a starting address already registered in the blockchain. If the starting address of the received transaction has already been used, the set of computer servers considers this transaction invalid and is therefore not registered in the blockchain. Thanks to this, double-spending is made impossible.
[009] Dès lors, pour que le terminal d’encaissement soit sûr que la transaction vers l’une de ses adresses d’arrivée soit valide, il doit attendre que celle-ci soit validée par l’ensemble de serveurs, puis vérifier qu’elle a bien été enregistrée dans la chaîne de blocs. Pour que la transaction soit enregistrée dans la chaîne de blocs puis ensuite vérifiée par le terminal d’encaissement, il faut que le terminal de paiement et le terminal d’encaissement disposent chacun d’une connexion à cet ensemble de serveurs. Ainsi, dans le système Bitcoin initialement développé, la sécurité d’une transaction entre deux terminaux ne pouvait être garantie que si ces terminaux disposaient chacun d’une connexion à l’ensemble de serveurs. Ce type de transactions, qui nécessitent de disposer d’une connexion à l’ensemble de serveurs pour être sécurisé contre les fraudes telle que la double-dépense, est par la suite appelé « transaction en-ligne » ou « on-chain transaction» en anglais.  [009] Therefore, for the collection terminal to be sure that the transaction to one of its arrival addresses is valid, it must wait for it to be validated by the set of servers, then check that it has been registered in the blockchain. In order for the transaction to be recorded in the blockchain and then verified by the collection terminal, the payment terminal and the collection terminal must each have a connection to this set of servers. Thus, in the Bitcoin system initially developed, the security of a transaction between two terminals could only be guaranteed if these terminals each had a connection to the set of servers. This type of transaction, which requires having a connection to the set of servers to be secure against fraud such as double-spending, is later called "online transaction" or "on-chain transaction" in English.
[0010] Par contre, le système Bitcoin initialement développé ne permettait pas de garantir la sécurité d’une transaction entre deux terminaux sans connexion à l’ensemble de serveurs informatiques. Ce deuxième type de transactions est appelé par la suite « transaction hors-ligne » ou « off-chain transaction » en anglais. Attention, une transaction hors-ligne n'est pas nécessairement une transaction lors de laquelle aucune connexion à un réseau de transmission d'informations n'existe mais seulement une transaction réalisée sans qu'une connexion à l'ensemble de serveurs informatiques soit nécessaire. By cons, the originally developed Bitcoin system did not guarantee the security of a transaction between two terminals without connection to the set of computer servers. This second type of transaction is subsequently called "off-line transaction" or "off-chain transaction" in English. Attention, an offline transaction is not necessarily a transaction when which no connection to an information transmission network exists but only a transaction performed without a connection to the set of computer servers is necessary.
[0011] Récemment, une solution connue sous le terme de « Lightning network » a été développée pour garantir en plus la sécurité des transactions hors-lignes tout en restant compatible avec le fonctionnement des transactions en-ligne. Cette solution est décrite, par exemple, dans l’article suivant : Joseph Poon et Al : «The Bitcoin Lightning Network : Scalable off-chain Instant paiement », 14/01/2016, draft version 0.5.9.2, accessible en-ligne sur le site Internet : https://lightning. network/.  Recently, a solution known as the "Lightning network" has been developed to further guarantee the security of off-line transactions while remaining compatible with the operation of online transactions. This solution is described, for example, in the following article: Joseph Poon and Al: "The Bitcoin Lightning Network: Scalable off-chain instant payment", 14/01/2016, draft version 0.5.9.2, available on-line on the website: https: // lightning. network /.
[0012] En résumé, cette solution consiste à créer un compte commun sur lequel est transféré un montant en Bitcoin. Le montant en Bitcoin ne peut être valablement transféré de ce compte commun vers une adresse d’arrivée que si cette transaction a été signée à la fois à l’aide d’une clef privée du terminal de paiement et d’une clef privée du terminal d’encaissement. De plus, pour assurer la sécurité de cette transaction hors-ligne, un serveur informatique particulier supplémentaire, appelé « Watcher Node », est ajouté à l’ensemble de serveurs existant.  In summary, this solution is to create a common account on which is transferred an amount in Bitcoin. The amount in Bitcoin can only be validly transferred from this common account to an arrival address if this transaction has been signed at the same time by means of a private key of the payment terminal and a private key of the terminal. collection. In addition, to ensure the security of this off-line transaction, an additional private computer server, called "Watcher Node", is added to the existing set of servers.
[0013] Dans cette solution « Lightning network », un compte commun doit être créé en-ligne par les terminaux de paiement et d’encaissement. Ainsi, une transaction sécurisée hors-ligne n’est possible qu’entre un terminal de paiement et un terminal d’encaissement qui se connaissaient déjà avant d’être déconnectés de l’ensemble de serveurs. Cette solution ne marche donc pas si avant de se déconnecter de l’ensemble de serveurs, le terminal de paiement ne connaît pas le terminal d’encaissement. En effet, dans ce cas, le compte commun n’a pas pu être créé.  In this "Lightning network" solution, a common account must be created online by the payment and collection terminals. Thus, a secure off-line transaction is only possible between a payment terminal and a payment terminal that already knew each other before being disconnected from the set of servers. This solution therefore does not work if, before disconnecting from the set of servers, the payment terminal does not know the payment terminal. In this case, the common account could not be created.
[0014] L’invention vise à résoudre les inconvénients de la solution « Lightning network » en assurant la sécurité d’une transaction hors-ligne entre un terminal de paiement et un terminal d’encaissement, même si le terminal d’encaissement était inconnu avant que le terminal de paiement se déconnecte de l’ensemble de serveurs. En d’autres termes, l’invention vise à sécuriser une transaction hors-ligne entre le terminal de paiement et le terminal d’encaissement sans qu’il soit nécessaire, avant d’être déconnecté de l’ensemble de serveurs, que ces terminaux de paiement et d’encaissement aient besoin de coopérer entre eux pour réaliser certaines opérations en-ligne préparatoires à la sécurisation de la transaction hors-ligne qui sera ensuite réalisée. En particulier, la transaction hors-ligne doit être sécurisée contre la double- dépense.  The invention aims to solve the disadvantages of the "Lightning network" solution by ensuring the security of an off-line transaction between a payment terminal and a collection terminal, even if the collection terminal was unknown. before the payment terminal disconnects from the set of servers. In other words, the invention aims at securing an off-line transaction between the payment terminal and the collection terminal without it being necessary, before being disconnected from the set of servers, that these terminals Payment and collection companies need to cooperate with each other to carry out certain on-line operations preparatory to securing the off-line transaction which will then be carried out. In particular, the off-line transaction must be secure against double-spending.
[0015] De plus, comme la solution « Lightning network », la transaction réalisée hors-ligne doit rester compatible avec le fonctionnement des transactions en-ligne. En particulier, l’adresse d’arrivée vers laquelle l’objet de la transaction hors-ligne a été transféré doit ensuite pouvoir être utilisée en tant qu’adresse de départ d’une autre transaction réalisée, cette fois-ci, en-ligne.  In addition, as the "Lightning network" solution, the off-line transaction must remain compatible with the operation of online transactions. In particular, the arrival address to which the subject of the offline transaction has been transferred must then be able to be used as the starting address of another transaction made, this time, on-line. .
[0016] Elle a donc pour objet un tel système sécurisé de transactions entre terminaux conforme à la revendication 1. [0017] Les modes de réalisations de ce système peuvent comporter une ou plusieurs des caractéristiques des revendications dépendantes. It therefore relates to such a secure system of transactions between terminals according to claim 1. The embodiments of this system may include one or more of the features of the dependent claims.
[0018] L’invention a également pour objet un terminal de paiement spécialement conçu pour la réalisation du système revendiqué.  The invention also relates to a payment terminal specially designed for the realization of the claimed system.
[0019] Les modes de réalisation de ce terminal de paiement peuvent comporter une ou plusieurs des caractéristiques des revendications dépendantes.  The embodiments of this payment terminal may include one or more of the features of the dependent claims.
[0020] L’invention a également pour objet un procédé sécurisé de transactions entre terminaux destiné à être mis en œuvre dans le système revendiqué.  The invention also relates to a secure method of transactions between terminals to be implemented in the claimed system.
[0021] Enfin, l’invention a également pour objet un support d’enregistrement d’informations, lisible par un cryptoprocesseur, dans lequel ce support d'enregistrement d'informations comporte des instructions pour la mise en œuvre du procédé revendiqué, lorsque ces instructions sont exécutées par le cryptoprocesseur.  Finally, the invention also relates to an information recording medium, readable by a cryptoprocessor, wherein the information recording medium includes instructions for implementing the claimed method, when these instructions are executed by the cryptoprocessor.
[0022] L’invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif et faite en se référant aux dessins sur lesquels : The invention will be better understood on reading the description which follows, given solely by way of nonlimiting example and with reference to the drawings in which:
- la figure 1 est une illustration schématique de l’architecture d’un système sécurisé de transactions entre terminaux ;  FIG. 1 is a schematic illustration of the architecture of a secure system of transactions between terminals;
- la figure 2 est une illustration schématique d’une mémoire sécurisée d’un terminal de paiement utilisé dans le système de la figure 1 ;  FIG. 2 is a schematic illustration of a secure memory of a payment terminal used in the system of FIG. 1;
- la figure 3 est une illustration schématique d’une mémoire utilisée dans un terminal d’encaissement du système de la figure 1 ;  FIG. 3 is a schematic illustration of a memory used in a collection terminal of the system of FIG. 1;
- la figure 4 est un organigramme d’un procédé sécurisé de transactions entre terminaux mis en œuvre dans le système de la figure 1.  FIG. 4 is a flowchart of a secure method of transactions between terminals implemented in the system of FIG. 1.
[0023] Chapitre I : Définitions et notations : [0023] Chapter I: Definitions and Notations:
[0024] Dans les figures, les mêmes références sont utilisées pour désigner les mêmes éléments.  In the figures, the same references are used to designate the same elements.
[0025] Dans la suite de cette description, les caractéristiques et fonctions bien connues de l’homme du métier ne sont pas décrites en détail.  In the following description, the features and functions well known to those skilled in the art are not described in detail.
[0026] Par « paire de clefs publique/privée », on désigne une paire de clefs contenant une clef privée et une clef publique. La clef publique est différente de la clef privée. La clef publique permet de chiffrer un message numérique qui est alors uniquement déchiffrable à l’aide de la clef privée. La clef publique permet aussi de déchiffrer un cryptogramme obtenu en chiffrant un message numérique avec la clef privée. Les notions de clef publique et clef privée sont bien connues dans le domaine de la cryptographie asymétrique. Par la suite, on dit aussi que la clef privée correspond à la clef publique et vice versa lorsqu’il s’agit des clefs publique et privée d’une même paire de clefs publique/privée.  By "public / private key pair" is meant a pair of keys containing a private key and a public key. The public key is different from the private key. The public key makes it possible to encrypt a digital message which is then only decipherable using the private key. The public key also makes it possible to decrypt a cryptogram obtained by encrypting a digital message with the private key. The notions of public key and private key are well known in the field of asymmetric cryptography. Subsequently, we also say that the private key corresponds to the public key and vice versa when it comes to the public and private keys of the same pair of public / private keys.
[0027] Une liaison point-à-point d’échanges d’informations est une liaison d’échanges d’informations établie par l’intermédiaire d’un réseau de transmission d’informations entre seulement deux terminaux. [0028] On dit qu’une transaction est « hors-ligne », ou « off-chain » en anglais, lorsqu’une transaction est réalisée entre deux terminaux sans qu’il soit nécessaire pour cela qu’au moins l’un des terminaux soit connecté à l’ensemble de serveurs informatiques chargés de valider et d’enregistrer chaque transaction dans la chaîne de blocs. A point-to-point exchange of information is an information exchange link established via an information transmission network between only two terminals. It is said that a transaction is "off-line", or "off-chain" in English, when a transaction is performed between two terminals without it being necessary for that at least one of terminals is connected to the set of computer servers responsible for validating and recording each transaction in the blockchain.
[0029] Par opposition, on qualifie de transactions « en-ligne », ou « on-chain » en anglais, toute transaction qui nécessite, pour être sécurisée, une connexion à l’ensemble de serveurs informatiques. Les transactions en-ligne correspondent aux transactions les plus classiques des systèmes de transactions tel que le système Bitcoin.  In contrast, it qualifies transactions "on-line" or "on-chain" in English, any transaction that requires, to be secure, a connection to the set of computer servers. On-line transactions correspond to the most traditional transactions of transaction systems such as the Bitcoin system.
[0030] La terminologie utilisée pour décrire le système Bitcoin est celle définie dans le glossaire du développeur Bitcoin accessible à l’adresse suivante :  The terminology used to describe the Bitcoin system is that defined in the glossary of Bitcoin developer accessible at the following address:
- https://bitcoin.org/en/developer-glossary pour les termes anglais, et  - https://bitcoin.org/en/developer-glossary for English terms, and
- https://bitcoin.org/fr/vocabulaire pour les termes en français.  - https://bitcoin.org/en/vocabulary for French terms.
[0031] La description technique du fonctionnement du système Bitcoin actuel est par exemple donnée dans le guide « Bitcoin developer guide » accessible à l’adresse suivante : https://bitcoin.org/en/developer-guide. Par conséquent, en ce qui concerne les caractéristiques et fonctionnalités connues du système Bitcoin, le lecteur est renvoyé aux documentations citées ci-dessus.  The technical description of the operation of the current Bitcoin system is for example given in the guide "Bitcoin developer guide" available at the following address: https://bitcoin.org/en/developer-guide. Therefore, with regard to the known features and functionality of the Bitcoin system, the reader is referred to the documentations cited above.
[0032] Par « adresse de départ » d'une transaction, on désigne une donnée numérique qui identifie sans ambiguïté l'adresse d'arrivée d'une précédente transaction. Par exemple, dans le cas d'un système Bitcoin, l'adresse de départ est connue sous le terme de « Entrée » ( « Input » en anglais) d'une transaction. Elle correspond alors à la concaténation d'un identifiant de la précédente transaction et d'un indice d'une sortie (« Output index» en anglais) de cette précédente transaction. Dans le système Bitcoin, une adresse de départ correspond donc à l'identifiant d'une UTXO (« Unspent Transaction Output »). Attention, avec la terminologie adoptée ici, une adresse de départ n'est pas une adresse Bitcoin car une même adresse Bitcoin peut avoir plusieurs sorties. Dans le cas du système Ethereum, l'adresse de départ correspond à l'adresse d'un compte de départ.  By "starting address" of a transaction, denotes a digital data that unambiguously identifies the arrival address of a previous transaction. For example, in the case of a Bitcoin system, the starting address is known as the "Input" ("Input") of a transaction. It then corresponds to the concatenation of an identifier of the previous transaction and an index of an output ("Output index" in English) of this previous transaction. In the Bitcoin system, a start address corresponds to the identifier of a UTXO (Unspent Transaction Output). Attention, with the terminology adopted here, a starting address is not a Bitcoin address because the same Bitcoin address can have several outputs. In the case of the Ethereum system, the starting address corresponds to the address of a starting account.
[0033] Par « adresse d'arrivée » d'une transaction, on désigne une donnée numérique qui identifie sans ambiguïté l'adresse d'arrivée vers laquelle est transféré l'objet de la transaction. Dans le système Bitcoin, cela correspond à une sortie (« Output » en anglais) d'une transaction ou à une adresse Bitcoin si celle-ci ne comporte qu'une seule sortie. Dans le système Ethereum, cela correspond à l'adresse d'un compte d'arrivée.  By "arrival address" of a transaction, there is designated a numerical data that unambiguously identifies the arrival address to which is transferred the object of the transaction. In the Bitcoin system, this corresponds to an output ("Output") of a transaction or to a Bitcoin address if it has only one output. In the Ethereum system, this corresponds to the address of an arrival account.
[0034] Chapitre II : Exemples de modes de réalisation : [0034] Chapter II: Examples of embodiments:
[0035] La figure 1 représente un système sécurisé 2 de transactions entre terminaux. Le système 2 est décrit ici dans le cas particulier où l’objet de chaque transaction est une monnaie couramment appelée crypto-monnaie. Dans ce mode de réalisation, la crypto-monnaie est le Bitcoin. Par la suite, seules quelques caractéristiques conventionnelles du système Bitcoin utiles pour la compréhension sont rappelées. La description se focalise surtout sur les modifications et fonctionnalités nouvelles implémentées dans le système Bitcoin conventionnel pour permettre la réalisation de transactions sécurisée hors-ligne entre terminaux. Figure 1 shows a secure system 2 transactions between terminals. The system 2 is described here in the particular case where the object of each transaction is a currency commonly called cryptocurrency. In this embodiment, the cryptocurrency is Bitcoin. Subsequently, only a few Conventional features of the Bitcoin system useful for understanding are recalled. The description focuses primarily on the new changes and features implemented in the conventional Bitcoin system to enable secure off-line transaction between devices.
[0036] On rappelle qu’une transaction est un message numérique qui contient typiquement au moins les informations suivantes :  It is recalled that a transaction is a digital message which typically contains at least the following information:
- au moins une adresse de départ d’où provient la crypto-monnaie transférée vers la ou les adresses d’arrivée,  at least one starting address from which the cryptocurrency transferred to the address or addresses of arrival originates,
- un identifiant d’objet transféré, c’est-à-dire ici typiquement un montant de crypto monnaie transféré exprimé en Bitcoin ou en Satochis,  an object identifier transferred, that is to say here typically a transferred cryptocurrency amount expressed in Bitcoin or Satochis,
- un premier script qui, lorsqu’il est exécuté par un calculateur électronique, détermine si la transaction est valide ou non, ce premier script contenant l’adresse d’arrivée vers laquelle doit être transférée la crypto-monnaie, et  a first script which, when executed by an electronic calculator, determines whether the transaction is valid or not, this first script containing the arrival address to which the cryptocurrency is to be transferred, and
- un second script qui, lorsqu’il est exécuté par un calculateur électronique, permet de charger les informations traitées par le premier script pour déterminer si cette transaction est valide ou non.  a second script which, when executed by an electronic computer, makes it possible to load the information processed by the first script to determine whether this transaction is valid or not.
[0037] Dans le système 2, l’adresse de départ et l’adresse d’arrivée sont appelées, respectivement, entrée (« input ») et sortie (« output »). L’adresse de départ identifie sans ambiguïté l’adresse d’arrivée d’une précédente transaction enregistrée dans la chaîne de blocs, c'est-à-dire un UTXO. À cet effet, l’adresse de départ comporte un identifiant Txid de la transaction précédente et un index de sortie connu sous le terme anglais de « output index » qui identifie sans ambiguïté la transaction précédente.  In the system 2, the starting address and the arrival address are called, respectively, input ("input") and output ("output"). The start address unambiguously identifies the arrival address of a previous transaction recorded in the blockchain, ie a UTXO. For this purpose, the starting address comprises a Txid identifier of the previous transaction and an output index known as the "output index" which unambiguously identifies the previous transaction.
[0038] L’adresse d’arrivée comporte une adresse unique construite à partir d’une paire de clefs publique/privée. Par exemple, dans le système Bitcoin, la clef privée est utilisée pour générer la clef publique correspondante et la clef publique est ensuite utilisée pour générer l'adresse d'arrivée en mettant pour cela en œuvre une fonction de hachage (« hash function » en anglais).  The arrival address comprises a unique address constructed from a pair of public / private keys. For example, in the Bitcoin system, the private key is used to generate the corresponding public key and the public key is then used to generate the arrival address by implementing a hash function for this purpose. English).
[0039] Le premier script est connu sous le terme de « pubkey script » ou « scriptpubkey ». Le second script est connu sous le terme « signaturescript » ou « scriptsig ».  The first script is known as "pubkey script" or "scriptpubkey". The second script is known as "signaturescript" or "scriptsig".
[0040] Le second script contient la signature de la transaction. Cette signature est obtenue en chiffrant une empreinte numérique de la transaction avec une clef privée connue seulement du terminal de paiement qui a généré cette transaction. L’empreinte numérique est construite à partir, notamment, de l’adresse de départ et de l’adresse d’arrivée de la transaction et à l’aide d’une fonction de hachage (« hash function » en anglais). Le second script contient également la clef publique qui permet de vérifier cette signature. Dans le cas du système Bitcoin, cette clef publique est la même que celle qui a été utilisée pour générer l’adresse de départ de cette transaction.  The second script contains the signature of the transaction. This signature is obtained by encrypting a digital fingerprint of the transaction with a private key known only to the payment terminal that generated this transaction. The digital fingerprint is constructed from, in particular, the starting address and the arrival address of the transaction and using a hash function ("hash function" in English). The second script also contains the public key that verifies this signature. In the case of the Bitcoin system, this public key is the same as that used to generate the starting address of this transaction.
[0041] Lorsque le premier script est exécuté, il permet notamment de vérifier les deux conditions suivantes : - Condition 1) : l’adresse de départ correspond bien à la clef publique chargée en mémoire par l’exécution du second script, et When the first script is executed, it allows in particular to check the following two conditions: - Condition 1): the starting address corresponds to the public key loaded into memory by the execution of the second script, and
- Condition 2) : la signature chargée par l’exécution du second script est une signature valide, c’est-à-dire qu’elle a pu être vérifiée à l’aide de la clef publique également chargée par l’exécution du second script et du contenu de la transaction.  - Condition 2): the signature loaded by the execution of the second script is a valid signature, that is to say that it could be verified with the help of the public key also loaded by the execution of the second script and the contents of the transaction.
[0042] La condition 1) permet de confirmer que l’adresse de départ est une adresse de départ générée par un terminal de paiement qui contient la clef publique. La condition 2) permet de confirmer que la transaction a bien été autorisée par le terminal de paiement qui contient la clef privée qui correspond à cette clef publique. The condition 1) confirms that the starting address is a starting address generated by a payment terminal that contains the public key. Condition 2) confirms that the transaction has been authorized by the payment terminal that contains the private key that corresponds to this public key.
[0043] Le système 2 comporte : The system 2 comprises:
- un réseau 4 de transmission d’informations,  a network 4 for transmitting information,
- un ensemble 6 de serveurs informatiques connecté au réseau 4, et  a set 6 of computer servers connected to the network 4, and
- des terminaux électroniques entre lesquels sont échangés des Bitcoins.  - electronic terminals between which are exchanged Bitcoins.
[0044] Le réseau 4 est ici le réseau Internet sur lequel se déploie la toile d’araignée mondiale ou « World Wide Web ». Par l’intermédiaire de ce réseau 4, les différents serveurs de l’ensemble 6 ainsi que les différents terminaux sont connectés les uns aux autres sous la forme d’un réseau connu sous le terme de réseau pair-à- pair ou « Peer to Peer » en anglais.  The network 4 is here the Internet network on which deploys the global spider web or "World Wide Web." Through this network 4, the different servers of the set 6 as well as the different terminals are connected to each other in the form of a network known as peer-to-peer network or "Peer to Peer "in English.
[0045] L’ensemble 6 comporte typiquement des milliers de serveurs informatiques programmés pour vérifier les transactions entre terminaux et enregistrer les transactions valides dans une base de données connue sous le terme de « chaîne de blocs ». Pour simplifier la figure 1, seuls trois serveurs informatiques 10 à 12 de l’ensemble 6 ont été représentés. Le symbole « ... » entre les serveurs 11 et 12 indique que seule une partie des serveurs informatiques de l’ensemble 6 a été représentée.  The set 6 typically includes thousands of computer servers programmed to check transactions between terminals and record valid transactions in a database known as the "block chain". To simplify FIG. 1, only three computer servers 10 to 12 of the set 6 have been represented. The symbol "..." between the servers 11 and 12 indicates that only a portion of the computer servers of the set 6 has been represented.
[0046] La chaîne de blocs est répartie entre les nombreux serveurs informatiques. À cet effet, chaque serveur informatique comporte une mémoire dans laquelle est enregistrée une partie ou la totalité de la chaîne de blocs. Sur la figure 1, ces mémoires portent les références Mref, où l’indice « ref » est égal à la référence numérique attribuée au serveur informatique. The chain of blocks is distributed among the many computer servers. For this purpose, each computer server has a memory in which is recorded part or all of the block chain. In FIG. 1, these memories carry the references M ref , where the index "ref" is equal to the numerical reference assigned to the computer server.
[0047] Chaque bloc de la chaîne de blocs comporte plusieurs transactions et une empreinte numérique d’un bloc précédent de la chaîne de blocs. Avant d’enregistrer une transaction dans un bloc, le serveur informatique vérifie la validité de cette transaction en exécutant les premier et second scripts qu’elle contient. Le serveur informatique vérifie aussi que l’adresse de départ que contient cette transaction n’a pas déjà été utilisée pour une transaction précédente déjà enregistrée dans la chaîne de blocs. Cette dernière vérification rend impossible ou presque impossible la double-dépense.  Each block of the block chain comprises several transactions and a digital fingerprint of a previous block of the block chain. Before registering a transaction in a block, the computer server checks the validity of this transaction by executing the first and second scripts it contains. The computer server also verifies that the starting address contained in this transaction has not already been used for a previous transaction already registered in the blockchain. This last check makes it impossible or almost impossible to double-spend.
[0048] Pour exécuter les différentes opérations nécessaires au fonctionnement du système 2, chaque serveur informatique comporte un calculateur électronique programmé ou configuré pour exécuter le procédé décrit en référence à la figure 4. Sur la figure 1, le calculateur électronique d’un serveur informatique porte la référence CEref, où l’indice « ref » est égal à la référence numérique affecté à ce serveur informatique. To perform the various operations necessary for the operation of the system 2, each computer server comprises an electronic computer programmed or configured to perform the method described with reference to Figure 4. In Figure 1, the electronic computer of a computer server wears reference CE ref , where the index "ref" is equal to the numerical reference assigned to this computer server.
[0049] Les serveurs informatiques de l’ensemble 6 sont connus sous le terme de « mineur » ou « miner » en anglais.  The computer servers of the set 6 are known by the term "miner" or "miner" in English.
[0050] Le système 2 comporte également de nombreux terminaux susceptibles de réaliser des transactions entre eux. Typiquement, le nombre de terminaux est dix fois ou cent fois ou mille fois supérieur au nombre de serveurs informatiques de l’ensemble 6. Pour simplifier la figure 1, seuls deux terminaux 20 et 22 sont représentés.  The system 2 also includes many terminals capable of carrying out transactions between them. Typically, the number of terminals is ten times or a hundred times or a thousand times greater than the number of computer servers of the set 6. To simplify FIG. 1, only two terminals 20 and 22 are represented.
[0051] Le terminal 20 est ici un terminal de paiement. Ce terminal 20 comporte : The terminal 20 is here a payment terminal. This terminal 20 comprises:
- un microprocesseur 24 programmable, a programmable microprocessor 24,
- une mémoire électronique non volatile 26,  a non-volatile electronic memory 26,
- un cryptoprocesseur 28,  a cryptoprocessor 28,
- un émetteur/récepteur 30,  a transmitter / receiver 30,
- une interface homme-machine 32, et  a human-machine interface 32, and
- un bus 34 de transmission d’informations qui permet à ces différents composants du terminal 20 de communiquer entre eux.  - An information transmission bus 34 which allows these different components of the terminal 20 to communicate with each other.
[0052] Le cryptoprocesseur 28 peut se présenter sous la forme d’une carte à puce (« smart card » en anglais) ou d’un TPM (« Trusted Platform Module ») ou d’un module de sécurité matérielle. Le cryptoprocesseur 28 est un microprocesseur spécialement conçu pour être résistant vis-à-vis des tentatives de cryptanalyses telles que les attaques par canaux cachés. En particulier, il est plus résistant aux tentatives de cryptanalyse que le microprocesseur 24. De plus, le cryptoprocesseur 28 est configuré pour exécuter des algorithmes de chiffrement et de déchiffrement ainsi que des algorithmes de génération de paire de clefs publique/privée.  The cryptoprocessor 28 may be in the form of a smart card or a Trusted Platform Module (TPM) or a hardware security module. Cryptoprocessor 28 is a microprocessor specifically designed to be resistant to cryptanalysis attempts such as hidden channel attacks. In particular, it is more resistant to cryptanalysis attempts than the microprocessor 24. In addition, the cryptoprocessor 28 is configured to execute encryption and decryption algorithms as well as public / private key pair generation algorithms.
[0053] Le cryptoprocesseur 28 est par exemple réalisé à partir d’un FPGA (« Field-Programmable Gâte Array ») ou d’un ASIC (« Application-Specific Integrated Circuit ») ou d’un microcontrôleur programmable.  The cryptoprocessor 28 is for example made from an FPGA ("Field Programmable Gate Array") or an ASIC ("Application-Specific Integrated Circuit") or a programmable microcontroller.
[0054] Ici, le cryptoprocesseur 28 forme ce qui est connu sous le terme anglais de « Trusted Execution Environment ». Par exemple, de tels cryptoprocesseurs sont commercialisés par la société INTEL® sous le nom de « INTEL TXT » (« Intel Trusted exécution Technology ») ou par la société GEMALTO® sous l’acronyme HSM (« Hardware Security Module »).  Here, the cryptoprocessor 28 forms what is known as the "Trusted Execution Environment". For example, such cryptoprocessors are marketed by INTEL® under the name "INTEL TXT" ("Intel Trusted Execution Technology") or by GEMALTO® under the acronym HSM ("Hardware Security Module").
[0055] Le cryptoprocesseur 28 comporte une mémoire électronique non volatile sécurisée interne 36. La mémoire 36 est uniquement accessible par le cryptoprocesseur 28. Ainsi, le propriétaire du terminal 20 ne peut donc pas lire et obtenir les clés privées générées et stockées dans cette mémoire. En particulier, le microprocesseur 24 ne peut pas accéder au contenu de la mémoire 36. Cette mémoire 36 est destinée à contenir des informations secrètes telles que des clefs privées et des algorithmes cryptographiques. Elle comporte en particulier les instructions, exécutables par le cryptoprocesseur 28, pour la mise en œuvre du procédé de la figure 4. [0056] Ici, le cryptoprocesseur 28 comporte en plus un mécanisme de détection de tentative de cryptanalyse qui permet de savoir si le cryptoprocesseur 28 a fait l’objet de telles tentatives de cryptanalyse. The cryptoprocessor 28 includes an internal secure nonvolatile electronic memory 36. The memory 36 is accessible only by the cryptoprocessor 28. Thus, the owner of the terminal 20 can not read and obtain the private keys generated and stored in this memory . In particular, the microprocessor 24 can not access the contents of the memory 36. This memory 36 is intended to contain secret information such as private keys and cryptographic algorithms. It comprises in particular the instructions, executable by the cryptoprocessor 28, for the implementation of the method of FIG. 4. Here, the cryptoprocessor 28 further comprises a cryptanalysis attempt detection mechanism which makes it possible to know whether the cryptoprocessor 28 has been the subject of such cryptanalysis attempts.
[0057] L’émetteur/récepteur 30 est capable d’établir une liaison point-à-point 40 d’échange d’informations avec un autre terminal du système 2. Par exemple ici, cette liaison 40 peut être :  The transmitter / receiver 30 is capable of establishing a point-to-point connection 40 of information exchange with another terminal of the system 2. For example here, this link 40 may be:
- une liaison filaire réalisée à l’aide d’un câble tel qu’un câble USB (« Universal Serial Bus »), ou  a wired connection made using a cable such as a USB (Universal Serial Bus) cable, or
- une liaison sans fil telle qu’une liaison conforme à l’une des normes suivantes : NFC (« Near Field Communication ») ou Bluetooth.  - a wireless link such as a link complying with one of the following standards: NFC (Near Field Communication) or Bluetooth.
[0058] La liaison 40 peut être établie entre les terminaux 20 et 22 indépendamment du fait que ces terminaux soient ou non connectés en même temps au réseau 4. Par exemple, ici, il s’agit d’une liaison directe entre les terminaux 20 et 22 conforme à la norme Bluetooth.  The link 40 can be established between the terminals 20 and 22 independently of the fact that these terminals are or are not connected at the same time to the network 4. For example, here, it is a direct connection between the terminals 20 and 22 compliant with the Bluetooth standard.
[0059] L’interface homme-machine 32 comporte typiquement au moins un écran pour afficher des informations et des moyens d’acquisition d’informations de la part de l’utilisateur de cette interface homme-machine. Par exemple, l’interface homme- machine 30 comporte un écran tactile.  The man-machine interface 32 typically comprises at least one screen for displaying information and means for acquiring information from the user of this human-machine interface. For example, the human-machine interface 30 comprises a touch screen.
[0060] Le terminal 20 est aussi capable de se connecter à l’ensemble 6 de serveurs informatiques par l’intermédiaire du réseau 4. Par exemple, le terminal 20 est un smartphone ou un ordinateur fixe ou portable.  The terminal 20 is also able to connect to the set 6 of computer servers via the network 4. For example, the terminal 20 is a smartphone or a computer or laptop.
[0061] Le terminal 22 est un terminal d’encaissement. Ici, à titre d’exemple, sa structure est identique à celle du terminal 20 sauf qu’il ne comporte pas le cryptoprocesseur 28. Par la suite, les composants du terminal 22 identiques à ceux du terminal 20 portent les mêmes références numériques que celles des composants du terminal 20 mais incrémentées du chiffre 20. Ainsi, dans cet exemple de mode de réalisation, le terminal 22 est moins sécurisé que le terminal 20 puisque les opérations de chiffrement/déchiffrement et similaires sont réalisées par le microprocesseur 44 qui est moins sécurisé que le cryptoprocesseur 28.  The terminal 22 is a collection terminal. Here, by way of example, its structure is identical to that of the terminal 20 except that it does not include the cryptoprocessor 28. Subsequently, the components of the terminal 22 identical to those of the terminal 20 bear the same numerical references as those components of the terminal 20 but incremented by the number 20. Thus, in this exemplary embodiment, the terminal 22 is less secure than the terminal 20 since the encryption / decryption operations and the like are performed by the microprocessor 44 which is less secure than the cryptoprocessor 28.
[0062] Dans ce mode de réalisation, le système 2 comporte en plus un serveur informatique 60 d’informations de réputation et un serveur informatique 62 de révocation de certificats cryptographiques. Ces deux serveurs 60 et 62 sont raccordés au réseau 4. Chacun des serveurs 60 et 62 comporte :  In this embodiment, the system 2 further comprises a computer server 60 of reputation information and a computer server 62 cryptographic certificate revocation. These two servers 60 and 62 are connected to the network 4. Each of the servers 60 and 62 includes:
- un microprocesseur programmable, respectivement 64 et 66, et  a programmable microprocessor, respectively 64 and 66, and
- une mémoire électronique non volatile respectivement 68 et 70.  a non-volatile electronic memory respectively 68 and 70.
[0063] Le microprocesseur 64 est programmé pour stocker, mettre à jour et transmettre, en réponse à une requête, des informations sur la confiance (« trustworthiness » en anglais) que l'on peut avoir dans les terminaux du système 2.  The microprocessor 64 is programmed to store, update and transmit, in response to a request, information on trustworthiness ("trustworthiness" in English) that can be in the terminals of the system 2.
[0064] Le microprocesseur 66 est programmé pour stocker, mettre à jour et transmettre, en réponse à une requête, des informations sur la validité des certificats cryptographiques utilisés dans le système 2. En particulier, le microprocesseur 66 est capable de transmettre, en réponse à une requête, une liste contenant l’ensemble des certificats cryptographiques révoqués. The microprocessor 66 is programmed to store, update and transmit, in response to a request, information on the validity of the cryptographic certificates used in the system 2. In particular, the microprocessor 66 is capable of transmitting, in response to a request, a list containing all the revoked cryptographic certificates.
[0065] La figure 2 représente plus en détail le contenu de la mémoire 36. La mémoire 36 comporte :  FIG. 2 represents in more detail the contents of the memory 36. The memory 36 comprises:
- une liste LRep, a list L Rep ,
- une liste LRev, - a list L Rev ,
- un certificat cryptographique Cy20 contenant une clef publique Kpub2o, a cryptographic certificate C y20 containing a public key K pub2 o,
- une clef privée Kpr20 correspondant à la clef publique Kpub2o, a private key K pr20 corresponding to the public key K pub2 o,
- une liste Lu de données de transactions déjà utilisées. a list L u of transaction data already used.
[0066] La liste LRep comporte, associée à des identifiants de terminaux du système 2, un indice de confiance. Plus la valeur numérique de cet indice de confiance est élevée, plus le terminal associé à cet indice est considéré comme fiable. Par exemple, tous les terminaux du système 2 équipés d’un cryptoprocesseur qui n’a pas été corrompu ont un indice de confiance plus élevé que les terminaux qui, comme le terminal 22, sont dépourvus de cryptoprocesseur. À chaque fois qu’un terminal équipé d’un cryptoprocesseur est victime d’une tentative de cryptanalyse, cette information est transmise au serveur 60 et l’indice de confiance de ce terminal est diminué. L'indice de confiance d'un terminal est également diminué à chaque fois qu'il est utilisé pour frauder ou pour tenter de frauder. The list L Rep comprises, associated with terminal identifiers of the system 2, a confidence index. The higher the numerical value of this confidence index, the more reliable the terminal associated with this index is. For example, all the terminals of the system 2 equipped with a cryptoprocessor which has not been corrupted have a higher index of confidence than the terminals which, like the terminal 22, are devoid of cryptoprocessor. Whenever a terminal equipped with a cryptoprocessor is the victim of a cryptanalysis attempt, this information is transmitted to the server 60 and the index of confidence of this terminal is decreased. The confidence index of a terminal is also decreased each time it is used to defraud or to attempt to defraud.
[0067] La liste LRev comporte une liste des certificats cryptographiques révoqués. Ces certificats cryptographiques révoqués ne sont donc plus utilisables. The list L Rev includes a list of revoked cryptographic certificates. These revoked cryptographic certificates are no longer usable.
[0068] Le certificat Cy20 contient la clef publique Kpub2 et une signature obtenue en chiffrant des informations contenues dans ce certificat à l’aide de la clef privée du fabricant de microprocesseur 28. Ainsi, il est possible de vérifier que le cryptoprocesseur 28 est un cryptoprocesseur authentique fabriqué par un fabricant connu. The certificate C y20 contains the public key K pub2 and a signature obtained by encrypting the information contained in this certificate using the private key of the microprocessor manufacturer 28. Thus, it is possible to verify that the cryptoprocessor 28 is an authentic cryptoprocessor manufactured by a known manufacturer.
[0069] La liste Lu contient les données de transactions déjà utilisées pour générer et réaliser une transaction hors-lignes. Cette liste Lu est ici utilisée pour empêcher la double-dépense pour les transactions hors-lignes. The list L u contains transaction data already used to generate and perform an off-line transaction. This L u list is used here to prevent double-spending for off-line transactions.
[0070] La figure 3 représente plus en détail le contenu de la mémoire 46 du terminal 22. La mémoire 46 comporte ici notamment :  FIG. 3 represents in more detail the contents of the memory 46 of the terminal 22. The memory 46 here comprises in particular:
- la liste LRep, - the list L Rep ,
- la liste LRev, - the L Rev list,
- un certificat cryptographique Cy22 contenant une clef publique Kpub22, et a cryptographic certificate C y22 containing a public key K pub22 , and
- une clef privée Kpr22 correspondant à la clef publique Kpub22. a private key K pr22 corresponding to the public key K pub22 .
[0071] Par exemple, le certificat cryptographique Cy22 est signé à l'aide d'une clef privée du fabricant du terminal 22 ou du microprocesseur 44. For example, the cryptographic certificate C y22 is signed using a private key from the manufacturer of the terminal 22 or the microprocessor 44.
[0072] Le fonctionnement du système 2 va maintenant être décrit en référence au procédé de la figure 4. Par la suite, pour simplifier les explications, les taxes prélevées sur chaque transaction notamment par les serveurs de l’ensemble 6 sont considérées comme nulle et ignorées. Toutefois, l’homme du métier est capable d’appliquer l’enseignement donnée ci-dessus dans le cas où de telles taxes ne seraient pas nulles, comme c’est le cas en pratique actuellement. The operation of the system 2 will now be described with reference to the method of FIG. 4. Thereafter, to simplify the explanations, the taxes levied on each transaction, in particular by the servers of the set 6, are considered as zero and ignored. However, the skilled person is capable to apply the teaching given above in cases where such taxes are not zero, as is the case in practice at present.
[0073] Initialement, lors d’une étape 100, le cryptoprocesseur 28 génère une paire de clefs publique/privée contenant une clef publique Kpubi et une clef privée Kpa. Par exemple, le cryptoprocesseur 28 génère d'abord la clef Kpa de façon aléatoire ou pseudo-aléatoire ou par tout autre moyen puis il construit la clef Kpubi à partir de la clef Kpn. Ensuite, le cryptoprocesseur 28 construit, seulement à partir de la clef Kpubi, une adresse d’arrivée @i apte à recevoir des Bitcoins. Initially, during a step 100, the cryptoprocessor 28 generates a pair of public / private keys containing a public key K pubi and a private key K pa . For example, the cryptoprocessor 28 first generates the key K pa in a random or pseudo-random manner or by any other means and then it constructs the key K pubi from the key K p n. Then, the cryptoprocessor 28 builds, only from the key K pubi , an arrival address @i able to receive Bitcoins.
[0074] Lors d'une étape 101, une transaction Ti signée pour transférer X Bitcoins vers l’adresse @i est construite et transmise à l'ensemble 6. Cette transaction Ti peut être construite par un terminal tiers. La transaction Ti peut aussi être construite par le terminal 20 lui-même qui transfert alors en-ligne X Bitcoins qu'il possédait déjà vers l'adresse @i.  In a step 101, a transaction Ti signed to transfer X Bitcoins to the address @i is built and transmitted to the set 6. This transaction Ti can be built by a third party terminal. The transaction Ti can also be constructed by the terminal 20 itself, which then transfers online Bitcoins X it already had to the address @i.
[0075] Par la suite, pour simplifier la description, on suppose que la transaction Ti comporte une seule entrée et une seule sortie connue sous l’acronyme UTXO («Unspent Transaction output »).  Subsequently, to simplify the description, it is assumed that the transaction Ti has a single entry and a single output known by the acronym UTXO ("Unspent Transaction output").
[0076] Lors d’une étape 102, en réponse à la réception de la transaction Ti, les serveurs informatiques de l’ensemble 6 la vérifient en exécutant les premier et second scripts de cette transaction Ti. En particulier, les serveurs de l'ensemble 6 s’assurent que l’adresse de départ contenue dans cette transaction Ti n’a pas déjà été utilisée pour une autre transaction déjà enregistrée dans la chaîne de blocs. Si la transaction Ti est valide, alors les serveurs informatiques de l’ensemble 6 l’enregistrent dans la chaîne de blocs. Dans le cas contraire, c'est-à-dire si les serveurs informatiques déterminent que la transaction Ti n’est pas valide, celle-ci n’est pas enregistrée dans la chaîne de blocs.  In a step 102, in response to the receipt of the transaction Ti, the computer servers of the set 6 verify it by executing the first and second scripts of this transaction Ti. In particular, the servers of the set 6 ensure that the starting address contained in this transaction Ti has not already been used for another transaction already recorded in the blockchain. If the transaction Ti is valid, then the computer servers of the set 6 register it in the blockchain. Otherwise, that is, if the IT servers determine that the transaction Ti is invalid, it is not registered in the blockchain.
[0077] Lors d'une étape 104, quel que soit le terminal qui a créé la transaction Ti, le cryptoprocesseur 28 se connecte à l'ensemble 6 et vérifie que la transaction Ti a bien été enregistrée dans la chaîne de blocs de sorte que le cryptoprocesseur 28 est sûr de disposer de X Bitcoins sur l'adresse @i. Dans l'affirmative, le cryptoprocesseur 28 mémorise dans la mémoire 36 que le transfert des X Bitcoins de l'adresse @i est maintenant autorisé aussi bien en-ligne que hors-ligne. Dans le cas contraire, cette autorisation n'est pas enregistrée dans la mémoire 36 de sorte que le cryptoprocesseur 28 empêche la création de toute transaction hors-ligne ayant pour objet le transfert des X Bitcoins de l'adresse @i.  In a step 104, regardless of the terminal that created the transaction Ti, the cryptoprocessor 28 connects to the set 6 and verifies that the transaction Ti has been recorded in the blockchain so that the cryptoprocessor 28 is sure to have X bitcoins on the @i address. If so, the cryptoprocessor 28 stores in the memory 36 that the transfer of the X Bitcoins from the @i address is now allowed both on-line and off-line. Otherwise, this authorization is not stored in the memory 36 so that the cryptoprocessor 28 prevents the creation of any off-line transaction for the purpose of transferring X Bitcoins from the @i address.
[0078] Les étapes 100, 101, 102 et 104 sont réalisées, par exemple, comme décrit dans le système Bitcoin. Elles ne sont donc pas décrites plus en détail.  Steps 100, 101, 102 and 104 are performed, for example, as described in the Bitcoin system. They are therefore not described in more detail.
[0079] Lors d’une étape 106, le cryptoprocesseur 28 se connecte au serveur 60 et met à jour la liste LRep à partir des informations téléchargées depuis ce serveur 60. Lors de cette étape, le cryptoprocesseur 28 se connecte également au serveur 62 et met à jour la liste LRev à partir des informations téléchargées depuis le serveur 62. De façon similaire, le terminal 22 peut lui aussi mettre à jour les listes LRep et LRev enregistrées dans sa mémoire 46. [0080] Lors d’une étape 108, le terminal 20 se déconnecte de l’ensemble 6. Par exemple, ici, on considère que le terminal 20 est déconnecté du réseau 4. À partir de ce moment, on considère également que le terminal 22 est également déconnecté de l’ensemble 6. Par exemple, les terminaux 20 et 22 sont sur une île déserte dépourvue de moyens d'accès au réseau 4. On suppose également que, dans ces conditions, le terminal 20 souhaite transférer au terminal 22, la totalité des X Bitcoins encore disponibles à l’adresse @i par l’intermédiaire d’une transaction hors-ligne. In a step 106, the cryptoprocessor 28 connects to the server 60 and updates the list Rep Rep from the information downloaded from this server 60. In this step, the cryptoprocessor 28 also connects to the server 62 and updates the list L Rev from the information downloaded from the server 62. Similarly, the terminal 22 can also update the lists L Rep and L Rev stored in its memory 46. In a step 108, the terminal 20 disconnects from the set 6. For example, here, it is considered that the terminal 20 is disconnected from the network 4. From this moment, it is also considered that the terminal 22 is also disconnected from the set 6. For example, the terminals 20 and 22 are on a desert island without access means to the network 4. It is also assumed that, under these conditions, the terminal 20 wishes to transfer to the terminal 22 , all the X Bitcoins still available at @i via an offline transaction.
[0081] A cet effet, lors d’une étape 110, les terminaux 20 et 22 établissent la liaison 40 entre eux par l’intermédiaire des émetteur/récepteur 30 et 50. Lors de cette étape, les terminaux 20 et 22 échangent leurs certificats cryptographiques Cy20 et Cy22. Le cryptoprocesseur 28 et le terminal 22 vérifient alors si les certificats, respectivement, Cy22 et Cy20 reçus appartiennent à la liste LRev. Dans l’affirmative, c'est- à-dire si l'un des terminaux 20 et 22 détermine que le certificat reçu a été révoqué, le procédé s’arrête et, par exemple, la liaison 40 est interrompue. Aucune transaction hors-ligne entre les terminaux 20 et 22 n’est alors réalisée. For this purpose, during a step 110, the terminals 20 and 22 establish the link 40 between them via the transceiver 30 and 50. During this step, the terminals 20 and 22 exchange their certificates. cryptographic C y20 and C y22 . The cryptoprocessor 28 and the terminal 22 then check whether the certificates, respectively, C y22 and C y20 received belong to the list L Rev. If so, that is, if one of the terminals 20 and 22 determines that the received certificate has been revoked, the process stops and, for example, the link 40 is interrupted. No off-line transactions between terminals 20 and 22 are then performed.
[0082] Dans le cas contraire, c'est-à-dire s'il a été déterminé que les certificats Cy22 et Cy20 n’ont pas été révoqués alors, à partir de maintenant, tous les messages transmis du terminal 20 au terminal 22 sont chiffrés avec la clef Kpub22 et tous les messages transmis du terminal 22 vers le terminal 20 sont chiffrés avec la clef Kpub2o. De plus, à chaque fois que le terminal 20 envoie un message au terminal 22, ce message est signé avec la clef Kpr20 de sorte que le terminal 22 peut aussi vérifier l’authenticité de ce message avec la clef Kpub20 reçue. À l’inverse, les messages transmis du terminal 22 vers le terminal 20 sont aussi signés avec la clef Kpr22 de sorte que le terminal 20 peut en vérifier l’authenticité avec la clef Kpub20 reçue. Si jamais l’authenticité d’un message échangé entre les terminaux 20 et 22 ne peut pas être vérifiée, alors le procédé est interrompu et aucune transaction entre les terminaux 20 et 22 n’est réalisée. À ce stade, la liaison 40 entre les terminaux 20 et 22 est dite sécurisée car, d’une part, elle est chiffrée et d’autre part, les messages échangés sont authentifiés. Otherwise, that is to say if it has been determined that the certificates C y22 and C y20 have not been revoked then, from now on, all the messages transmitted from the terminal 20 to the terminal 22 are encrypted with the key K pub22 and all messages transmitted from the terminal 22 to the terminal 20 are encrypted with the key K pub2 o. In addition, each time the terminal 20 sends a message to the terminal 22, this message is signed with the key K pr20 so that the terminal 22 can also verify the authenticity of this message with the key K pub20 received. Conversely, the messages transmitted from the terminal 22 to the terminal 20 are also signed with the key K pr22 so that the terminal 20 can verify the authenticity with the key K pub20 received. If ever the authenticity of a message exchanged between the terminals 20 and 22 can not be verified, then the process is interrupted and no transaction between the terminals 20 and 22 is performed. At this point, the link 40 between the terminals 20 and 22 is said to be secure because, on the one hand, it is encrypted and, on the other hand, the exchanged messages are authenticated.
[0083] Lors d’une étape 112, le terminal 22 transmet son identifiant au terminal 20 et le cryptoprocesseur 28 vérifie, à l'aide de l'identifiant reçu, l’indice de confiance associé à ce terminal 22 dans la liste LRep. Si l’indice de confiance associé au terminal 22 est inférieur à un seuil prédéterminé Si, aucune transaction n’est réalisée entre les terminaux 20 et 22. Par exemple, le procédé s’arrête et la liaison 40 est interrompue. Dans le cas contraire, le procédé se poursuit par une étape 116. During a step 112, the terminal 22 transmits its identifier to the terminal 20 and the cryptoprocessor 28 verifies, using the identifier received, the confidence index associated with the terminal 22 in the list L Rep . If the confidence index associated with the terminal 22 is less than a predetermined threshold S1, no transaction is made between the terminals 20 and 22. For example, the process stops and the link 40 is interrupted. In the opposite case, the process continues with a step 116.
[0084] Par la suite, on considère que le terminal 22 est associé à un indice de confiance supérieur au seuil Si. De plus, pour simplifier les explications, on fait l'hypothèse que la totalité des X Bitcoins sont transférés du terminal 20 vers le terminal 22. A partir de maintenant, tous les échanges de messages entre les terminaux 20 et 22 se font par l’intermédiaire de la liaison sécurisée 40. [0085] Lors de l’étape 116, le cryptoprocesseur 28 acquiert par l’intermédiaire de l’interface homme-machine 32 le choix de l’utilisateur entre deux options, respectivement, « transaction anonyme » et « transaction non-anonyme ». Subsequently, it is assumed that the terminal 22 is associated with a confidence index greater than the threshold Si. Moreover, to simplify the explanations, it is assumed that all the X Bitcoins are transferred from the terminal 20 to the terminal 22. From now on, all the message exchanges between the terminals 20 and 22 are made via the secure link 40. In step 116, the cryptoprocessor 28 acquires via the man-machine interface 32 the choice of the user between two options, respectively, "anonymous transaction" and "non-anonymous transaction".
[0086] Lors d’une étape 118, le cryptoprocesseur 28 génère un nombre Nai tiré de façon aléatoire ou pseudo-aléatoire et transmet ce nombre Nai au terminal 22. De préférence, ce nombre Nai est transmis au terminal 22 par un autre moyen de communication que la liaison 40 pour éviter l'attaque connue sous le nom de « man in the middle ». Par exemple, le nombre Nai est affiché sur l'écran du terminal 20 sous la forme d'un QR-code et le terminal 22 est utilisé pour scanner ce QR-Code et ainsi acquérir le nombre Nai. Le nombre Nai est ensuite inclus dans tous les messages échangés entre les terminaux 20 et 22 par l'intermédiaire de la liaison 40. Cela permet d’éviter la mise en œuvre d’une attaque par « rejeu ». During a step 118, the cryptoprocessor 28 generates a number N i pulled randomly or pseudo-random and transmits this number N ai to the terminal 22. Preferably, this number N ai is transmitted to the terminal 22 by a other means of communication than the link 40 to avoid the attack known as "man in the middle". For example, the number N ai is displayed on the screen of the terminal 20 in the form of a QR-code and the terminal 22 is used to scan this QR-Code and thus acquire the number N ai . The number N ai is then included in all the messages exchanged between the terminals 20 and 22 via the link 40. This makes it possible to avoid the implementation of a "replay" attack.
[0087] Ensuite, lors d’une étape 120, le cryptoprocesseur 28 acquiert par l’intermédiaire de l’interface homme-machine 32 une confirmation que les X Bitcoins associés à l’adresse @i doivent être transférés au terminal 22.  Then, during a step 120, the cryptoprocessor 28 acquires via the man-machine interface 32 a confirmation that the X Bitcoins associated with the address @i must be transferred to the terminal 22.
[0088] En réponse, lors d’une étape 124, si l’utilisateur a sélectionné l’option « transaction anonyme », le cryptoprocesseur 28 compare la clef Kpa au contenu de la liste Lu. Si la clef Kpn appartient à la liste Lu le procédé s'arrête et la transaction entre les terminaux 20 et 22 n'est pas réalisée. En effet, si la clef Kpa appartient déjà à la liste Lu cela signifie que les X Bitcoins associés à l'adresse @i ont déjà été dépensés. L'interruption de la transaction dans ce cas empêche donc la double- dépense. Si la clef Kpil n'appartient pas à la liste Lu, le procédé se poursuit par une étape 126. In response, during a step 124, if the user has selected the "anonymous transaction" option, the cryptoprocessor 28 compares the key K pa to the content of the list L u . If the key K p n belongs to the list L u the process stops and the transaction between the terminals 20 and 22 is not performed. Indeed, if the key K pa already belongs to the list L u it means that the X Bitcoins associated with the address @i have already been spent. The interruption of the transaction in this case therefore prevents double-spending. If the key K pil does not belong to the list L u , the process continues with a step 126.
[0089] Lors de l'étape 126, le cryptoprocesseur 28 transmet au terminal 22 la clef Kpn, la clef Kpubi, le montant en Bitcoins transféré vers le terminal 22, et l’adresse @1. Dès lors, le terminal 22 est capable de construire une transaction signée et valide depuis l'adresse de départ l’adresse @i vers une autre adresse d'arrivée. Ainsi, les X Bitcoins associés à l’adresse @i ont été transférés du terminal 20 vers le terminal 22. De plus, dans ce cas, cette transaction est anonyme car elle ne laisse aucune trace dans la chaîne de blocs même après qu’une transaction valide de l’adresse @i vers une autre adresse @2 ait été construite par le terminal 22, puis enregistrée dans la chaîne de blocs lorsque le terminal 22 est de nouveau connecté à l'ensemble 6. In step 126, the cryptoprocessor 28 transmits to the terminal 22 the key K p n, the key K pubi , the Bitcoins amount transferred to the terminal 22, and the address @ 1. Therefore, the terminal 22 is capable of constructing a signed and valid transaction from the starting address address @i to another destination address. Thus, the X bitcoins associated with the address @ i have been transferred from the terminal 20 to the terminal 22. Moreover, in this case, this transaction is anonymous because it leaves no trace in the blockchain even after a Valid transaction from the address @i to another address @ 2 was built by the terminal 22, then registered in the blockchain when the terminal 22 is connected again to the set 6.
[0090] Ensuite, lors d’une étape 128, une fois que ces informations ont été transmises au terminal 22, le cryptoprocesseur 28 interdit la réalisation de toutes nouvelles transactions ayant pour objet le transfert des mêmes X Bitcoins que ceux transférés lors de l'étape 126. A cet effet, le cryptoprocesseur 28 enregistre dans la liste Lu un identifiant de l'objet transféré, c'est-à-dire ici des X Bitcoins transférés. Dans ce mode de réalisation, la clef Kpn, la clef KpUbi ou l'adresse @ i permet d'identifier sans ambiguïté ces X Bitcoins transférés. Ainsi, ici, le cryptoprocesseur 28 enregistre ces clefs Kpn, Kpubi et l’adresse @i dans la liste Lu contenue dans la mémoire 36. [0091] À l’issue de l’étape 120, si l’utilisateur avait sélectionné l’option « transaction non-anonyme », lors d’une étape 130, le terminal 22 obtient une paire de clefs publique/privée KpUb2/Kpr2 et une adresse @2 construite à partir de la clef Kpub2. Par exemple, ici, le terminal 22 génère et enregistre ces données comme décrit en référence à l'étape 100. Then, during a step 128, once this information has been transmitted to the terminal 22, the cryptoprocessor 28 prohibits the realization of any new transactions for the purpose of transferring the same X Bitcoins that those transferred during the step 126. For this purpose, the cryptoprocessor 28 records in the list L u an identifier of the transferred object, that is to say here transferred X Bitcoins. In this embodiment, the key K p n, the key K pU bi or the address @ i unambiguously identify these transferred X Bitcoins. Thus, here, the cryptoprocessor 28 records these keys K p n, K pubi and the address @i in the list L u contained in the memory 36. At the end of step 120, if the user had selected the "non-anonymous transaction" option, during a step 130, the terminal 22 obtains a pair of public / private keys K pUb 2 / Kp r2 and an address @ 2 constructed from the key K pub2 . For example, here, the terminal 22 generates and stores these data as described with reference to step 100.
[0092] A la fin de l'étape 130, l’adresse @2 est alors transmise au terminal 20. At the end of step 130, the @ 2 address is then transmitted to the terminal 20.
[0093] En réponse à la réception de l’adresse @2, lors d’une étape 132, le cryptoprocesseur 28 compare les clefs Kpri, Kpubi et l'adresse @i au contenu de la liste Lu. Si l'une des clefs Kpn, Kpubi et de l'adresse @i appartient à la liste Lu, le procédé s'arrête et la transaction entre les terminaux 20 et 22 n'est pas réalisée. En effet, comme déjà expliqué en regard de l'étape 124, cela signifie que les X Bitcoins associés à l'adresse @i ont déjà été dépensés. L'interruption de la transaction dans ce cas empêche donc la double-dépense. Si les clefs Kpn, Kpubi et l'adresse @i n'appartiennent pas à la liste Lu, le procédé se poursuit par une étape 136. In response to the reception of the address @ 2 , during a step 132, the cryptoprocessor 28 compares the keys K pri , K pubi and the address @i to the content of the list L u . If one of the keys K p n, K pubi and the address @i belongs to the list L u , the process stops and the transaction between the terminals 20 and 22 is not performed. Indeed, as already explained next to step 124, this means that the X Bitcoins associated with the address @i have already been spent. The interruption of the transaction in this case therefore prevents double-spending. If the keys K p n, K pubi and the address @i do not belong to the list L u , the process continues with a step 136.
[0094] Lors de l'étape 136, le cryptoprocesseur 28 construit une transaction T2 ayant comme adresse de départ l’adresse @i et comme adresse d’arrivée l’adresse @2 et un montant de X Bitcoins. Cette transaction est construite de la même façon que pour une transaction conventionnelle en-ligne. En particulier, elle est signée avec la clef Kpn. In step 136, the cryptoprocessor 28 builds a transaction T 2 having as the starting address address @i and as address of arrival the address @ 2 and an amount of X Bitcoins. This transaction is built in the same way as for a conventional online transaction. In particular, it is signed with the key K p n.
[0095] A la fin de l'étape 136, le cryptoprocesseur 28 transmet la transaction T2 au terminal 22. At the end of step 136, the cryptoprocessor 28 transmits the transaction T 2 to the terminal 22.
[0096] Lors d’une étape 138, une fois que la transaction T2 a été transmise au terminal 22, le cryptoprocesseur 28 interdit la réalisation de toutes nouvelles transactions ayant pour objet le transfert des mêmes X Bitcoins que ceux transférés lors de l'étape 136. A cet effet, le cryptoprocesseur 28 procède comme décrit en référence à l'étape 128. Ainsi, l’adresse @i, les clefs Kpn et Kpubi et le montant transféré sont enregistrés dans la liste Lu de la mémoire 36. In a step 138, once the transaction T 2 has been transmitted to the terminal 22, the cryptoprocessor 28 prohibits the realization of any new transactions for the purpose of transferring the same X bitcoins that those transferred at the time. step 136. For this purpose, the cryptoprocessor 28 proceeds as described with reference to step 128. Thus, the address @i , the keys K p n and K pubi and the amount transferred are recorded in the list L u of the memory 36.
[0097] Une fois que la transaction a été réalisée entre les terminaux 20 et 22, lors d'une étape 150, la liaison 40 est interrompue. Typiquement, lors de l'étape 150, les terminaux 20 et 22 affichent chacun un message sur les écrans, respectivement, des interfaces homme-machine 32 et 52 pour indiquer aux utilisateurs de ces terminaux que la transaction a correctement été réalisée et que celle-ci est maintenant terminée.  Once the transaction has been made between the terminals 20 and 22, during a step 150, the link 40 is interrupted. Typically, in step 150, the terminals 20 and 22 each display a message on the screens, respectively, of the man-machine interfaces 32 and 52 to indicate to the users of these terminals that the transaction has been correctly performed and that the This is now over.
[0098] Par la suite, dans le cas où l’option « transaction anonyme » avait été sélectionnée, lors d’une étape 152, le terminal 22 construit une transaction T3 depuis l’adresse @i vers une autre adresse @3 . La transaction T3 est signée avec la clef Kpn reçue lors de l'étape 126. Ensuite, lorsque le terminal 22 se connecte à nouveau à l'ensemble 6 de serveurs, il transmet la transaction T3 aux serveurs informatiques de l’ensemble 6 pour qu’elle soit enregistrée dans la chaîne de blocs. Le terminal 22 peut construire une telle transaction valide car il est en possession de la clef Kpn. Subsequently, in the case where the option "anonymous transaction" had been selected, in a step 152, the terminal 22 builds a transaction T 3 from the address @i to another address @ 3 . The transaction T 3 is signed with the key K p n received during the step 126. Then, when the terminal 22 connects again to the set 6 of servers, it transmits the transaction T 3 to the computer servers of the together 6 to be registered in the blockchain. The terminal 22 can build such a valid transaction because it is in possession of the key K p n.
[0099] Dans le cas où l’option « transaction non-anonyme » avait été sélectionnée, lors d’une étape 154, le terminal 22 se connecte aux serveurs informatiques de l’ensemble 6 et leur transmet la transaction T2 reçue lors de l'étape 136. La transaction T2 est alors vérifiée par ces serveurs informatiques puis enregistrée dans la chaîne de blocs. In the case where the option "non-anonymous transaction" had been selected, during a step 154, the terminal 22 connects to the servers 6 and informs them of the transaction T 2 received during step 136. The transaction T 2 is then verified by these computer servers and then recorded in the blockchain.
[00100] En parallèle, après l'étape 150, à chaque fois que le terminal 20 souhaite réaliser une nouvelle transaction hors-ligne ou en-ligne avec un terminal d'encaissement, lors d'une étape 156, le cryptoprocesseur 28 vérifie si les Bitcoins que l'utilisateur souhaite dépenser ne correspondent pas à ceux déjà dépensés lors de la transaction hors-lignes. Par exemple, pour cela, avant de construire chaque nouvelle transaction, le cryptoprocesseur 28 procède d'abord comme décrit aux étapes 124 et 132. Ensuite, seulement si l'adresse de départ et les clefs publique/privée utilisées pour construire cette nouvelle transaction ne se trouvent pas déjà dans la liste Lu, alors cette nouvelle transaction est autorisée. In parallel, after step 150, each time the terminal 20 wishes to perform a new transaction offline or online with a collection terminal, in a step 156, the cryptoprocessor 28 checks if the Bitcoins that the user wants to spend do not match those already spent on the off-line transaction. For example, for this, before building each new transaction, the cryptoprocessor 28 proceeds first as described in steps 124 and 132. Then, only if the starting address and public / private keys used to build this new transaction are not already in the list L u , so this new transaction is allowed.
[00101] Chapitre III : Variantes :  [00101] Chapter III: Variants:
[00102] Variantes de la structure du système sécurisé de transactions :  [00102] Variations of the structure of the secure transaction system:
[00103] En variante, le cryptoprocesseur 28 n’est pas intégré à l’intérieur du terminal 20 mais relié à ce terminal 20 par l’intermédiaire d’une liaison d’échange d’informations. Dans ce cas, le cryptoprocesseur 28 peut être situé à plusieurs dizaines de centimètres ou dizaines de mètres ou centaines de mètres du terminal 20.  Alternatively, the cryptoprocessor 28 is not integrated within the terminal 20 but connected to the terminal 20 via an information exchange link. In this case, the cryptoprocessor 28 may be located several tens of centimeters or tens of meters or hundreds of meters from the terminal 20.
[00104] Le certificat Cy22 du terminal 22 peut être signé par le terminal 22 et non pas par un fabricant connu du terminal 22 ou du microprocesseur 44. The certificate C y22 of the terminal 22 may be signed by the terminal 22 and not by a known manufacturer of the terminal 22 or the microprocessor 44.
[00105] Le terminal 22 peut lui aussi comporter un cryptoprocesseur tel que le cryptoprocesseur 28. Dans ce cas, les étapes décrites précédemment sont réalisées par le cryptoprocesseur du terminal 22 plutôt que par le microprocesseur 44.  The terminal 22 may also include a cryptoprocessor such as the cryptoprocessor 28. In this case, the steps described above are performed by the cryptoprocessor of the terminal 22 rather than by the microprocessor 44.
[00106] De préférence, le terminal 22 vérifie l’indice de confiance du terminal 20 et/ou le certificat Cy20 transmis par ce terminal 20. Dans le cas où l'indice de confiance du terminal 20 serait inférieur au seuil Si ou dans le cas où le certificat Cy20 serait révoqué, le terminal 22 peut interrompre le procédé de la figure 4 de sorte que la transaction entre les terminaux 20 et 22 n’est pas réalisée. Par exemple, pour cela, le cryptoprocesseur du terminal 22 réalise les mêmes opérations que celles décrites aux étapes 110 et 112 dans le cas particulier du cryptoprocesseur 28. De plus, si le terminal 22 est équipé d'un cryptoprocesseur il peut aussi être utilisé en tant que terminal de paiement. Par exemple, il est programmé pour être capable de fonctionner comme le terminal 20. Dans ce cas, il peut à son tour réaliser une transaction hors-ligne en utilisant comme moyen de paiement les X Bitcoins qu'il a précédemment reçu du terminal 20. A cet effet, dans le cas d'une transaction anonyme, il transmet hors-ligne la clef Kpn, qu'il a précédemment reçue du terminal 20, vers un autre terminal d'encaissement. Dans le cas d'une transaction non- anonyme, le terminal 22 peut générer une autre transaction signée avec cette clé Kpn associée à l’adresse @i encore non utilisée. Preferably, the terminal 22 verifies the confidence index of the terminal 20 and / or the certificate C y20 transmitted by this terminal 20. In the case where the confidence index of the terminal 20 is lower than the threshold Si or in the the case where the certificate C y20 would be revoked, the terminal 22 can interrupt the process of Figure 4 so that the transaction between the terminals 20 and 22 is not performed. For example, for this, the cryptoprocessor of the terminal 22 performs the same operations as those described in steps 110 and 112 in the particular case of the cryptoprocessor 28. Moreover, if the terminal 22 is equipped with a cryptoprocessor it can also be used in as a payment terminal. For example, it is programmed to be able to function as the terminal 20. In this case, it can in turn perform an off-line transaction using as a means of payment the X Bitcoins it has previously received from the terminal 20. For this purpose, in the case of an anonymous transaction, it transmits offline the key K p n, which it has previously received from the terminal 20, to another collection terminal. In the case of a non-anonymous transaction, the terminal 22 can generate another signed transaction with this key K p n associated with the address @i still not used.
[00107] Le terminal de paiement 20 n’est pas obligé de vérifier que le certificat du terminal d’encaissement 22 n’est pas révoqué. [00108] Le terminal de paiement 20 n’est pas obligé de vérifier l’indice de confiance du terminal 22. The payment terminal 20 is not obliged to verify that the certificate of the collection terminal 22 is not revoked. The payment terminal 20 is not obliged to check the confidence index of the terminal 22.
[00109] La mémoire 36 peut être remplacée par une mémoire volatile sécurisée, par exemple, du type INTEL® SGK. Dans ce cas, le niveau de sécurité est moindre mais reste quand même acceptable. En effet, en cas de coupure de l'alimentation de la mémoire 36, la liste Lu, la clef Kpa et la clef Kpubi sont effacées. Dès lors, le terminal 20 est dans l'incapacité de construire une nouvelle transaction signée utilisant comme adresse de départ l'adresse @i car la clef Kpn a été effacée. Ainsi, la perte de la liste Lu suite à une coupure d'alimentation ne remet pas en cause complètement la sécurité du système de transactions. The memory 36 may be replaced by a secure volatile memory, for example, of the INTEL® SGK type. In this case, the security level is lower but still acceptable. Indeed, in the event of a power failure of the memory 36, the list L u , the key K pa and the key K pubi are erased. Therefore, the terminal 20 is unable to build a new signed transaction using the address @i as the starting address because the key K p has been erased. Thus, the loss of the list L u following a power failure does not completely question the security of the transaction system.
[00110] De façon similaire, la mémoire 46 peut être remplacée par une mémoire volatile.  [00110] Similarly, the memory 46 may be replaced by a volatile memory.
[00111] Le serveur 60 peut être omis. Dans ce cas, l’étape 112 est également omise.  The server 60 can be omitted. In this case, step 112 is also omitted.
[00112] Le serveur 62 peut être omis. Dans ce cas, l’étape 110 est omise.  The server 62 may be omitted. In this case, step 110 is omitted.
[00113] Dans une variante simplifiée, la signature des messages échangés entre les terminaux 20 et 22 est omise.  In a simplified variant, the signature of the messages exchanged between the terminals 20 and 22 is omitted.
[00114] Les messages échangés entre les terminaux 20 et 22 par l’intermédiaire de la liaison 40 peuvent être protégés par d’autres procédés de chiffrement comme, par exemple, un chiffrement symétrique au lieu d’un chiffrement asymétrique comme précédemment décrit.  The messages exchanged between the terminals 20 and 22 via the link 40 may be protected by other encryption methods such as, for example, symmetric encryption instead of asymmetric encryption as previously described.
[00115] Les messages échangés entre les terminaux 20 et 22 peuvent également comporter des informations additionnelles telle qu’une date courante, un prix, des informations sur un produit acheté ou autres.  The messages exchanged between the terminals 20 and 22 may also include additional information such as a current date, a price, information on a purchased product or others.
[00116] Dans un mode de réalisation simplifié, les messages échangés entre les terminaux 20 et 22 par l’intermédiaire de la liaison 40 ne sont pas chiffrés. L'absence de chiffrement de la liaison 40 est surtout envisageable lorsque c'est la transaction T2 qui est transmise du terminal 20 au terminal 22. In a simplified embodiment, the messages exchanged between the terminals 20 and 22 via the link 40 are not encrypted. The absence of encryption of the link 40 is especially conceivable when the transaction T 2 is transmitted from the terminal 20 to the terminal 22.
[00117] En variante, la liaison 40 n'est pas une liaison point-à-point mais une liaison point-à-multipoints. Par exemple, la liaison 40 est alors établies conformément au standard WIFI ou autre.  Alternatively, the link 40 is not a point-to-point link but a point-to-multipoint link. For example, the link 40 is then established according to WIFI or other standard.
[00118] La liaison 40 peut aussi être établie par l’intermédiaire d’un réseau grande distance de transmission d’informations comme le réseau 4. Dans ce cas, les terminaux 20 et 22 n’ont pas besoin d’être situés à proximité l’un de l’autre pour mettre en œuvre le procédé décrit en référence à la figure 4.  The link 40 can also be established via a long-distance information transmission network such as the network 4. In this case, the terminals 20 and 22 do not need to be located in the vicinity. from each other to implement the method described with reference to Figure 4.
[00119] Le terminal d'encaissement ou le terminal d'encaissement peut être composé de plusieurs parties mécaniquement indépendantes les unes des autres et raccordées les unes aux autres par l'intermédiaire de liaisons d'échanges d'information. Par exemple, seul l'émetteur/récepteur 50 est situé à proximité du terminal 20. Les autres composants du terminal 22 sont déportés à plusieurs mètres ou plusieurs dizaines de mètres de distance de l'émetteur/récepteur 50.  The collection terminal or the collection terminal may be composed of several mechanically independent parts of each other and connected to each other via information exchange links. For example, only the transmitter / receiver 50 is located near the terminal 20. The other components of the terminal 22 are deported several meters or several tens of meters away from the transceiver 50.
[00120] Variantes du procédé : [00121] En variante, initialement, les étapes 100 à 104 sont réitérées plusieurs fois pour transférer des Bitcoins sur plusieurs adresses d’arrivée différentes. Dès lors, le cryptoprocesseur 28 peut construire hors-ligne : [00120] Variants of the process: [00121] Alternatively, initially, steps 100 to 104 are repeated several times to transfer Bitcoins to several different arrival addresses. From then on, the cryptoprocessor 28 can build off-line:
- une transaction entre plusieurs de ces adresses d’arrivée et l’adresse @2 fournie par le terminal 22 lors de l'étape 136, ou a transaction between several of these arrival addresses and the address @ 2 provided by the terminal 22 during the step 136, or
- transmettre les clefs publique/privée et les adresses associées au terminal 20 lors de l’étape 126.  transmit the public / private keys and the addresses associated with the terminal 20 during the step 126.
[00122] Dans une autre variante, lors de l’étape 102, la transaction Ti construite a plusieurs sorties et donc plusieurs adresses d'arrivée. Dans ce cas, lors de l’étape 136, le cryptoprocesseur 28 peut construire une transaction T2 ayant une seule ou plusieurs adresses de départ identifiant chacune une adresse d'arrivée respective de cette transaction Ti et l’adresse d’arrivée @2 fournie par le terminal 22. Dans ce mode de réalisation, les adresses de départ utilisées par la transaction T2 sont enregistrées dans la liste Lu et une nouvelle utilisation de la clé Kpn est interdite seulement si cette nouvelle utilisation consiste à construire une nouvelle transaction entre au moins une des adresses de départs déjà utilisées et une nouvelle adresse d'arrivée. In another variant, during step 102, the transaction Ti constructed has several outputs and therefore several arrival addresses. In this case, during step 136, the cryptoprocessor 28 can construct a transaction T 2 having a single or several starting addresses each identifying a respective arrival address of this transaction Ti and the arrival address @ 2 provided by the terminal 22. In this embodiment, the starting addresses used by the transaction T 2 are registered in the list L u and a new use of the key K p n is prohibited only if this new use consists in constructing a new transaction between at least one of the departure addresses already used and a new arrival address.
[00123] Lorsque la transaction Ti a plusieurs adresses d'arrivée @„ il est aussi possible d'associer à chacune de ces adresses d'arrivée une clé privée Kpri respectives. Dans ce cas, le transfert de la clé privée Kpri du terminal 20 vers le terminal 22 permet de transférer, de façon anonyme, le montant en Bitcoins associé à l'adresse correspondant à la clé Kpri. Ce qui a été décrit précédemment pour empêcher la double-dépense dans le cas du transfert de la clé Kpn s'applique au transfert de chacune des clés Kpri. When the transaction Ti has several arrival addresses @ "it is also possible to associate with each of these arrival addresses a private key K pri respective. In this case, the transfer of the private key K pri from the terminal 20 to the terminal 22 makes it possible to transfer, anonymously, the amount in Bitcoins associated with the address corresponding to the key K pri . What has been previously described to prevent double-spending in the case of the transfer of the key K p n applies to the transfer of each key K pri .
[00124] Lors de l'étape 136, le cryptoprocesseur 28 peut également construire une transaction T2 qui a plusieurs adresses d'arrivée. Par exemple, si l'adresse @i de départ est associée à X Bitcoins et que la transaction T2 doit seulement transférer X-In step 136, the cryptoprocessor 28 can also build a transaction T 2 which has several addresses of arrival. For example, if the starting @i address is associated with X Bitcoins and the transaction T 2 only needs to transfer X-
Y Bitcoins au terminal 22, alors le cryptoprocesseur 28 construit une transaction T2 qui transfert X-Y Bitcoins depuis l'adresse @i vers l'adresse d'arrivée @2 et qui transfert Y Bitcoins depuis l'adresse @i vers l'adresse d'arrivée @i. Lorsque cette transaction T2 sera enregistrée ultérieurement dans la chaîne de blocs, les montants associés aux adresses @i et @2 dans la chaîne de blocs deviendront, respectivement, Y et X-Y Bitcoins. Par exemple, tant que cette transaction T2 n'a pas été enregistrée dans la chaîne de blocs et vérifiée par le cryptoprocesseur 28 lors d'une nouvelle itération de l'étape 104, les Y Bitcoins associés à l'adresse @i ne peuvent pas être dépensés hors-ligne car la transaction T2 correspondante n’a pas encore été vérifiée. Toutefois, en variante, si le terminal d'encaissement est prêt à accepter le risque que le terminal de paiement ne se reconnecte jamais à l'ensemble 6 et donc que la transaction T2 ne soit jamais enregistrée dans la chaîne de blocs, lesY Bitcoins to the terminal 22, then the cryptoprocessor 28 builds a transaction T 2 which transfers XY Bitcoins from the address @i to the address of arrival @ 2 and which transfers Y Bitcoins from the address @i to the address d arrival @i. When this transaction T 2 is subsequently stored in the blockchain, the amounts associated with addresses @i and @ 2 in the blockchain will become, respectively, Y and XY Bitcoins. For example, as long as this transaction T 2 has not been registered in the blockchain and verified by the cryptoprocessor 28 during a new iteration of the step 104, the Y Bitcoins associated with the address @i can not not be spent offline because the corresponding T 2 transaction has not been verified yet. However, alternatively, if the collection terminal is ready to accept the risk that the payment terminal will never reconnect to the set 6 and therefore the transaction T 2 is never recorded in the blockchain, the
Y Bitcoins associés à l'adresse @i peuvent être dépensés hors-ligne. Les Y Bitcoins peuvent aussi être transférés vers une adresse @4 associé à une clé privée Kpr4 générée au préalable par le terminal 20. Dans ce dernier cas, les Y Bitcoins associés à l'adresse @4 peuvent être transférés hors-ligne à un autre terminal d'encaissement par l'intermédiaire d'une transaction anonyme comme précédemment décrit si le terminal d'encaissement est prêt à accepter le risque que le terminal de paiement ne se reconnecte jamais à l'ensemble 6 et donc que la transaction T2 ne soit jamais enregistrée dans la chaîne de blocs. Si le terminal de paiement ne se reconnecte pas, les Y Bitcoins restant seront aussi perdus pour le propriétaire du terminal de paiement. La double-dépense est bien interdite y compris dans ce cas. Y Bitcoins associated with the @i address can be spent offline. The Y Bitcoins can also be transferred to an address @ 4 associated with a private key K pr4 generated in advance by the terminal 20. In this latter case, the Y Bitcoins associated with the address @ 4 can be transferred offline to a other collection terminal through an anonymous transaction as previously described if the collection terminal is willing to accept the risk that the payment terminal will never reconnect to the set 6 and therefore the transaction T 2 is never recorded in the chain of blocks. If the payment terminal does not reconnect, the remaining Y Bitcoins will also be lost to the payment terminal owner. Double-spending is prohibited even in this case.
[00125] La transmission initiale d’une clef publique Kpub2o peut aussi être réalisée par d’autres moyens que par l’intermédiaire de la liaison 40. Par exemple, le terminal 20 affiche sur son écran un QR-code contenant la clef Kpub2o et le nombre Nai. Le terminal 22 scanne alors ce QR-code pour acquérir ces données. The initial transmission of a public key K pub2 o can also be achieved by other means than through the link 40. For example, the terminal 20 displays on its screen a QR-code containing the key K pub2 o and the number N ai . The terminal 22 then scans this QR-code to acquire these data.
[00126] Le nombre Nai peut aussi être transmis par téléphone. Par exemple, le nombre Nai est affiché sur l'écran du terminal 20. Ensuite, l'utilisateur du terminal 20 appelle l'utilisateur du terminal 22 et lui communique par téléphone le numéro affiché sur l'écran du terminal 20. En réponse, pour que la transaction hors-ligne soit réalisée, l'utilisateur du terminal 22 saisit dans le terminal 22 le nombre Nai qui lui a été communiqué verbalement. Dans ce dernier cas, les terminaux 20 et 22 n'ont pas besoin d'être à proximité l'un de l'autre pour réaliser une transaction hors-ligne. Il est aussi possible de transmettre le nombre Nai par SMS (« Small Message Service») ou autres. The number N ai can also be transmitted by telephone. For example, the number N ai is displayed on the screen of the terminal 20. Next, the user of the terminal 20 calls the user of the terminal 22 and communicates by telephone the number displayed on the screen of the terminal 20. In response in order for the off-line transaction to be performed, the user of the terminal 22 enters in the terminal 22 the number N ai that has been communicated to him verbally. In the latter case, the terminals 20 and 22 do not need to be close to each other to perform an off-line transaction. It is also possible to transmit the number N ai by SMS ("Small Message Service") or others.
[00127] L’étape 118 peut être omise. Dans ce cas, les messages échangés entre les terminaux 20 et 22 ne comportent pas le nombre Nai. [00127] Step 118 may be omitted. In this case, the messages exchanged between the terminals 20 and 22 do not include the number N ai .
[00128] L'étape 126 peut être simplifiée. Par exemple, lors de cette étape, seule la clef Kpn est transmise au terminal 22. Puis, à partir de la clef Kpn reçue, le terminal 22 génère la clef publique Kpubi et l'adresse @i. En effet, dans le système Bitcoin, les algorithmes de génération, à partir d'une clef privée, de la clef publique correspondante et de l'adresse Bitcoin sont des algorithmes publiques connus de tous les terminaux. En particulier, il n'est pas absolument nécessaire de transférer, en plus de la clé Kpn, le montant transféré de Bitcoins. [00128] Step 126 can be simplified. For example, during this step, only the key K p n is transmitted to the terminal 22. Then, from the key K p n received, the terminal 22 generates the public key K pubi and the address @i. Indeed, in the Bitcoin system, the generation algorithms, from a private key, the corresponding public key and Bitcoin address are public algorithms known to all terminals. In particular, it is not absolutely necessary to transfer, in addition to the key K p n, the amount transferred from Bitcoins.
[00129] Pour identifier les X Bitcoins transférés, d'autres informations que celles précédemment décrites peuvent être enregistrées dans la liste Lu. Par exemple, selon une première variante, seule la clé Kpn ou la clé Kpubi ou l'adresse @i est enregistrée dans la liste Lu. Selon une seconde variante, l'identifiant des X Bitcoins transférés est obtenu en appliquant une transformation bijective à au moins l'un des éléments choisis dans le groupe composé de la clé Kpn, la clé Kpubi et l'adresse @i. Dans le cas d'une transaction non-anonyme, la transaction T2 peut être enregistrée dans la liste Lu. A l'inverse, il est aussi possible d'enregistrer dans la liste Lu moins d'éléments que ce qui a été décrit précédemment. Par exemple, en variante, le montant de la transaction n'est pas enregistré dans la liste Lu. Ainsi, il existe de nombreux modes de réalisation possibles des étapes 128 et 138. Les étapes, telles que les étapes 124, 132 et 156 de vérification, doivent être adaptées au mode de réalisation implémenté des étapes 128 et 138. [00130] En variante, les adresses d'arrivée, comme les adresses @i et @2, peuvent être générées uniquement à partir de la clef privée de la paire de clefs publique/privée ou uniquement à partir de la clef publique de cette paire ou à la fois à partir de la clef privée et de la clef publique de cette paire. [00129] To identify transferred X Bitcoins, other information than that previously described may be recorded in the list L u . For example, according to a first variant, only the key K p n or the key K pubi or the address @i is stored in the list L u . According to a second variant, the identifier of the transferred X Bitcoins is obtained by applying a bijective transformation to at least one of the elements selected from the group consisting of the key K p n, the key K pubi and the address @i. In the case of a non-anonymous transaction, the transaction T 2 can be registered in the list L u . On the other hand, it is also possible to save in the list L u less elements than what has been described previously. For example, alternatively, the amount of the transaction is not recorded in the list L u . Thus, there are many possible embodiments of steps 128 and 138. The steps, such as verification steps 124, 132, and 156, must be adapted to the implemented embodiment of steps 128 and 138. In a variant, the arrival addresses, such as the @i and @ 2 addresses, can be generated solely from the private key of the public / private key pair or only from the public key of this pair. or at the same time from the private key and the public key of this pair.
[00131] Le terminal 22 peut générer les clefs Kpub2 et Kpr2 et l'adresse @2 avant l'étape 130. Par exemple, les clefs Kpub2 et Kpr2 et l'adresse @2 sont générées avant que le terminal 22 se déconnecte de l'ensemble 6 de serveur ou avant que la liaison 40 soit établie. Dans ce cas, l'étape 130 consiste simplement à obtenir, depuis la mémoire 46, les clefs Kpub2 et Kpr2 et l'adresse @2 précédemment générées. The terminal 22 can generate the keys K pub2 and K pr2 and the address @ 2 before step 130. For example, the keys K pub2 and K pr2 and the address @ 2 are generated before the terminal 22 disconnects from the server set 6 or before the link 40 is established. In this case, the step 130 consists simply of obtaining, from the memory 46, the keys K pub2 and K pr2 and the address @ 2 previously generated.
[00132] L’étape 154 peut être déclenchée automatiquement dès que le terminal 22 se connecte pour la première fois aux serveurs informatiques de l’ensemble 6 après l’achèvement de l’étape 138.  The step 154 can be triggered automatically as soon as the terminal 22 connects for the first time to the computer servers of the set 6 after the completion of step 138.
[00133] Dans une autre variante, la transaction T2 construite par le terminal 20 est aussi enregistrée dans la mémoire 36. Ensuite, dès que le terminal 20 se connecte à un serveur informatique de l’ensemble 6, le cryptoprocesseur 28 transmet automatiquement lui aussi cette transaction T2 à cet ensemble 6 de serveurs informatiques. On notera que cela ne pose aucun problème de transmettre deux fois la même transaction T2 à l’ensemble 6 de serveurs informatiques. En effet, seule la transaction T2 reçue en premier sera alors enregistrée dans la chaîne de blocs et toutes les copies de cette transaction T2 reçues ultérieurement seront ignorées. In another variant, the transaction T 2 built by the terminal 20 is also stored in the memory 36. Then, as soon as the terminal 20 connects to a computer server of the set 6, the cryptoprocessor 28 automatically transmits it. also this transaction T 2 to this set 6 of computer servers. It should be noted that it is not a problem to transmit the same transaction T 2 twice to the set 6 of computer servers. Indeed, only the transaction T 2 received first will then be recorded in the block chain and all copies of this transaction T 2 received later will be ignored.
[00134] En variante, une transaction hors-ligne peut aussi être réalisée entre les terminaux 20 et 22 même si, au même instant, ces terminaux sont connectés ou ont la possibilité de se connecter à l'ensemble 6 de serveurs. Par exemple, dans ce cas, lors de l'étape 116, l'utilisateur a le choix entre trois options : Alternatively, an off-line transaction can also be performed between the terminals 20 and 22 even if, at the same time, these terminals are connected or have the opportunity to connect to the set of 6 servers. For example, in this case, during step 116, the user has the choice between three options:
- réaliser une transaction hors-ligne « anonyme » comme précédemment décrit, - perform an "anonymous" off-line transaction as previously described,
- réaliser une transaction hors-ligne « non-anonyme » comme précédemment décrit, et perform a "non-anonymous" off-line transaction as previously described, and
- réaliser une transaction en-ligne de façon conventionnelle.  - perform an online transaction in a conventional way.
[00135] Dans une autre variante, l’option « transaction anonyme » est omise. Dans ce cas, les étapes 116, 124, 126, 128 et 152 sont omises. À l’inverse, l’option « transaction non-anonyme » peut être omise. Dans ce cas, les étapes 116, 130 à 138 et 154 sont omises.  [00135] In another variant, the "anonymous transaction" option is omitted. In this case, steps 116, 124, 126, 128 and 152 are omitted. Conversely, the option "non-anonymous transaction" can be omitted. In this case, steps 116, 130 to 138 and 154 are omitted.
[00136] Pour libérer de l'espace dans la mémoire 36, les clefs Kpri, Kpubi et l'adresse @i peuvent être effacées, par exemple, lorsque le cryptoprocesseur 28 constate que la transaction T2 a été enregistrée dans la chaîne de blocs. A partir de ce moment là, le cryptoprocesseur 28 peut aussi effacer les clefs Kpn, Kpubi et l'adresse @i et/ou la transaction T2 de la liste Lu. To free up space in the memory 36, the keys K pri , K pubi and the address @i can be erased, for example, when the cryptoprocessor 28 finds that the transaction T 2 has been recorded in the chain blocks. From this moment on, the cryptoprocessor 28 can also erase the keys K p n, K pubi and the address @i and / or the transaction T 2 of the list L u .
[00137] Les modes de réalisation précédents ont été décrits dans le cas particulier d’un système conforme aux spécifications du système Bitcoin. Toutefois, l’enseignement donné ici peut être transposé sans difficulté à tout système de transactions entre terminaux utilisant une chaîne de blocs de manière similaire à ce qui est décrit dans le cas du système Bitcoin. En particulier, ce qui a été décrit ici s’applique à tout système de transactions utilisant une chaîne de blocs dans laquelle sont enregistrées les transactions, les transactions ayant chacune une adresse de départ et une adresse d’arrivée et un identifiant d’objet transféré entre ces adresses. Par exemple, on connaît le système de transfert de la crypto-monnaie connue sous le terme de « Ether ». Ce système est appelé par la suite système « Ethereum ». Les principes de fonctionnement du système Ethereum sont proches de ceux mis en œuvre dans le système Bitcoin. Ainsi, ce qui a été décrit ici peut aussi être implémenté dans le système Ethereum. Dans le système Ethereum, les adresses d'arrivée et de départ sont des adresses de comptes qui peuvent être crédités ou débités. Le montant d'Ethers disponible sur un compte est égal à la différence entre les entrées et les sorties d’Ethers sur ce compte. Dans le système Ethereum, pour empêcher la double-dépense, chaque transaction comporte un numéro d'ordre. Il n'est pas possible d'enregistrer dans la chaîne de blocs deux transactions depuis une même adresse de départ et ayant chacune le même numéro d'ordre. De plus, une transaction est invalide si le montant à débiter sur un compte est supérieur au montant disponible sur ce compte. Dans le système Ethereum, l'objet transféré est identifié, par exemple, par la combinaison de l'adresse de départ et du montant transféré et, éventuellement, du montant disponible après le transfert. C'est donc ces données qui sont enregistrées dans la liste Lu du terminal de paiement une fois que la transaction hors-ligne entre les terminaux a été réalisée. De préférence, le numéro d'ordre de la transaction hors-ligne réalisée est également enregistré dans la mémoire 36. Le montant transféré est utile pour vérifier, même dans le cas de transactions hors-lignes, que le cumul des transactions réalisées ne dépasse pas le montant d'Ether disponible sur le compte. Ensuite, pour empêcher la double- dépense, la transmission de la transaction T2 au terminal 22 est autorisée uniquement si le montant disponible à cette adresse de départ est supérieur ou égal au montant transféré par cette transaction T2, le montant disponible à l'adresse de départ étant obtenu à partir de la liste Lu. Pour cela, par exemple, la transaction T2 est d'abord construite et la vérification qu'elle ne conduit pas à dépenser plus que le montant disponible est réalisée après. En particulier, on notera que dans le système Ethereum la même clé privée Kpa peut être utilisée pour signer plusieurs transactions valides à partir de la même adresse @i de départ à partir du moment où : The previous embodiments have been described in the particular case of a system complying with the specifications of the Bitcoin system. However, the teaching given here can be transposed without difficulty to any transaction system between terminals using a chain of blocks in a manner similar to that described in the case of the Bitcoin system. In particular, what has been described here applies to any transaction system using a blockchain in which transactions are recorded, transactions each having a start address and an arrival address and an object identifier transferred between these addresses. For example, we know the cryptocurrency transfer system known as the "Ether". This system is subsequently called "Ethereum" system. The operating principles of the Ethereum system are similar to those implemented in the Bitcoin system. Thus, what has been described here can also be implemented in the Ethereum system. In the Ethereum system, the arrival and departure addresses are account addresses that can be credited or debited. The amount of Ethers available on an account is equal to the difference between the inputs and outputs of Ethers on this account. In the Ethereum system, to prevent double-spending, each transaction has a serial number. It is not possible to register in the block chain two transactions from the same starting address and each with the same order number. In addition, a transaction is invalid if the amount to be debited to an account is greater than the amount available on that account. In the Ethereum system, the transferred object is identified, for example, by the combination of the starting address and the amount transferred and possibly the amount available after the transfer. It is therefore these data which are recorded in the list L u of the payment terminal once the off-line transaction between the terminals has been completed. Preferably, the order number of the off-line transaction carried out is also recorded in the memory 36. The amount transferred is useful for verifying, even in the case of off-line transactions, that the cumulative amount of the transactions carried out does not exceed the amount of Ether available on the account. Then, to prevent double-spending, the transmission of the transaction T 2 to the terminal 22 is authorized only if the amount available at this starting address is greater than or equal to the amount transferred by this transaction T 2 , the amount available to the customer. starting address being obtained from the list L u . For this, for example, the transaction T 2 is first constructed and the verification that it does not lead to spend more than the available amount is performed after. In particular, it will be noted that in the Ethereum system the same private key K pa can be used to sign several valid transactions from the same starting address @i from the moment when:
- les numéros de transactions affectés à chacune de ces transactions ne sont pas identiques, et que  - the transaction numbers assigned to each of these transactions are not identical, and
- le montant cumulé de ces transactions ne dépasse pas le montant disponible sur le compte identifié par l'adresse @i.  - the cumulative amount of these transactions does not exceed the amount available on the account identified by the address @i.
C’est pourquoi lorsque l’option anonyme est choisie dans le cas d’Ethereum, il est utile de transférer non seulement la clé privée mais aussi le numéro de transaction et le montant disponible afin de les enregistrer dans le terminal de paiement pour pouvoir réaliser des transactions hors-lignes après réception.  This is why when the anonymous option is chosen in the case of Ethereum, it is useful to transfer not only the private key but also the transaction number and the amount available to save them in the payment terminal to be able to realize off-line transactions after receipt.
[00138] Jusqu’à présent, les systèmes sécurisés de transactions ont été décrits dans le cas particulier où l’objet de la transaction est de la crypto-monnaie. Toutefois, ce qui a été décrit fonctionne quel que soit l’objet de la transaction. Par exemple, l’identifiant d’une somme en crypto-monnaie décrit jusqu’à présent peut être remplacé par l’identifiant d’un titre de propriété sur un bien matériel ou immatériel tel qu’un brevet ou l’identifiant d’un contrat ou l’identifiant de tout autre objet pouvant faire l’objet d’une transaction entre deux terminaux. So far, secure transaction systems have been described in the particular case where the object of the transaction is cryptocurrency. However, what has been described works regardless of the purpose of the transaction. For example, the identifier of a cryptocurrency amount described up to now may be replaced by the identifier of a title deed on a tangible or intangible good such as a patent or the identifier of a contract or the identifier of any other object that may be the subject of a transaction between two terminals.
[00139] Chapitre IV : Avantages des modes de réalisation décrits ici :  [00139] Chapter IV: Advantages of the embodiments described here:
[00140] Le système 2 permet de sécuriser une transaction hors-ligne réalisée entre les terminaux 20 et 22 sans qu’il soit nécessaire pour cela que l’identité ou une adresse d’arrivée du terminal 22 soit connue avant que les terminaux 20 et 22 se déconnectent de l’ensemble 6 de serveurs.  [00140] The system 2 makes it possible to secure an off-line transaction made between the terminals 20 and 22 without the need for the identity or an arrival address of the terminal 22 to be known before the terminals 20 and 22. 22 are disconnected from the set of servers.
[00141] Ce système 2 permet aussi bien de réaliser des transactions en-lignes que hors-lignes, sans qu’il soit pour cela nécessaire de modifier les procédés exécutés par l’ensemble 6 de serveurs. En d’autres termes, ce système 2 conserve les avantages des systèmes existants. En particulier, les transactions hors-lignes sont aussi sécurisées que les transactions en-lignes et la double-dépense est rendue impossible. On notera aussi que le système fonctionne même si le terminal d’encaissement est dépourvu de cryptoprocesseur et cela sans remettre en cause la sécurité des transactions réalisées entre les terminaux 20 et 22.  This system 2 allows both in-line transactions that off-line, without it being necessary to change the processes executed by the set of 6 servers. In other words, this system 2 retains the advantages of existing systems. In particular, off-line transactions are as secure as in-line transactions and double-spending is made impossible. Note also that the system works even if the POS terminal is devoid of cryptoprocessor and this without compromising the security of transactions between terminals 20 and 22.
[00142] Le fait de transférer la clé privée Kpa et, si nécessaire l'adresse @i, permet de réaliser une transaction anonyme entre les terminaux 20 et 22 et cela tout en restant compatible avec le système Bitcoin actuel. [00142] The fact of transferring the private key K pa and, if necessary the address @i, allows an anonymous transaction between the terminals 20 and 22 and this while remaining compatible with the current Bitcoin system.
[00143] Le fait de chiffrer les messages échangés entre les terminaux 20 et 22 par l’intermédiaire de la liaison 40 augmente la sécurité du système.  The fact of encrypting the messages exchanged between the terminals 20 and 22 via the link 40 increases the security of the system.
[00144] Le fait de signer les messages échangés entre les terminaux 20 et 22 augmente également la sécurité du système.  [00144] The fact of signing the messages exchanged between the terminals 20 and 22 also increases the security of the system.

Claims

REVENDICATIONS
1. Système sécurisé de transactions entre terminaux, ce système comportant : 1. Secure system for transactions between terminals, this system comprising:
- un ensemble (6) de serveurs programmés pour vérifier et, après vérification, enregistrer des transactions dans une chaîne de blocs, chaque bloc comportant plusieurs transactions et une empreinte numérique d'un bloc précédent dans la chaîne de blocs, chaque transaction étant un message numérique qui contient au moins les informations suivantes :  a set of servers programmed to check and, after verification, record transactions in a blockchain, each block comprising several transactions and a thumbprint of a previous block in the blockchain, each transaction being a message which contains at least the following information:
• au moins une adresse d'arrivée de cette transaction, cette adresse d'arrivée ayant été construite à partir d'une paire de clefs publique/privée contenant une clef privée et une clef publique correspondant à cette clef privée,  At least one arrival address of this transaction, this arrival address having been constructed from a pair of public / private keys containing a private key and a public key corresponding to this private key,
• au moins une adresse de départ qui identifie sans ambiguïté une adresse d'arrivée d'une transaction précédemment enregistrée dans la chaîne de blocs, At least one start address which unambiguously identifies an arrival address of a transaction previously stored in the blockchain,
• un identifiant d'objet transféré depuis l'adresse de départ vers l'adresse d'arrivée, • an object identifier transferred from the starting address to the arrival address,
• une signature numérique de la transaction obtenue en signant au moins les adresses de départ et d'arrivée avec la clef privée, cette signature permettant à l'ensemble de serveurs de vérifier que cette transaction a bien été générée par un terminal ayant accès à cette clef privée,  A digital signature of the transaction obtained by signing at least the start and end addresses with the private key, this signature enabling the set of servers to verify that this transaction has been generated by a terminal having access to this private key,
- un terminal (20) de paiement apte à communiquer avec l'ensemble de serveurs, ce terminal de paiement étant équipé :  a payment terminal (20) able to communicate with the set of servers, this payment terminal being equipped with:
• d'un cryptoprocesseur (28), ce cryptoprocesseur comportant une mémoire sécurisée (36) uniquement accessible par le cryptoprocesseur,  A cryptoprocessor (28), this cryptoprocessor comprising a secure memory (36) accessible only by the cryptoprocessor,
• d'un émetteur/récepteur (30) apte à établir une liaison d'échange d'informations avec un autre terminal,  A transmitter / receiver (30) capable of establishing an information exchange link with another terminal,
- un terminal (22) d'encaissement apte à communiquer avec l'ensemble de serveurs, ce terminal d'encaissement étant équipé :  a collection terminal (22) able to communicate with the set of servers, this payment terminal being equipped with:
• d'un microprocesseur (44),  A microprocessor (44),
• d'une mémoire (46), et  A memory (46), and
• d'un émetteur/récepteur (50) apte à établir une liaison d'échange d'informations avec un autre terminal,  A transmitter / receiver (50) able to establish an information exchange link with another terminal,
- l'ensemble (6) de serveurs est apte à enregistrer une première transaction contenant une première adresse d'arrivée et un premier identifiant d'objet transféré vers cette première adresse d'arrivée,  the set (6) of servers is able to record a first transaction containing a first arrival address and a first object identifier transferred to this first arrival address,
- la mémoire sécurisée (36) comporte une première paire de clefs publique/privée à partir de laquelle la première adresse d'arrivée a été générée, cette première paire de clefs publique/privée comportant :  the secure memory (36) comprises a first pair of public / private keys from which the first arrival address has been generated, this first pair of public / private keys comprising:
• une première clef privée qui est la seule à pouvoir valablement signer une seconde transaction ayant une adresse de départ qui identifie sans ambiguïté la première adresse d'arrivée, et  A first private key which is the only one to validly sign a second transaction having a starting address which unambiguously identifies the first address of arrival, and
• une première clef publique correspondant à la première clef privée, - le terminal (22) d'encaissement est apte à obtenir et à enregistrer dans sa mémoire (46), une seconde adresse d'arrivée et une seconde paire de clefs publique/privée à partir de laquelle la seconde adresse d'arrivée a été générée, cette seconde paire de clefs publique/privée comportant une seconde clef privée et une seconde clef publique correspondant à cette seconde clef privée, A first public key corresponding to the first private key, the collection terminal (22) is capable of obtaining and storing in its memory (46) a second arrival address and a second pair of public / private keys from which the second arrival address has been generated, this second pair of public / private keys having a second private key and a second public key corresponding to this second private key,
- le cryptoprocesseur (28) est apte, en réponse à la réception de la seconde adresse d'arrivée, à construire la seconde transaction, signée avec la première clef privée, entre une adresse de départ identifiant sans ambiguïté la première adresse d'arrivée et cette seconde adresse d'arrivée,  the cryptoprocessor (28) is able, in response to the reception of the second arrival address, to construct the second transaction, signed with the first private key, between a start address unambiguously identifying the first destination address and this second address of arrival,
- les terminaux (20, 22) de paiement et d'encaissement sont aptes à transmettre toutes transactions construites ou reçues à l'ensemble (6) de serveurs lorsqu'ils sont connectés à cet ensemble de serveurs,  the payment and collection terminals (20, 22) are capable of transmitting any transactions that are built or received to the set (6) of servers when they are connected to this set of servers,
- l'ensemble (6) de serveurs est apte, en réponse à la réception de toute transaction : the set (6) of servers is fit, in response to the receipt of any transaction:
• à vérifier la validité de cette transaction reçue à l'aide de la signature qu'elle contient, • to verify the validity of this received transaction with the signature it contains,
• à vérifier l'absence de double-dépense en vérifiant qu'il n'existe pas une transaction du même objet depuis la même adresse de départ déjà enregistrée dans la chaîne de blocs, et  • to verify the absence of double-spending by checking that there is not a transaction of the same object from the same starting address already registered in the blockchain, and
• seulement si ces vérifications confirment la validité de la transaction reçue et l'absence de double-dépense, à enregistrer la transaction reçue dans la chaîne de blocs,  • only if these verifications confirm the validity of the transaction received and the absence of double-spending, to record the transaction received in the blockchain,
- même en absence de connexion avec l'ensemble de serveurs, les terminaux (20, 22) de paiement et d'encaissement sont aptes à établir, par l'intermédiaire de leurs émetteurs/récepteurs respectifs, une liaison (40) d'échange d'informations entre eux, caractérisé en ce que, même en absence de connexion avec l'ensemble de serveurs, le cryptoprocesseur (28) est apte :  even if there is no connection with the set of servers, the payment and collection terminals (20, 22) are able to establish, via their respective transmitters / receivers, an exchange link (40). information between them, characterized in that even if there is no connection with the set of servers, the cryptoprocessor (28) is capable of:
- à transmettre au terminal (22) d'encaissement, par l'intermédiaire de la liaison d'échange d'informations, la première clef privée ou la seconde transaction signée construite par le cryptoprocesseur, puis  to transmit to the collection terminal (22), via the information exchange link, the first private key or the second signed transaction constructed by the cryptoprocessor, and then
- à enregistrer, dans la mémoire sécurisée, un second identifiant de l'objet transféré par la seconde transaction propre à empêcher tout nouveau transfert du même objet à partir de la première adresse d'arrivée, et ensuite  - To record, in the secure memory, a second identifier of the object transferred by the second transaction to prevent any new transfer of the same object from the first arrival address, and then
- lorsqu'une nouvelle transaction est construite par le cryptoprocesseur, à comparer l'identifiant de l'objet transféré par cette nouvelle transaction au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, et  when a new transaction is constructed by the cryptoprocessor, comparing the identifier of the object transferred by this new transaction to the second identifier of the transferred object stored in the secure memory, and
- seulement dans le cas où l'identifiant de l'objet transféré par cette nouvelle transaction correspond au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, à interdire la transmission de cette nouvelle transaction vers le terminal d'encaissement.  - Only in the case where the identifier of the object transferred by this new transaction corresponds to the second identifier of the transferred object stored in the secure memory, to prohibit the transmission of this new transaction to the collection terminal.
2. Système selon la revendication 1, dans lequel : - le microprocesseur du terminal d'encaissement est un cryptoprocesseur, ce cryptoprocesseur comportant une mémoire sécurisée uniquement accessible par le cryptoprocesseur, The system of claim 1, wherein: the microprocessor of the collection terminal is a cryptoprocessor, this cryptoprocessor comprising a secure memory accessible only by the cryptoprocessor,
- la mémoire du terminal d'encaissement est la mémoire sécurisée du cryptoprocesseur du terminal d'encaissement.  the memory of the collection terminal is the secure memory of the cryptoprocessor of the collection terminal.
3. Système selon la revendication 1 ou 2, dans lequel l'ensemble de serveurs est apte à vérifier l'absence de double-dépense en vérifiant seulement que l'adresse de départ de la transaction reçue n'est pas égale à une adresse de départ déjà enregistrée dans la chaîne de blocs. 3. System according to claim 1 or 2, wherein the set of servers is able to verify the absence of double-spending by verifying only that the starting address of the received transaction is not equal to an address of already saved in the blockchain.
4. Terminal (20) de paiement pour la réalisation d'un système conforme à l'une quelconque des revendications 1 à 3, dans lequel le terminal (20) de paiement est apte à communiquer avec l'ensemble de serveurs, ce terminal de paiement étant équipé : 4. Terminal (20) payment for the realization of a system according to any one of claims 1 to 3, wherein the terminal (20) payment is able to communicate with the set of servers, this terminal of payment being equipped:
• d'un cryptoprocesseur (28), ce cryptoprocesseur comportant une mémoire sécurisée (36) uniquement accessible par le cryptoprocesseur,  A cryptoprocessor (28), this cryptoprocessor comprising a secure memory (36) accessible only by the cryptoprocessor,
• d'un émetteur/récepteur (30) apte à établir une liaison d'échange d'informations avec un autre terminal,  A transmitter / receiver (30) capable of establishing an information exchange link with another terminal,
- la mémoire sécurisée (36) est apte à comporter une première paire de clefs publique/privée à partir de laquelle la première adresse d'arrivée a été générée, cette première paire de clefs publique/privée comportant :  the secure memory (36) is able to include a first pair of public / private keys from which the first arrival address has been generated, this first pair of public / private keys comprising:
• une première clef privée qui est la seule à pouvoir valablement signer une seconde transaction ayant une adresse de départ qui identifie sans ambiguïté la première adresse d'arrivée, et  A first private key which is the only one to validly sign a second transaction having a starting address which unambiguously identifies the first address of arrival, and
• une première clef publique correspondant à la première clef privée,  A first public key corresponding to the first private key,
- le cryptoprocesseur (28) est apte, en réponse à la réception de la seconde adresse d'arrivée, à construire la seconde transaction, signée avec la première clef privée, entre une adresse de départ identifiant sans ambiguïté la première adresse d'arrivée et cette seconde adresse d'arrivée,  the cryptoprocessor (28) is able, in response to the reception of the second arrival address, to construct the second transaction, signed with the first private key, between a start address unambiguously identifying the first destination address and this second address of arrival,
- le terminal (20) de paiement est apte à transmettre toutes transactions construites à l'ensemble (6) de serveurs lorsqu'il est connecté à cet ensemble de serveurs,  the payment terminal (20) is able to transmit all transactions built to the set (6) of servers when it is connected to this set of servers,
- même en absence de connexion avec l'ensemble de serveurs, le terminal (20) de paiement est apte à établir, par l'intermédiaire de son émetteur/récepteur, une liaison (40) d'échange d'informations avec le terminal (22) d'encaissement,  even if there is no connection with the set of servers, the payment terminal (20) is able to establish, via its transmitter / receiver, an information exchange link (40) with the terminal ( 22) cashing,
caractérisé en ce que, même en absence de connexion avec l'ensemble de serveurs, le cryptoprocesseur (28) est apte : characterized in that even if there is no connection with the set of servers, the cryptoprocessor (28) is capable of:
- à transmettre au terminal (22) d'encaissement, par l'intermédiaire de la liaison (40) d'échange d'informations, la première clef privée ou la seconde transaction signée construite par le cryptoprocesseur, puis - à enregistrer, dans le mémoire sécurisée (36), un second identifiant de l'objet transféré par la seconde transaction propre à empêcher tout nouveau transfert du même objet à partir de la première adresse d'arrivée, et ensuite to transmit to the collection terminal (22), via the information exchange link (40), the first private key or the second signed transaction constructed by the cryptoprocessor, and then - To record, in the secure memory (36), a second identifier of the object transferred by the second transaction to prevent any further transfer of the same object from the first arrival address, and then
- lorsqu'une nouvelle transaction est construite par le cryptoprocesseur (28), à comparer l'identifiant de l'objet transféré par cette nouvelle transaction au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, et  when a new transaction is constructed by the cryptoprocessor (28), comparing the identifier of the object transferred by this new transaction to the second identifier of the transferred object stored in the secure memory, and
- seulement dans le cas où l'identifiant de l'objet transféré par cette nouvelle transaction correspond au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, à interdire la transmission de cette nouvelle transaction vers le terminal d'encaissement.  - Only in the case where the identifier of the object transferred by this new transaction corresponds to the second identifier of the transferred object stored in the secure memory, to prohibit the transmission of this new transaction to the collection terminal.
5. Terminal selon la revendication 4, dans lequel le cryptoprocesseur (28) est apte à transmettre au terminal (22) d'encaissement, par l'intermédiaire de la liaison (40) d'échange d'informations, la première clef privée. 5. Terminal according to claim 4, wherein the cryptoprocessor (28) is adapted to transmit to the terminal (22) encashment, through the link (40) exchange of information, the first private key.
6. Terminal selon l'une quelconque des revendications 4 à 5, dans lequel le terminal de paiement est apte à chiffrer la transmission, par l'intermédiaire de la liaison d'échange d'informations, de la première clef privée ou de la seconde transaction signée. 6. Terminal according to any one of claims 4 to 5, wherein the payment terminal is able to encrypt the transmission, through the exchange of information exchange, the first private key or the second signed transaction.
7. Terminal selon l'une quelconque des revendications 4 à 6, dans lequel le terminal de paiement est apte à signer la transmission, par l'intermédiaire de la liaison d'échange d'informations, de la première clef privée ou de la seconde transaction signée. 7. Terminal according to any one of claims 4 to 6, wherein the payment terminal is adapted to sign the transmission, via the exchange of information exchange, the first private key or the second signed transaction.
8. Terminal selon l'une quelconque des revendications 4 à 7, dans lequel le cryptoprocesseur (28) est apte : Terminal according to any one of claims 4 to 7, wherein the cryptoprocessor (28) is capable of:
- en absence de connexion avec l'ensemble de serveurs, à construire et à enregistrer dans sa mémoire sécurisée la première transaction, puis  - in the absence of connection with the set of servers, to build and save in its secure memory the first transaction, then
- après la transmission de la première clef privée ou de la seconde transaction signée, en réponse à une connexion avec l'ensemble de serveurs, à transmettre automatiquement la première transaction enregistrée à l'ensemble de serveurs.  - After the transmission of the first private key or the second signed transaction, in response to a connection with the set of servers, to automatically transmit the first transaction recorded to the set of servers.
9. Terminal selon l'une quelconque des revendications 4 à 8, dans lequel la mémoire sécurisée est une mémoire non-volatile. 9. Terminal according to any one of claims 4 to 8, wherein the secure memory is a non-volatile memory.
10. Procédé sécurisé de transactions entre terminaux destiné à être mis en œuvre dans un système conforme à l'une quelconque des revendications 1 à 3, dans lequel :A secure transaction method between terminals for implementation in a system according to any one of claims 1 to 3, wherein:
- l'ensemble de serveurs enregistre (104) une première transaction contenant une première adresse d'arrivée et un premier identifiant d'objet transféré vers cette première adresse d'arrivée, - le cryptoprocesseur du terminal de paiement enregistre (102) dans sa mémoire sécurisée une première paire de clefs publique/privée à partir de laquelle la première adresse d'arrivée a été générée, cette première paire de clefs publique/privée comportant : the set of servers records (104) a first transaction containing a first arrival address and a first object identifier transferred to this first arrival address, the cryptoprocessor of the payment terminal stores (102) in its secure memory a first pair of public / private keys from which the first arrival address has been generated, this first pair of public / private keys comprising:
• une première clef privée qui est la seule à pouvoir valablement signer une seconde transaction ayant une adresse de départ qui identifie sans ambiguïté la première adresse d'arrivée, et  A first private key which is the only one to validly sign a second transaction having a starting address which unambiguously identifies the first address of arrival, and
• une première clef publique correspondant à la première clef privée,  A first public key corresponding to the first private key,
- le terminal d'encaissement obtient et enregistre (130) dans sa mémoire, une seconde adresse d'arrivée et une seconde paire de clefs publique/privée à partir de laquelle la seconde adresse d'arrivée a été générée, cette seconde paire de clefs publique/privée comportant une seconde clef privée et une seconde clef publique correspondant à cette seconde clef privée,  the collection terminal obtains and records (130) in its memory, a second arrival address and a second pair of public / private keys from which the second arrival address has been generated, this second pair of keys public / private with a second private key and a second public key corresponding to this second private key,
- en absence de connexion avec l'ensemble de serveurs, les terminaux (20, 22) de paiement et d'encaissement établissent (110), par l'intermédiaire de leurs émetteurs/récepteurs respectifs, une liaison d'échange d'informations entre eux, caractérisé en ce que, même en absence de connexion avec l'ensemble de serveurs,  in the absence of connection with the set of servers, the payment and collection terminals (20, 22) establish (110), via their respective transmitters / receivers, an information exchange link between them, characterized in that, even in the absence of connection with the set of servers,
- le cryptoprocesseur transmet (126, 136) au terminal d'encaissement, par l'intermédiaire de la liaison d'échange d'informations, la première clef privée ou la seconde transaction signée construite par le cryptoprocesseur, puis the cryptoprocessor transmits (126, 136) to the collection terminal, via the information exchange link, the first private key or the second signed transaction constructed by the cryptoprocessor, then
- le cryptoprocesseur enregistre (128, 138), dans la mémoire sécurisée, un second identifiant de l'objet transféré par la seconde transaction propre à empêcher tout nouveau transfert du même objet à partir de la première adresse d'arrivée, et ensuite the cryptoprocessor registers (128, 138), in the secure memory, a second identifier of the object transferred by the second transaction able to prevent any new transfer of the same object from the first arrival address, and then
- lorsqu'une nouvelle transaction est construite par le cryptoprocesseur, le cryptoprocesseur compare (124, 132, 156) l'identifiant de l'objet transféré par cette nouvelle transaction au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, et when a new transaction is constructed by the cryptoprocessor, the cryptoprocessor compares (124, 132, 156) the identifier of the object transferred by this new transaction to the second identifier of the transferred object stored in the secure memory, and
- seulement dans le cas où l'identifiant de l'objet transféré par cette nouvelle transaction correspond au second identifiant de l'objet transféré enregistré dans la mémoire sécurisée, le cryptoprocesseur interdit (124, 132, 156) la transmission de cette nouvelle transaction vers le terminal d'encaissement.  - only in the case where the identifier of the object transferred by this new transaction corresponds to the second identifier of the transferred object stored in the secure memory, the cryptoprocessor prohibited (124, 132, 156) the transmission of this new transaction to the collection terminal.
11. Support (36) d'enregistrement d'informations, lisible par un cryptoprocesseur, caractérisé en ce que ce support d'enregistrement d'informations comporte des instructions pour la mise en œuvre d'un procédé conforme à la revendication 10 lorsque ces instructions sont exécutées par le cryptoprocesseur. 11. Information storage medium (36), readable by a cryptoprocessor, characterized in that said information recording medium comprises instructions for carrying out a method according to claim 10 when said instructions are executed by the cryptoprocessor.
PCT/FR2019/050086 2018-01-25 2019-01-16 Secure system for transactions between terminals WO2019145620A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP19705552.8A EP3743871A1 (en) 2018-01-25 2019-01-16 Secure system for transactions between terminals

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1850570 2018-01-25
FR1850570A FR3077151B1 (en) 2018-01-25 2018-01-25 SECURE SYSTEM FOR TRANSACTIONS BETWEEN TERMINALS

Publications (1)

Publication Number Publication Date
WO2019145620A1 true WO2019145620A1 (en) 2019-08-01

Family

ID=62528542

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2019/050086 WO2019145620A1 (en) 2018-01-25 2019-01-16 Secure system for transactions between terminals

Country Status (3)

Country Link
EP (1) EP3743871A1 (en)
FR (1) FR3077151B1 (en)
WO (1) WO2019145620A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2953076A1 (en) * 2014-06-04 2015-12-09 MONI Limited System and method for executing financial transactions
EP2953075A1 (en) 2014-06-05 2015-12-09 Siemens Product Lifecycle Management Software Inc. Asynchronous design data exchange with external users
WO2017145008A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2953076A1 (en) * 2014-06-04 2015-12-09 MONI Limited System and method for executing financial transactions
EP2953075A1 (en) 2014-06-05 2015-12-09 Siemens Product Lifecycle Management Software Inc. Asynchronous design data exchange with external users
WO2017145008A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Blockchain: Blueprint for a New Economy", 8 February 2015, O'REILLY, ISBN: 978-1-4919-2049-7, article MELANIE SWAN: "Blockchain: Blueprint for a New Economy", XP055279098 *
"Mastering bitcoin : [unlocking digital cryptocurrencies]", 20 December 2014, O'REILLY MEDIA, Beijing Cambridge Farnham Köln Sebastopol Tokyo, ISBN: 978-1-4493-7404-4, article ANDREAS M. ANTONOPOULOS: "Mastering Bitcoin - Unlocking Digital Cryptocurrencies", XP055306939 *
ANDREAS M. ANTONOPOULOS: "Mastering Bitcoin - Unlocking Digital Cryptocurrencies", 20 December 2014, O'REILLY MEDIA
EBERHARDT JACOB ET AL: "On or Off the Blockchain? Insights on Off-Chaining Computation and Data", 1 September 2017, MEDICAL IMAGE COMPUTING AND COMPUTER-ASSISTED INTERVENTION - MICCAI 2015 : 18TH INTERNATIONAL CONFERENCE, MUNICH, GERMANY, OCTOBER 5-9, 2015; PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CH, ISBN: 978-3-642-38287-1, ISSN: 0302-9743, XP047446752 *
MELANIE SWAN: "Blockchain : Blueprint for a New Economy", 8 February 2015, O'REILLY

Also Published As

Publication number Publication date
EP3743871A1 (en) 2020-12-02
FR3077151A1 (en) 2019-07-26
FR3077151B1 (en) 2022-06-24

Similar Documents

Publication Publication Date Title
EP3568794B1 (en) Methods and systems for executing programs in secure environments
EP3152860B1 (en) Method for the authentication of a first electronic entity by a second electronic entity, and electronic entity implementing such a method
EP3238474B1 (en) Method for securing contactless transactions
EP2619941B1 (en) Method, server and system for authentication of a person
FR2906661A1 (en) METHOD FOR PROVIDING AUTHENTICATION PARAMETERS AND SOFTWARE IMAGES IN SECURE NETWORK ENVIRONMENTS
EP2820795A1 (en) Method for verifying the identity of a user of a communicating terminal and associated system
FR3066666A1 (en) METHOD FOR SECURING COMMUNICATION WITHOUT STATE MANAGEMENT
EP2509025A1 (en) Method for access to a protected resource of a trusted personal device
EP2568406B1 (en) Implementation method, from a terminal, of cryptographic data for a user stored in a database
WO2020064890A1 (en) Method for processing a transaction, device, system and corresponding program
EP3991381B1 (en) Method and system for generating encryption keys for transaction or connection data
EP1514377A1 (en) Interface method and device for the on-line exchange of contents data in a secure manner
EP1794926A1 (en) Public key cryptographic method and system, certification server and memories adapted for said system
FR3037754A1 (en) SECURE MANAGEMENT OF ELECTRONIC TOKENS IN A MOBILE TELEPHONE
WO2019145620A1 (en) Secure system for transactions between terminals
WO2000042731A1 (en) Method for secure data loading between two security modules
EP2053553A1 (en) Method and device for exchanging values between portable personal electronic entities
EP3029878B1 (en) Method for transmitting a secret with limited lifetime for conducting a transaction between a mobile terminal and a system
FR3038414A1 (en) METHOD AND SYSTEM FOR CONTROLLING ACCESS TO A SERVICE VIA A MOBILE MEDIA
WO2022135952A1 (en) Method and device for generating authentication information for a secure entity and associated identity checking method and device
EP4348483A1 (en) Method for managing a local ledger of a node belonging to a set of nodes contributing to a distributed ledger
WO2016034812A1 (en) Securing of encryption keys for transactions on a device lacking a secure module
EP3360293A1 (en) Means for managing access to data
FR2941833A1 (en) Authentication server for use in electronic transaction field, has synchronization unit that is controlled based on reception of password and verification of compliance of predefined criterion related to received password
WO2007138229A2 (en) Method for secure access to an encrypted resource

Legal Events

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

Ref document number: 19705552

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019705552

Country of ref document: EP

Effective date: 20200825