May 31, 2021

W3C : vers un standard unique pour les DIDs 

5 MIN READ – TEAM XSL LABS

Share on twitter
Share on telegram
Share on email
Share on linkedin
Share on facebook

W3C : vers un standard unique pour les DIDs 

Le World Wide Web Consortium (W3C) (1), fondé en octobre 1994 par Tim Berners-Lee après son départ de l’Organisation européenne pour la recherche nucléaire (CERN) est un organisme international à but non lucratif dont la mission première est de mettre en place les standards du web afin d’en uniformiser le contenu.

Après sa création au MIT/LCS (Massachussets Institute of Technology / Laboratory for Computer Science), l’organisme se développe en Europe dès avril 1995 avec le soutien de l’Institut national de recherche en informatique et en automatique (INRIA) et celui de la commission européenne. En 1996, c’est l’université privée Keiō qui héberge à Tokyo le groupe de travail du W3C en Asie.

Avec l’essor d’Internet à la fin des années 90, le W3C a joué un rôle de plus en plus considérable dans la mise en place des standards utilisés et s’est ainsi développé dans toutes des régions du monde. Il compte à ce jour 92 bureaux dans une vingtaine de pays sur tous les continents.

C’est aujourd’hui un consortium international regroupant plus de 450 entreprises et organisations partenaires et plus de 60 employés garantissant le bon respect de la charte de fonctionnement du W3C et des protocoles existants et travaillant à l’établissement de nouveaux standards pour le web de demain.

 

La création de standards : des URIs aux DIDs

Les standards

À l’origine, le W3C s’est constitué afin de créer une structure normative universelle pour le World Wide Web (WWW) et a ainsi participé à l’élaboration des tous premiers standards de celui-ci qui ont posé ses fondements et en ont permis l’utilisation et le développement.

« Le World Wide Web est défini comme un espace universel contenant tout l’Internet et toutes les autres ressources référencées par les Identificateurs Uniformes de Ressource (URIs).

Dans la proposition initiale de Tim Berners-Lee, ainsi que dans la première implémentation du Web, relativement peu de technologies étaient mises en œuvre. Il s’agissait des URIs (Uniform Ressource Identifiers), du protocole Hypertext Transfer (HTTP) et du langage de balises HyperText (HTML). » (2)

Si le W3C est également connu pour avoir, outre HTML, établi des standards utilisés quotidiennement par de nombreux développeurs web tels que CSS ou XML, ses membres travaillent aujourd’hui à l’élaboration de nombreux autres standards d’Internet moins connus, couvrant une grande diversité de domaines notamment le web design et les application, l’Internet des objets (IOT), l’architecture web, les protocoles du web social, le web sémantique, le web des services, les navigateurs, le paiement en ligne etc.

Les groupes de travail

Les nouveaux standards du W3C sont élaborés au sein de groupes de travail thématiques encadrés par une « charte » spécifique définissant le champ d’activité de leurs missions, les méthodes employées et règles de fonctionnement de chaque groupe. On en compte aujourd’hui un peu moins de 40.

Sa structure se compose à sa tête, d’un ou deux présidents membres du W3C, ou issus d’organisations membres du W3C ainsi que d’un « staff contact » salarié par le W3C. Le groupe peut ensuite compter de 10 à plusieurs centaines de participants membres du W3C. Celui-ci se compose lui-même d’un noyau de participants plus actifs dont les interventions sont systématiques et d’autres membres, simples observateurs ou n’intervenant que ponctuellement. Des experts invités peuvent également faire partie du groupe et prendre part aux discussions.

Le DID Working Group est ainsi composé à sa tête de deux présidents : Brent Zundel de Evernym et Daniel Burnett, expert invité ainsi que d’un staff contact : Ivan Herman. Le groupe lui-même est composé de 97 participants, dont 5 experts invités représentant 40 organisations différentes.

 

W3C DID Working Group : structure et méthode

Un groupe de travail du W3C participe ainsi depuis 2019 à la création d’un standard pour les identifiants décentralisés (DIDs) (3) que nous avons présentés dans une série d’articles précédente (4) : c’est le W3C DID Working Group. Par leur structure essentielle, les DIDs ne diffèrent par ailleurs que peu des éléments de référencement fondamentaux du Web que sont les URIs, dont ils ne sont qu’un type particulier.

« Les URIs, sans doute plus essentiels qu’HTTP ou HTML, sont de simples chaînes de caractères qui référencent tout type de ressources Internet, tels que documents, personnes, etc. Les URIs peuvent être assimilés à la colle qui tient le Web dans son ensemble. » (2) Les DIDs, tout comme les URIs, sont des chaînes de caractères qui référencent une ressource. C’est l’environnement dans lequel il est développé qui permet à cet URI particulier de devenir un Identifiant décentralisé, grâce à son implication dans un système composé d’un DID Document et de Verifiable Credentials.

