Informations générales
Entité de rattachement
Le CEA est un acteur majeur de la recherche, au service des citoyens, de l'économie et de l'Etat.
Il apporte des solutions concrètes à leurs besoins dans quatre domaines principaux : transition énergétique, transition numérique, technologies pour la médecine du futur, défense et sécurité sur un socle de recherche fondamentale. Le CEA s'engage depuis plus de 75 ans au service de la souveraineté scientifique, technologique et industrielle de la France et de l'Europe pour un présent et un avenir mieux maîtrisés et plus sûrs.
Implanté au cœur des territoires équipés de très grandes infrastructures de recherche, le CEA dispose d'un large éventail de partenaires académiques et industriels en France, en Europe et à l'international.
Les 20 000 collaboratrices et collaborateurs du CEA partagent trois valeurs fondamentales :
• La conscience des responsabilités
• La coopération
• La curiosité
Référence
2024-34003
Description du poste
Domaine
Systèmes d'information
Contrat
Stage
Intitulé de l'offre
Un Système d'Effets pour un Langage de Programmation de Smart Contracts de Confiance H/F
Sujet de stage
Les « smart contracts » (programmes exécutés par une machine virtuelle dédiée sur une blockchain) sont devenus le paradigme privilégié pour le développement d'applications décentralisées dans une multitude de domaines ayant un fort impact socio-économique. Dans ce cadre, la vérification formelle des smarts contracts est obligatoire, compte tenu de l'impact très élevé qu'ils mettent en jeu (tel que les crypto-monnaies). Les techniques existantes de vérification formelle des smart contracts posent souvent des problèmes de réutilisation du code et de vérification séparée. Pour répondre à ces défis, nous avons proposé au CEA List un langage de programmation de smart contracts basé sur les effets algébriques et le typage statique. Notre proposition se base sur une discipline de types nouvelle, nommée « Pure Subtype Systems » (PSS), qui combine la dépendance de type (pour une plus grande expressivité) et le sous-typage d'ordre supérieur (pour faciliter la réutilisation).
Durée du contrat (en mois)
6 mois
Description de l'offre
L'objectif de ce stage est de implémenter un système d'effets sur un langage noyau de smart contracts basé sur les PSS que nous avons mis en place au CEA List. Les effets algébriques permettent au programmeur de formaliser le comportement computationnel attendu du programme, qui est encodé dans le type du programme et automatiquement vérifié en temps de compilation par le type checker. Le système d'effets que nous envisageons possède des propriétés avancées telles que la composabilité, les effets d'ordre supérieur et la dépendance de type. Les effets computationnels à prendre en compte comprennent la termination, les exceptions, la consommation de gaz bornée, les changements de l'état des smart contracts, les changements des balances des comptes, etc.
Une spécification de haut niveau du système d'effets sera disponible et remise au stagiaire. Le candidat interagira avec des chercheurs et des ingénieurs spécialisés dans la technologie blockchain et la théorie des langages de programmation.
Le candidat retenu rejoindra le Laboratoire des systèmes d'information fiables, intelligents et auto-organisés (LICIA) du CEA List.
Le stagiaire aura les responsabilités suivantes :
- Se familiariser avec l'état de l'art en matière de typage statique et des systèmes d'effets algébriques.
- Se familiariser avec le langage noyau de smart contracts basé sur les PSS mis en place au CEA List, et avec la spécification du système d'effets qui sera remise au stagiaire.
- Étendre le langage de smart contracts développé au CEA List en mettant en place un système d'effets d'après la spécification remise au stagiaire, et produire une implémentation réaliste du dit langage (telle qu'un interpréteur efficace ou une machine virtuelle).
- Vérifier l'exactitude de l'implémentation réaliste en effectuant des tests et des benchmarks.
- Documenter le développement du système d'effets en rédigeant un rapport technique et/ou en collaborant à un article scientifique.
Moyens / Méthodes / Logiciels
recherche, programmation
Profil du candidat
Le/La candidat(e) doit avoir les compétences suivantes :
- Étudiant(e) master 2 en informatique/ingénierie.
- Connaissance en théorie des langages de programmation et systèmes de type (expérience préalable d’implémentation des langages de programmation d’ordre supérieur est un atout).
- Connaissance en blockchain, smart contracts (expérience préalable de développement dans un langage de smart contracts est un atout).
Localisation du poste
Site
Saclay
Localisation du poste
France
Ville
Gif sur Yvette
Critères candidat
Langues
Anglais (Courant)
Diplôme préparé
Bac+5 - Master 2
Formation recommandée
Ingénieur / Master
Possibilité de poursuite en thèse
Oui
Demandeur
Disponibilité du poste
01/02/2025