Systèmes d'information
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 smart 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).
6 mois
L'objectif de ce stage est d'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 :
Le/La candidat(e) doit avoir les compétences suivantes :
Gif sur Yvette
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é