Le DID Working Group s’attache aussi bien à définir des standards théoriques que techniques pour ces identifiants et fonctionne de manière collaborative, chaque membre permettant d’ajouter sa pierre à l’édification d’un standard commun à tous.

Le groupe de travail va notamment garantir l’interopérabilité des différentes méthodes DID, et va permettre à travers les règles qu’il fixera aux différents DIDs développés de disposer d’une base technique commune. Afin de garantir l’homogénéité de ceux-ci et de façon à éviter que tout le monde « parle une langue différente », le consortium fixe un protocole de travail et met à disposition des développeurs un certain nombre d’outils de validation pour les aider à respecter au mieux les normes courantes. XSL Labs travaille ainsi au développement de sa solution sur la base des standards du W3C de façon à ce que le SDI soit entièrement interopérable.

Le W3C joue un rôle d’arbitre et il dépend de lui de valider les dernières innovations apportées aux technologies développées selon les grilles de critères du groupe de travail, mais également selon des critères qui s’appliquent à tout processus de développement d’un nouveau standard.

Dans le cas du groupe de travail pour les DIDs, son principal outil est une mailing-list de diffusion, complétée par des réunions hebdomadaire, téléphoniques ou en visio-conférence et aussi par de plus rares réunions physiques. Tous les comptes rendus sont publics, du contenu des mailing-lists aux documents de travail en passant par les comptes rendus des réunions. Toute la communauté intéressée par le développement du standard DID peut ainsi suivre les travaux et contribuer directement à l’élaboration de la norme en réagissant aux décisions prises par le groupe, en apportant des suggestions et des avis.

Mais le groupe de travail ne peut pas progresser uniquement lors de ses téléconférences hebdomadaires. Celui-ci fait ainsi un usage intensif de GitHub (5).

C’est donc de façon entièrement participative et interactive que se déroule l’élaboration de ce nouveau standard W3C pour les identifiants décentralisés. XSL Labs devrait faire partie du DID Working Group dès le deuxième semestre 2021. Mais avant de devenir un standard soutenu par le W3C ou Recommandation W3C (REC), la norme en cours d’élaboration doit passer par différentes phases de ratification qui déterminent différents niveaux d’avancement du projet.

 

Les différentes étapes de la création d’un standard

Une recommandation W3C est l’étape finale d’un processus de ratification du groupe de travail du W3C concernant un standard technique. La qualification de « recommandation W3C » signifie que le document a été soumis à une revue publique et aux membres de l’organisation W3C et qu’il fait consensus. Il devient alors l’équivalent d’un standard technique publié par d’autres industries.

De manière générale, c’est toujours la recherche de consensus qui préside à l’élaboration d’une recommandation. En l’absence de celui-ci les présidents de groupe peuvent appeler à un vote et en cas de conflit c’est le directeur du W3C, Tim Berners-Lee qui joue le rôle d’arbitre et prend la décision finale.

Le rôle des présidents de chaque groupe est de prendre en compte toutes les opinions, remarques et objections et de juger de leur légitimité ou non à l’ouverture d’une discussion au sein du groupe. Le consensus est considéré comme ayant été atteint lorsque plus aucun membre ne s’oppose catégoriquement et de façon argumentée à une décision.

D’après le document des procédures du W3C, une Recommandation évolue à travers différents niveaux de maturité.

Brouillon de travail – Working Draft (WD)

Lorsque la première recommandation est suffisamment structurée et développée, le groupe de travail publie le premier document. À ce niveau, il est qualifié de brouillon de travail (Working Draft, WD). Le standard est alors publié pour une revue par “la communauté” (membres du W3C, autres organisations, public) afin d’être examiné, commenté et pour que celle-ci donne ses suggestions quant à cette première étape de développement. Certaines parties du document peuvent ne pas avoir fait consensus, et dans le cas de changements significatifs par rapport au document précédent, une autre version du Working Draft peut être republiée et repasser par les mêmes étapes d’examen, de commentaires et de délibération. Après plusieurs versions successives du Working Draft et une fois que le document fait entièrement consensus, la spécification est publiée en tant que Candidate Recommendation (CR).

À cette étape, le document de normalisation peut avoir des différences significatives avec sa version finale. Dans le cas des DIDs, un identifiant décentralisé qui aurait été développé en se conformant à ce standard préliminaire devrait donc par la suite être modifié pour se conformer au standard définitif.

