FR3125937A1 - Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs - Google Patents

Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs Download PDF

Info

Publication number
FR3125937A1
FR3125937A1 FR2108203A FR2108203A FR3125937A1 FR 3125937 A1 FR3125937 A1 FR 3125937A1 FR 2108203 A FR2108203 A FR 2108203A FR 2108203 A FR2108203 A FR 2108203A FR 3125937 A1 FR3125937 A1 FR 3125937A1
Authority
FR
France
Prior art keywords
nodes
network
node
block
work
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
Application number
FR2108203A
Other languages
English (en)
Other versions
FR3125937B1 (fr
Inventor
Si Mohamed BEJIJOU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Valeo Comfort and Driving Assistance SAS
Original Assignee
Valeo Comfort and Driving Assistance SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Valeo Comfort and Driving Assistance SAS filed Critical Valeo Comfort and Driving Assistance SAS
Priority to FR2108203A priority Critical patent/FR3125937B1/fr
Publication of FR3125937A1 publication Critical patent/FR3125937A1/fr
Application granted granted Critical
Publication of FR3125937B1 publication Critical patent/FR3125937B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

L’invention concerne un réseau pour véhicule comprenant une pluralité de nœuds configurée pour supporter une chaine de blocs composés d’au moins une transaction et d’une empreinte cryptographique d’un bloc précédent, chaque nœud étant configuré pour :- calculer une preuve de travail d’un bloc courant, à partir de ladite au moins une transaction dudit bloc courant, de l’empreinte cryptographique du bloc précédent et d’un nonce, ladite preuve de travail étant une empreinte cryptographique avec un critère de validité prédéterminé, et caractérisé en ce que chaque nœud est configuré pour transmettre à au moins un nœud un nonce trouvé qui valide la preuve de travail avec le critère de validité déterminé pour ledit bloc courant, et en ce que le réseau comprend un nœud coordinateur configuré pour envoyer un ou de plusieurs des paramètres suivants aux autres nœuds :- un paramètre pour stocker un nombre de blocs en fonction de la taille d’une mémoire réinscriptible des nœuds, - un paramètre pour définir la taille d’une transaction en fonction d’un nombre d’octets, - un paramètre pour définir un nombre de fois où on recalcule ladite preuve de travail en fonction d’un temps CPU disponible, - un paramètre pour définir une stratégie de recherche dudit nonce,et en ce que ledit réseau comprend au moins un nœud configuré pour :- recevoir les transactions provenant d’un ou de plusieurs nœuds,- construire un bloc à partir desdites transactions reçues en fonction d’un nombre déterminé de transactions par bloc.

Description

Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs
La présente invention se rapporte à un réseau comprenant une pluralité de nœuds, l’ensemble des nœuds étant configuré pour contribuer à une chaine de blocs comprenant une pluralité de blocs. Elle trouve une application particulière mais non limitative dans les véhicules automobiles.
Des réseaux connus de l’homme du métier sont des réseaux dans le domaine IT « Information Technology » qui comprennent une pluralité de nœuds, la pluralité de nœuds étant configurée pour contribuer à une chaine de blocs (appelées « Bloc Chain » en anglais) comprenant une pluralité de blocs. Les nœuds sont des serveurs et/ou des ordinateurs. Chaque bloc comprend au moins une mémoire réinscriptible et est composé d’au moins une transaction et d’une empreinte cryptographique du bloc précédent de la chaine de blocs. Chaque nœud est configuré pour :
- calculer à partir des transactions d’un bloc courant, de l’empreinte cryptographique du bloc précédent et d’un nonce, une preuve de travail dudit bloc courant, ladite preuve de travail étant une empreinte cryptographique avec un critère de validité prédéterminé, et
- transmettre à tous les autres nœuds un nonce trouvé qui valide la preuve de travail avec le critère de validité déterminé pour ledit bloc courant. La preuve de travail permet de garantir l’authenticité de chaque transaction.
Un inconvénient de cet état de la technique est que les calculs des différentes preuves de travail demandent une puissance de calcul très importante et rapide ainsi qu’un ensemble de mémoires de stockage important qui ne sont pas toujours disponibles dans les réseaux selon les domaines dans lesquels ils sont mis en œuvre.
Dans ce contexte, la présente invention vise à proposer un réseau pour véhicule comprenant une pluralité de nœuds, l’ensemble des nœuds étant configuré pour contribuer à une chaine de blocs comprenant une pluralité de blocs qui permet de résoudre l’inconvénient mentionné.
A cet effet, l’invention propose un réseau pour véhicule comprenant une pluralité de nœuds, ladite pluralité de nœuds étant configurée pour contribuer à une chaine de blocs comprenant une pluralité de blocs, chaque bloc étant composé d’au moins une transaction et d’une empreinte cryptographique d’un bloc précédent de la chaine de blocs, chaque nœud comprenant au moins une mémoire réinscriptible et étant configuré pour :
- calculer une preuve de travail d’un bloc courant, à partir de ladite au moins une transaction dudit bloc courant, de l’empreinte cryptographique du bloc précédent et d’un nonce, ladite preuve de travail étant une empreinte cryptographique avec un critère de validité prédéterminé, et caractérisé en ce que chaque nœud est configuré pour transmettre à au moins un nœud un nonce trouvé qui valide la preuve de travail avec le critère de validité déterminé pour ledit bloc courant, et en ce que ledit réseau comprend un nœud coordinateur configuré pour envoyer un ou de plusieurs des paramètres suivants aux autres nœuds :
- un paramètre primaire pour stocker un nombre de blocs en fonction de la taille de ladite mémoire réinscriptible des nœuds,
- un paramètre secondaire pour définir la taille d’une transaction en fonction d’un nombre d’octets attribués pour une transaction,
- un paramètre tertiaire pour définir un nombre de fois où on recalcule ladite preuve de travail en fonction d’un temps CPU disponible de chaque nœud,
- un paramètre quaternaire pour définir une stratégie de recherche dudit nonce pour le calcul de ladite preuve de travail,
et en ce que ledit réseau comprend au moins un nœud configuré pour :
- recevoir les transactions provenant d’un ou de plusieurs nœuds,
- construire un bloc à partir desdites transactions reçues en fonction d’un nombre déterminé de transactions par bloc.
Ainsi, comme on va le voir en détail ci-après, le fait de paramétrer le réseau via un nœud coordinateur permet de s’adapter à la puissance de calcul, à la mémoire disponible, au temps CPU disponible pour le calcul d’une preuve de travail dans les nœuds du réseau. Ainsi, on obtient des preuves de travail dans un temps raisonnable. Par ailleurs, le fait d’avoir un nœud coordinateur permet également le cas échéant de notifier les autres nœuds de la fin du calcul de la preuve du travail avec le nonce trouvé et de commencer la vérification.
Selon des modes de réalisation non limitatifs, ledit réseau peut comporter en outre une ou plusieurs caractéristiques supplémentaires prises seules ou selon toutes les combinaisons techniquement possibles, parmi les suivantes.
Selon un mode de réalisation non limitatif, ledit au moins un nœud qui est configuré pour recevoir les transactions et construire un bloc à partir desdites transactions est ledit coordinateur.
Selon un mode de réalisation non limitatif, ledit nœud coordinateur est en outre configuré pour envoyer ledit bloc construit aux autres nœuds dudit réseau pour lancer le calcul de la preuve de travail dudit bloc.
Selon un mode de réalisation non limitatif, ledit au moins un nœud qui est configuré pour recevoir les transactions et construire un bloc à partir desdites transactions est l’ensemble des nœuds dudit réseau.
Selon un mode de réalisation non limitatif, un seul nœud est configuré pour générer les transactions d’un bloc, ou plusieurs nœuds sont configurés pour générer les transactions d’un bloc.
Selon un mode de réalisation non limitatif, le critère de validité prédéterminé porte sur le début de l’empreinte cryptographique qui doit commencer par un nombre déterminé de caractères.
Selon un mode de réalisation non limitatif, un seul nœud est configuré pour vérifier avec le nonce trouvé si le critère de validité prédéterminé de l’empreinte cryptographique dudit bloc courant est rempli.
Selon un mode de réalisation non limitatif, plusieurs nœuds sont configurés pour vérifier avec le nonce trouvé si le critère de validité prédéterminé de l’empreinte cryptographique du bloc est rempli.
Selon un mode de réalisation non limitatif, ledit paramètre quaternaire indique que chaque nœud est configuré pour utiliser un nonce différent pour calculer ladite preuve de travail.
Selon un mode de réalisation non limitatif, ledit paramètre quaternaire indique qu’un ou plusieurs nœuds sont configurés pour utiliser un nonce pair ou impair pour calculer ladite preuve de travail.
Selon un mode de réalisation non limitatif, ledit paramètre quaternaire indique qu’un ou plusieurs nœuds sont configurés pour utiliser un nonce aléatoire pour calculer ladite preuve de travail.
Selon un mode de réalisation non limitatif, ledit paramètre quaternaire indique qu’un ou plusieurs nœuds sont configurés pour utiliser un nonce incrémental pour calculer ladite preuve de travail.
Selon un mode de réalisation non limitatif, ledit paramètre quaternaire indique qu’un ou plusieurs nœuds sont configurés pour utiliser un nonce selon une stratégie coopérative selon laquelle les différents nœuds se partagent des plages de valeurs de nonce pour calculer ladite preuve de travail.
Selon un mode de réalisation non limitatif, pour un nonce qui comprend des valeurs sur une plage de valeurs comprise entre 0 et une valeur maximum Max, un nœud d’indice i balayera une plage de valeurs de nonces égale à i*Max/N jusqu'à [(i+1)Max/N]-1, avec i=0 à N-1, et N le nombre total de nœuds.
Selon un mode de réalisation non limitatif, le nonce trouvé est transmis audit nœud coordinateur
Selon un mode de réalisation non limitatif, le nonce trouvé est transmis directement à tous les autres nœuds dudit réseau.
Selon un mode de réalisation non limitatif, ledit nœud coordinateur est en outre configuré pour ajouter un bloc dans la chaine de blocs lorsque la preuve de travail dudit bloc a été vérifiée.
Selon un mode de réalisation non limitatif, ledit nœud coordinateur est en outre configuré pour stocker dans sa mémoire réinscriptible la chaine de blocs.
Selon un mode de réalisation non limitatif, ladite transaction est une transaction V2X, avec X une infrastructure, ou avec X ledit véhicule comprenant ledit réseau, ou avec X un autre véhicule, ou avec X un dispositif porté par un piéton.
Selon un mode de réalisation non limitatif, un nœud est une unité de contrôle électronique.
Selon un mode de réalisation non limitatif, ledit réseau est un réseau véhicule d’un véhicule.
L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent :
est une vue schématique d’un réseau comprenant une pluralité de nœuds, l’ensemble des nœuds étant configuré pour contribuer à une chaine de blocs comprenant une pluralité de blocs, selon un mode de réalisation non limitatif de l’invention,
est une illustration schématique d’une chaine de blocs à laquelle contribue ledit ensemble de nœuds dudit réseau de la , selon un mode de réalisation non limitatif,
est une illustration schématique d’un calcul d’une preuve de travail par un nœud dudit réseau de la , selon un mode de réalisation non limitatif,
est une vue schématique de trois expérimentations différentes prenant en compte des paramétrages différents pour ledit réseau de la , selon un mode de réalisation non limitatif,
est un tableau indiquant les résultats des trois expérimentations différentes de la , selon un exemple non limitatif,
est un diagramme illustrant une recherche d’une preuve de travail par différents nœuds dudit réseau de la , selon un premier mode de réalisation non limitatif,
est un diagramme illustrant une recherche d’une preuve de travail par différents nœuds dudit réseau de la , selon un deuxième mode de réalisation non limitatif.
Les éléments identiques, par structure ou par fonction, apparaissant sur différentes figures conservent, sauf précision contraire, les mêmes références.
Le réseau 1 selon l’invention est décrit en référence aux figures 1 à 7.
Dans un mode de réalisation non limitatif, le réseau 1 est un réseau véhicule d’un véhicule 4. Il est ainsi autrement appelé réseau véhicule 1 dans la suite de la description. Dans un mode de réalisation non limitatif, le véhicule 4 est un véhicule automobile. Par véhicule automobile, on entend tout type de véhicule motorisé. Ce mode de réalisation est pris comme exemple non limitatif dans la suite de la description. Dans la suite de la description, le véhicule 4 est ainsi autrement appelé véhicule automobile 4.
Le réseau véhicule 1 comprend une pluralité de nœuds 10 dont un nœud coordinateur 10’. Dans le mode de réalisation non limitatif du réseau véhicule 1, un nœud 10 est une unité de contrôle électronique. Dans la suite de la description, un nœud 10 sera autrement appelé unité de contrôle électronique 10. Dans un mode de réalisation non limitatif, le réseau véhicule 1 comprend entre 50 et 150 unités de contrôle électroniques 10. Dans des exemples non limitatifs, les unités de contrôle électroniques 10 sont configurées pour réaliser des fonctions de comptage kilométrique, de climatisation, d’essuyage, de contrôle moteur, de gestion de caméras, de gestion de capteurs, de conduite semi-autonome ou autonome etc. Dans d’autres exemples non limitatifs, les unités de contrôle électroniques 10 sont configurées pour réaliser des fonctions:
- d’envoi de commande de consommables (essuie-glace, filtres, plaquettes de freins dans des exemples non limitatifs,
- de connexion à des bornes de recharge électriques et paiement de la consommation électrique.
Les nœuds 10 sont configurés pour s’échanger des informations au moyen de messages T autrement appelés transactions T dans la suite de la description. Dans un mode de réalisation non limitatif, les nœuds 10 sont en outre configurés pour échanger des informations au moyen de transactions T avec d’autres éléments intérieurs audit véhicule automobile 4. Dans ces cas, dans un mode de réalisation non limitatif, une transaction T est une transaction V2X, avec X ledit véhicule automobile 4 comprenant ledit réseau véhicule 1. Les nœuds 10 sont également configurés pour échanger des informations au moyen de transactions T avec d’autres éléments extérieurs au véhicule automobile 4. Dans ce cas, dans des modes de réalisation non limitatifs, une transaction T est ainsi une transaction V2X avec X une infrastructure 5 (une station de base, une borne de charge électrique, un objet connecté dans des exemples non limitatifs), un autre véhicule 6, un dispositif 7 (un Smartphone, un objet connecté dans un exemple non limitatif) porté par un piéton.
Chaque nœud 10 comprend une mémoire réinscriptible 100. Dans un mode de réalisation non limitatif la mémoire réinscriptible 100 est une mémoire Flash. Dans un mode de réalisation non limitatif, un nœud 10 comprend une mémoire réinscriptible 100 d’une centaine de kilooctets. Dans un exemple non limitatif, la mémoire réinscriptible 100 est comprise entre 200 et 400 kilooctets. Dans une variante de réalisation non limitative, la mémoire réinscriptible 100 est égale à 256 kilooctets.
Afin d’avoir une traçabilité des transactions T échangées, la pluralité de nœuds 10 est configurée pour contribuer à une chaine de blocs 2 comprenant une pluralité de blocs 20. Une chaine de bloc 2 est illustrée sur la dans un exemple non limitatif. Chaque bloc 20 est composé d’au moins une transaction T et d’une empreinte cryptographique H-1d’un bloc précédent 20 qui est le bloc adjacent précédent. Un bloc 20 n’est précédé que d’un seul bloc précédent 20 et ne précède qu’un bloc suivant 20. Dans un mode de réalisation non limitatif, le bloc 20 est composé d’une pluralité de transactions T.
Ainsi, un nœud 10 est configuré pour générer une transaction T (fonction illustrée sur la f1(10, T)).
Dans un premier mode de réalisation non limitatif, le ou les transactions T d’un même bloc 20 sont générées par un seul et même nœud 10.
Dans un deuxième mode de réalisation non limitatif, le ou les transactions T d’un même bloc 20 sont générées par plusieurs nœuds 10.
Chaque nœud 10 est configuré pour :
- calculer une preuve de travail PoW d’un bloc 20 courant (autrement appelé bloc courant 20), à partir des transactions T dudit bloc courant 20, de l’empreinte cryptographique H-1du bloc précédent 20 et d’un nonce r, ladite preuve de travail PoW étant une empreinte cryptographique H avec un critère de validité prédéterminé c1 (fonction illustrée sur la f2(10, PoW(c1), T, H-1, r)),
- transmettre à au moins un nœud 10 un nonce r trouvé qui valide la preuve de travail PoW avec le critère de validité déterminé c1 pour ledit bloc courant 20 (fonction illustrée sur la f3(10, 10, r)). Le nonce r est un entier utilisé qu’une seule fois par un nœud 10.
Dans un premier mode de réalisation non limitatif, chaque nœud 10 est configuré pour transmettre au nœud coordinateur 10’ ledit nonce r trouvé.
Dans un deuxième mode de réalisation non limitatif, chaque nœud 10 est configuré pour transmettre à tous les autres nœuds 10 dudit réseau véhicule 1 (dont le nœud coordinateur 10’) ledit nonce trouvé r.
Ainsi, tel qu’illustré sur la , un bloc 20 comprend en outre la preuve de travail PoW trouvée.
Dans un mode de réalisation non limitatif, l’empreinte cryptographique H est un hash. Dans une variante de réalisation non limitative, le hash est un hash SHA256. Ainsi, la preuve de travail PoW est un hash H avec un critère de validité prédéterminé c1. Dans un mode de réalisation non limitatif, un hash H possède une taille de 32 octets.
Dans un mode de réalisation non limitatif, le critère de validité prédéterminé c1 porte sur le début de l’empreinte cryptographique H qui doit commencer par un nombre déterminé Nb de caractères. Dans un mode de réalisation non limitatif, le nombre déterminé Nb est compris entre 1 et 4. On notera qu’au-delà de 4, le calcul d’une preuve de travail PoW prendra beaucoup trop de temps. Dans une variante de réalisation non limitative, le nombre déterminé Nb est égal à 1. Dans un mode de réalisation non limitatif les caractères sont 0. Ainsi, dans un exemple non limitatif, le critère de validité prédéterminé c1 définit que l’empreinte cryptographique H commence toujours par un 0. Ainsi, dans l’exemple non limitatif pris, la preuve de travail PoW est un hash H qui commence par un 0.
Les nœuds 10 du réseau véhicule 1 cherchent une preuve de travail PoW pour le bloc courant 20. Le premier nœud 10 qui trouve une preuve de travail PoW envoie ainsi une notification audit au moins un nœud 10 (il transmet le nonce r trouvé) pour que les autres nœuds 10 du réseau véhicule 1 arrêtent leur calcul d’une preuve de travail PoW, et lancer ainsi une vérification. Si la notification est envoyée au nœud coordinateur 10’, ce dernier enverra une notification aux autre nœuds 10 du réseau véhicule 1 pour qu’ils arrêtent leur recherche d’une preuve de travail PoW et lancent la vérification. On notera que certains nœuds 10 peuvent ne pas être disponibles (en raison d’un dysfonctionnement, d’une corruption dans des exemples non limitatifs).
Dans un mode de réalisation non limitatif, un nœud 10 est en outre configuré pour vérifier avec le nonce r trouvé si le critère de validité prédéterminé c1 de l’empreinte cryptographique H dudit bloc courant 20 est rempli (fonction illustrée sur la f4(10, r, c1)). Ainsi, le nœud 10 va vérifier que la preuve de travail PoW trouvée correspond au critère de validité prédéterminé c1, à savoir le critère des 0 dans l’exemple non limitatif donné. Le ou les nœuds 10 qui vérifient la validité de l’empreinte cryptographique H sont appelés nœuds vérificateurs 10. Chaque nœud 10 connaît le bloc courant 10, et l’empreinte cryptographique H-1du bloc précédent 20. Pour la vérification, le ou les nœuds vérificateurs 10 vont ainsi calculer l’empreinte cryptographique H sur le bloc courant 20 en utilisant le nonce r reçu. Si l’empreinte cryptographique H ainsi calculée vérifie le critère de validité prédéterminé c1, alors la preuve de travail PoW est vérifiée.
Dans un premier mode de réalisation non limitatif, un seul nœud 10 est configuré pour vérifier avec le nonce r trouvé si le critère de validité prédéterminé c1 de l’empreinte cryptographique H dudit bloc courant 20 est rempli. Dans une variante de réalisation non limitative ce nœud 10 est le nœud coordinateur 10’.
Dans un deuxième mode de réalisation non limitatif, plusieurs nœuds 10 sont configurés pour vérifier avec le nonce trouvé r si le critère de validité prédéterminé c1 de l’empreinte cryptographique H du bloc 20 est rempli. Dans ce cas, la pluralité de nœuds 10 comprend une partie des nœuds 10 du réseau véhicule 1 ou tous les nœuds 10 du réseau véhicule 1. Cela permet d’avoir une vérification plus robuste dans le cas où un nœud 10 est corrompu. Cela permet également d’avoir un vote majoritaire. En effet, si plusieurs nœuds 10 estiment que le critère de validité prédéterminé c1 de l’empreinte cryptographique H du bloc 20 est rempli, la preuve de travail PoW est validée. Dans le cas contraire, elle n’est pas validée.
Tel qu’illustré sur la , le réseau 1 comprend au moins un nœud 10 configuré pour :
- recevoir les transactions d’un ou de plusieurs nœuds 10 (fonction illustrée sur la f5(10, 10, T), et
- construire un bloc 20 à partir desdites transactions T reçues en fonction d’un nombre déterminé n0 de transactions T par bloc 20 pour lancer le calcul de la preuve de travail PoW dudit bloc 20 (fonction illustrée sur la f6(10, 20(T, n0), PoW)), .
Dans un premier mode de réalisation non limitatif, ledit au moins nœud 10 est le nœud coordinateur 10’. Ainsi, le nœud coordinateur 10’ est configuré pour :
- réaliser les fonctions f5 et f6, et
- envoyer le bloc 20 construit aux autres nœuds 10 dudit réseau véhicule 1 (fonction illustrée sur la f7(10’, 10, 20(n0, T))) pour lancer le calcul de la preuve de travail PoW,
Le nœud coordinateur 10’ reçoit ainsi et regroupe les transactions T générées.
Ainsi, le réseau 1 comprend un seul nœud 10 qui réalise les fonctions f5 et f6. Dans ce premier mode de réalisation non limitatif, chaque nœud 10 est en outre configuré pour recevoir dudit bloc coordinateur 10’ un bloc 20 construit comprenant un nombre n0 de transactions T (fonction illustrée sur la f9(10, 10’, 20(n0, T))).
Dans un deuxième mode de réalisation non limitatif, ledit au moins nœud 10 est l’ensemble des nœuds 10 du réseau 1 incluant le nœud coordinateur 10’. Ainsi, chaque nœud 10 est configuré pour réaliser les fonctions f5 et f6. Ainsi, le réseau 1 comprend plusieurs nœuds 10 qui réalisent les fonctions f5 et f6.
Dans un mode de réalisation non limitatif, le nœud coordinateur 10’ est en outre configuré pour stocker la chaine de blocs 2 dans sa mémoire réinscriptible 100 (fonction illustrée sur la f10(10’, 2, 100). Cela permet de ne stocker la chaine de bloc 2 qu’à un seul endroit dans le réseau véhicule 1.
La construction d’un bloc 20 comprend la concaténation d’une ou plusieurs transactions T et l’ajout de l’empreinte cryptographique H-1du bloc précédent 20. Ainsi, le bloc 20 est construit quand le nombre déterminé n0 est atteint. Dans un mode de réalisation non limitatif, le nombre déterminé n0 est égal à 3. Le bloc 20 comprend ainsi trois transactions T.
Dans le premier mode de réalisation non limitatif, le nœud coordinateur 10’ attend ainsi d’avoir trois transactions T pour construire un bloc 20 et lancer la recherche d’une preuve de travail PoW sur ledit bloc 20.
Dans le deuxième mode de réalisation non limitatif, chaque nœud 10 (dont le nœud coordinateur 10’) attend ainsi d’avoir trois transactions T pour construire un bloc 20 et lancer la recherche d’une preuve de travail PoW sur ledit bloc 20.
Dans le cas du premier mode de réalisation non limitatif, le lancement du calcul de la preuve de travail PoW comprend la mise à disposition par le nœud coordinateur 10’ du bloc 10 construit qui est le bloc 20 en cours avec les transactions T aux autres nœuds 10 pour qu’ils commencent la recherche de la preuve de travail PoW. Autrement dit, lorsque le nœud coordinateur 10’ a construit un bloc 20, il l’envoie aux autres nœuds 10 du réseau véhicule 1 pour lancer la recherche de la preuve de travail PoW.
La illustre un calcul de preuve de travail PoW, à savoir une recherche d’une preuve de travail PoW par un nœud 10. L’opération de recherche est autrement appelée opération de minage ou minage. Tel qu’illustré sur la , pour le calcul d’une preuve de travail PoW, un nœud 10 aura comme entrées l’empreinte cryptographique H-1du bloc précédent 20, le bloc 20 (reçu du nœud coordinateur 10’ le cas échéant) appelé bloc courant 20, et un nonce r. Ainsi, l’empreinte cryptographique H du bloc courant 20 est calculée à partir de l’empreinte cryptographique H-1du bloc précédent 20, du bloc courant 20 et d’un nonce r.
Un nonce r est ainsi utilisé en combinaison avec l’empreinte cryptographique H-1du bloc précédent 20 pour trouver l’empreinte cryptographique H du bloc 20 qui répond au critère de validité prédéterminé c1. Les nœuds vérificateurs 10, vérifient si l’empreinte cryptographique H trouvée répond bien au critère de validité prédéterminé c1. Si l’empreinte cryptographique H trouvée répond bien au critère de validité prédéterminé c1, cela signifie que la preuve de travail PoW est trouvée, et le bloc courant 20 est ajouté à la chaine de bloc 2 (branche OK) avec son empreinte cryptographique H et l’empreinte cryptographique H-1du nœud 10 précédent. Dans la négative (branche NOK), cela signifie que la preuve de travail PoW n’est pas trouvée. Dans ce cas, le bloc courant 20 n’est pas ajouté à la chaine de bloc 2 et le nœud 10 recommence la recherche de la preuve de travail PoW avec un nouveau nonce r. Le nonce r est modifié jusqu’à trouver une empreinte cryptographique H répondant au critère de validité prédéterminé c1, ici qui commence par un 0 dans l’exemple non limitatif pris.
Pour s’adapter aux contraintes du domaine du réseau 1, ici le domaine des véhicules automobiles dans le mode de réalisation non limitatif pris, le nœud coordinateur 10’ est configuré pour transmettre un ou plusieurs paramètres p suivants ((illustrés sur la ) aux autres nœuds 10 qui permet de paramétrer le réseau 1 :
- un paramètre primaire p1 pour stocker un nombre n1 de blocs 20 en fonction de la taille de ladite mémoire réinscriptible 100 des nœuds 10,
- un paramètre secondaire p2 pour définir la taille d’une transaction T en fonction d’un nombre n2 d’octets attribués pour une transaction T,
- un paramètre tertiaire p3 pour définir un nombre n3 de fois où on recalcule ladite preuve de travail PoW en fonction d’un temps CPU disponible de chaque nœud 10,
- un paramètre quaternaire p4 pour définir une stratégie de recherche dudit nonce r pour le calcul de ladite preuve de travail PoW.
Dans un mode de réalisation non limitatif, les paramètres p sont codés sur 32bits. Le paramètre primaire p1 comprend une valeur comprise entre 1 à N1, avec N1 entier. Le paramètre secondaire p2 comprend une valeur comprise entre 1 à N2, avec N2 entier. Le paramètre tertiaire p3 comprend une valeur comprise entre 1 à N3, avec N3 entier. Le paramètre quaternaire p4 comprend une valeur comprise entre 1 à N4, avec N4 entier.
Les différents paramètres p sont dimensionnés en fonction de la performance de calcul souhaitée et des contraintes en termes de consommation de temps CPU (CPU_tc), de consommation mémoire (Mem_tc) et de temps de calcul (T_tc) des nœuds 10. Ainsi, plus les nombres N1 à N4 sont grands, plus la consommation en termes de CPU sera grande. Les paramètres p sont définis pour avoir un consensus entre ces trois contraintes et obtenir les performances souhaitées, notamment la performance de calcul souhaitée de la preuve de travail PoW en secondes ou minutes ou encore l’occupation de la charge CPU en % dans un exemple non limitatif. La détermination des valeurs des paramètres p se fait par expérimentation. On notera qu’outre le calcul d’une preuve de travail PoW, les nœuds 10 doivent exécuter la ou les fonctions pour lesquels ils sont dédiés habituellement. A cet effet, ces fonctions consomment également du temps CPU. Ainsi, le calcul d’une preuve de travail PoW va être réparti selon le temps CPU disponible qui n’est pas utilisé par les autres fonctions.
La illustre trois exemples non limitatifs d’expérimentations référencées EX1, EX2 et EX3 avec certains paramètres p différents.
Dans l’expérimentation EX1, une chaine de blocs 2 comprend 50 blocs maximum. Un bloc 20 comprend 10 transactions (n0=10), chaque transaction T étant codée sur 8 octets (n2=8). Un seul bloc 20 peut être stocké en mémoire réinscriptible 100 (n1=1). Et la preuve de travail PoW est recalculée 50 fois (n3=50). Un nonce r incrémental est utilisé, le premier nonce r étant 0. Tous les nœuds 10 utilisent le même nonce r.
Dans l’expérimentation EX2, une chaine de blocs 2 comprend 17 blocs maximum. Un bloc 20 comprend 10 transactions (n0=10), chaque transaction T étant codée sur 8 octets (n2=8). Un seul bloc peut être stocké en mémoire réinscriptible 100 (n1=1). Et la preuve de travail PoW est recalculée 10 fois (n3=10). Un nonce r incrémental est utilisé, le premier nonce r étant 0. Tous les nœuds 10 utilisent le même nonce r.
Dans l’expérimentation EX3, une chaine de blocs 2 comprend 17 blocs maximum. Un bloc 20 comprend 3 transactions (n0=3), chaque transaction T étant codée sur 8 octets (n2=8). Un seul bloc peut être stocké en mémoire réinscriptible 100 (n1=1). Et la preuve de travail PoW est recalculée 3 fois (n3=10). Un nonce r incrémental est utilisé, le premier nonce r étant 0. Tous les nœuds 10 utilisent le même nonce r.
Avec ces paramètres p ainsi configurés, le minage peut commencer (étape E1) ; puis le calcul en boucle de la preuve de travail PoW (étape E2) peut être réalisé jusqu’à ce qu’elle soit trouvée (étape E3) ; la vérification de la preuve de travail PoW est ensuite exécutée (étape E4) ; et enfin si elle est validée l’ajout du bloc 20 à la chaine de blocs 2 (étape E5).
La illustre des résultats de ces trois expérimentations EX1, EX2 et EX3 en fonction de la consommation mémoire Mem_tc, du temps de calcul pour un essai T_tc pour la preuve de travail PoW, du temps de calcul global Tg_tc pour la preuve de travail PoW (qui comprend tous les essais de calcul), et de la consommation de temps CPU CPU_tc.
Comme on peut le voir, l’expérimentation EX3 est la meilleure en termes de consommation mémoire Mem_tc avec 1889 octets utilisés contre 3275 octets pour l’expérimentation EX2 et 9413 octets pour l’expérimentation EX1. Cela indique que moins il y a de transactions T et moins il y a de blocs 20 dans une chaine de blocs 2, moins la mémoire réinscriptible 100 est utilisée.
Par ailleurs, l’expérimentation EX3 est également la meilleure en termes de temps de calcul pour un essai T_tc avec 900μs (microsecondes) contre 15000 μs pour l’expérimentation EX1 et 3000μs pour l’expérimentation EX2. Cela permet d’avoir un temps maximum CPU à ne pas dépasser pour le calcul de la preuve de travail PoW afin que les nœuds 10 puissent réaliser les autres tâches qui leur sont allouées.
Par ailleurs, l’expérimentation EX1 est la meilleure en termes de minage avec la plus basse valeur de temps de calcul global de la preuve de travail PoW. On trouve le nonce r plus rapidement. Elle est en effet la plus rapide pour le temps calcul global Tg_tc de la preuve de travail PoW avec 2.5minutes contre 8 minutes pour l’expérimentation EX2 et 28 minutes pour l’expérimentation EX3. Cependant cela s’effectue au détriment du temps CPU CPU_tc puisqu’il y a une surcharge de la consommation de temps CPU CPU_tc avec 150% contre 30% pour l’expérimentation EX2 et 9% pour l’expérimentation EX3. Par conséquent, le nœud 10 ne pourra pas traiter d’autres fonctions par manque de temps CPU alloué pour ces autres fonctions. Il faut donc trouver un équilibre entre le temps de calcul global Tg_tc et la consommation CPU CPU_tc.
Ainsi, grâce aux paramètres p, on peut configurer le réseau 1 pour trouver un bon compromis entre le temps CPU et le temps de calcul global Tg_tc de la preuve de travail PoW. On augmente ainsi les chances de trouver rapidement un nonce r tout en limitant le temps d’usage CPU.
Dans un mode de réalisation non limitatif, le nombre n1 est égal à 1. Ainsi, chaque nœud 10 peut stocker un seul bloc 20 dans sa mémoire réinscriptible 100. Le bloc 20 stocké est le bloc courant 20 dont il faut rechercher la preuve de travail PoW. Il n’est pas nécessaire de stocker toute la chaine de blocs 2 pour le calcul de la preuve de travail PoW. Le nombre 1 est particulièrement adapté pour les unités de contrôle électroniques 10 d’un réseau véhicule 1. En effet, la mémoire réinscriptible 100 d’une unité de contrôle électronique 10 est de l’ordre de 256 kilooctets, ce qui est faible.
Dans un mode de réalisation non limitatif, le nombre n2 est égal à 8 octets. Cette taille est particulièrement adaptée pour les unités de contrôle électroniques 10 d’un réseau véhicule 1.
Dans un mode de réalisation non limitatif, le nombre n3 est égal à 3. Cette taille est particulièrement adaptée pour les unités de contrôle électroniques 10 d’un réseau véhicule 1. En effet, le temps CPU utilisé pour la recherche de la preuve de travail PoW est un temps lorsque une unité de contrôle électronique 10 n’est pas occupée à réaliser d’autres tâches. C’est un temps où il est inactif (« idle » en anglais). Si le temps CPU disponible est important, on peut augmenter ce nombre n3.
Dans un premier mode de réalisation non limitatif, ledit paramètre quaternaire p4 indique que chaque nœud 10 est configuré pour utiliser un nonce r différent pour calculer ladite preuve de travail PoW. Ainsi, les nœuds 10 n’effectuent pas le même calcul de la preuve de travail PoW ce qui permet d’optimiser les calculs.
Dans un deuxième mode de réalisation non limitatif, ledit paramètre quaternaire p4 indique qu’un ou plusieurs nœuds 10 sont configurés pour utiliser un nonce r pair ou impair pour calculer ladite preuve de travail PoW. Cela permet d’augmenter les chances de trouver rapidement la preuve de travail PoW.
Dans un troisième mode de réalisation non limitatif, ledit paramètre quaternaire p4 indique qu’un ou plusieurs nœuds 10 sont configurés pour utiliser un nonce r aléatoire pour calculer ladite preuve de travail PoW. Cela permet à chaque nœud 10 d’utiliser un nonce r différent.
Dans un quatrième mode de réalisation non limitatif, ledit paramètre quaternaire p4 indique qu’un ou plusieurs nœuds 10 sont configurés pour utiliser un nonce r incrémental pour calculer ladite preuve de travail PoW. C’est un calcul simple à réaliser. Les nœuds 10 utilisent le même nonce r de départ.
Dans un cinquième mode de réalisation non limitatif, le paramètre quaternaire p4 indique qu’un ou plusieurs nœuds 10 sont configurés pour utiliser un nonce r selon une stratégie coopérative selon laquelle les différents nœuds 10 se partagent des plages de valeurs I de nonce r pour calculer ladite preuve de travail PoW. Dans une variante de réalisation non limitative, pour un nonce r qui comprend des valeurs sur une plage de valeurs I comprise entre 0 et une valeur maximum Max (Max entier), un nœud 10 d’indice i balayera une plage de valeurs I de nonces r égale à i*Max/N jusqu'à [(i+1)*Max/N]-1, avec i=0 à N-1, et N le nombre total de nœuds 10 dans le réseau véhicule 1. Cela permet de coordonner la recherche de nonce r et d’optimiser cette recherche.
Ainsi, dans un exemple non limitatif, si N=10, et Max = 4 294 967 295 :
- le nœud 10 d’indice 0 balayera la plage de valeurs I = [0 – (Max/10)-1],
- le nœud 10 d’indice 1 balayera la plage de valeurs I = [Max – (2*Max/10)-1], …
- le nœud 10 d’indice N-1 balayera la plage de valeurs I = [9*Max – (10*Max/10)-1].
Ainsi, ces différents modes de réalisation non limitatifs permettent un partage des calculs et permettent de trouver plus rapidement la preuve de travail PoW. On notera que les cinq modes de réalisation non limitatifs peuvent être combinés entre eux selon n’importe laquelle des combinaisons. Ainsi, certains nœuds 10 seront paramétrés pour utiliser un nonce r selon un mode de réalisation non limitatif, d’autres nœuds 10 seront paramétrés pour utiliser un nonce r selon un autre mode de réalisation non limitatif etc.
La illustre dans le détail les étapes d’une recherche de preuve de travail PoW par différents nœuds 10 du réseau véhicule 1, selon un premier mode de réalisation non limitatif. Dans l’exemple non limitatif illustré, quatre nœuds 10, référencés ECU0, ECU1, ECU2 et ECU3, sont illustrés. Le nœud coordinateur 10’ est référencé ECU1. Dans le mode de réalisation non limitatif illustré, chaque nœud 10 peut générer une ou plusieurs transactions T. Dans le mode de réalisation non limitatif illustré, c’est le nœud coordinateur 10’ qui reçoit les transactions T, qui construit le bloc 20 et l’envoie aux autres nœuds 10.
Pour des raisons de concision, dans l’exemple non limitatif illustré, le nombre déterminé n0=2. Dans le mode de réalisation non limitatif illustré, tous les nœuds 10 sont des nœuds vérificateurs 10. Dans le mode de réalisation non limitatif illustré, n1=1, n2=8 octets, n3=3, et p4 est définit de sorte que le nonce r est incrémenté.
On notera qu’initialement la chaine de blocs 2 est initialisée. L’initialisation permet d’indiquer à tous les nœuds 10 du réseau véhicule 1 quel algorithme pour l’empreinte cryptographique H va être utilisé et quel est le critère de validité prédéterminé c1 qui est utilisé. Dans l’exemple non limitatif l’algorithme utilisé est le SHA256. Dans l’exemple non limitatif utilisé, le critère de validité prédéterminé c1 est un seul zéro au début de l’empreinte cryptographique H. Cette étape d’initialisation est réalisée par le nœud coordinateur 10’.
Dans une étape E1 illustrée F1(10, T), un nœud 10, référencé ici ECU0, génère une première transaction T et l’envoie au nœud coordinateur 10’ qui la reçoit (étape E1’ illustrée F1’(10’, 10, T)).
Dans une étape E2 illustrée F2(10, T), un autre nœud 10, référencé ici ECU2, génère une deuxième transaction T et l’envoie au nœud coordinateur 10’ qui la reçoit (étape E2’ illustrée F2’(10’, 10, T)). Cette étape s’effectue avant, après ou simultanément à la première étape E1.
Le nombre déterminé n0 de transactions T ayant été atteint, dans une étape E3 illustrée F3(10’, 20, T), le nœud coordinateur 10’ construit un bloc 20 à partir de la première transaction T et deuxième transaction T.
Dans une étape E4 illustrée F4(10’, 10, 20), le nœud coordinateur 10’ envoie aux autres nœuds 10 ledit bloc 20 ainsi construit pour lancer le calcul de la preuve de travail PoW dudit bloc 20, qui devient le bloc courant 20.
Dans une étape E5 illustrée F5(10, 20, 100), chaque nœud 10 sauvegarde le bloc 20 reçu, qui est le bloc courant 20 dans sa mémoire réinscriptible 100. Les sauvegardes sont effectuées en parallèle ou en séquence dans n’importe quel ordre.
Dans une étape E6 illustrée F6(10, PoW(20, H-1, r), c1), le minage commence et est effectué par tous les nœuds 10 dont le nœud coordinateur 10’. Tous les nœuds 10 recherchent une preuve de travail PoW pour le bloc 20 à partir desdites transactions T dudit bloc courant 20, de l’empreinte cryptographique H-1du bloc précédent 20 et d’un nonce r. La preuve de travail PoW doit être une empreinte cryptographique H qui remplisse le critère de validité prédéterminé c1.
Dans une étape E7 illustrée F7(10, PoW, c1), un des nœuds 10, ici celui référencé ECU3, trouve l’empreinte cryptographique H qui remplit le critère de validité prédéterminé c1, et qui est donc la preuve de travail PoW pour le bloc courant 20. On notera que le fait de trouver la preuve de travail PoW est fonction notamment de la puissance de calcul d’un nœud 10 et du temps CPU disponible. Dans un exemple non limitatif, le nœud 10 qui s’occupe de la fonction climatisation sera plus disponible en hiver qu’en été par exemple.
Dans une étape E8 illustrée F8(10, 10’, r), le nœud 10 référencé ECU3 envoie au nœud coordinateur 10’ le nonce r trouvé qui a permis de calculer la preuve de travail PoW.
Dans une étape E8’ illustrée F8’(10’, 10, r), le nœud coordinateur 10’ transmet le nonce r trouvé aux autres nœuds 10 pour qu’ils puissent vérifier la preuve de travail PoW. Il notifie ainsi la fin du calcul de la preuve de travail PoW avec le nonce r trouvé et leur notifie de commencer l’étape de vérification ci-dessous.
Dans un autre mode de réalisation non limitatif non illustré, le nœud 10 référencé ECU3 envoie directement le nonce r trouvé à tous les autres nœuds 10 du réseau véhicule 1 dont le nœud coordinateur 10’ pour qu’ils puissent vérifier la preuve de travail PoW.
Dans une étape E9 illustrée F9(10, r, H(c1)), les nœuds 10, référencés ECU0, ECU1 et ECU2, vérifient chacun si le nonce r trouvé permet d’obtenir une empreinte cryptographique H qui répond au critère de validité prédéterminé c1. Les vérifications sont effectuées en parallèle ou en séquence dans n’importe quel ordre.
Dans une étape E10 illustrée F10(10,v), les nœuds 10, référencés ECU0 et ECU2, renvoient le résultat v de leur vérification au nœud coordinateur 10’. Les envois sont effectués en parallèle ou en séquence dans n’importe quel ordre.
Dans un autre mode de réalisation non limitatif non illustré, les nœuds 10, référencés ECU0, ECU1 et ECU2, envoient à tous les autres nœuds 10 du réseau véhicule 1 le résultat v de leur vérification.
Si l’ensemble des nœuds 10 ou la majorité des nœuds 10 ont une vérification positive (résultat v positif), alors dans une étape E11 illustrée F11(10’,20, 2), le nœud coordinateur 10’ ajoute le bloc courant 20 dans la chaine de blocs 2 qui est sauvegardée dans sa mémoire réinscriptible 100. Le bloc courant 20 devient ainsi le dernier bloc 20 de la chaine de blocs 2. Dans la négative, le nonce r trouvé est refusé, le bloc courant 20 n’est pas ajouté à la chaine de blocs 2 et les nœuds 10 continuent le calcul de la preuve de travail PoW jusqu’à réception d’un nonce r valide.
La illustre dans le détail les étapes d’une recherche de preuve de travail PoW par différents nœuds 10 du réseau véhicule 1, selon un deuxième mode de réalisation non limitatif. Dans l’exemple non limitatif illustré, quatre nœuds 10, référencés ECU0, ECU1, ECU2 et ECU3, sont illustrés. Le nœud coordinateur 10’ est référencé ECU1. Dans le mode de réalisation non limitatif illustré, chaque nœud 10 peut générer une ou plusieurs transactions T. Dans le mode de réalisation non limitatif illustré, chaque nœud 10 reçoit les transactions T et construit le bloc 20.
Pour des raisons de concision, dans l’exemple non limitatif illustré, le nombre déterminé n0=2. Dans le mode de réalisation non limitatif illustré, tous les nœuds 10 sont des nœuds vérificateurs 10. Dans le mode de réalisation non limitatif illustré, n1=1, n2=8 octets, n3=3, et p4 est définit de sorte que le nonce r est incrémenté.
On notera qu’initialement la chaine de blocs 2 est initialisée. L’initialisation permet d’indiquer à tous les nœuds 10 du réseau véhicule 1 quel algorithme pour l’empreinte cryptographique H va être utilisé et quel est le critère de validité prédéterminé c1 qui est utilisé. Dans l’exemple non limitatif l’algorithme utilisé est le SHA256. Dans l’exemple non limitatif utilisé, le critère de validité prédéterminé c1 est un seul zéro au début de l’empreinte cryptographique H. Cette étape d’initialisation est réalisée par le nœud coordinateur 10’.
Dans une étape E1 illustrée F1(10, T), un nœud 10, référencé ici ECU0, génère une première transaction T et l’envoie à tous les autres nœuds 10 incluant le nœud coordinateur 10’ qui la reçoivent (étape E1’ illustrée F1’(10, 10, T)).
Dans une étape E2 illustrée F2(10, T), un autre nœud 10, référencé ici ECU2, génère une deuxième transaction T et l’envoie à tous les autres nœuds 10 incluant le nœud coordinateur 10’ qui la reçoivent (étape E2’ illustrée F2’(10, 10, T)). Cette étape s’effectue avant, après ou simultanément à la première étape E1.
Le nombre déterminé n0 de transactions T ayant été atteint, dans une étape E3 illustrée F3(10, 20, T), chaque nœud 10 construit le bloc 20 à partir de la première transaction T et deuxième transaction T.
Dans une étape E4 illustrée F4(10, 20, 100), chaque nœud 10 sauvegarde le bloc 20 qu’il a construit, qui est le bloc courant 20 dans sa mémoire réinscriptible 100. Les sauvegardes sont effectuées en parallèle ou en séquence dans n’importe quel ordre.
Dans une étape E5 illustrée F5(10, PoW(20, H-1, r), c1), le minage commence et est effectué par tous les nœuds 10 dont le nœud coordinateur 10’. Tous les nœuds 10 recherchent une preuve de travail PoW pour le bloc 20 à partir desdites transactions T dudit bloc courant 20, de l’empreinte cryptographique H-1du bloc précédent 20 et d’un nonce r. La preuve de travail PoW doit être une empreinte cryptographique H qui remplisse le critère de validité prédéterminé c1.
Dans une étape E6 illustrée F6(10, PoW, c1), un des nœuds 10, ici celui référencé ECU3, trouve l’empreinte cryptographique H qui remplit le critère de validité prédéterminé c1, et qui est donc la preuve de travail PoW pour le bloc courant 20. On notera que le fait de trouver la preuve de travail PoW est fonction notamment de la puissance de calcul d’un nœud 10 et du temps CPU disponible. Dans un exemple non limitatif, le nœud 10 qui s’occupe de la fonction climatisation sera plus disponible en hiver qu’en été par exemple.
Dans une étape E7 illustrée F7(10, 10, r), le nœud 10 référencé ECU3 envoie à tous les autres nœuds incluant le nœud coordinateur 10’ le nonce r trouvé qui a permis de calculer la preuve de travail PoW pour qu’ils puissent vérifier la preuve de travail PoW.
Dans une étape E8 illustrée F8(10, r, H(c1)), les nœuds 10, référencés ECU0, ECU1 et ECU2, vérifient chacun si le nonce r trouvé permet d’obtenir une empreinte cryptographique H qui répond au critère de validité prédéterminé c1. Les vérifications sont effectuées en parallèle ou en séquence dans n’importe quel ordre.
Dans une étape E9 illustrée F9(10,v), les nœuds 10, référencés ECU0, ECU1 et ECU2, renvoient le résultat v de leur vérification à tous les autres nœuds 10 du réseau 1 incluant le nœud coordinateur 10’. Les envois sont effectués en parallèle ou en séquence dans n’importe quel ordre.
Si l’ensemble des nœuds 10 ou la majorité des nœuds 10 ont une vérification positive (résultat v positif), alors dans une étape E10 illustrée F10(10’,20, 2), le nœud coordinateur 10’ ajoute le bloc courant 20 dans la chaine de blocs 2 qui est sauvegardée dans sa mémoire réinscriptible 100. Le bloc courant 20 devient ainsi le dernier bloc 20 de la chaine de blocs 2. Dans la négative, le nonce r trouvé est refusé, le bloc courant 20 n’est pas ajouté à la chaine de blocs 2 et les nœuds 10 continuent le calcul de la preuve de travail PoW jusqu’à réception d’un nonce r valide.
Bien entendu la description de l’invention n’est pas limitée aux modes de réalisation décrits ci-dessus et au domaine décrit ci-dessus. Ainsi, l’invention peut s’appliquer à des domaines autres que le domaine des véhicules automobiles, tels que dans des exemples non limitatifs, le domaine du ferroviaire, le domaine de l’aéronautique, le domaine des IOT comprenant les objets connectés. Ainsi, dans un mode de réalisation non limitatif, le nœud coordinateur 10’ est en outre configuré pour envoyer aux autres nœuds 10 un paramètre supplémentaire relatif à un nombre de blocs 20 maximum dans la chaine de blocs 2. Ainsi, le réseau 1 est en outre paramétré au moyen de ce paramètre supplémentaire. Cela permet d’adresser la capacité mémoire limitée dans le véhicule automobile 4 dans son ensemble. Ainsi, dans un mode de réalisation non limitatif, certains nœuds 10 peuvent ne pas générer de transaction T. Ils sont utilisés seulement pour calculer une preuve de travail PoW.
Ainsi, l’invention décrite présente notamment les avantages suivants :
- elle permet d’implémenter une chaine de blocs 2 à l’intérieur d’un réseau 1 dont les nœuds 10 ne possède pas la puissance de calcul (souvent en Gigahertz) et la mémoire (souvent en Giga-octets) des serveurs ou ordinateurs que l’on trouve dans le domaine IT (« Information Technology ». Notamment, elle permet d’utiliser une chaine de blocs 2 dans un réseau véhicule 1 : elle permet d’implémenter une chaine de bloc 2 à l’intérieur d’un réseau 1 dont les nœuds 10 ont une puissance de calcul faible (en Mégahertz), et une petite mémoire (en kilooctets ou Mégaoctets),
- elle permet de résoudre la contrainte de temps de calcul d’une preuve de travail PoW moyennant un calcul distribué entre les nœuds 10 et d’optimiser le temps de recherche de la preuve de travail PoW,
- elle permet de trouver un compromis entre la mémoire disponible dans un nœud 10 d’un réseau 1, le temps de calcul d’une preuve de travail PoW, et la consommation de temps CPU,
- elle fournit une implémentation facile d’une chaine de blocs 2 embarquée dans un réseau 1, notamment un réseau véhicule 1,
- le fait d’utiliser une chaine de blocs 2 à l’intérieur d’un réseau 1, notamment d’un véhicule 4, offre la possibilité de tracer les transactions T et de renforcer la sécurité des données échangées lors des transactions T ; les transactions T ne peuvent être falsifiées,
- elle permet ainsi de faire une recherche de preuve de travail PoW dans un temps raisonnable pour un réseau 1 dont les nœuds 10 ne disposent pas d’une grande puissance de calcul,
- l’utilisation d’une chaine de blocs 2 est plus sécuritaire qu’une solution de cryptographie classique car elle évite la falsification de la traçabilité de l’ensemble des transactions T contrairement à la solution cryptographique qui évite uniquement la falsification des transactions T et qui ne garantit pas de traçabilité,
- elle permet d’utiliser une chaine de blocs 2 dans un réseau 1 d’un véhicule 4 ce qui résout le problème de connectivité à l’extérieur du véhicule 4 couramment utilisée pour obtenir une chaine de blocs 2 dans l’état de la technique antérieur, puisque tous les échanges se font entre les nœuds 10 du réseau véhicule 1 dans le véhicule 4, et non plus avec des éléments extérieurs au véhicule 4, tel qu’un serveur qui utilise sa puissance de calcul qui gère toute la chaine de blocs 2 ; le fait de pouvoir gérer sa propre chaine de blocs 2 rend ainsi le véhicule 4 plus autonome,
- le fait d’avoir une chaine de blocs 2 dans un réseau 1 d’un véhicule 4 permet d’utiliser ce véhicule 4 dans super réseau formé par plusieurs véhicules qui peuvent s’échanger différentes transactions T provenant desdits véhicules notamment.

Claims (19)

  1. Réseau (1) pour véhicule (4), ledit réseau (1) comprenant une pluralité de nœuds (10), ladite pluralité de nœuds (10) étant configurée pour contribuer à une chaine de blocs (2) comprenant une pluralité de blocs (20), chaque bloc (20) étant composé d’au moins une transaction (T) et d’une empreinte cryptographique (H-1) d’un bloc précédent (20) de la chaine de blocs (2), chaque nœud (10) comprenant au moins une mémoire réinscriptible (100) et étant configuré pour :
    - calculer une preuve de travail (PoW) d’un bloc courant (20), à partir de ladite au moins une transaction (T) dudit bloc courant (20), de l’empreinte cryptographique (H-1) du bloc précédent (20) et d’un nonce (r), ladite preuve de travail (PoW) étant une empreinte cryptographique (H) avec un critère de validité prédéterminé (c1), et caractérisé en ce que chaque nœud (10) est configuré pour transmettre à au moins un nœud (10) un nonce (r) trouvé qui valide la preuve de travail (PoW) avec le critère de validité déterminé (c1) pour ledit bloc courant (20), et en ce que ledit réseau (1) comprend un nœud coordinateur (10’) configuré pour envoyer un ou de plusieurs des paramètres (p) suivants aux autres nœuds (10) :
    - un paramètre primaire (p1) pour stocker un nombre (n1) de blocs (20) en fonction de la taille de ladite mémoire réinscriptible (100) des nœuds (10),
    - un paramètre secondaire (p2) pour définir la taille d’une transaction (T) en fonction d’un nombre (n2) d’octets attribués pour une transaction (T),
    - un paramètre tertiaire (p3) pour définir un nombre (n3) de fois où on recalcule ladite preuve de travail (PoW) en fonction d’un temps CPU disponible de chaque nœud (10),
    - un paramètre quaternaire (p4) pour définir une stratégie de recherche dudit nonce (r) pour le calcul de ladite preuve de travail (PoW),
    et en ce que ledit réseau (1) comprend au moins un nœud (10) configuré pour :
    - recevoir les transactions (T) provenant d’un ou de plusieurs nœuds (10),
    - construire un bloc (20) à partir desdites transactions (T) reçues en fonction d’un nombre déterminé (n0) de transactions (T) par bloc (20).
  2. Réseau (1) selon la revendication 1, selon lequel ledit au moins un nœud (10) qui est configuré pour recevoir les transactions (T) et construire un bloc (20) à partir desdites transactions (T) est ledit coordinateur (10’).
  3. Réseau (1) selon la revendication 2, selon lequel ledit nœud coordinateur (10’) est en outre configuré pour envoyer ledit bloc (20) construit aux autres nœuds (10) dudit réseau (1) pour lancer le calcul de la preuve de travail (PoW) dudit bloc (20).
  4. Réseau (1) selon la revendication 1, selon lequel ledit au moins un nœud (10) qui est configuré pour recevoir les transactions (T) et construire un bloc (20) à partir desdites transactions (T) est l’ensemble des nœuds (10) dudit réseau (1).
  5. Réseau (1) selon la revendication 1, selon lequel un seul nœud (10) est configuré pour générer les transactions (T) d’un bloc (20), ou plusieurs nœuds (10) sont configurés pour générer les transactions (T) d’un bloc (20).
  6. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel le critère de validité prédéterminé (c1) porte sur le début de l’empreinte cryptographique (H) qui doit commencer par un nombre déterminé (Nb) de caractères.
  7. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel un seul nœud (10) est configuré pour vérifier avec le nonce (r) trouvé si le critère de validité prédéterminé (c1) de l’empreinte cryptographique (H) dudit bloc courant (20) est rempli.
  8. Réseau (1) selon l’une quelconque des revendications 1 à 6, selon lequel plusieurs nœuds (10) sont configurés pour vérifier avec le nonce trouvé (r) si le critère de validité prédéterminé (c1) de l’empreinte cryptographique (H) du bloc (20) est rempli.
  9. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit paramètre quaternaire (p4) indique que chaque nœud (10) est configuré pour utiliser un nonce (r) différent pour calculer ladite preuve de travail (PoW).
  10. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit paramètre quaternaire (p4) indique qu’un ou plusieurs nœuds (10) sont configurés pour utiliser un nonce (r) pair ou impair pour calculer ladite preuve de travail (PoW).
  11. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit paramètre quaternaire (p4) indique qu’un ou plusieurs nœuds (10) sont configurés pour utiliser un nonce (r) aléatoire pour calculer ladite preuve de travail (PoW).
  12. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit paramètre quaternaire (p4) indique qu’un ou plusieurs nœuds (10) sont configurés pour utiliser un nonce (r) incrémental pour calculer ladite preuve de travail (PoW).
  13. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit paramètre quaternaire (p4) indique qu’un ou plusieurs nœuds (10) sont configurés pour utiliser un nonce (r) selon une stratégie coopérative selon laquelle les différents nœuds (10) se partagent des plages de valeurs (I) de nonce (r) pour calculer ladite preuve de travail (PoW).
  14. Réseau (1) selon la revendication précédente, selon laquelle pour un nonce (r) qui comprend des valeurs sur une plage de valeurs (I) comprise entre 0 et une valeur maximum Max, un nœud (10) d’indice i balayera une plage de valeurs (I) de nonces (r) égale à i*Max/N jusqu'à [(i+1)Max/N]-1, avec i=0 à N-1, et N le nombre total de nœuds (10).
  15. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel le nonce (r) trouvé est transmis audit nœud coordinateur (10’).
  16. Réseau (1) selon l’une quelconque des revendications précédentes 1 à 14, selon lequel le nonce (r) trouvé est transmis directement à tous les autres nœuds (10) dudit réseau (1).
  17. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit nœud coordinateur (10’) est en outre configuré pour ajouter un bloc (20) dans la chaine de blocs (2) lorsque la preuve de travail (PoW) dudit bloc (20) a été vérifiée.
  18. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ledit nœud coordinateur (10’) est en outre configuré pour stocker dans sa mémoire réinscriptible (100) la chaine de blocs (2).
  19. Réseau (1) selon l’une quelconque des revendications précédentes, selon lequel ladite transaction (T) est une transaction V2X, avec X une infrastructure (5), ou avec X ledit véhicule (4) comprenant ledit réseau (1), ou avec X un autre véhicule (6), ou avec X un dispositif (7) porté par un piéton.
FR2108203A 2021-07-28 2021-07-28 Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs Active FR3125937B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2108203A FR3125937B1 (fr) 2021-07-28 2021-07-28 Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2108203 2021-07-28
FR2108203A FR3125937B1 (fr) 2021-07-28 2021-07-28 Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs

Publications (2)

Publication Number Publication Date
FR3125937A1 true FR3125937A1 (fr) 2023-02-03
FR3125937B1 FR3125937B1 (fr) 2024-10-11

Family

ID=78212210

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2108203A Active FR3125937B1 (fr) 2021-07-28 2021-07-28 Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs

Country Status (1)

Country Link
FR (1) FR3125937B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4496269A1 (fr) * 2023-07-21 2025-01-22 STMicroelectronics International N.V. Stockage robuste

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANDREAS M ANTONOPOULOS: "Mastering Bitcoin", 21 July 2017 (2017-07-21), XP055570487, ISBN: 978-1-4919-5438-6, Retrieved from the Internet <URL:https://www.oreilly.com/library/view/mastering-bitcoin-2nd/9781491954379/> [retrieved on 20190318] *
HAZARI SHIHAB SHAHRIAR ET AL: "A Parallel Proof of Work to Improve Transaction Speed and Scalability in Blockchain Systems", 2019 IEEE 9TH ANNUAL COMPUTING AND COMMUNICATION WORKSHOP AND CONFERENCE (CCWC), IEEE, 7 January 2019 (2019-01-07), pages 916 - 921, XP033530491, DOI: 10.1109/CCWC.2019.8666535 *
JABBAR RATEB ET AL: "Blockchain for the Internet of Vehicles: A Decentralized IoT Solution for Vehicles Communication Using Ethereum", SENSORS, vol. 20, no. 14, 15 July 2020 (2020-07-15), pages 3928, XP055878531, DOI: 10.3390/s20143928 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4496269A1 (fr) * 2023-07-21 2025-01-22 STMicroelectronics International N.V. Stockage robuste
FR3151455A1 (fr) * 2023-07-21 2025-01-24 Stmicroelectronics International N.V. Stockage robuste
US12549395B2 (en) 2023-07-21 2026-02-10 Stmicroelectronics International N.V. Robust storage

Also Published As

Publication number Publication date
FR3125937B1 (fr) 2024-10-11

Similar Documents

Publication Publication Date Title
FR2982091A1 (fr) Procede et systeme de gestion de charges electriques de cellules de batterie
EP3066565A1 (fr) Procédé et programme d&#39;ordinateur pour l&#39;exécution déportée de tâches informatiques d&#39;un équipement sans fil
CN111143378A (zh) 处理数据的方法及实现该方法的装置
EP3651408B1 (fr) Procédé d&#39;identification anonyme d&#39;un module de sécurité
EP3476056B1 (fr) Dispositif, système et procédé pour recevoir sélectivement des données diffusées dans un réseau
FR3106535A1 (fr) Procédé et dispositif de contrôle d’un système de stockage d’énergie, par exemple une batterie de véhicule
US11593898B2 (en) Method for processing data and apparatuses for implementing the same
US12600258B2 (en) Management of charging requests to avoid security issues and servicing delays across charging stations
Birhanie et al. MDP-based resource allocation scheme towards a vehicular fog computing with energy constraints
FR3125937A1 (fr) Réseau pour véhicule comprenant une pluralité de nœuds supportant une chaine de blocs
EP3072322A1 (fr) Procédé de notification a des fins de configuration d&#39;un élément sécurisé
FR2995149A1 (fr) Recharge d&#39;un parc de batteries
CN110378519B (zh) 一种公共自行车站点车辆数量的配置方法及装置
EP3846095B1 (fr) Procédé de gestion automatique d&#39;un flux d&#39;énergie électrique
WO2012131245A1 (fr) Verification de l&#39;integrite de donnees d&#39;un equipement embarque dans un vehicule
WO2021105573A1 (fr) Procédé et dispositif de contrôle d&#39;un dispositif de communication de véhicule
WO2023232633A1 (fr) Gestion du rechargement d&#39;un véhicule électrique, borne de rechargement et serveur de gestion de rechargement correspondants.
EP2479862A1 (fr) Gestion de l&#39;alimentation en énergie d&#39;un réseau local de transport d&#39;énergie
WO2014023711A1 (fr) Procede de gestion et diagnostic d&#39;une batterie
WO2004002058A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
EP3729720A1 (fr) Procédé cryptographique de signature de groupe
EP2009837A1 (fr) Procédé de génération embarqué d&#39;un identifiant et d&#39;une clé associée dans un objet portable communiquant
JP2022071900A (ja) 推定システム、及び推定プログラム
WO2013068672A1 (fr) Dispositif et procédé de gestion d&#39;une batterie en vue de sa non utilisation pendant une durée choisie
FR2988944A1 (fr) Procede de masquage des donnees composant un profil utilisateur associe a un noeud d&#39;un reseau.

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20230203

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5