FR3078187A1 - CONTROL OF A VIRTUAL COIN PURSE - Google Patents
CONTROL OF A VIRTUAL COIN PURSE Download PDFInfo
- Publication number
- FR3078187A1 FR3078187A1 FR1851541A FR1851541A FR3078187A1 FR 3078187 A1 FR3078187 A1 FR 3078187A1 FR 1851541 A FR1851541 A FR 1851541A FR 1851541 A FR1851541 A FR 1851541A FR 3078187 A1 FR3078187 A1 FR 3078187A1
- Authority
- FR
- France
- Prior art keywords
- transaction
- parameter
- entry
- value
- synchronization
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
L'invention propose un procédé de contrôle d'un porte-monnaie virtuel (4) dans un dispositif de traitement (DV1) apte à réaliser des transactions dans une monnaie cryptographique à partir d'entrées de transaction (TI), le procédé comprenant : lors du traitement d'une transaction en cours, génération, à partir d'au moins une entrée de transaction, d'une sortie de transaction (TO) définissant la transaction ; conservation en mémoire (M1) d'un paramètre (SP) d'un statut d'une entrée de transaction, ce paramètre étant fixé initialement à une première valeur tant que l'entrée de transaction (TI) n'est pas utilisée dans une transaction ; si l'entrée de transaction est utilisée, affectation d'une deuxième valeur au paramètre (SP) de l'entrée de transaction (TI) ; dans lequel, lors du traitement de la transaction en cours, l'entrée de transaction (TI) est utilisée dans la génération de la sortie de transaction (TO) si le paramètre (SP) est fixé à la première valeur.The invention proposes a method for controlling a virtual wallet (4) in a processing device (DV1) capable of performing transactions in a cryptographic currency from transaction entries (TI), the method comprising: when processing a transaction in progress, generating, from at least one transaction entry, a transaction output (TO) defining the transaction; storing (M1) a parameter (SP) of a status of a transaction entry, which parameter is initially set to a first value as long as the transaction input (TI) is not used in a transaction ; if the transaction entry is used, assigning a second value to the parameter (SP) of the transaction entry (TI); wherein, when processing the current transaction, the transaction input (TI) is used in the generation of the transaction output (TO) if the parameter (SP) is set to the first value.
Description
Arrière-plan,,dg„H.nYentfon: Background ,, dg „H.nYentfon :
L'invention se rapporte au domaine des systèmes de paiement utilisant une monnaie cryptographique (ou cryptomonnaie), c'est-à-dire une monnaie virtuelle utilisable sur un réseau informatique décentralisé (de pair à pair) et faisant appel à des mécanismes cryptographiques.The invention relates to the field of payment systems using a cryptographic currency (or cryptocurrency), that is to say a virtual currency usable on a decentralized computer network (peer to peer) and using cryptographic mechanisms.
L'invention concerne plus particulièrement la gestion d'un porte-monnaie virtuel permettant la réalisation de transactions dans une monnaie cryptographique.The invention relates more particularly to the management of a virtual wallet enabling transactions to be carried out in a cryptographic currency.
Une monnaie virtuelle de type cryptographique bien connue à ce jour est le « bitcoin » qui s'appuie sur un système de paiement pair-à-pair dénommé Bitcoin. Le système Bitcoin permet de faire des transactions de compte à compte, grâce à des logiciels appelés porte-monnaie virtuel (ou « wallet » en anglais) mis en œuvre dans des dispositifs de traitement appropriés (smartphones, ordinateurs..,). La validité de chaque transaction est vérifiée par des terminaux (ou logiciels) de vérification appelés « mineurs », les transactions une fois validées étant inscrites dans un registre public appelé chaîne de blocs (ou « blockchain » en anglais) en raison de sa structure constituée d'une série de blocs. Chaque bloc définit des transactions validées par les mineurs et fait référence à des transactions antérieures.A virtual currency of cryptographic type well known to date is "bitcoin" which is based on a peer-to-peer payment system called Bitcoin. The Bitcoin system makes it possible to make account-to-account transactions, thanks to software called virtual wallet (or “wallet” in English) implemented in appropriate processing devices (smartphones, computers, etc.). The validity of each transaction is verified by verification terminals (or software) called "miners", the transactions once validated being registered in a public register called block chain (or "blockchain" in English) because of its constituted structure of a series of blocks. Each block defines transactions validated by minors and refers to previous transactions.
Un porte-monnaie virtuel permet en particulier de créer un compte et de réaliser des transactions en bitcoin avec un compte tiers. Lors d'une transaction de paiement par exemple, le compte du porte-monnaie virtuel est débité d'un certain montant en bitcoin pour en créditer le compte tiers.In particular, a virtual wallet allows you to create an account and carry out bitcoin transactions with a third-party account. During a payment transaction for example, the account of the virtual wallet is debited with a certain amount in bitcoin to credit the third party account.
Un porte-monnaie virtuel peut stocker des données (ou entrées) correspondant à d'anciennes transactions dont le porte-monnaie virtuel a été le bénéficiaire (le destinataire). Ces données, appelées « entrées » ou « entrées de transaction », constituent de la valeur disponible en bitcoin dont l'utilisateur du porte-monnaie est propriétaire. A partir de ses entrées de transaction, le porte-monnaie virtuel peut générer des « sorties » ou « sorties de transaction » définissant des montants en bitcoin transférés lors de transactions de paiement depuis le compte de l'utilisateur vers des comptes de tiers destinataires. Chaque sortie de transaction définit un montant de la transaction et la dé publique du compte tiers qui est crédité.A virtual wallet can store data (or entries) corresponding to old transactions for which the virtual wallet was the beneficiary (the recipient). This data, called "inputs" or "transaction inputs", constitutes the value available in bitcoin owned by the user of the wallet. From its transaction inputs, the virtual wallet can generate "outputs" or "transaction outputs" defining amounts in bitcoin transferred during payment transactions from the user's account to accounts of third party recipients. Each transaction output defines an amount of the transaction and the statement of the third party account that is credited.
En outre, chaque compte est associé à une paire de dés cryptographiques comprenant une dé publique et une dé privé. Pour réaliser des transferts, un portemonnaie virtuel doit signer ses transactions à l'aide d'au moins une clé privée.In addition, each account is associated with a pair of cryptographic dice including a public die and a private die. To make transfers, a virtual wallet must sign its transactions using at least one private key.
Les transactions ainsi effectuées sont diffusées à des terminaux de vérification (mineurs) qui valident les transactions qu'ils reçoivent et les regroupent progressivement avant de les enregistrer sous formes de blocs dans la chaîne de blocs. Le réseau de mineurs vérifie en particulier la validité de la signature de chaque transaction à partir de la clé publique correspondant au compte débiteur, en s'appuyant sur un mécanisme de cryptographie asymétrique. Lors de cette opération de vérification, les mineurs assemblent les transactions en bloc en y adjoignant un en-tête comportant des indications particulières (date, heure, somme de contrôle ou « hash »...). L'inscription dans la chaîne de blocs d'une nouvelle transaction (sortie de transaction) a pour effet d'interdire toute utilisation ultérieure des entrées de transaction à partir desquelles la nouvelle transaction a été réalisée, ce qui revient à débiter les comptes des payeurs et de créditer les comptes des destinataires.The transactions thus carried out are broadcast to verification terminals (minors) which validate the transactions they receive and gradually group them together before saving them in the form of blocks in the block chain. The miners' network checks in particular the validity of the signature of each transaction using the public key corresponding to the debtor account, using an asymmetric cryptography mechanism. During this verification operation, the miners assemble the bulk transactions by adding a header including specific indications (date, time, checksum or "hash" ...). The entry in the block chain of a new transaction (transaction exit) has the effect of prohibiting any subsequent use of the transaction entries from which the new transaction was made, which amounts to debit the accounts of payers and credit recipient accounts.
Les vérifications réalisées par les terminaux de vérification iors des opérations de minage pour valider chaque transaction nécessitent du temps de traitement et des ressources particulières. Lors d'une transaction, le tiers destinataire doit donc attendre un temps minimal de traitement (de 10 minutes à 1 heure, par exemple) à compter du moment de la transaction pour s'assurer que la transaction est bien validée. Si le tiers n'attend pas que la transaction soit confirmée pour délivrer sa contrepartie (portant par exemple sur un bien ou service), il prend le risque de ne pas être payé. Ce temps d'attente présente un problème dans certaines transactions, notamment celles réalisées dans la vie courante.The verifications carried out by the verification terminals during mining operations to validate each transaction require processing time and special resources. During a transaction, the third party recipient must therefore wait a minimum processing time (10 minutes to 1 hour, for example) from the time of the transaction to ensure that the transaction is validated. If the third party does not wait for the transaction to be confirmed before delivering its consideration (for example relating to a good or service), it takes the risk of not being paid. This waiting time presents a problem in certain transactions, in particular those carried out in everyday life.
En outre, le délai d'attente nécessaire à la réalisation de ce processus de validation et d'inscription présente un risque dans la mesure où ce délai peut être exploité pour réaliser une attaque dite de « double paiement ». Cette attaque, pouvant être réalisée par un tiers malveillant, consiste à dépenser plusieurs fois de la même monnaie (ou argent) cryptographique avant que la validation d'une première transaction ait eu lieu, afin par exemple d'obtenir plusieurs biens ou services auprès de marchands différents. Dans ce cas de figure, un seul parmi les destinataires potentiels est finalement payé (celui pour lequel le processus de validation et d'inscription est achevé le plus vite).In addition, the waiting period necessary for the completion of this validation and registration process presents a risk insofar as this period can be exploited to carry out a so-called “double payment” attack. This attack, which can be carried out by a malicious third party, consists in spending several times the same cryptographic currency (or money) before the validation of a first transaction has taken place, in order for example to obtain several goods or services from different merchants. In this case, only one of the potential recipients is ultimately paid (the one for which the validation and registration process is completed the fastest).
Ces risques de non-paiement contraignent les tiers destinataires à attendre le délai de traitement nécessaire pour obtenir confirmation que la transaction est bien validée. Ce temps d'attente présente un inconvénient pour les utilisateurs. Les risques liés aux problèmes de double-paiement diminuent en outre la confiance des utilisateurs envers le système Bitcoin.These risks of non-payment oblige third party recipients to wait for the processing time necessary to obtain confirmation that the transaction has been validated. This waiting time has a disadvantage for users. The risks associated with double payment problems further decrease user confidence in the Bitcoin system.
Par ailleurs, lorsqu'une transaction de paiement est réalisée par un porte-monnaie virtuel, un problème peut se poser lorsqu'une panne ou une difficulté technique survient au niveau notamment du terminal du tiers destinataire avant que la transaction ait été validée et inscrite dans la chaîne de blocs. Dans une telle situation, les entrées de transaction utilisées pour la transaction sont bloquées et ne peuvent plus servir bien que le paiement n'ait pas réellement eu lieu.In addition, when a payment transaction is carried out by a virtual wallet, a problem may arise when a breakdown or a technical difficulty occurs in particular at the terminal of the third party recipient before the transaction has been validated and entered in the block chain. In such a situation, the transaction entries used for the transaction are blocked and can no longer be used although the payment has not actually taken place.
Il n'existe pas aujourd'hui de système satisfaisant permettant de palier les problèmes et inconvénients exposés ci-dessus. En particulier, il existe un besoin pour une solution permettant de sécuriser les transactions réalisées dans une monnaie cryptographique telle que le bitcoin ou autre, et notamment pour éviter le phénomène du double-paiement et permettre des transactions plus rapides entre les parties. Un besoin existe en outre pour gérer une situation dans laquelle une difficulté technique survient lors d'une transaction, empêchant celle-ci d'aboutir.Today, there is no satisfactory system making it possible to overcome the problems and drawbacks exposed above. In particular, there is a need for a solution which makes it possible to secure transactions carried out in a cryptographic currency such as bitcoin or the like, and in particular to avoid the phenomenon of double payment and allow faster transactions between the parties. There is also a need to manage a situation in which a technical difficulty arises during a transaction, preventing it from succeeding.
Objet et résumé de l'inventionSubject and summary of the invention
A cet effet, la présente invention concerne un procédé de contrôle d'un portemonnaie virtuel, mis en œuvre dans un dispositif de traitement apte à réaliser des transactions dans une monnaie cryptographique, le dispositif de traitement stockant dans une mémoire au moins une entrée de transaction définissant une transaction dont le porte-monnaie virtuel a été le bénéficiaire, le procédé comprenant :To this end, the present invention relates to a method for controlling a virtual wallet, implemented in a processing device capable of carrying out transactions in a cryptographic currency, the processing device storing in a memory at least one transaction entry. defining a transaction of which the virtual wallet has been the beneficiary, the method comprising:
- traitement d'une transaction en cours, comportant une génération, à partir d'au moins une entrée de transaction, d'une sortie de transaction définissant la transaction en cours entre le dispositif de traitement et un terminal tiers ;processing of a transaction in progress, comprising a generation, from at least one transaction input, of a transaction output defining the transaction in progress between the processing device and a third-party terminal;
le procédé comprenant en outre :the method further comprising:
- conservation en mémoire d'au moins un paramètre représentatif d'un statut d'une entrée de transaction associée stockée dans ladite mémoire, le paramètre étant fixé initialement à une première valeur tant que ladite entrée de transaction associée n'est pas utilisée par le porte-monnaie virtuel lors du traitement d'une transaction pour générer une sortie de transaction ;conservation in memory of at least one parameter representative of a status of an associated transaction entry stored in said memory, the parameter being initially set at a first value as long as said associated transaction entry is not used by the virtual wallet when processing a transaction to generate a transaction output;
- sur détection que ladite entrée de transaction associée est utilisée par le portemonnaie pour générer une sortie de transaction, modification du statut de ladite entrée de transaction associée en affectant audit paramètre une deuxième valeur différente de la première valeur pour indiquer que ladite entrée de transaction associée est dépensée ;- upon detection that said associated transaction entry is used by the wallet to generate a transaction output, modification of the status of said associated transaction entry by assigning to said parameter a second value different from the first value to indicate that said associated transaction entry is spent;
dans lequel, ledit traitement de la transaction en cours comprend une vérification du paramètre d'une entrée de transaction associée, cette dernière étant utilisée dans la génération de la sortie de transaction seulement si ledit paramètre est fixé à la première valeur indiquant que ladite entrée de transaction associée n'est pas dépensée.wherein, said processing of the transaction in progress comprises a verification of the parameter of an associated transaction entry, the latter being used in the generation of the transaction output only if said parameter is set to the first value indicating that said entry of associated transaction is not spent.
L'invention permet avantageusement à un dispositif de traitement, telle qu'une carte à puce par exemple, de contrôler le statut des entrées de transaction stockées dans sa mémoire de sorte à déterminer les entrées de transaction qui ont été dépensées et celles qui sont toujours disponibles pour réaliser une transaction de paiement. En affectant une première valeur ou une deuxième valeur aux paramètres de statut de chaque entrée de transaction, le dispositif de traitement peut distinguer les entrées de transaction dépensées de celles qui ne le sont pas.The invention advantageously allows a processing device, such as a smart card for example, to control the status of the transaction entries stored in its memory so as to determine the transaction entries which have been spent and which are still available to complete a payment transaction. By assigning a first value or a second value to the status parameters of each transaction entry, the processing device can distinguish spent transaction entries from those that are not spent.
L'invention permet en outre au dispositif de traitement de bloquer toutes les entrées de transaction qui ont été dépensées lors d'une transaction mais qui sont toujours présentes dans la mémoire. De cette manière, le dispositif de traitement ne peut dépenser plusieurs fois de l'argent correspondant à une même entrée de transaction, en particulier dans la période nécessaire à la réalisation du processus de validation et d'inscription par le réseau de mineurs. Une fois une transaction inscrite dans la chaîne de blocs, une synchronisation du dispositif de traitement avec un serveur peut causer la suppression, dans la mémoire, de la ou des entrées de transaction dépensées.The invention further allows the processing device to block all transaction inputs which have been spent during a transaction but which are still present in the memory. In this way, the processing device cannot spend several times money corresponding to the same transaction entry, in particular in the period necessary for the completion of the validation and registration process by the network of minors. Once a transaction has been written to the blockchain, synchronization of the processing device with a server can cause the deletion of the transaction entry (s) spent in memory.
L'invention permet ainsi de lutter contre le phénomène de double-paiement déjà décrit précédemment et ainsi sécuriser les transactions de paiement.The invention thus makes it possible to combat the phenomenon of double-payment already described previously and thus to secure the payment transactions.
Selon un mode de réalisation particulier, le procédé comprend :According to a particular embodiment, the method comprises:
- première synchronisation avec un serveur distant, comprenant une réception d'un premier indicateur temporel représentatif d'un premier instant associée à la première synchronisation ; et- first synchronization with a remote server, comprising a reception of a first time indicator representative of a first instant associated with the first synchronization; and
- affectation, au paramètre d'au moins une première entrée de transaction indiquée comme dépensée, d'une troisième valeur représentative du premier instant et différente des première et deuxième valeurs.- assignment, to the parameter of at least a first transaction entry indicated as spent, of a third value representative of the first instant and different from the first and second values.
Selon un mode de réalisation particulier, le procédé comprend :According to a particular embodiment, the method comprises:
- deuxième synchronisation, postérieure à la première synchronisation, avec un serveur distant, comprenant une réception d'un deuxième indicateur temporel représentatif d'un deuxième instant associé à la deuxième synchronisation ;- second synchronization, after the first synchronization, with a remote server, comprising a reception of a second time indicator representative of a second instant associated with the second synchronization;
- sur détection que le paramètre de la première entrée de transaction a une troisième valeur différente des première et deuxième valeurs, détermination à partir de la troisième valeur et du deuxième indicateur temporel, de si l'intervalle de temps entre le premier instant et le deuxième instant atteint une durée limite prédéterminée ; et- upon detection that the parameter of the first transaction entry has a third value different from the first and second values, determination from the third value and from the second time indicator, of whether the time interval between the first instant and the second instant reaches a predetermined time limit; and
- dans l'affirmative, modification du statut de ladite première entrée de transaction en affectant au paramètre associé ladite première valeur indiquant que ladite première entrée de transaction n'est pas dépensée.- in the affirmative, modification of the status of said first transaction entry by assigning to the associated parameter said first value indicating that said first transaction entry is not spent.
Selon un mode de réalisation particulier, la durée limite prédéterminée est déterminée à partir d'un paramètre compris dans la première entrée de transaction ou dans une sortie de transaction générée à partir de ladite première entrée de transaction.According to a particular embodiment, the predetermined time limit is determined from a parameter included in the first transaction entry or in a transaction output generated from said first transaction entry.
Selon un mode de réalisation particulier, le procédé comprend :According to a particular embodiment, the method comprises:
- une synchronisation avec un serveur distant, comprenant une réception de données de mise à Jour ; et- synchronization with a remote server, including reception of update data; and
- sur détection, à partir des données de mise à jour, qu'une entrée de transaction n'est plus valide, le dispositif de traitement supprime ladite entrée de transaction non valide de la mémoire.- Upon detection, from the update data, that a transaction entry is no longer valid, the processing device deletes said invalid transaction entry from the memory.
Selon un mode de réalisation particulier, le procédé comprend :According to a particular embodiment, the method comprises:
- lors de la deuxième synchronisation, une réception de données de mise à jour ; et- during the second synchronization, receipt of update data; and
- sur détection, à partir des données de mise à jour, que ladite première entrée de transaction n'est plus valide, le dispositif de traitement supprime ladite première entrée de transaction de la mémoire.- Upon detection, from the update data, that said first transaction entry is no longer valid, the processing device deletes said first transaction entry from the memory.
Selon un mode de réalisation particulier, dans lequel la monnaie cryptographique est le bitcoin.According to a particular embodiment, in which the cryptographic currency is bitcoin.
Selon un mode de réalisation particulier, au cours du traitement de la transaction en cours, le dispositif de traitement s'authentifie auprès du terminal tiers en envoyant une réponse déterminée à partir d'une donnée de défi préalablement reçue dudit terminal tiers.According to a particular embodiment, during the processing of the transaction in progress, the processing device authenticates with the third-party terminal by sending a response determined from challenge data previously received from said third-party terminal.
Selon un mode de réalisation particulier, la réponse comprend une signature d'un message comportant la donnée de défi.According to a particular embodiment, the response comprises a signature of a message comprising the challenge data.
Dans un mode particulier de réalisation, les différentes étapes du procédé de contrôle sont déterminées par des instructions de programmes d'ordinateurs.In a particular embodiment, the different steps of the control method are determined by instructions from computer programs.
En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations (ou support d'enregistrement), ce programme étant susceptible d'être mis en œuvre dans un dispositif de traitement ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de contrôle tel que défini ci-dessus,Consequently, the invention also relates to a computer program on an information medium (or recording medium), this program being capable of being implemented in a processing device or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of a control process as defined above,
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
L'invention vise aussi un support d'informations (ou support d'enregistrement) lisible par un ordinateur, et comportant des instructions d’un programme d'ordinateur tel que mentionné ci-dessus.The invention also relates to an information medium (or recording medium) readable by a computer, and comprising instructions of a computer program as mentioned above.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exempte un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.The information medium can be any entity or device capable of storing the program. For example, the support may include a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk or a disc. hard.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.On the other hand, the information medium can be a transmissible medium such as an electrical or optical signal, which can be routed via an electrical or optical cable, by radio or by other means. The program according to the invention can in particular be downloaded from a network of the Internet type.
Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, 1e circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.Alternatively, the information medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the process in question.
L'invention concerne également un dispositif de traitement configuré pour contrôler un porte-monnaie virtuel destiné à réaliser des transactions dans une monnaie cryptographique, comprenant :The invention also relates to a processing device configured to control a virtual wallet intended for carrying out transactions in a cryptographic currency, comprising:
- un module de stockage configuré pour stocker au moins une entrée de transaction définissant une transaction dont le porte-monnaie virtuel a été le bénéficiaire ;- a storage module configured to store at least one transaction entry defining a transaction of which the virtual wallet has been the beneficiary;
- un module de traitement d'une transaction en cours, configuré pour générer, à partir d'au moins une entrée de transaction, une sortie de transaction définissant la transaction en cours entre le dispositif de traitement et un terminal tiers ;a module for processing a transaction in progress, configured to generate, from at least one transaction input, a transaction output defining the transaction in progress between the processing device and a third-party terminal;
le dispositif de traitement comprenant en outre :the treatment device further comprising:
- un module de gestion configuré pour conserver en mémoire au moins un paramètre représentatif d'un statut d'une entrée de transaction associée, le paramètre étant fixé initialement à une première valeur tant que ladite entrée de transaction associée n'est pas utilisée par le module de traitement lors du traitement d'une transaction pour générer une sortie de transaction, le module de gestion étant configuré, sur détection que ladite entrée de transaction associée est utilisée par le porte-monnaie pour générer une sortie de transaction, pour modifier le statut de ladite entrée de transaction associée en affectant audit paramètre une deuxième valeur différente de la première valeur pour indiquer que ladite entrée de transaction associée est dépensée ;a management module configured to keep in memory at least one parameter representative of a status of an associated transaction entry, the parameter being initially set at a first value as long as said associated transaction entry is not used by the processing module during the processing of a transaction to generate a transaction output, the management module being configured, on detection that said associated transaction input is used by the wallet to generate a transaction output, to modify the status said associated transaction entry by assigning said parameter a second value different from the first value to indicate that said associated transaction entry is spent;
dans lequel, ledit module de traitement est configuré pour vérifier le paramètre d'une entrée de transaction associée et pour utiliser cette dernière dans la génération de la sortie de transaction seulement si ledit paramètre est fixé à la première valeur indiquant que ladite entrée de transaction associée n'est pas dépensée.wherein, said processing module is configured to check the parameter of an associated transaction entry and to use the latter in generating the transaction output only if said parameter is set to the first value indicating that said associated transaction entry is not spent.
On notera que les différents modes de réalisation mentionnés ci-avant en relation avec le procédé de contrôle de l'invention ainsi que les avantages associés s'appliquent de façon analogue au dispositif de traitement de l'invention.It will be noted that the various embodiments mentioned above in relation to the control method of the invention as well as the associated advantages apply in a similar manner to the processing device of the invention.
Selon un mode de réalisation particulier, le dispositif de traitement comprend un module de synchronisation configuré pour réaliser une première synchronisation avec un serveur distant, au cours de laquelle le dispositif de traitement reçoit un premier indicateur temporel représentatif d'un premier instant associée à la première synchronisation ;According to a particular embodiment, the processing device comprises a synchronization module configured to perform a first synchronization with a remote server, during which the processing device receives a first time indicator representative of a first instant associated with the first synchronization;
le module de gestion étant configuré pour affecter, au paramètre d'au moins une première entrée de transaction indiquée comme dépensée, une troisième valeur représentative du premier instant et différente des première et deuxième valeurs.the management module being configured to assign, to the parameter of at least a first transaction entry indicated as spent, a third value representative of the first instant and different from the first and second values.
Selon un mode de réalisation particulier, le module de synchronisation est configuré pour réaliser, postérieurement à la première synchronisation, une deuxième synchronisation avec un serveur distant, au cours de laquelle le dispositif de traitement reçoit un deuxième indicateur temporel représentatif d'un deuxième instant associé à la deuxième synchronisation ;According to a particular embodiment, the synchronization module is configured to perform, after the first synchronization, a second synchronization with a remote server, during which the processing device receives a second time indicator representative of a second associated instant at the second synchronization;
le module de gestion étant configuré pour :the management module being configured for:
- sur détection que le paramètre de la première entrée de transaction a une troisième valeur différente des première et deuxième valeurs, déterminer à partir de la troisième valeur et du deuxième indicateur temporel, si l'intervalle de temps entre le premier instant et le deuxième instant atteint une durée limite prédéterminée ; et- upon detection that the parameter of the first transaction entry has a third value different from the first and second values, determine from the third value and the second time indicator, whether the time interval between the first instant and the second instant reaches a predetermined time limit; and
- dans l'affirmative, modifier le statut de ladite première entrée de transaction en affectant au paramètre associé ladite première valeur indiquant que ladite première entrée de transaction n'est pas dépensée.- if so, modify the status of said first transaction entry by assigning to the associated parameter said first value indicating that said first transaction entry is not spent.
Selon un mode de réalisation particulier, le module de synchronisation détermine la durée limite prédéterminée à partir d'un paramètre compris dans la première entrée de transaction ou dans une sortie de transaction générée à partir de ladite première entrée 15 de transaction.According to a particular embodiment, the synchronization module determines the predetermined time limit on the basis of a parameter included in the first transaction input or in a transaction output generated from said first transaction input.
Selon un mode de réalisation particulier, le dispositif de traitement comprend un module de synchronisation configuré pour réaliser une synchronisation avec un serveur distant, au cours de laquelle le dispositif de traitement reçoit des données de mise à jour ;According to a particular embodiment, the processing device comprises a synchronization module configured to perform synchronization with a remote server, during which the processing device receives update data;
- dans lequel le module de gestion est configuré pour détecter, à partir des données de mise à jour, qu'une entrée de transaction n'est plus valide ; et- in which the management module is configured to detect, from the update data, that a transaction entry is no longer valid; and
- dans lequel le module de stockage est configuré pour supprimer ladite entrée de transaction non valide de la mémoire.- in which the storage module is configured to delete said invalid transaction entry from the memory.
Selon un mode de réalisation particulier, le module de synchronisation est configuré, lors de la deuxième synchronisation, pour recevoir des données de mise à jour ; et sur détection, à partir des données de mise à jour, que ladite première entrée de transaction n'est plus valide, le module de stockage est configuré pour supprimer ladite première entrée de transaction de la mémoire.According to a particular embodiment, the synchronization module is configured, during the second synchronization, to receive update data; and upon detection, from the update data, that said first transaction entry is no longer valid, the storage module is configured to delete said first transaction entry from memory.
Selon un mode de réalisation, l'invention est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme « module » peut 30 correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels.According to one embodiment, the invention is implemented by means of software and / or hardware components. With this in mind, the term "module" can correspond in this document to a software component, to a hardware component or to a set of hardware and software components.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné.A software component corresponds to one or more computer programs, one or more subroutines of a program, or more generally to any element of a program or of software capable of implementing a function or a set of functions, as described below for the module concerned.
De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble 5 de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, etc.In the same way, a hardware component corresponds to any element of a hardware (or hardware) set capable of implementing a function or a set of functions, as described below for the module concerned. It can be a programmable hardware component or with an integrated processor for running software, for example an integrated circuit, a smart card, etc.
Brève description des dessinsBrief description of the drawings
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures:Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the accompanying drawings which illustrate exemplary embodiments thereof without any limiting character. In the figures:
• la figure 1 représente schématiquement un environnement comprenant un dispositif de traitement selon un mode de réalisation particulier de l'invention ;• Figure 1 schematically shows an environment comprising a processing device according to a particular embodiment of the invention;
· la figure 2 représente schématiquement la structure d'un dispositif de traitement selon un mode de réalisation particulier de l'invention ;· Figure 2 schematically shows the structure of a processing device according to a particular embodiment of the invention;
• la figure 3 représente, sous forme d'un organigramme, les étapes d'un procédé de traitement selon un mode de réalisation particulier de l’invention ;• Figure 3 shows, in the form of a flowchart, the steps of a processing method according to a particular embodiment of the invention;
• la figure 4 représente, sous forme d'un organigramme, les étapes d'un procédé de traitement selon un mode de réalisation particulier de l'invention ;• Figure 4 shows, in the form of a flowchart, the steps of a processing method according to a particular embodiment of the invention;
• la figure 5 représente, sous forme d'un organigramme, les étapes d'un procédé de traitement selon un mode de réalisation particulier de l'invention ; et • la figure 6 représente, sous forme d'un organigramme, les étapes d'un procédé de traitement selon un mode de réalisation particulier de l'invention.• Figure 5 shows, in the form of a flowchart, the steps of a processing method according to a particular embodiment of the invention; and • Figure 6 shows, in the form of a flowchart, the steps of a processing method according to a particular embodiment of the invention.
Description détaillée de plusieurs modes de réalisationDetailed description of several embodiments
Comme indiqué précédemment, l'invention se rapporte aux systèmes de paiement utilisant une monnaie cryptographique (ou cryptomonnaie). De façon bien connue, une monnaie virtuelle est utilisable sur un réseau informatique décentralisé (de pair à pair) 30 pour réaliser des transactions de compte à compte à l'aide de clés cryptographiques associées aux comptes des utilisateurs.As indicated above, the invention relates to payment systems using a cryptographic currency (or cryptocurrency). As is well known, a virtual currency can be used on a decentralized computer network (peer-to-peer) 30 to carry out account-to-account transactions using cryptographic keys associated with the accounts of the users.
L'invention concerne plus particulièrement la gestion d'un porte-monnaie virtuel permettant la réalisation de transactions dans une monnaie cryptographique. Dans ce document, des modes de réalisation de l'invention sont décrits dans le cadre du systèmeThe invention relates more particularly to the management of a virtual wallet enabling transactions to be carried out in a cryptographic currency. In this document, embodiments of the invention are described in the context of the system.
Bitcoin bien connu de l'homme du métier et dont certaines caractéristiques ont été rappelées ci-avant. On comprend toutefois que l'invention ne s'applique pas exclusivement aux porte-monnaie virtuels utilisant la monnaie bitcoin et peut s'appliquer plus généralement à tous types de porte-monnaie virtuel utilisant une quelconque monnaie cryptographique.Bitcoin well known to those skilled in the art and of which certain characteristics have been recalled above. It is understood, however, that the invention does not apply exclusively to virtual wallets using bitcoin currency and can more generally be applied to all types of virtual wallet using any cryptographic currency.
L'invention propose notamment un procédé de control (ou procédé de gestion) d'un porte-monnaie virtuel dans un dispositif de traitement apte à réaliser des transactions, et vise en particulier la gestion des entrées de transaction stockées dans le dispositif de traitement et susceptibles d'être utilisées par le porte-monnaie virtuel pour réaliser une transaction avec un tiers. Pour ce faire, l'invention propose, selon différents modes de réalisation, de conserver en mémoire un paramètre respectif représentant un statut de chaque entrée de transaction stockée dans le dispositif de traitement, ce paramètre étant fixé à une première valeur tant que l'entrée de transaction associée n'est pas utilisée (Le. pas dépensée) pour réaliser une transaction et fixé à une deuxième valeur lorsque ladite entrée de transaction est utilisée (i.e. dépensée) lors d'une transaction. Ainsi, chaque entrée de transaction stockée dans le dispositif de traitement dont le paramètre associé est fixé à la deuxième valeur est bloquée de sorte qu'elle ne puisse pas être utilisée par le porte-monnaie virtuel pour réaliser une nouvelle transaction.The invention proposes in particular a method for controlling (or managing method) a virtual wallet in a processing device capable of carrying out transactions, and is aimed in particular at managing the transaction entries stored in the processing device and likely to be used by the virtual wallet to carry out a transaction with a third party. To do this, the invention proposes, according to different embodiments, to keep in memory a respective parameter representing a status of each transaction entry stored in the processing device, this parameter being fixed at a first value as long as the entry associated transaction is not used (The. not spent) to carry out a transaction and fixed at a second value when said transaction input is used (ie spent) during a transaction. Thus, each transaction entry stored in the processing device whose associated parameter is set to the second value is blocked so that it cannot be used by the virtual wallet to carry out a new transaction.
L'invention vise également un dispositif de traitement correspondant, ainsi qu'un programme d'ordinateur correspondant.The invention also relates to a corresponding processing device, as well as a corresponding computer program.
D'autres aspects et avantages de la présente invention ressortiront des exemples de réalisation décrits ci-dessous en référence aux dessins mentionnés ci-avant.Other aspects and advantages of the present invention will emerge from the exemplary embodiments described below with reference to the drawings mentioned above.
Sauf indications contraires, les éléments communs ou analogues à plusieurs figures portent les mêmes signes de référence et présentent des caractéristiques identiques ou analogues, de sorte que ces éléments communs ne sont généralement pas à nouveau décrits par souci de simplicité.Unless otherwise indicated, the elements common or analogous to several figures bear the same reference signs and have identical or analogous characteristics, so that these common elements are generally not described again for the sake of simplicity.
La figure 1 représente, de manière schématique, un environnement E comprenant un dispositif de traitement DV1, un terminal DV2, un serveur distant SV et un réseau 20, conformément à un mode de réalisation particulier de l'invention.FIG. 1 schematically represents an environment E comprising a processing device DV1, a terminal DV2, a remote server SV and a network 20, in accordance with a particular embodiment of the invention.
Dans cet exempte, le dispositif de traitement DV1 est une carte à puce bien que d'autres types de dispositif de traitement soient possibles. En variante, le dispositif de traitement DV1 peut être un quelconque dispositif apte à réaliser le procédé de traitement décrit ci-après, tel que par exemple un mobile multifonction (ou « smartphone »), un ordinateur, une tablette etc.In this example, the processing device DV1 is a smart card although other types of processing device are possible. As a variant, the processing device DV1 can be any device capable of carrying out the processing method described below, such as for example a multifunction mobile (or "smartphone"), a computer, a tablet etc.
Dans un exemple particulier, la carte à puce DV1 est une carte EMV, telle qu'une carte de paiement par exemple.In a particular example, the chip card DV1 is an EMV card, such as a payment card for example.
Dans l'exemple de réalisation décrit ici, un utilisateur UI utilise sa carte à puce DV1 pour réaliser des transactions avec des tiers dans la monnaie cryptographique bitcoin bien connue de l'homme du métier. On suppose ici que l'utilisateur UI réalise par exemple une transaction avec un utilisateur tiers U2, représentant par exemple un marchand. Pour ce faire, la carte à puce DV1 coopère avec le terminal (ou lecteur) DV2 de l'utilisateur U2 afin d'échanger des données nécessaires à l'exécution de la transaction.In the embodiment described here, a user UI uses his chip card DV1 to carry out transactions with third parties in the bitcoin cryptographic currency well known to those skilled in the art. It is assumed here that the user UI realizes for example a transaction with a third-party user U2, representing for example a merchant. To do this, the smart card DV1 cooperates with the terminal (or reader) DV2 of the user U2 in order to exchange data necessary for the execution of the transaction.
Plus précisément, la carte à puce DV1 comprend dans cet exemple des contacts externes 1 configurés pour coopérer avec le terminal DV2, un processeur 2, un portemonnaie-virtuel 4 mis en œuvre par le processeur 2, une mémoire volatile réinscriptible (RAM) 6 et une mémoire non volatile réinscriptible Ml (de type Flash par exemple).More specifically, the smart card DV1 comprises in this example external contacts 1 configured to cooperate with the terminal DV2, a processor 2, a virtual wallet 4 implemented by the processor 2, a volatile rewritable memory (RAM) 6 and a non-volatile rewritable memory Ml (of the Flash type for example).
La mémoire non-volatile Ml constitue dans cet exemple un support d'enregistrement (ou support d'informations) conforme à un mode de réalisation particulier, lisible par la carte à puce DV1, et sur lequel est enregistré un programme d'ordinateur PG1 conforme à un mode de réalisation particulier. Ce programme d'ordinateur PG1 comporte des instructions pour l'exécution des étapes d'un procédé de contrôle selon un mode de réalisation particulier. Les étapes de ce procédé sont décrites ultérieurement, dans des modes de réalisation particuliers de l'invention.The non-volatile memory M1 constitutes in this example a recording medium (or information medium) conforming to a particular embodiment, readable by the smart card DV1, and on which a computer program PG1 conforming is recorded. to a particular embodiment. This computer program PG1 includes instructions for the execution of the steps of a control method according to a particular embodiment. The steps of this process are described later, in particular embodiments of the invention.
Comme décrit par la suite, le processeur 2 est piloté par le programme PG1 pour mettre en œuvre le porte-monnaie virtuel 4 destiné à réaliser un procédé de traitement conforme à l'invention. Ce porte-monnaie virtuel 4 peut permettre en particulier de créer un compte de l'utilisateur UI et de réaliser des transactions en monnaie cryptographique bitcoin avec un compte de l'utilisateur tiers U2. Lors d'une transaction de paiement par exemple, le compte du porte-monnaie virtuel 4 est débité d'un certain montant en bitcoin pour en créditer le compte du tiers U2. On suppose ici que l'environnement E est un environnement conforme ou compatible au système Bitcoin, bien que d'autres exemples soient possibles.As described below, the processor 2 is controlled by the program PG1 to implement the virtual wallet 4 intended to carry out a processing method according to the invention. This virtual wallet 4 can in particular make it possible to create an account of the user UI and to carry out transactions in bitcoin cryptographic currency with an account of the third-party user U2. During a payment transaction for example, the account of the virtual wallet 4 is debited with a certain amount in bitcoin to credit the account of the third party U2. It is assumed here that the environment E is an environment conforming to or compatible with the Bitcoin system, although other examples are possible.
Dans un exemple particulier, la carte à puce DV1 est conforme à la norme ISO 7816. Dans ce cas, les contacts externes 1 présentent des caractéristiques conformes à cette norme. On comprend toutefois que d'autres modes de réalisation sont possibles sans l'utilisation de tels contacts externes. La carte à puce DV1 peut par exemple être configurée pour coopérer avec le terminal DV2 en mode sans contact via une antenne RF (non représentée) intégrée dans la carte DV1.In a particular example, the smart card DV1 complies with standard ISO 7816. In this case, the external contacts 1 have characteristics conforming to this standard. It is understood, however, that other embodiments are possible without the use of such external contacts. The DV1 chip card can for example be configured to cooperate with the DV2 terminal in contactless mode via an RF antenna (not shown) integrated in the DV1 card.
Dans l'exemple considéré ici, la mémoire non volatile réinscriptible Ml est configurée pour stocker une paire de clés cryptographiques associées au compte de l'utilisateur Ul, cette paire comprenant une clé publique PKI et une clé privée SKI complémentaire. Le porte-monnaie virtuel 4 peut utiliser la clé privé SKI du compte de l'utilisateur Ul pour signer des données de transaction avant envoi au tiers destinataire U2.In the example considered here, the rewritable non-volatile memory M1 is configured to store a pair of cryptographic keys associated with the account of the user Ul, this pair comprising a public key PKI and a complementary private key SKI. The virtual wallet 4 can use the private key SKI of the account of the user Ul to sign transaction data before sending to the third party recipient U2.
Dans un mode d'implémentation, la paire de clé PKI /SKI n'est pas stockée dans la mémoire Ml mais calculée à la volée par le porte-monnaie virtuel 4, à partir d'une donnée (appelée « graine », ou « seed » en anglais) qui est stockée dans la mémoire Ml.In an implementation mode, the PKI / SKI key pair is not stored in the memory Ml but calculated on the fly by the virtual wallet 4, from a datum (called “seed”, or “ seed "in English) which is stored in the memory Ml.
A noter que le porte-monnaie virtuel 4 peut comporter plusieurs comptes d'utilisateur. Dans ce cas, les données de transaction générées pour chaque transaction sont signées en utilisant la clé privée de chaque compte utilisé. Comme indiqué ci-avant, chaque paire de dés peut être stockée à l'avance dans la mémoire Ml ou calculée à la volée à partir d'une graine stockée dans la mémoire Ml.Note that the virtual wallet 4 can have several user accounts. In this case, the transaction data generated for each transaction is signed using the private key of each account used. As indicated above, each pair of dice can be stored in advance in the memory M1 or calculated on the fly from a seed stored in the memory Ml.
La mémoire Ml est également configurée pour stocker une ou des entrées de transaction (ou entrées), chacune d'elles correspondant à une ancienne transaction dont le porte-monnaie virtuel 4 a été le bénéficiaire (le destinataire) dans le passé. Ces entrées de transaction Ή constituent de la valeur disponible en bitcoin dont l'utilisateur Ul est propriétaire. Ces entrées de transaction ΊΊ peuvent être reçues par le porte-monnaie virtuelle 4 en provenance d'une entité tierce, le serveur SV par exemple, pouvant correspondre à un organisme émetteur de la carte DV1, à un fournisseur de services ou autre.The memory M1 is also configured to store one or more transaction entries (or entries), each of them corresponding to an old transaction of which the virtual wallet 4 has been the beneficiary (the recipient) in the past. These transaction entries Ή constitute the value available in bitcoin owned by the user Ul. These transaction entries ΊΊ can be received by the virtual wallet 4 from a third party entity, the server SV for example, which can correspond to an organization issuing the card DV1, to a service provider or the like.
A partir des entrées de transaction TI stockées dans la mémoire Ml, le portemonnaie virtuel 4 peut générer des sorties de transaction TO définissant des transactions de transfert en bitcoin depuis le compte de l'utilisateur Ul du porte-monnaie 4 vers au moins un compte du tiers destinataire U2 et son terminal DV2. Ces sorties de transaction TO peuvent être transmises par la carte à puce DV1 au terminal DV2 lors d'une transaction de paiement.From the transaction inputs TI stored in the memory M1, the virtual wallet 4 can generate transaction outputs TO defining bitcoin transfer transactions from the account of the user Ul of the wallet 4 to at least one account of the third party recipient U2 and its DV2 terminal. These transaction outputs TO can be transmitted by the smart card DV1 to the terminal DV2 during a payment transaction.
Comme représenté en figure 1, on suppose ici que la carte à puce DV1 stocke dans sa mémoire Ml des entrées de transaction TI1, ΊΊ2 et TI3 (notées collectivement TI). Chaque entrée de transaction TI est constituée d'un groupe de données caractérisant une ancienne transaction dont l'utilisateur Ul a été bénéficiaire. Dans cet exemple, les entrées de transaction TI comprennent un identifiant d'une transaction passée dont l'utilisateur Ul a été le bénéficiaire, une adresse du compte de l'utilisateur U1 (égale ou comprenant la clé publique PKI) et un montant en bitcoin de la transaction.As shown in FIG. 1, it is assumed here that the smart card DV1 stores in its memory M1 transaction inputs TI1, ΊΊ2 and TI3 (collectively noted TI). Each transaction entry TI is made up of a data group characterizing an old transaction for which the user U1 has benefited. In this example, the transaction entries TI comprise an identifier of a past transaction of which the user Ul has been the beneficiary, an address of the account of the user U1 (equal to or comprising the public key PKI) and an amount in bitcoin of the transaction.
Chaque sortie de transaction TO générée par la carte à puce DV1, et plus précisément par le porte-monnaie virtuel 4 comporte par exemple un montant de la transaction et la dé publique du compte de l'utilisateur tiers qui est le bénéficiaire de la transaction. Le porte-monnaie 4 est configuré pour générer des données de transaction pouvant comprendre une ou plusieurs sorties de transaction TO et éventuellement d'autres données associées (par exemple, des informations relatives à une ou plusieurs entrées de transaction Ή utilisés dont au moins un TI est associé à la clé publique PKI, un identifiant de transaction...). Ces données de transaction peuvent être signées par le porte-monnaie virtuel 4 à partir de la clé privée SKI associée au compte de l'utilisateur UI qui est utilisé pour réaliser les transactions.Each transaction output TO generated by the smart card DV1, and more precisely by the virtual wallet 4 comprises for example an amount of the transaction and the payment of the account of the account of the third-party user who is the beneficiary of the transaction. The wallet 4 is configured to generate transaction data which may include one or more transaction outputs TO and possibly other associated data (for example, information relating to one or more transaction inputs Ή used of which at least one TI is associated with the PKI public key, a transaction identifier, etc.). These transaction data can be signed by the virtual wallet 4 from the private key SKI associated with the account of the user UI which is used to carry out the transactions.
Dans un exemple particulier, une transaction peut être réalisée à partir d'entrée de transaction Ή associés à des comptes d'utilisateur différents. Dans ce cas, les données de transaction sont signées avec chacune des clés privées associées à ces comptes.In a particular example, a transaction can be carried out from transaction input Ή associated with different user accounts. In this case, the transaction data is signed with each of the private keys associated with these accounts.
Dans l'exemple décrit ici, la mémoire Ml est également configurée pour stocker au moins un paramètre SP, dit paramètre de statut, chaque paramètre SP étant représentatif d'un statut d'une entrée de transaction Ή associée stockée dans la mémoire Ml. Dans cet exemple, la mémoire Ml comporte un paramètre respectif SP1-SP3 pour chacune des entrées de transactions Ή1-ΤΙ3.In the example described here, the memory M1 is also configured to store at least one parameter SP, called the status parameter, each parameter SP being representative of a status of an associated transaction entry Ή stored in the memory Ml. In this example, the memory M1 includes a respective parameter SP1-SP3 for each of the transaction inputs Ή1-ΤΙ3.
Comme expliqué par la suite, les paramètres SP sont initialement fixés à une première valeur VI tant que les entrées de transaction Ή associées ne sont pas utilisées par le porte-monnaie virtuel 4 lors du traitement d'une transaction pour générer une sortie de transaction TO.As explained below, the parameters SP are initially set to a first value VI as long as the associated transaction inputs Ή are not used by the virtual wallet 4 during the processing of a transaction to generate a transaction output TO .
Les paramètres de statut SP permettent au porte-monnaie virtuel 4 de suivre et contrôler le statut de chaque entrée de transaction TI, afin de déterminer en particulier si celles-ci ont déjà été dépensées lors d'une transaction avec un tiers ou, au contraire, si elles sont toujours disponibles (non dépensées) pour être utilisées dans une transaction.The status parameters SP allow the virtual wallet 4 to monitor and control the status of each transaction transaction TI, in order to determine in particular whether these have already been spent during a transaction with a third party or, on the contrary , if they are still available (not spent) for use in a transaction.
Comme représenté en figure 1, le carte à puce DV1 est configurée pour communiquer avec le serveur distant SV afin notamment de faire des mises à jour régulières, comme décrit ultérieurement. Dans le cas présent où le dispositif de traitement DV1 est une carte à puce, il peut communiquer avec le serveur SV vîa tout équipement approprié, tel que le terminal DV2 (lors du traitement d'une transaction, par exemple). En variante, le dispositif de traitement DV1 comprend des moyens de communication pour communiquer directement avec le serveur SV.As shown in FIG. 1, the smart card DV1 is configured to communicate with the remote server SV in particular in order to make regular updates, as described later. In the present case where the processing device DV1 is a smart card, it can communicate with the server SV via any appropriate equipment, such as the terminal DV2 (during the processing of a transaction, for example). As a variant, the processing device DV1 comprises communication means for communicating directly with the server SV.
Le serveur SV, exécutant un programme d'ordinateur PG2, peut en particulier transmettre à la carte à puce DV1 au moins l'un parmi des données de mise à jour DM et un indicateur temporel TS associé. Les données de mise à jour DM renseignent la carte à puce DV1 sur les entrées de transaction TI dont l'utilisateur Ul, c'est-à-dire le compte de l'utilisateur Ul, est propriétaire, à un instant donné qui est représenté par l'indicateur temporel TS.The server SV, executing a computer program PG2, can in particular transmit to the smart card DV1 at least one of update data DM and an associated time indicator TS. The update data DM informs the smart card DV1 of the transaction inputs TI of which the user Ul, that is to say the account of the user Ul, is the owner, at a given instant which is represented by the TS time indicator.
Par ailleurs, le terminal DV2 comprend en mémoire un programme d'ordinateur PG3 qu'il peut exécuter pour réaliser une transaction en bitcoin.Furthermore, the terminal DV2 includes in memory a computer program PG3 which it can execute to carry out a bitcoin transaction.
Comme déjà expliqué, chaque transaction de paiement réalisée depuis l'utilisateur Ul en faveur de l'utilisateur U2 nécessite la validation préalable par des terminaux de vérification, appelés mineurs, disposés ici dans un réseau de mineurs 20. Le terminal DV2 est configuré pour transmettre au réseau 20 chaque sortie de transaction TO reçue de la carte à puce DV1 afin que les mineurs vérifient la validité de la transaction. Les mineurs (terminaux de vérification) valident les sorties de transaction TO qu'ils reçoivent et regroupent progressivement les transactions avant de les enregistrer sous formes de blocs dans la chaîne de blocs du système Bitcoin. Ce processus est appelé dans ce document processus de validation et d'inscription.As already explained, each payment transaction carried out from the user U1 in favor of the user U2 requires prior validation by verification terminals, called miners, arranged here in a network of miners 20. The terminal DV2 is configured to transmit to the network 20 each transaction output TO received from the chip card DV1 so that minors can check the validity of the transaction. Miners (verification terminals) validate the TO transaction outputs they receive and progressively group the transactions before recording them as blocks in the block chain of the Bitcoin system. This process is called in this document validation and registration process.
Lors de ce processus, le réseau de mineurs 20 vérifie en particulier la validité de la signature associée à chaque entrée de transaction Ή utilisée pour générer la sortie de transaction TO reçue, à partir de la clé publique PKI de l'utilisateur Ul. Comme indiqué par la suite, on suppose dans les exemples de réalisation qui suivent que toutes les entrées de transaction 1Ί1 à ΤΊ3 sont associées au même compte de l'utilisateur Ul (bien que d'autres exemples soient possibles dans lesquels ces entrées TI1-TI3 sont associées à au moins deux comptes respectifs), et qu'au moins une sortie de transaction TO peut être générée à partir de ces entrées ΊΙ1 à TI3. De façon connue, l'inscription par le réseau de mineurs 20 dans la chaîne de blocs d'une nouvelle sortie de transaction TO a pour effet d'interdire toute utilisation ultérieure de la ou des entrées de transaction TI à partir desquelles la nouvelle transaction a été réalisée, ce qui revient à débiter l'utilisateur Ul et créditer l'utilisateur U2 du montant défini dans la sortie de transaction TO.During this process, the miners network 20 checks in particular the validity of the signature associated with each transaction entry Ή used to generate the transaction output TO received, from the public key PKI of the user Ul. As indicated thereafter, it is assumed in the following embodiments that all of the transaction inputs 1Ί1 to ΤΊ3 are associated with the same account of the user Ul (although other examples are possible in which these inputs TI1-TI3 are associated at least two respective accounts), and that at least one transaction output TO can be generated from these inputs ΊΙ1 to TI3. In known manner, the entry by the network of miners 20 in the block chain of a new transaction output TO has the effect of prohibiting any subsequent use of the transaction input (s) TI from which the new transaction has has been carried out, which amounts to debiting the user Ul and crediting the user U2 for the amount defined in the transaction output TO.
Comme déjà expliqué, les vérifications réalisées par les terminaux de vérification dans le réseau 20 pour valider les transactions (c'est-à-dire les données de transaction représentant chaque transaction) nécessitent un temps de traitement qui peut être relativement long et qui peut poser problème notamment pour les utilisateurs Ul et U2.As already explained, the verifications carried out by the verification terminals in the network 20 to validate the transactions (that is to say the transaction data representing each transaction) require a processing time which can be relatively long and which can pose problem especially for users Ul and U2.
En outre, un risque existe pour le bénéficiaire U2 que l'utilisateur Ul tente d'utiliser les mêmes entrées de transaction TI, dans un intervalle de temps restreint, pour réaliser plusieurs transactions distinctes, par exemple avec d'autres utilisateurs tiers (double paiement).In addition, there is a risk for the beneficiary U2 that the user Ul attempts to use the same transaction entries TI, in a limited time interval, to carry out several separate transactions, for example with other third-party users (double payment ).
A noter que l'environnement E, et plus particulièrement le dispositif de traitement DV1, représenté en figure 1 ne constitue qu'un exemple de réalisation, d'autres mises en œuvre étant possibles dans le cadre de l'invention. L'homme du métier comprend en particulier que certains éléments du dispositif de traitement DV1 représenté en figure 1 ne sont décrits ici que pour faciliter la compréhension de l'invention, ces éléments n'étant pas nécessaires pour mettre en œuvre l'invention.It should be noted that the environment E, and more particularly the processing device DV1, represented in FIG. 1 constitutes only one example of embodiment, other implementations being possible within the framework of the invention. Those skilled in the art understand in particular that certain elements of the processing device DV1 shown in FIG. 1 are described here only to facilitate understanding of the invention, these elements not being necessary for implementing the invention.
Par ailleurs, dans l'exemple envisagé ici, le processeur 2 piloté par le programme d'ordinateur PG1 met en œuvre un certain nombre de modules représentés en figure 2, à savoir : un module de stockage MD2, un module de traitement MD4, un module de gestion MD6 et, éventuellement, un module de synchronisation MDS.Furthermore, in the example envisaged here, the processor 2 controlled by the computer program PG1 implements a certain number of modules represented in FIG. 2, namely: a storage module MD2, a processing module MD4, a MD6 management module and, optionally, an MDS synchronization module.
Le module de stockage MD2 est configuré pour stocker dans la mémoire Ml au moins une entrée de transaction TI définissant une transaction dont le porte-monnaie virtuel 4 est le bénéficiaire. Comme indiqué, on suppose ici que le module de stockage MD2 a stocké initialement les entrées de transaction TI1, TI2 etTI3 dans la mémoire Ml.The storage module MD2 is configured to store in the memory M1 at least one transaction entry TI defining a transaction of which the virtual wallet 4 is the beneficiary. As indicated, it is assumed here that the storage module MD2 has initially stored the transaction inputs TI1, TI2 and TI3 in the memory M1.
Le module de traitement MD4 est configuré pour traiter des transactions. Plus particulièrement, le module de traitement MD4 est configuré pour traiter une transaction en cours en générant, à partir d'au moins l'une des entrées de transaction TI1-TI3, une sortie de transaction TO définissant la transaction en cours entre la carte à puce DV1 et le terminal tiers DV2.The MD4 processing module is configured to process transactions. More particularly, the processing module MD4 is configured to process a transaction in progress by generating, from at least one of the transaction inputs TI1-TI3, a transaction output TO defining the transaction in progress between the card to DV1 chip and the DV2 third-party terminal.
Le module de gestion MD6 est configuré pour conserver en mémoire au moins un paramètre SP représentatif d'un statut d'une entrée de transaction Ή associée, ce paramètre SP étant fixé initialement à une première valeur VI tant que ladite entrée de transaction TI associée n'est pas utilisée par le module de traitement MD4 lors du traitement d'une transaction pour générer une sortie de transaction TO. Le module de gestion MD6 est en outre configuré, sur détection que ladite: entrée de transaction associée est utilisée par le porte-monnaie 4 pour générer une sortie de transaction TO, pour modifier le statut de ladite entrée de transaction Ή associée en affectant audit paramètre SP une deuxième valeur V2 différente de la première valeur VI pour indiquer que ladite entrée de transaction TL associée est dépensée (c'est-à-dire « consommée » ou « utilisé »).The management module MD6 is configured to keep in memory at least one parameter SP representative of a status of an associated transaction entry Ή, this parameter SP being initially set at a first value VI as long as said associated transaction entry TI n is not used by the processing module MD4 during the processing of a transaction to generate a transaction output TO. The MD6 management module is further configured, on detection that said: associated transaction input is used by the wallet 4 to generate a transaction output TO, to modify the status of said associated transaction input Ή by assigning to said parameter SP a second value V2 different from the first value VI to indicate that said associated transaction entry TL is spent (that is to say "consumed" or "used").
Le module de traitement MD4 est en outre configuré pour utiliser une entrée de transaction Ή dans la génération d'une sortie de transaction TO seulement si ledit paramètre SP associé est fixé à la première valeur VI indiquant que ladite entrée de transaction TI associée n'est pas dépensée (c'est-à-dire « non consommé » ou « pas utilisée »). Pour ce faire, le module de traitement MD4 est configuré pour vérifier le paramètre SP d'au moins une entrée de transaction pour déterminer si celle-ci peut être utilisée pour générer une sortie de transaction TO.The processing module MD4 is further configured to use a transaction input Ή in the generation of a transaction output TO only if said associated parameter SP is set to the first value VI indicating that said associated transaction input TI is not not spent (ie "not consumed" or "not used"). To do this, the processing module MD4 is configured to check the parameter SP of at least one transaction input to determine whether it can be used to generate a transaction output TO.
Par ailleurs, le module de synchronisation MDS est configuré pour synchroniser si besoin le porte-monnaie virtuel 4 du dispositif DV1 avec un serveur distant, tel que le serveur SV représenté en figure 1 par exemple. Au cours d'une synchronisation avec le serveur SV, le module de synchronisation MDS est configuré pour recevoir des données de mise à jour DM et éventuellement un indicateur temporel TS, comme expliqué ultérieurement. Selon un exemple particulier, le module de synchronisation MDS est configuré pour recevoir des données de mise à jour DM du serveur DV afin de déterminer si ses entrées de transaction TI1-TI3 sont toujours valides.Furthermore, the MDS synchronization module is configured to synchronize, if necessary, the virtual wallet 4 of the device DV1 with a remote server, such as the server SV shown in FIG. 1 for example. During synchronization with the server SV, the synchronization module MDS is configured to receive update data DM and possibly a time indicator TS, as explained later. According to a particular example, the synchronization module MDS is configured to receive update data DM from the server DV in order to determine whether its transaction entries TI1-TI3 are still valid.
Selon un exemple particulier, le module de synchronisation MDS est configuré pour réaliser une synchronisation avec un serveur distant tel que le serveur SV. Au cours d'une telle synchronisation, le dispositif de traitement (et plus particulièrement le module de synchronisation MD8) reçoit des données de mise à jour MD. Le module de gestion MD6 peut être configuré pour détecter, à partir des données de mise à jour DM reçues, qu'une entrée de transaction Ή (TI1 par exemple) n'est plus valide. Le module de stockage MD2 peut en outre être configuré pour supprimer de la mémoire Ml la ou les entrées de transaction Ή détectées comme non valides par le module de gestion MD6.According to a particular example, the MDS synchronization module is configured to perform synchronization with a remote server such as the SV server. During such synchronization, the processing device (and more particularly the synchronization module MD8) receives update data MD. The MD6 management module can be configured to detect, from the DM update data received, that a transaction entry Ή (TI1 for example) is no longer valid. The storage module MD2 can also be configured to delete from the memory M1 the transaction entry (s) Ή detected as invalid by the management module MD6.
Le fonctionnement et la configuration des modules MD2-MD8 du dispositif de traitement DV1 apparaîtront plus précisément dans les exemples de réalisation décrits ciaprès. A noter également que les modules MD2-MD8 tels que représentés en figure 2 ne constituent qu'un exemple de mise en œuvre de l'invention.The operation and configuration of the modules MD2-MD8 of the processing device DV1 will appear more precisely in the embodiments described below. Note also that the MD2-MD8 modules as shown in Figure 2 are only one example of implementation of the invention.
Un mode de réalisation particulier de l'invention est à présent décrit en référence à la figure 3. Plus précisément, le dispositif de traitement DV1 représenté en figures 1-2 exécute le programme d'ordinateur PG1 pour mettre en œuvre un procédé de contrôle du porte-monnaie virtuel 4, selon un mode de réalisation particulier.A particular embodiment of the invention is now described with reference to Figure 3. More specifically, the processing device DV1 shown in Figures 1-2 executes the computer program PG1 to implement a method of controlling the virtual wallet 4, according to a particular embodiment.
On suppose que la carte à puce DV1 se synchronise régulièrement avec le serveur distant SV pour mettre à jour les entrées de transaction Ή dont l'utilisateur Ul, c'est-àdire ie compte de l'utilisateur Ul, est le propriétaire à un instant courant selon la chaîne de blocs. Dans cet exemple, la carte à puce DV1 reçoit lors d'une telle synchronisation les entrées de transaction ΤΙ1-ΊΠ3 qu'elle enregistre (étape S2) dans sa mémoire Ml. A noter que d'autres manières sont possibles pour permettre à la carte à puce DV1 d'obtenir les entrées de transaction Ή1-Ή3.It is assumed that the smart card DV1 is regularly synchronized with the remote server SV to update the transaction entries Ή of which the user Ul, that is to say the account of the user Ul, is the owner at an instant current according to the blockchain. In this example, the smart card DV1 receives during such synchronization the transaction inputs entrées1-ΊΠ3 which it records (step S2) in its memory M1. Note that other ways are possible to allow the smart card DV1 to obtain the transaction inputs Ή1-Ή3.
Les entrées de transaction TI comprennent par exemple un identifiant d'une transaction passée dont l'utilisateur Ul a été le bénéficiaire, une adresse de l'utilisateur Ul (égale ou comprenant la clé publique PKI) et un montant en bitcoin de cette ancienne transaction en faveur de l'utilisateur Ul.The TI transaction entries include for example an identifier of a past transaction for which the user Ul was the beneficiary, an address of the user Ul (equal to or including the public key PKI) and an amount in bitcoin of this old transaction in favor of user Ul.
Au cours d'une étape d'initialisation S4, la carte à puce DV1 génère et enregistre dans la mémoire Ml, en association avec chaque entrée de transaction TI1-TI3, un paramètre de statut SP respectif. La carte à puce DV1 initialise (S4) chacun de ces paramètres SP en leur affectant une première valeur VI prédéfinie (VI = 0 par exemple). Un paramètre SP fixé à la valeur VI indique que l'entrée de transaction Ή associée n'a pas été dépensée, c'est-à-dire qu'elle n'a pas encore été utilisée par la carte à puce DV1 pour générer une sortie de transaction TO.During an initialization step S4, the smart card DV1 generates and stores in the memory M1, in association with each transaction input TI1-TI3, a respective status parameter SP. The smart card DV1 initializes (S4) each of these parameters SP by assigning them a first predefined value VI (VI = 0 for example). A parameter SP set to the value VI indicates that the associated transaction entry Ή has not been spent, that is to say that it has not yet been used by the smart card DV1 to generate a TO transaction exit.
La carte à puce DV1 conserve ainsi en mémoire les paramètres SP, ces paramètres étant fixés à la première valeur VI tant que l'entrée de transaction associée n'est pas utilisée par le porte-monnaie virtuel 4 lors du traitement d'une transaction pour générer une sortie de transaction TO.The smart card DV1 thus stores in memory the parameters SP, these parameters being fixed at the first value VI as long as the associated transaction entry is not used by the virtual wallet 4 during the processing of a transaction for generate a TO transaction output.
Dans cet exemple, la carte à puce DV1 réalise ensuite un traitement S6 d'une transaction, notée TRI, avec un terminal tiers, à savoir le terminal DV2 dans ce cas. On suppose ici qu'il s'agit d'une transaction de paiement d'un montant donné en bitcoin réalisée par l'utilisateur Ul en tant que débiteur (ou payeur), à destination de l'utilisateur U2 en tant que créditeur (ou destinataire). Au cours de ce traitement S6, la carte à puce DV1 réalise les étapes S8, S10 et S12 comme décrit ci-après.In this example, the smart card DV1 then performs a processing S6 of a transaction, denoted TRI, with a third-party terminal, namely the terminal DV2 in this case. It is assumed here that this is a payment transaction of a given amount in bitcoin carried out by the user Ul as a debtor (or payer), intended for the user U2 as a creditor (or recipient). During this processing S6, the smart card DV1 performs the steps S8, S10 and S12 as described below.
Au cours d'une étape de vérification SS, la carte à puce DV1 identifie au moins une entrée de transaction TI stockée dans la mémoire Ml, qui est indiquée comme non utilisée, c'est-à-dire dont le paramètre de statut SP est fixé à la valeur initiale VI. Dans l'exemple considéré ici, les entrées de transaction TU, TI2 et TI3 sont détectées comme non dépensées et donc disponibles (SP = VI) pour réaliser un paiement.During a verification step SS, the smart card DV1 identifies at least one transaction entry TI stored in the memory M1, which is indicated as unused, that is to say whose status parameter SP is fixed at the initial value VI. In the example considered here, the transaction entries TU, TI2 and TI3 are detected as unspent and therefore available (SP = VI) to make a payment.
Au cours d'une étape de génération S10, la carte à puce DV1 génère, à partir d'au moins l'une des entrées de transaction TI non dépensées identifiées en S8, une sortie de transaction TO définissant la transaction en cours entre la carte à puce DV1 et le terminalDuring a generation step S10, the smart card DV1 generates, from at least one of the unspent transaction inputs TI identified in S8, a transaction output TO defining the transaction in progress between the card chip DV1 and the terminal
DV2. Cette sortie de transaction TO comporte par exemple un montant de la transaction en cours et la clé publique de l'utilisateur tiers qui est le bénéficiaire de cette transaction.DV2. This transaction output TO includes, for example, an amount of the transaction in progress and the public key of the third-party user who is the beneficiary of this transaction.
Ainsi, les entrées de transaction TL stockées dans la mémoire Ml sont utilisées dans la génération (S10) d'une sortie de transaction TO seulement si le paramètre SP correspondant est fixé à la première valeur VI indiquant que ladite entrée de transaction associée n'est pas dépensée.Thus, the transaction inputs TL stored in the memory M1 are used in the generation (S10) of a transaction output TO only if the corresponding parameter SP is set to the first value VI indicating that said associated transaction input is not not spent.
Au cours d'une étape de modification S12, sur détection qu'une entrée de transaction Ή est utilisée en S10 pour générer une sortie de transaction TO, la carte à puce DV1 modifie le statut de cette entrée de transaction Tl en affectant à son paramètre SP associé une deuxième valeur prédéfinie V2 (V2 = -1 par exemple), différente de la première valeur VI, pour indiquer que l'entrée de transaction est dépensée et n'est donc plus disponible pour réaliser une nouvelle transaction. Autrement dit, la carte à puce DV1 bloque l'usage des entrées de transaction Ή qui ont été dépensées afin qu'elles ne puissent faire l'objet d'un double paiement.During a modification step S12, on detection that a transaction input Ή is used in S10 to generate a transaction output TO, the smart card DV1 modifies the status of this transaction input Tl by assigning to its parameter SP associated with a second predefined value V2 (V2 = -1 for example), different from the first value VI, to indicate that the transaction input is spent and is therefore no longer available for carrying out a new transaction. In other words, the DV1 smart card blocks the use of the transaction entries Ή which have been spent so that they cannot be the subject of a double payment.
Le processus de validation et d'inscription de la transaction TRI en cours est ensuite réalisé par le réseau de mineurs 20 de façon conventionnelle comme déjà évoqué précédemment et n'est donc pas décrit en détail dans ce document par souci de simplicité. Une fois la transaction TRI en cours validée, celle-ci est enregistrée par le réseau 20 dans la chaîne de blocs (registre) de sorte à être consultable notamment par le serveur SV.The validation and registration process of the current TRI transaction is then carried out by the network of miners 20 in a conventional manner as already mentioned above and is therefore not described in detail in this document for the sake of simplicity. Once the TRI transaction in progress is validated, it is recorded by the network 20 in the block chain (register) so as to be viewable in particular by the server SV.
Si la carte à puce DV1 détecte (S14) qu'une nouvelle transaction de paiement est initiée, le procédé réalise une nouvelle itération du traitement S6, comprenant les étapes S8-S10, comme déjà décrit ci-avant. Au cours de cette nouvelle itération de S6, la carte à puce DV1 détecte en particulier en SB que la ou les entrées de transaction TI dont le paramètre SP est à présent fixé à la valeur V2 sont bloquées et ne peuvent donc être utilisées en S10 pour générer une nouvelle sortie de transaction TO.If the smart card DV1 detects (S14) that a new payment transaction is initiated, the method performs a new iteration of the processing S6, comprising the steps S8-S10, as already described above. During this new iteration of S6, the smart card DV1 detects in particular in SB that the transaction input (s) TI whose parameter SP is now set to the value V2 are blocked and cannot therefore be used in S10 for generate a new TO transaction output.
L'invention permet avantageusement à un dispositif de traitement, telle que la carte à puce DV1, de contrôler le statut des entrées de transaction stockées dans sa mémoire de sorte à déterminer les entrées de transaction qui ont été dépensées et celles qui sont toujours disponibles pour réaliser une transaction de paiement. En affectant des valeurs VI ou V2 aux paramètres de statut de chaque entrée de transaction, le dispositif de traitement DV1 peut distinguer les entrées de transaction TI dépensées de celles qui ne le sont pas.The invention advantageously allows a processing device, such as the smart card DV1, to control the status of the transaction entries stored in its memory so as to determine the transaction entries which have been spent and which are still available for complete a payment transaction. By assigning values VI or V2 to the status parameters of each transaction entry, the processing device DV1 can distinguish spent transaction entries TI from those which are not spent.
L'invention permet en outre au dispositif de traitement DV1 de bloquer toutes les entrées de transaction TI qui ont été dépensées lors d'une transaction mais qui sont toujours présentes dans la mémoire Ml. De cette manière, le dispositif de traitement DV1 ne peut dépenser plusieurs fois de l'argent correspondant à une même entrée de transaction ΊΊ, en particulier dans la période nécessaire à la réalisation du processus de validation et d'inscription par le réseau de mineurs. Une fois une transaction inscrite dans la chaîne de blocs, une synchronisation du dispositif de traitement DV1 avec le serveur SV peut causer la suppression de la ou des entrées de transaction Ή dépensées dans la mémoire Ml,The invention further allows the processing device DV1 to block all the transaction inputs TI which have been spent during a transaction but which are still present in the memory M1. In this way, the processing device DV1 cannot spend money several times corresponding to the same transaction entry ΊΊ, in particular in the period necessary for the completion of the validation and registration process by the network of minors. Once a transaction has been entered in the block chain, synchronization of the processing device DV1 with the server SV can cause the deletion of the transaction entry (s) Ή spent in the memory M1,
L'invention permet ainsi de lutter contre le phénomène de double-paiement déjà décrit précédemment et ainsi sécuriser les transactions de paiement.The invention thus makes it possible to combat the phenomenon of double-payment already described previously and thus to secure the payment transactions.
A noter cependant, comme indiqué précédemment, que si des difficultés techniques surviennent lors du processus de validation et d'inscription d'une transaction en cours, au niveau notamment du terminal DV2 ou du réseau de mineurs 20 (figure 1), il y a un risque que l'inscription de la sortie de transaction TO soit retardée, voire même qu'elle n'ait jamais lieu. Dans ce cas, un problème peut survenir en ce qu'une entrée de transaction TI peut être considérée comme dépensée du point de vue du dispositif de traitement DV1 alors qu'elle n'a jamais été inscrite, en tant que transaction dépensée (ou validée), dans la chaîne de blocs. Cette incohérence a pour conséquence que, bien que le paiement n'ait pas eu lieu, l'entrée de transaction ΊΊ concernée ne peut plus être utilisée par le dispositif de traitement DV1. L'invention propose de résoudre ces problèmes supplémentaires comme décrit ci-après.Note, however, as indicated above, that if technical difficulties arise during the validation and registration process of a transaction in progress, in particular at the DV2 terminal or the miners' network 20 (Figure 1), there is a risk that the registration of the TO transaction exit is delayed, or even that it never takes place. In this case, a problem may arise in that a transaction entry TI can be considered spent from the point of view of the processing device DV1 when it has never been recorded, as a transaction spent (or validated). ), in the blockchain. This inconsistency means that, although the payment has not taken place, the transaction entry l'entrée concerned can no longer be used by the processing device DV1. The invention proposes to solve these additional problems as described below.
Un mode de réalisation particulier de l'invention est à présent décrit en référence à la figure 4. Plus précisément, le dispositif de traitement DV1 représenté en figures 1-2 exécute le programme d'ordinateur PG1 pour mettre en œuvre un procédé de contrôle du porte-monnaie virtuel 4, selon un mode de réalisation particulier.A particular embodiment of the invention is now described with reference to Figure 4. More specifically, the processing device DV1 shown in Figures 1-2 executes the computer program PG1 to implement a method of controlling the virtual wallet 4, according to a particular embodiment.
Comme indiqué précédemment, la carte à puce DV1 peut se synchroniser régulièrement avec le serveur distant SV pour mettre à jour les entrées de transaction TI dont l'utilisateur Ul, c’est-à-dire le compte de l'utilisateur Ul, est le propriétaire selon la chaîne de blocs. Ainsi, lors d'une telle synchronisation, la carte à puce DV1 reçoit (étape S20) des données de mise à jour DM et un indicateur temporel TS. Ces données de mise à jour DM spécifient les entrées de transaction Ή valides, c'est-à-dire à la disposition de du compte de l'utilisateur Ul, à un instant particulier tl représenté par l'indicateur temporel TS. Ces données de mise à jour DM sont par exemple représentatives de l'état de la chaîne de blocs à l'instant tl, et reflètent donc les entrées de transaction TI qui sont valides à cet instant. L'indicateur temporel TS comprend par exemple la date et/ou l'heure de l'instant tl. La synchronisation S20 peut être réalisée de façon sécurisée, par exemple en utilisant un canal sécurisé entre le serveur SV et la carte à puce DV1, suite à un protocole d'authentification mutuelle. Dans un mode d'implémentation, l'indicateur temporel TS est certifié, par exemple par signature cryptographique dudit indicateur à l'aide d'une clé privé associée à une clé publique connue du dispositif de traitement DV1.As indicated previously, the smart card DV1 can be synchronized regularly with the remote server SV to update the transaction entries TI of which the user Ul, that is to say the account of the user Ul, is the owner according to blockchain. Thus, during such synchronization, the smart card DV1 receives (step S20) update data DM and a time indicator TS. These update data DM specify the valid transaction entries Ή, that is to say available to the account of the user Ul, at a particular instant tl represented by the time indicator TS. These update data DM are for example representative of the state of the block chain at time tl, and therefore reflect the transaction entries TI which are valid at this time. The time indicator TS comprises for example the date and / or the time of the instant tl. Synchronization S20 can be carried out in a secure manner, for example by using a secure channel between the server SV and the smart card DV1, following a mutual authentication protocol. In one implementation mode, the time indicator TS is certified, for example by cryptographic signature of said indicator using a private key associated with a public key known to the processing device DV1.
Dans l'exemple considéré ici, le traitement selon les étapes S22-S34 décrites ci-après est réalisé pour chacune des entrées de transaction Ή1-ΊΊ3 présentes dans la mémoire Ml de la carte à puce DV1. On suppose ici que la carte à puce DV1 traite l'entrée de transaction TU lors d'une première itération des étapes S22-S34.In the example considered here, the processing according to steps S22-S34 described below is carried out for each of the transaction inputs Ή1-ΊΊ3 present in the memory M1 of the smart card DV1. It is assumed here that the smart card DV1 processes the transaction input TU during a first iteration of steps S22-S34.
Au cours d'une étape de vérification S22, la carte à puce DV1 vérifie, à partir des données de mise à jour DM reçues, que l'entrée de transaction TU stockée dans sa mémoire Ml est valide. Les données de mise à jour DM permettent en particulier à la carte à puce DV1 de déterminer si une transaction de paiement préalablement réalisée a été validée et enregistrée dans la chaîne de bloc.During a verification step S22, the smart card DV1 verifies, from the update data DM received, that the transaction entry TU stored in its memory M1 is valid. The update data DM in particular allows the smart card DV1 to determine whether a previously completed payment transaction has been validated and recorded in the block chain.
Si l'entrée de transaction TU est déterminée (S22) comme invalide, la carte à puce DV1 supprime (S24) l'entrée de transaction TU de sa mémoire Ml. Une entrée de transaction TI est en particulier désignée comme invalide par les données de mises à jour DM si cette entrée a été précédemment utilisée par l'utilisateur U1 pour effectuer un paiement qui a été validé et inscrit dans la chaîne de blocs du système Bitcoin. Selon un mode d'implémentation particulier, la carte à puce DV1 supprime également l'indicateur SP1 associé à l'entrée de transaction TU supprimée.If the transaction entry TU is determined (S22) to be invalid, the smart card DV1 deletes (S24) the transaction entry TU from its memory M1. A transaction entry TI is in particular designated as invalid by the update data DM if this entry has been previously used by the user U1 to make a payment which has been validated and entered in the block chain of the Bitcoin system. According to a particular implementation mode, the smart card DV1 also removes the indicator SP1 associated with the deleted transaction entry TU.
Une fois l'étape S24 de suppression réalisée, le procédé peut prendre fin ou se poursuivre en réalisant une nouvelle itération des étapes S22-S34, par exemple pour traiter les autres entrées de transaction TI2 et TI3.Once the deletion step S24 has been carried out, the method can end or continue by carrying out a new iteration of the steps S22-S34, for example to process the other transaction inputs TI2 and TI3.
En revanche, si l'entrée de transaction TU est détectée en S22 comme valide, le procédé se poursuit à l'étape de détection S26.On the other hand, if the transaction entry TU is detected in S22 as valid, the method continues at the detection step S26.
Lors de l'étape de détection S26, la carte à puce DV1 détermine si le paramètre SP1 correspondant à l'entrée de transaction TU détectée comme valide du point de vue du serveur SV a une valeur différente des valeurs VI et V2 prédéfinies déjà mentionnées ciavant.During the detection step S26, the smart card DV1 determines whether the parameter SP1 corresponding to the transaction entry TU detected as valid from the point of view of the server SV has a value different from the predefined values VI and V2 already mentioned above .
Pour rappel, un paramètre de statut SP fixé à la valeur prédéfinie VI ou V2 indique que, du point de vue de la carte à puce DV1, l'entrée de transaction TI associée est respectivement disponible (non dépensée) ou utilisée (dépensée). L'entrée de transaction TU est considéré comme dépensée, et donc bloquée, du point de vue de la carte à puce DV1 si cette dernière a préalablement utilisé cette entrée de transaction TI1 lors d'une transaction pour générer une transaction de sortie TO. Ces valeurs VI et V2 sont connues de la carte à puce DV1. Dans un exemple particulier, VI = 0 et V2 = -1, d'autres affectations de valeurs étant possibles.As a reminder, a status parameter SP fixed at the predefined value VI or V2 indicates that, from the point of view of the smart card DV1, the associated transaction entry TI is respectively available (not spent) or used (spent). The transaction input TU is considered spent, and therefore blocked, from the point of view of the smart card DV1 if the latter has previously used this transaction input TI1 during a transaction to generate an output transaction TO. These values VI and V2 are known to the smart card DV1. In a particular example, VI = 0 and V2 = -1, other assignments of values being possible.
Si le paramètre SP1 de l'entrée de transaction TIl est fixé à une valeur différente de VI et V2 (étape S26), le procédé se poursuit à l'étape S32, sinon le procédé se poursuit à l'étape 530.If the parameter SP1 of the transaction input TI1 is set to a value different from VI and V2 (step S26), the method continues in step S32, otherwise the method continues in step 530.
En S30, si le paramètre SP1 est détecté comme ayant la valeur V2, la carte à puce DV1 détecte que l'entrée de transaction TIl associée a été précédemment utilisée pour générer une sortie de transaction TO et, en conséquence, modifie le statut de l'entrée de transaction TIl en affectant au paramètre SRI correspondant une troisième valeur V3, différente des valeurs VI et V2, cette valeur V3 étant représentative de l'instant tl défini par l'indicateur temporel TS reçu en S20. A noter que, dans ce cas, la carte à puce DV1 considère que l'entrée de transaction TIl en question est dépensée alors que, selon les données de mises à jour DM, cette entrée de transaction TIl est toujours valide (car sa dépense n'est pas inscrite dans la chaîne de blocs). Cette situation se produit en particulier lorsqu'une transaction récemment réalisée par la carte à puce DV1 n'a pas encore été validée par le réseau 20 et inscrite dans la chaîne de blocs.In S30, if the parameter SP1 is detected as having the value V2, the smart card DV1 detects that the associated transaction input TI1 was previously used to generate a transaction output TO and, consequently, modifies the status of the transaction input TIl by assigning to the corresponding SRI parameter a third value V3, different from the values VI and V2, this value V3 being representative of the instant tl defined by the time indicator TS received in S20. Note that, in this case, the smart card DV1 considers that the transaction entry TIl in question is spent whereas, according to the update data DM, this transaction entry TIl is always valid (because its expenditure n 'is not included in the blockchain). This situation occurs in particular when a transaction recently carried out by the smart card DV1 has not yet been validated by the network 20 and entered in the block chain.
Dans un exemple particulier, la valeur V3 est égale à l'indicateur temporel TS ou déterminé à partir de l'indicateur temporel TS. Une fois l'étape S30 réalisée, le procédé peut prendre fin ou se poursuivre en réalisant une nouvelle itération des étapes S22-S34, par exemple pour traiter les autres entrées de transaction ΤΊ2 etTI3.In a particular example, the value V3 is equal to the time indicator TS or determined from the time indicator TS. Once step S30 has been completed, the method can end or continue by carrying out a new iteration of steps S22-S34, for example to process the other transaction inputs ΤΊ2 andTI3.
Toujours à l'étape S30, si le paramètre de l'entrée de transaction TIl est détecté comme ayant la valeur VI, aucune action particulière n'est réalisée et le procédé peut initier une nouvelle itération des étapes S22-S34, par exemple pour traiter les autres entrées de transaction TI2 et 1Ί3. Le fait qu'une entrée de transaction Ή considérée comme valide du point de vue de la chaîne de blocs ait son paramètre SP à la valeur VI est cohérent et n'appelle à aucune action particulière.Still at step S30, if the parameter of the transaction input TI1 is detected as having the value VI, no particular action is taken and the method can initiate a new iteration of steps S22-S34, for example to process the other transaction entries TI2 and 1Ί3. The fact that a transaction entry Ή considered valid from the blockchain point of view has its parameter SP at the value VI is consistent and does not call for any particular action.
Par ailleurs, sur détection en S26 que le paramètre SRI de l'entrée de transaction TH (qui est valide) a une valeur V4 différente des valeurs prédéfinies VI et V2, la carte à puce DV1 en déduit que cette valeur V4 est représentative d'un instant t2, antérieur à tl, correspondant à une précédente mise à jour. Cette valeur V4 a été affectée par la carte à puce DV1 au paramètre SP1 en question lors d'une précédente itération de l'étape S30 (synchronisation antérieure).Furthermore, upon detection in S26 that the parameter SRI of the transaction input TH (which is valid) has a value V4 different from the predefined values VI and V2, the smart card DV1 deduces therefrom that this value V4 is representative of an instant t2, prior to tl, corresponding to a previous update. This value V4 has been assigned by the smart card DV1 to the parameter SP1 in question during a previous iteration of step S30 (previous synchronization).
La carte à puce DV1 calcule (S32) alors l'intervalle de temps INT qui s'est écoulé entre l'instant t2 et l'instant tl, à partir de l'indicateur temporel TS représentatif de l'instant tl et de la valeur V4 représentatif de l'instant antérieur t2.The smart card DV1 then calculates (S32) the time interval INT which has elapsed between the instant t2 and the instant tl, from the time indicator TS representative of the instant tl and the value V4 representative of the previous instant t2.
SU est détecté en S32 que cet intervalle de temps (tl - t2) atteint une durée limite prédéterminée DL, alors le procédé se poursuit à l'étape S34. Sinon, le procédé peut prendre fin ou reprend éventuellement par une nouvelle itération des étapes S22-S34, par exemple pour traiter les autres entrées de transaction ΊΊ2 et Π3.SU is detected in S32 that this time interval (tl - t2) reaches a predetermined limit duration DL, then the method continues at step S34. Otherwise, the method can end or possibly resume with a new iteration of steps S22-S34, for example to process the other transaction inputs ΊΊ2 and Π3.
Dans un exemple particulier, la carte à puce DV1 détermine en S32 la durée limitée prédéterminée DL à partir d'un paramètre, dit paramètre de durée, compris dans l'entrée de transaction TI1 ou dans la sortie de transaction TO qui a été générée à partir de cette entrée de transaction TI1.In a particular example, the smart card DV1 determines in S32 the predetermined limited duration DL from a parameter, called the duration parameter, included in the transaction input TI1 or in the transaction output TO which was generated at from this TI1 transaction entry.
A l'étape de modification S34, la carte à puce DV1 modifie le statut de l'entrée de transaction TI1 en affectant au paramètre SP1 associé la valeur initiale VI indiquant que l'entrée de transaction en question n'est pas dépensée.In the modification step S34, the smart card DV1 modifies the status of the transaction entry TI1 by assigning to the associated parameter SP1 the initial value VI indicating that the transaction entry in question is not spent.
De cette manière, l'entrée de transaction TI1 dont le paramètre SRI a été réinitialisé à la valeur VI est débloquée et peut donc à nouveau être utilisée par la carte à puce DV1 lors d'une transaction ultérieure pour générer (étape S10, figure 3) une sortie de transaction.In this way, the transaction input TI1, the SRI parameter of which has been reset to the value VI, is released and can therefore again be used by the smart card DV1 during a subsequent transaction to generate (step S10, FIG. 3). ) a transaction exit.
Comme représenté en figure 4, le procédé peut prendre fin ou se poursuivre en réalisant une nouvelle itération des étapes S22-S34, par exemple pour traiter les autres entrées de transaction TI2 et ΊΊ3.As shown in FIG. 4, the method can end or continue by carrying out a new iteration of steps S22-S34, for example to process the other transaction inputs TI2 and ΊΊ3.
Un exemple de réalisation est à présent décrit en référence à la figure 5. Dans cet exemple, on suppose que la carte à puce DV1, représentée en figures 1-2, comprend dans sa mémoire Ml les entrées de transaction ΤΊ1-ΤΊ3 définissant des transactions dont l'utilisateur UI a été le bénéficiaire, en association avec les paramètres de statut SP1-SP3 indiquant si ces entrées de transaction respectives TI1-TI3 ont été dépensées par l'utilisateur UI ou non. Dans cet exemple, on suppose que l'entrée de transaction 111 a déjà été dépensée par la carte à puce DV1 lors d'une transaction de paiement passée, notée TRI (figure 3), avec le terminal DV2 et que les entrées de transaction TI2 et TI3 n'ont pas encore été dépensées par la carte à puce DV1, On considère donc dans cet exemple que la mémoire Ml est dans l'état suivant :An exemplary embodiment is now described with reference to FIG. 5. In this example, it is assumed that the smart card DV1, represented in FIGS. 1-2, includes in its memory M1 the transaction inputs ΤΊ1-ΤΊ3 defining transactions of which the user UI was the beneficiary, in association with the status parameters SP1-SP3 indicating whether these respective transaction entries TI1-TI3 have been spent by the user UI or not. In this example, it is assumed that the transaction entry 111 has already been spent by the smart card DV1 during a past payment transaction, denoted TRI (FIG. 3), with the terminal DV2 and that the transaction entries TI2 and TI3 have not yet been spent by the smart card DV1, We therefore consider in this example that the memory Ml is in the following state:
• SP1 = V2 = -1 indiquant que l'entrée TI1 est dépensée et donc bloquée ;• SP1 = V2 = -1 indicating that the input TI1 is spent and therefore blocked;
• SP2 = VI = 0 et SP3 = VI = Ο indiquant que les entrées respectives ΊΊ2 et TI3 n'ont pas encore été dépensées et peuvent être utilisées par la carte à puce• SP2 = VI = 0 and SP3 = VI = Ο indicating that the respective inputs ΊΊ2 and TI3 have not yet been spent and can be used by the smart card
DV1.DV1.
Au cours d'une première synchronisation S20a, la carte à puce DV1 reçoit en 5 provenance du serveur SV des premières données de mise à jour DM1 et un premier indicateur temporel TS1.During a first synchronization S20a, the smart card DV1 receives from the server SV first update data DM1 and a first time indicator TS1.
Ces données de mise à jour DM1 spécifient les entrées de transaction Ή de l'utilisateur lll qui sont valides selon la chaîne de blocs du système Bitcoin à un instant particulier t3 représenté par l'indicateur temporel TS1. L'indicateur temporel TS1 10 comprend par exemple la date et/ou l'heure correspondant à (Instant t3.This update data DM1 specifies the transaction entries Ή of the user lll which are valid according to the block chain of the Bitcoin system at a particular instant t3 represented by the time indicator TS1. The time indicator TS1 10 comprises for example the date and / or the time corresponding to (Instant t3.
On suppose qu'il s'agit de la première synchronisation avec le serveur distant SV depuis l'utilisation par la carte à puce DV1 de l'entrée de transaction ΊΊ1 (étape S10, figure 3) lors de la transaction passée TRI pour générer une sortie d'entrée TO. Dans cet exemple, les données de mise à jour DM1 indiquent que l'entrée de transaction Π1 est 15 toujours valide à l'instant t3 car sa dépense n'est pas encore inscrite dans la chaîne de blocs. Comme déjà expliqué, un temps de traitement plus ou moins long est nécessaire entre le moment de la transaction TRI et l'inscription de cette transaction dans la chaîne de blocs. Cette inscription de la transaction TRI peut en particulier tarder, voire même ne jamais se produire, si des difficultés techniques surviennent au niveau du terminal DV2 ou 20 du réseau de mineurs 2 lors du processus de vérification et d'inscription dans la chaîne de blocs.It is assumed that this is the first synchronization with the remote server SV since the use by the smart card DV1 of the transaction input ΊΊ1 (step S10, FIG. 3) during the past transaction TRI to generate a TO input output. In this example, the update data DM1 indicate that the transaction entry Π1 is still valid at time t3 because its expenditure is not yet recorded in the block chain. As already explained, a more or less long processing time is necessary between the moment of the TRI transaction and the recording of this transaction in the block chain. This registration of the TRI transaction may in particular delay, or even never occur, if technical difficulties arise at the level of the terminal DV2 or 20 of the network of miners 2 during the verification and registration process in the block chain.
Au cours d'une étape S30a (identique à l'étape S30 de la figure 4), la carte à puce DV1 affecte, au paramètre SRI de la première entrée de transaction ΤΊ1 indiquée comme dépensée (SP1=V2), une troisième valeur V3 prédéfinie représentative du premier instant 25 t3, cette valeur V3 étant différente des valeurs VI = 0 et V2 = -1 précédemment mentionnées. Dans cet exemple, la valeur V3 est égale à l'indicateur temporel TS1 reçu en S20a lors de la première synchronisation.During a step S30a (identical to step S30 of FIG. 4), the smart card DV1 assigns, to the parameter SRI of the first transaction entry ΤΊ1 indicated as spent (SP1 = V2), a third value V3 predefined representative of the first instant 25 t3, this value V3 being different from the values VI = 0 and V2 = -1 previously mentioned. In this example, the value V3 is equal to the time indicator TS1 received in S20a during the first synchronization.
En affectant cette valeur V3 au paramètre de statut SRI, il est possible de spécifier dans la mémoire Ml de la carte à puce DV1 un instant t3 à partir duquel l'entrée de 30 transaction TI1 a le statut « dépensé » et, comme expliqué ci-après, de vérifier ultérieurement si le temps nécessaire pour que cette entrée de transaction ΤΊ1 soit inscrite dans la chaîne de blocs est normal ou anormalement long.By assigning this value V3 to the status parameter SRI, it is possible to specify in the memory M1 of the smart card DV1 a time t3 from which the transaction entry TI1 has the status "spent" and, as explained below. -afterwards, check later whether the time necessary for this transaction entry ΤΊ1 to be written to the block chain is normal or abnormally long.
On suppose que la carte à puce DV1 réalise par la suite une deuxième synchronisation S20b avec le serveur SV. Au cours de cette deuxième synchronisationIt is assumed that the smart card DV1 subsequently performs a second synchronization S20b with the server SV. During this second synchronization
S20b, la carte à puce DV1 reçoit en provenance du serveur SV des deuxièmes données de mise à jour DM2 et un deuxième indicateur temporel TS2.S20b, the smart card DV1 receives from the server SV second update data DM2 and a second time indicator TS2.
Ces données de mise à jour DM2 spécifient les entrées de transaction Ή de l'utilisateur U1 qui sont valides selon la chaîne de blocs du système Bitcoin à un instant particulier t4 représenté par l'indicateur temporel TS2. Dans cet exemple, l'instant t4 est postérieur à l'instant t3. L'indicateur temporel TS2 comprend par exemple la date et/ou l'heure correspondant à l'instant t4.This update data DM2 specifies the transaction inputs Ή of the user U1 which are valid according to the block chain of the Bitcoin system at a particular time t4 represented by the time indicator TS2. In this example, time t4 is after time t3. The time indicator TS2 comprises for example the date and / or the time corresponding to time t4.
Au cours d'une étape de détermination S22b, la carte à puce DV1 détermine pour chaque entrée de transaction ΤΙ1-ΊΊ3 stockée dans la mémoire Ml, si celle-ci est valide du point de vue de la chaîne de blocs, de façon identique à l'étape S22 représentée en figure 4. Dans la négative (entrée invalide), la carte à puce DV1 supprime l'entrée de transaction Ή concernée de sa mémoire Ml à l'étape S30b de façon identique à l'étape S24 représentée figure 4.During a determination step S22b, the smart card DV1 determines for each transaction entry ΤΙ1-ΊΊ3 stored in the memory M1, if the latter is valid from the point of view of the block chain, in the same way as step S22 shown in FIG. 4. In the negative (invalid entry), the smart card DV1 deletes the transaction entry Ή concerned from its memory M1 in step S30b in an identical manner to step S24 shown in FIG. 4 .
A titre d'exemple, on s'intéresse par la suite au traitement de l'entrée TH qui a été précédemment dépensée par l'utilisateur U1 lors de la transaction TRI. On suppose dans cet exemple qu'un problème technique quelconque affectant le terminal DV2 ou le réseau de mineurs 20 a perturbé le processus de validation et d'inscription de la transaction TRI précédemment réalisée par la carte à puce DV1 avec le terminal DV2.By way of example, we are subsequently interested in the processing of the input TH which was previously spent by the user U1 during the transaction TRI. It is assumed in this example that any technical problem affecting the terminal DV2 or the network of miners 20 has disrupted the validation and registration process of the TRI transaction previously carried out by the smart card DV1 with the terminal DV2.
Aussi, à l'instant t4, la sortie de transaction TO générée à partir de l'entrée de transaction TU n'a toujours pas été inscrite dans la chaîne de blocs. Par conséquent, à l'étape S22b, la carte à puce DV1 détecte que l'entrée TI1 est toujours valide et le procédé procède à l'étape S26b.Also, at time t4, the transaction output TO generated from the transaction input TU has still not been written to the block chain. Consequently, in step S22b, the smart card DV1 detects that the input TI1 is still valid and the method proceeds to step S26b.
Au cours de l'étape S26b, la carte à puce DV1 détecte que le paramètre de statut SP1 de l'entrée de transaction TU a une valeur V3 distincte des valeurs prédéfinies VI et V2, comme déjà décrit en référence à l'étape S26 représentée en figure 4. La carte à puce DV1 en déduit que la valeur V3 constitue une indication temporelle correspondant à une précédente synchronisation et le procédé procède à une étape S32b identique à l'étape S32 représentée en figure 4.During step S26b, the smart card DV1 detects that the status parameter SP1 of the transaction entry TU has a value V3 distinct from the predefined values VI and V2, as already described with reference to step S26 shown in FIG. 4. The smart card DV1 deduces therefrom that the value V3 constitutes a time indication corresponding to a previous synchronization and the method proceeds to a step S32b identical to the step S32 shown in FIG. 4.
Sur détection (S22b, S26b) que l'entrée de transaction TI1 est toujours valide et que le paramètre SP1 a une troisième valeur V3 différente des valeurs prédéfinies VI et V2, la carte à puce DV1 détermine (étape S32b) alors, à partir de ia troisième valeur V3 et du deuxième indicateur temporel TS2, si l'intervalle de temps INT entre le premier instant t3 et le deuxième instant t4 atteint une durée limite prédéterminée DL. Dans la négative, le procédé prend fin (étape S40). Dans le cas contraire (t4 - t3 > DL), le procédé se poursuit à l'étape S34b.Upon detection (S22b, S26b) that the transaction input TI1 is still valid and that the parameter SP1 has a third value V3 different from the predefined values VI and V2, the smart card DV1 determines (step S32b) then, from ia third value V3 and of the second time indicator TS2, if the time interval INT between the first time t3 and the second time t4 reaches a predetermined time limit DL. If not, the process ends (step S40). Otherwise (t4 - t3> DL), the method continues at step S34b.
Dans un exemple particulier, la carte à puce DV1 détermine en S32b la durée limitée prédéterminée DL à partir d'un paramètre, dit paramètre de durée, compris dans l'entrée de transaction TI1 ou dans la sortie de transaction TO qui a été précédemment générée à partir de cette entrée de transaction TU.In a particular example, the smart card DV1 determines in S32b the predetermined limited duration DL from a parameter, called the duration parameter, included in the transaction input TI1 or in the transaction output TO which was previously generated from this TU transaction entry.
Au cours de l'étape S34b (identique à l'étape S34 représentée en figure 4), la carte à puce DV1 modifie le statut de l'entrée de transaction TU en affectant au paramètre SRI associé la valeur initiale VI indiquant que cette entrée de transaction TU n'est pas dépensée.During step S34b (identical to step S34 shown in FIG. 4), the smart card DV1 modifies the status of the transaction entry TU by assigning to the associated SRI parameter the initial value VI indicating that this entry of TU transaction is not spent.
A noter que l'ordre dans lequel sont exécutées les étapes du procédé de l'invention, notamment dans les figures 3, 4 et 5, n'est présenté ici qu'à titre d'exemple et est susceptible d'adaptations dans le cadre de l'invention. En figure 5, par exemple, l'étape S22b peut éventuellement être réalisée après l'étape S26b.Note that the order in which the steps of the process of the invention are carried out, in particular in FIGS. 3, 4 and 5, is presented here only by way of example and is susceptible of adaptations in the context of the invention. In FIG. 5, for example, step S22b can optionally be carried out after step S26b.
Comme indiqué précédemment, si des difficultés techniques viennent perturber le processus de validation et d'inscription d'une transaction en cours, au niveau notamment du terminal DV2 ou du réseau de mineurs 20 (figure 1), il y a un risque que l'inscription d'une sortie de transaction TO soit retardée, voire même qu'elle n'ait jamais lieu, ce qui pose problème dans la mesure où une ou des entrées de transaction Π peuvent être bloquées dans la carte à puce DV1 bien que le paiement n'ait pas eu lieu.As indicated above, if technical difficulties disrupt the validation and registration process of a transaction in progress, particularly at the level of the DV2 terminal or the miners' network 20 (Figure 1), there is a risk that the registration of a TO transaction output is delayed, or even never takes place, which is problematic insofar as one or more transaction inputs Π can be blocked in the DV1 smart card although the payment did not happen.
L'invention permet avantageusement à la carte à puce DV1 de vérifier si le processus de validation et d'inscription dans la chaîne de blocs d'une sortie de transaction TO prend trop de temps ou non et, dans le cas d'un traitement anormalement long, de considérer que le paiement n'a pas eu lieu et par conséquent de débloquer dans la carte à puce DV1 le ou les entrées de transaction TI qui ont été utilisées pour générer la sortie de transaction TO considérée. Une fois réactivées, les entrées de transaction TI peuvent être utilisées à nouveau par le porte-monnaie virtuel lors d'une nouvelle transaction de paiement.The invention advantageously allows the DV1 chip card to check whether the validation process and the blockchain process of a TO transaction output takes too long or not and, in the case of abnormally processing long, to consider that the payment has not taken place and consequently to unlock in the smart card DV1 the transaction input (s) TI which were used to generate the transaction output TO considered. Once reactivated, the TI transaction entries can be used again by the virtual wallet during a new payment transaction.
L'invention permet ainsi d'éviter que des entrées de transaction TI soient bloquées indéfiniment dans le cas où un problème particulier vient perturber le processus de validation et d'inscription dans la chaîne de blocs.The invention thus makes it possible to prevent TI transaction entries from being blocked indefinitely in the event that a particular problem disturbs the validation and registration process in the block chain.
A noter que, dans les exemples représentés en figures 4 et 5, la carte à puce DV1 réalise des synchronisations avec un serveur distant SV afin de mettre à jour ses entrées de transaction TI. Pour ce faire, la carte à puce DV1 reçoit en provenance du serveur SV des données de mise à jour DM et un indicateur temporel TS, comme déjà expliqué précédemment. A noter toutefois que la carte à puce DV1 peut, de manière générale, réaliser une synchronisation avec un serveur distant (tel que le serveur SV) de sorte à recevoir des données de mise à jour DM sans indicateur temporel TS ou, inversement, pour recevoir un indicateur temporel TS sans données de mise à jour DM.Note that, in the examples shown in FIGS. 4 and 5, the smart card DV1 performs synchronizations with a remote server SV in order to update its transaction inputs TI. To do this, the smart card DV1 receives from the server SV update data DM and a time indicator TS, as already explained previously. Note however that the DV1 smart card can, in general, perform synchronization with a remote server (such as the SV server) so as to receive DM update data without TS time indicator or, conversely, to receive a TS time indicator without DM update data.
Selon un exemple particulier, la carte à puce DV1 reçoit des données de mise à jour DM du serveur SV afin de déterminer si ses entrées de transaction TI1-TI3 sont toujours valides. Pour ce faire, la carte à puce DV1 réalise par exemple une synchronisation avec le serveur SV. Au cours d'une telle synchronisation, la carte à puce DV1 reçoit des données de mise à jour MD. La carte à puce DV1 détecte, à partir des données de mise à jour DM reçues, qu'au moins une entrée de transaction TI (TU par exempte) stockée dans sa mémoire Ml n'est plus valide et supprime de sa mémoire Ml chaque entrée de transaction TI détectée comme non valide.According to a particular example, the smart card DV1 receives update data DM from the server SV in order to determine whether its transaction entries TI1-TI3 are still valid. To do this, the smart card DV1 performs, for example, synchronization with the server SV. During such synchronization, the smart card DV1 receives update data MD. The smart card DV1 detects, from the DM update data received, that at least one transaction entry TI (TU for example) stored in its memory Ml is no longer valid and deletes from its memory Ml each entry transaction transaction detected as invalid.
Par ailleurs, pour sécuriser une transaction de paiement, il est préférable que le terminal DV2 (figure 1) authentifie la carte à puce DV1 pour déterminer que celle-ci est un tiers de confiance. Sur détection que l'utilisateur UI est un tiers de confiance et ne peut donc pas réaliser de double-paiement, le terminal DV2 accepte une transaction en cours.Furthermore, to secure a payment transaction, it is preferable that the terminal DV2 (FIG. 1) authenticate the smart card DV1 to determine that it is a trusted third party. Upon detection that the user UI is a trusted third party and therefore cannot make a double payment, the DV2 terminal accepts a transaction in progress.
Selon un exemple particulier, au cours du traitement d'une transaction en cours, la carte à puce DV1 s'authentifie auprès du terminal DV2 en envoyant une réponse déterminée à partir d'une donnée de défi préalablement reçue du terminal DV2. Cette réponse comprend par exemple une signature d'un message comportant la donnée de défi.According to a particular example, during the processing of a transaction in progress, the smart card DV1 authenticates with the terminal DV2 by sending a response determined from challenge data previously received from the terminal DV2. This response includes for example a signature of a message comprising the challenge data.
Un exemple de réalisation particulier est décrit en référence à la figure 6. Dans cet exemple, lors d'une transaction TR2 en cours de traitement, le terminal DV2 génère (S54) un donnée de défi CH1. Cette donnée de défi CH1 se présent par exemple sous la forme d'une série de symboles, de type alphanumériques ou autres. Cette donnée de défi CH1 est par exemple générée aléatoirement par le terminal DV2.A particular exemplary embodiment is described with reference to FIG. 6. In this example, during a transaction TR2 during processing, the terminal DV2 generates (S54) a challenge data item CH1. This challenge data CH1 is for example in the form of a series of symbols, of alphanumeric type or others. This challenge data CH1 is for example randomly generated by the terminal DV2.
Le terminal DV2 envoie (S56) cette donnée de défi CH1 à la carte à puce DV1. Une fois la donnée de défi CH1 reçue (S56), la carte à puce DV1 calcule (S58) un résultat HH1 d'une fonction de hachage F, à partir de données de transaction représentatives de la transaction TR.2 en cours. Ces données de transaction peuvent être une sortie de transaction TO générée par la carte à puce DV1 comme décrit précédemment (S10, figure 3).The terminal DV2 sends (S56) this challenge data CH1 to the smart card DV1. Once the challenge data CH1 has been received (S56), the smart card DV1 calculates (S58) a result HH1 of a hash function F, from transaction data representative of the transaction TR.2 in progress. This transaction data can be a transaction output TO generated by the smart card DV1 as described previously (S10, FIG. 3).
La carte à puce DV1 détermine (S60) ensuite la signature SI d'un message comprenant le résultat HH1 et la donnée de défi CH1, avec éventuellement d'autres informations. Cette signature est réalisée à l'aide de la clé secrète SKI de l'utilisateur Ul.The smart card DV1 then determines (S60) the signature SI of a message comprising the result HH1 and the challenge data CH1, with possibly other information. This signature is carried out using the secret key SKI of the user U1.
La carte à puce DV1 envoie la signature SI et le résultat HH1 au terminal DV2 lors d'une étape S62.The smart card DV1 sends the signature SI and the result HH1 to the terminal DV2 during a step S62.
Selon un autre mode de réalisation, la signature SI est déterminée en S60 à l'aide d'une clé secrète autre que la clé secrète SKI associée au compte crypto monnaie de l'utilisateur Ul. (e.g. on utilise la clé secrète associée à une application de paiement EMV).According to another embodiment, the signature SI is determined in S60 using a secret key other than the secret key SKI associated with the crypto-currency account of the user Ul. (Eg the secret key associated with a EMV payment application).
Le terminal DV2 reçoit (S62) puis vérifie (S64) la signature SI à partir de la dé publique PKI de l'utilisateur Ul. Si cette vérification S64 est passée avec succès, le terminal DV2 enregistre (S66) le résultat HH1 dans sa mémoire et le procédé se poursuit.The terminal DV2 receives (S62) then verifies (S64) the signature SI from the public PKI of the user Ul. If this verification S64 has passed successfully, the terminal DV2 stores (S66) the result HH1 in its memory and the process continues.
Une phase de vérification S68 d'un code personnel (PIN) de l'utilisateur Ul est éventuellement réalisée entre la carte à puce DV1 et le terminal DV2.A verification phase S68 of a personal code (PIN) of the user Ul is optionally carried out between the smart card DV1 and the terminal DV2.
La carte à puce DV1 envoie (S70) alors les données de transaction représentatives de la transaction TR2 en cours au terminal DV2, éventuellement sur requête du terminal DV2. Ces données de transaction comprennent la sortie de transaction TO correspondant à la transaction TR2 et, éventuellement d'autres données associées comme déjà expliqué. A partir de ces données de transaction, le terminal DV2 calcule (S72) son propre résultat HH2 de la fonction de hachage F puis compare les résultats HH1 et HH2 de sorte que l'authentification de la carte à puce DV1 et de la transaction TR2 est passée avec succès seulement si HH1 = HH2.The smart card DV1 then sends (S70) the transaction data representative of the transaction TR2 in progress to the terminal DV2, possibly on request from the terminal DV2. This transaction data includes the transaction output TO corresponding to the transaction TR2 and, possibly other associated data as already explained. From this transaction data, the terminal DV2 calculates (S72) its own result HH2 of the hash function F and then compares the results HH1 and HH2 so that the authentication of the smart card DV1 and of the transaction TR2 is passed successfully only if HH1 = HH2.
Un homme du métier comprendra que les modes de réalisation et variantes décrits ciavant ne constituent que des exemples non limitatifs de mise en œuvre de l'invention. En particulier, l'homme du métier pourra envisager une quelconque adaptation ou combinaison des modes de réalisation et variantes décrits ci-avant afin de répondre à un besoin bien particulier.A person skilled in the art will understand that the embodiments and variants described above only constitute nonlimiting examples of implementation of the invention. In particular, a person skilled in the art can envisage any adaptation or combination of the embodiments and variants described above in order to meet a very specific need.
On notera par exemple que dans les modes de réalisation décrits ci-avant, il y a une paire de clés PKI / SKI associée à un compte de l'utilisateur Ul. Néanmoins, l'invention s'applique aussi à des porte-monnaie virtuels comportant plusieurs paires de clés associées à plusieurs comptes d'utilisateur. Dans ce cas, le porte-monnaie virtuel peut signer ses transactions à l'aide de plusieurs clés privées.It will be noted, for example, that in the embodiments described above, there is a pair of PKI / SKI keys associated with an account of the user Ul. Nevertheless, the invention also applies to virtual wallets with multiple key pairs associated with multiple user accounts. In this case, the virtual wallet can sign its transactions using several private keys.
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1851541A FR3078187B1 (en) | 2018-02-22 | 2018-02-22 | CONTROL OF A VIRTUAL WALLET |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1851541 | 2018-02-22 | ||
| FR1851541A FR3078187B1 (en) | 2018-02-22 | 2018-02-22 | CONTROL OF A VIRTUAL WALLET |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR3078187A1 true FR3078187A1 (en) | 2019-08-23 |
| FR3078187B1 FR3078187B1 (en) | 2021-04-23 |
Family
ID=63079983
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR1851541A Active FR3078187B1 (en) | 2018-02-22 | 2018-02-22 | CONTROL OF A VIRTUAL WALLET |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR3078187B1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
| WO2017109140A1 (en) * | 2015-12-22 | 2017-06-29 | Bigchaindb Gmbh | Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction |
| US20170352012A1 (en) * | 2016-04-18 | 2017-12-07 | R3 Ltd. | Secure processing of electronic transactions by a decentralized, distributed ledger system |
-
2018
- 2018-02-22 FR FR1851541A patent/FR3078187B1/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
| WO2017109140A1 (en) * | 2015-12-22 | 2017-06-29 | Bigchaindb Gmbh | Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction |
| US20170352012A1 (en) * | 2016-04-18 | 2017-12-07 | R3 Ltd. | Secure processing of electronic transactions by a decentralized, distributed ledger system |
Also Published As
| Publication number | Publication date |
|---|---|
| FR3078187B1 (en) | 2021-04-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3113099B1 (en) | Payment container, creation method, processing method, devices and programs therefor | |
| EP3243176B1 (en) | Method of processing a transaction from a communication terminal | |
| EP3403213B1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
| EP3446436B1 (en) | Method for obtaining a security token by a mobile terminal | |
| EP3039628A2 (en) | Method for processing transactional data, corresponding devices and computer programmes | |
| EP3857413B1 (en) | Method for processing a transaction, device, system and corresponding program | |
| EP2741466A1 (en) | Method and system for managing a built-in secured element eSE | |
| WO2006021661A2 (en) | Secured authentication method for providing services on a data transmission network | |
| WO2016034810A1 (en) | Electronic ticket management | |
| US12211017B2 (en) | Offline cryptocurrency transactions | |
| CA2947920C (en) | Data encryption process for methods of payment, corresponding methods of payment, server and programs | |
| EP3588418A1 (en) | Method for conducting a transaction, terminal, server and corresponding computer program | |
| EP3154284A1 (en) | Pairing method in a peripheral device and in a communication terminal, corresponding devices and program | |
| FR3078187A1 (en) | CONTROL OF A VIRTUAL COIN PURSE | |
| EP3394812A1 (en) | Authentication method | |
| FR3062499A1 (en) | METHOD FOR REDUCING THE SIZE OF A BLOCKED CHAIN TYPE DATABASE, DEVICE AND PROGRAM THEREOF | |
| WO2020128240A1 (en) | Processing of an electronic ticket service | |
| WO2023099238A1 (en) | Method for performing a transaction and corresponding devices and programs | |
| EP3395042B1 (en) | Authentication server for controlling access to a service | |
| WO2022269179A1 (en) | Blockchain payment method and device | |
| EP3570238B1 (en) | Method for conducting a transaction, terminal, server and corresponding computer program | |
| EP4441954B1 (en) | Method for processing a digital proof, system and corresponding program | |
| EP3029878B1 (en) | Method for transmitting a secret with limited lifetime for conducting a transaction between a mobile terminal and a system | |
| EP4075358B1 (en) | Management of the memory in a device for processing transactions | |
| FR3146738A1 (en) | Confidential payment method and device on blockchain |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 2 |
|
| PLSC | Publication of the preliminary search report |
Effective date: 20190823 |
|
| PLFP | Fee payment |
Year of fee payment: 3 |
|
| PLFP | Fee payment |
Year of fee payment: 4 |
|
| PLFP | Fee payment |
Year of fee payment: 5 |
|
| PLFP | Fee payment |
Year of fee payment: 6 |
|
| PLFP | Fee payment |
Year of fee payment: 7 |
|
| PLFP | Fee payment |
Year of fee payment: 8 |