Recommandation candidate – Candidate Recommendation (CR)

Une recommandation candidate est une version du standard plus ferme que le Working Draft. Ici, le groupe de travail responsable de ce standard considère qu’il est fonctionnel en l’état. Le but de la recommandation candidate est de tester la faisabilité de sa mise en œuvre.

Le document de standard peut encore changer, mais arrivé à cette étape, les fonctionnalités principales sont figées. La conception de ces fonctionnalités peut encore changer en fonction des retours liés à sa mise en œuvre dans des logiciels.

Recommandation proposée – Proposed Recommendation (PR)

Une recommandation proposée est une version du standard ultérieure. Les retours sur ce standard ont été disponibles, et le standard a pu être mis en œuvre. Désormais, le document a été soumis au W3C Advisory Council pour approbation définitive.

Alors que cette étape est d’importance, il est rare qu’elle induise un changement significatif du standard lors du passage à l’étape suivante.

Recommandation W3C (REC) – W3C Recommendation (REC)

Il s’agit de l’étape la plus aboutie du développement. À cette étape, le standard a bénéficié d’une revue et de tests extensifs, sur des considérations à la fois théoriques et pratiques. À partir de là, le standard est soutenu par le W3C comme un standard pouvant être largement déployé dans son domaine.

Révisions suivantes

Une recommandation peut être mise à jour avec des Errata publiés séparément avant qu’une nouvelle édition de la recommandation ne soit produite (ainsi XML en est maintenant à sa cinquième édition). Le W3C publie également différents types de notes informatives qui n’ont pas pour but d’être traitées comme des standards. (6)

 

Où en sont les DIDs ?

Le groupe de travail du W3C sur les identifiants décentralisés a publié son document sur la standardisation des Decentralized Identifiers (7) en tant que Recommandation candidate (CR) du W3C et demande aux développeurs de logiciels et aux auteurs de la spécification de la méthode DID de fournir des mises en œuvre expérimentales conçues pour tester l’applicabilité de toutes les caractéristiques de ce document.

Pour quitter la phase de recommandation candidate du W3C, le groupe de travail DID du W3C exigera deux choses : 1) pour les déclarations normatives qui sont testables par machine, au moins deux implémentations interopérables par fonctionnalité, et 2) pour les déclarations normatives qui ne sont pas testables par machine, au moins deux démonstrations d’implémentation par fonctionnalité. Une caractéristique est définie comme une ou plusieurs déclarations normatives fonctionnellement liées dans la spécification.

À l’heure actuelle, il existe 82 spécifications expérimentales de la méthode DID, 32 implémentations expérimentales de pilotes de la méthode DID et une suite de tests de la recommandation candidate qui détermine si une implémentation donnée est conforme ou non à cette spécification.

Nous l’avons vu, il reste encore un long chemin à parcourir au groupe de travail sur les DIDs avant d’aboutir au statut de REC. En effet, le temps consacré aux processus de démonstration de l’implémentabilité et de l’interopérabilité des standards est considérable et peut être semé de difficultés. Un standard qui au niveau des étapes de Recommandation Candidate et de Recommandation Proposée devait subir d’importantes modifications, notamment après l’échec de certains tests, pourrait se voir rétrograder au niveau de Working Draft et devoir ainsi devoir franchir toutes les étapes une nouvelle fois.

Mais c’est ce long processus qui va garantir la solidité des recommandations du W3C, passées par l’examen et le contre-examen de nombreux experts, aboutissement de débats éclairés et passionnés qui vont faire en sorte que l’emploi de chaque mot est justifié et que chaque phrase est la plus claire et précise possible, de sorte qu’il n’y ait aucune place pour l’interprétation et l’erreur.

Le groupe de travail du W3C sur les DIDs va donc permettre, à travers un processus riche des apports individuels éclairés de tous ses membres, d’élaborer une norme accessible et interopérable afin de poser les premières pierres d’une identité numérique souveraine pour l’Internet de demain, duquel XSL Labs souhaite être un contributeur actif.


(1) https://www.w3.org

(2) https://www.w3.org/2004/11/uri-iri-pressrelease.html.fr

(3) https://www.w3.org/2019/did-wg/

(4) https://www.xsl-labs.org/blog/what-is-a-did/

https://www.xsl-labs.org/blog/what-is-a-did-2/

https://www.xsl-labs.org/blog/what-is-a-did-3/

(5) https://github.com/search?q=topic%3Adid-wg+org%3Aw3c&type=Repositories

(6) https://fr.wikipedia.org/wiki/Recommandation_W3C

(7) https://www.w3.org/TR/did-core/

 

Copyright © 2020 XSL Labs – All rights reserved