La licence utilisée pour tous les articles MoBlo est CC BY-NC-ND 4.0
2. Population Map (PM), la "Carte de la Population"
La première étape dans la mise en place d'un projet BlockChain est la définition du périmètre : quels sont les droits de chaque acteur (final) du projet.
2.1. Les Droits
Cette section présente les différents droits possibles qui peuvent être mis en place dans un projet BlockChain.
Les Droits sont définis ci-dessous pour les différents noeuds du réseau :
Elément de diagramme | Description |
---|---|
Simple Node, "Noeud Simple" : Noeud qui n'est pas capable de se connecter à la BlockChain (donc noeud hors réseau). | |
Origin Node, "Noeud d'Origine" : Créateur de la BlockChain (possède naturellement les droits admin). | |
Admin : Peut donner et retirer, à n'importe qui, les droits : issue, mine, activate, admin, connect, send et receive. | |
Activator, "Activateur" : Peut donner et retirer, à n'importe qui, les droits : connect, send, receive. | |
Miner, "Mineur" : Noeud qui gère la création de blocks dans le BlockChain. | |
Connect, "Connection" : Noeud ayant le droit de se connecter à la BlockChain. | |
Send, "Envoi" : Noeud ayant la possibilité d'envoyer de nouvelles transactions dans la BlockChain (possède implicitement le droit de se connecter) | |
Receive, "Reception" : Noeud ayant la possibilité de recevoir des transactions dans la BlockChain (possède implicitement le droit de se connecter) | |
Issue : Noeud ayant le droit de créer de nouveaux Assets dans la BlockChain (possède implicitement le droit d'envoi et de réception) |
2.2. Le diagramme PM pour le use case Bibliothèque
Dans le cas de la Bibliothèque, on peut trouver 4 types d'acteurs :
Central Library : La Bibliothèque Centrale
Libraries : Les Bibliothèques Secondaires
Readers : Les Lecteurs
Others : Les Autres Acteurs (non reliés au système de Bibliothèques)
L'ensemble des droits peuvent être représentés par la figure suivante :
Figure 2-1 - Population Map - Bibliothèque - étendu
Repassons en revue les droits de chaque acteur :
La Bibliothèque Centrale :
- C'est le Créateur de la BlockChain
- Il a les droits Admin sur la BlockChain
- Il a les droits Activateur sur la BlockChain
- C'est un Mineur
- Il peut se Connecter à la BlockChain
- Il peut Envoyer des transactions sur la BlockChain
- Il peut Recevoir des transactions sur la BlockChain
- Il a le droit d'Issue, c'est à dire de créer de nouveaux Assets dans la BlockChain
Les autres Bibliothèques :
- Ils ont le droit Activateur sur la BlockChain
- Ils sont Mineurs
- Ils peuvent se Connecter à la BlockChain
- Ils peuvent Envoyer des transactions sur la BlockChain
- Ils peuvent Recevoir des transactions sur la BlockChain
Les Lecteurs :
- Ils peuvent se Connecter à la BlockChain
- Ils peuvent Envoyer des transactions sur la BlockChain
- Ils peuvent Recevoir des transactions sur la BlockChain
Les autres Acteurs (non rattaché au système de la Bibliothèque):
- Ils ne peuvent se connecter !!! Ils ne peuvent donc pas lire les informations.
Dans cette liste, il y a plusieurs droits qui sont redondants.
Si on est en mesure d'écrire dans la BlockChain, alors on a, inévitablement, le droit de se connecter à la BlockChain. De façon similaire, un créateur de BlockChain a les droits Admin et Activation.
Note: c'est un bon moyen de mettre en avant les rôles, les acteurs techniques, les acteurs métier.
La liste peut donc être réduite de la façon suivante :
La Bibliothèque Centrale :
- C'est le Créateur de la BlockChain;
- C'est un Mineur;
- Il peut Envoyer des transactions sur la BlockChain;
- Il peut Recevoir des transactions sur la BlockChain;
- Il a le droit d'Issue, c'est à dire de créer de nouveaux Assets dans la BlockChain.
Les autres Bibliothèques :
- Ils ont le droit Activateur sur la BlockChain;
- Ils sont Mineurs;
- Ils peuvent Envoyer des transactions sur la BlockChain;
- Ils peuvent Recevoir des transactions sur la BlockChain.
Les Lecteurs :
- Ils peuvent Envoyer des transactions sur la BlockChain;
- Ils peuvent Recevoir des transactions sur la BlockChain.
Les autres Acteurs (non rattaché au système de la Bibliothèque):
- Ils ne peuvent se connecter !!! Ils ne peuvent donc pas lire les informations.
Les droits peuvent, donc, être représentés dans la version compacte de la figure suivante :
Figure 2-2 - Population Map - Bibliothèque - Compacte
2.3. Diagramme PM pour le use case Forum
Dans la cas du Forum, il y a 4 types de personnes :
Le Créateur du Forum
Les Editeurs (qui ont le droit de créer de nouveaux sujets)
Les Lecteurs Abonnés
Les (Simples) Lecteurs
L'ensemble des droits peuvent être représentés par la figure suivante :
Figure 2-3 - PM - Forum
La figure représente la version compacte de la Population Map (PM).
La liste des droits est la suivante :
- Le Créateur du forum :
- C'est le Créateur de la BlockChain;
- Il est Mineur;
- Il peut Envoyer des transactions dans la BlockChain;
- Il peut Recevoir des transactions dans la BlockChain;
- Il a le droit d'Issue dans la BlockChain;
- Il peut Recevoir en utilisant une autre adresse.
Note : Le Forum possède un mur, une "ligne éditoriale". Une adresse spécifique est créée à ce titre, pour recevoir toutes les publications. On peut imaginer que chaque éditeur possède sa propre adresse de publication et que le forum possède ainsi plusieurs lignes éditoriales. En fait, techniquement, si une adresse peut recevoir des transactions alors elle peut servir de ligne éditoriale. Il faut noter, avant tout, que le Créateur du Forum est représenté par deux statuts : le premier possède tous les droits (ce sont ses droits utilisateurs); le second ne peut que recevoir des transactions (c'est la ligne éditoriale).
Note : Une adresse qui ne peut que recevoir peut être considérée comme un mur de publication (une discussion ultérieure compare l'utilisation des transactions à l'utilisation des streams).
Les Editeurs (qui ont le droit de créer de nouveau sujets) :
- Ils peuvent Envoyer des transactions dans la BlockChain;
- Ils peuvent Recevoir des transactions dans le BlockChain;
- Ils ont le droit d'Issue dans la BlockChain.
Les Lecteurs Abonnés :
- Ils peuvent Envoyer des transactions dans la BlockChain;
- Ils peuvent Recevoir des transactions dans le BlockChain.
Les (simples) Lecteurs :
- Ils peuvent se Connecter et lire (seulement lire) les publications.
2.4. Cas particulier : Multi-Signature
Dans plusieurs cas, il peut apparaître le besoin d'utiliser une adresse multisignée. Une adresse multisignée est une adresse qui peut être signée par (p) clés publiques différentes et qui doit être signée par (s) signatures. Ainsi, une adresse multisignée est notée avec (s x p) pour informer du nombre (s) de signatures nécessaires parmi les (p) clés publiques possibles.
Dans le diagramme Population Map, un cadre supplémentaire rejoint les personnes pouvant signer et une information indique le format de la signature.
Figure 2-4- PM – Adresse MultiSignée
Dans cette figure, deux adresses sont partagées par Alice et Bob :
• la première signature n'a besoin que d'une signature pour envoyer des transactions (soit la signature d'Alice, soit celle de Bob);
• La seconde signature a besoin de deux signatures pour envoyer des transactions (la signature d'Alice et celle de Bob)
Note : Plusieurs diagrammes peuvent être utilisés quand plusieurs adresses multisignées se croisent, par exemple : quand une adresse est en 3 x 6 et une autre adresse en 4 x 5, et une autre ... Le principe du diagramme Polupation Map est de clarifier la situation des différents acteurs, plusieurs diagrammes peuvent donc être utilisés pour conserver la clarté dans la représentation de la population.
2.5. Cas particulier : Import de Clé Privée
Dans certains cas, il peut s'avérer nécessaire d'importer la clé privée d'un wallet dans un autre wallet. Le second wallet reçoit ainsi tous les droits du premier et peut agir comme s'il était le premier. C'est une fonctionnalité à utiliser avec beaucoup de prudence.
Dans le diagramme PM, cela se représente par une simple flèche.
Figure 2-5- PM - Import de Clé Privée
Dans cette figure, Bob a le droit d'Issue dans la BlockChain alors qu'Alice n'en a pas directement le droit, mais Alice a le contrôle sur une adresse du Wallet de Bob, Alice a, ainsi, le droit d'Issue en utilisant les droits de l'adresse de Bob.
Techniquement, cela signifie qu'Alice a importé la clé privée de l'adresse de Bob.