Pause
Lecture
Moteur de recherche d'offres d'emploi CEA

Tests des protocoles tolérants aux fautes byzantines. H/F


Détail de l'offre

Informations générales

Entité de rattachement

Le Commissariat à l'énergie atomique et aux énergies alternatives (CEA) est un organisme public de recherche.

Acteur majeur de la recherche, du développement et de l'innovation, le CEA intervient dans le cadre de ses quatre missions :
. la défense et la sécurité
. l'énergie nucléaire (fission et fusion)
. la recherche technologique pour l'industrie
. la recherche fondamentale (sciences de la matière et sciences de la vie).

Avec ses 16000 salariés -techniciens, ingénieurs, chercheurs, et personnel en soutien à la recherche- le CEA participe à de nombreux projets de collaboration aux côtés de ses partenaires académiques et industriels.  

Référence

2021-18850  

Description du poste

Domaine

Mathématiques, information  scientifique, logiciel

Contrat

Stage

Intitulé de l'offre

Tests des protocoles tolérants aux fautes byzantines. H/F

Sujet de stage

La blockchain est une chaîne de blocs continuellement ajoutés par des pairs (nœuds). Dans le but de préserver la structure de la chaîne, il ne faut jamais avoir plus de deux blocs ajoutés au même bloc. Afin de prévenir ce phénomène, plusieurs protocoles de consensus du type PBFT ont été défini mais néanmoins, ce type de protocoles, de par leur complexité, ne sont pas simple à prouver correct ni à tester sans connaitre profondément l'algorithme même. Dans ce contexte, il est de prime importance de pouvoir automatiser les tests des algorithmes du type PBFT.

L'objectif de ce stage est de définir et de développer un module de génération de tests automatiques pour l'implémentation de Tendermint (déjà présent dans notre simulateur). Le candidat aurait accès a une formalisation de l'algorithme et a une première méthodologie qui permet la définition des tests, pour le moment uniquement à la main.

Durée du contrat (en mois)

6

Description de l'offre

Contexte:

En 2008, un white paper [1], signé sous le pseudonyme de Satoshi Nakamoto, définissait l'une des nouvelles technologies les plus intéressantes des dernières décennies : la blockchain. Cette technologie sert de grand registre public, réparti et inaltérable. La blockchain est non répudiable pour la crypto-monnaie Bitcoin et pour d’autres types d’applications. En quelques mots, la blockchain est une chaîne de blocs continuellement ajoutés par des pairs (nœuds). Ces blocs contiennent des données dépendantes de l'application que les pairs doivent authentifier. Dans le but de préserver la structure de la chaîne, il ne faut jamais avoir plus de deux blocs ajoutés au même bloc. Afin de prévenir ce phénomène, plusieurs protocoles de consensus du type PBFT [3] ont été défini mais néanmoins, ce type de protocoles, de par leur complexité, ne sont pas simple à prouver correct ni à tester sans connaitre profondément l’algorithme même. Dans ce contexte, il est de prime importance de pouvoir automatiser les tests des algorithmes du type PBFT. Parmi ces protocoles, Tendermint [2] a fait l’objet de profondes analyses [4,5].

 

L’objectif :

 

L'objectif de ce stage est de définir et de développer un module de génération de tests automatiques pour l’implémentation de Tendermint (déjà présent dans notre simulateur). Le candidat aurait accès a une formalisation de l’algorithme et a une première méthodologie qui permet la définition des tests, pour le moment uniquement à la main.

 

Méthodologie :

Le stagiaire aura les responsabilités suivantes :

(1) Préparer un état de l'art sur les travaux existants sur les tests automatiques dans le contexte de la blockchain et des protocoles BFT;

(2) Comprendre le protocole Tendermint;

(3) Comprendre la méthodologie pour la définition des tests ;

(4) Analyser l’exhaustivité de cette méthodologie par rapport l’ensemble des scenarios possibles de tests,

(5) Étendre cette méthodologie pour augmenter sa couverture

(3) Développer dans MAX la solution pour la génération automatique des tests pour Tendermint

(4) Mettre en place des tests pour cette solution.

Moyens / Méthodes / Logiciels

systèmes distribués, méthodes formelles, langages de programmation, programmation réseau.

Profil du candidat

Compétences :

·        Etudiant Master 2 en informatique/Ingénieur.

·        Connaissance générale en systèmes distribués.

·        Connaissances en méthodes formelles.

·        Des connaissances en technologie blockchain est un plus.

·        Bon niveau en programmation (JAVA).

Localisation du poste

Site

Saclay

Localisation du poste

France, Ile-de-France, Essonne (91)

Ville

Palaiseau

Demandeur

Disponibilité du poste

01/03/2022