Skip to content
Snippets Groups Projects
Commit 387b675b authored by Matograine's avatar Matograine Committed by Hugo Trentesaux
Browse files

begin part "comprendre/adherer"

parent af4ba747
No related branches found
No related tags found
1 merge request!26MR de relecture de documentation
...@@ -61,7 +61,7 @@ Voici les éléments qui changent dans la nouvelle infrastructure de Ğ1 : ...@@ -61,7 +61,7 @@ Voici les éléments qui changent dans la nouvelle infrastructure de Ğ1 :
- L'inscription du membre est *déterministe* et non *probabiliste* : si une identité remplit toutes les conditions, alors elle est inscrite en blockchain immédiatement. Précédemment, il pouvait y avoir 50% de chance d'être inscrit un jour et 50% 5 jours après, par exemple. - L'inscription du membre est *déterministe* et non *probabiliste* : si une identité remplit toutes les conditions, alors elle est inscrite en blockchain immédiatement. Précédemment, il pouvait y avoir 50% de chance d'être inscrit un jour et 50% 5 jours après, par exemple.
- Le renouvellement d'adhésion se fait automatiquement, dès qu'on fait une action en blockchain. Il n'est plus besoin de renouveler son adhésion chaque année. - Le renouvellement d'adhésion se fait automatiquement, dès qu'on fait une action en blockchain. Il n'est plus besoin de renouveler son adhésion chaque année.
[En pratique](@/wiki/doc-v2/comprendre/adhésion.md) -> exemple du flux d'adhésion. Explication des différents appels faits par les clients, en particulier la vérification de la règle de distance et la demande d'adhésion. [En pratique](@/wiki/doc-v2/comprendre/adherer.md) : Explication des différents appels faits par les clients, en particulier la vérification de la règle de distance et la demande d'adhésion.
## Toile de confiance forgeron ## Toile de confiance forgeron
......
...@@ -15,8 +15,6 @@ insert_anchor_links = "right" ...@@ -15,8 +15,6 @@ insert_anchor_links = "right"
# Cycle de vie d'un compte membre dans la toile de confiance Ğ1 - infrastructure V2 # Cycle de vie d'un compte membre dans la toile de confiance Ğ1 - infrastructure V2
[TOC] [TOC]
## Adhésion ## Adhésion
...@@ -43,7 +41,7 @@ Alice enregistre donc ce document de révocation, et **elle se l'envoie à elle- ...@@ -43,7 +41,7 @@ Alice enregistre donc ce document de révocation, et **elle se l'envoie à elle-
### Réception des autres certifications ### Réception des autres certifications
Après qu'Alice a confirmé l'invitation, les quatres autres personnes (ou plus) peuvent envoyer leurs certifications à Alice. Ces autres personnes sont tenues de vérifier que Alice a sauvegardé son document de révocation. Après qu'Alice a confirmé l'invitation, les quatres autres personnes (ou plus) peuvent envoyer leurs certifications à Alice. Ces autres personnes sont tenues de vérifier que Alice a sauvegardé son document de révocation. Chacune de ces certifications a une durée de validité de deux ans.
Alice a un délai de **deux mois** pour recevoir ces autres certifications Alice a un délai de **deux mois** pour recevoir ces autres certifications
...@@ -59,5 +57,50 @@ Suite à cette sixième certification, Alice fait sa demande d'adhésion. Son id ...@@ -59,5 +57,50 @@ Suite à cette sixième certification, Alice fait sa demande d'adhésion. Son id
## Utilisation habituelle ## Utilisation habituelle
Hormis le fait d'envoyer des transactions (que nous ne traiterons pas ici), un compte membre a deux rôles : co-créer le Dividende Universel et certifier les autres membres. Par ailleurs, le compte membre doit perdurer, il faut donc indiquer à intervalle régulier que la personne qui le maîtrise est toujours vivante.
### Co-création du Dividende Universel
Sur la monnaie Ğ1, le dividende universel (D.U.) est co-créé chaque jour, aux alentours de midi. En V1 ceci entraînait une modification du montant de *tous* les comptes au moment de la création du D.U. En V2, pour éviter de modifier des données de façon trop rapprochée, la création du D.U. se fait différemment : le fait qu'un compte soit membre au moment de la création du D.U. lui *donne le droit* de réclamer ce D.U. mais ne le crée pas immédiatement. Ainsi, si quelqu'un n'a pas utilisé son compte durant une semaine, tous les D.U. de la semaine seront créés lorsqu'il les réclamera, ce qui entraîne une charge mieux répartie dans le temps pour le réseau.
Au niveau utilisateur, ceci devrait être transparent, car les logiciels clients devraient :
- Faire la réclamation des D.U. automatiquement lors d'une autre action, par exemple lors d'une transaction. Il n'y aura pas de bouton 'réclamer le DU' sauf pour des usages avancés.
- Pour le montant du compte, faire la somme du montant du compte et des D.U. restants à réclamer
### Certifications
Les règles de la toile de confiance restent les mêmes, mais de petites modifications vont avoir lieu :
- Quand on voudra certifier une personne la première fois, il faudre l'*inviter*. Et dans ce cas il faudra lui demander l'adresse complète de son compte, car son identité n'aura pas encore été définie.
- On ne pourra émettre une certification que tous les 5 jours, et ces certifications seront enregistrées immédiatement. EN V1, on pouvait émettre plusieurs certifications simultanément et elles étaient *enregistrées* par la système avec un intervalle de 5 jours.
- Les certifications sont immédiatement enregistrées et elles durent deux ans, *même si l'identité ne devient pas membre*. Il est donc essentiel, si on ne veut pas gaspiller ses certifications, de s'assurer que la personne qu'on souhaite certifier a suffisamment de promesses de certifications.
### Adhésion
[source sur le forum](https://forum.duniter.org/t/trancher-sur-la-perte-du-statut-de-membre/10936/7)
[source 2](https://forum.duniter.org/t/proposition-de-supprimer-la-notion-didentite-desactivee-mais-non-revoquee-et-la-notion-dadhesion/9051/19)
Le Dividende universel est supposé être créé sur un seul compte par individu vivant. Le système doit maintenir le statut de membre pour les identités 1. dont le compte lié est actif, et 2. qui respectent toujours la règle de distance. Ceci est traité de la façon suivante :
- à chaque action du compte, la blockchain enregistre que le compte est actif et place une date d'expiration un an après.
- à chaque anniversaire de la création de l'identité **TODO A CONFIRMER**, si l'identité ne respecte plus la règle de distance, elle cesse de co-créer le dividende universel et passe dans un statut 'en attente'. A partir de ce moment, elle a un mois pour recevoir de nouvelles adhésions et relancer une demande d'évaluation de la règle de distance pour entrer de nouveau dans la toile de confiance.
## Révocation ## Révocation
A l'inverse, si un individu meurt, ou s'il ne souhaite plus faire partie de la toile de confiance (s'il s'en désintéresse), le système doit le détecter et l'exclure de la toile de confiance. La révocation d'une identité membre est automatique dans ce cas. Elle peut aussi être manuelle si l'utilisatrice décide de révoquer son identité membre, par exemple suite à un vol de sa phrase de passe. Voici différents scénarios pour la fin de vie d'un compte :
### Révocation manuelle
L'utilisatrice publie son document de révocation. La révocation est prise en compte dès le bloc suivant. Les certifications qui ont été émises par l'identité révoquée restent valides pour leur durée normale (deux ans après leur émission)
### Révocation automatique pour inactivité
Si le compte ne fait aucune action durant un an, l'identité qui est liée passe dans un statut 'en attente'. A partir de ce moment, elle a un mois pour faire une action (même une simple transaction). Si l'utilisatrice ne fait rien, l'identité est révoquée.
Après la révocation, si la propriétaire du compte souhaite réintégrer la toile de confiance, il lui faudra reprendre le processus d'adhésion depuis le début.
### Révocation pour non-respect de la règle de distance
A la date anniversaire de la création de l'identité **TODO A CONFIRMER**, le respect de la règle de distance est réévalué automatiquement. Si l'identité ne respecte plus la règle de distance, elle passe dans un statut 'en attente'. A partir de ce moment, elle a un mois pour recevoir de nouvelles adhésions et relancer une demande d'évaluation de la règle de distance pour entrer de nouveau dans la toile de confiance. Si l'utilisatrice ne fait rien, l'identité est révoquée.
Après la révocation, si la propriétaire du compte souhaite réintégrer la toile de confiance, il lui faudra reprendre le processus d'adhésion depuis le début.
+++
title="Qu'est-ce qu'un compte ?"
# date = 2024-10-17
weight = 20
sort_by = "weight"
insert_anchor_links = "right"
# [taxonomies]
# authors = ["Matograine",]
+++
{% note(type="warning", markdown="true") %}
**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs
{% end %}
# Qu'est-ce qu'un compte ?
Cette page vise à donner des précisions sur ce qu'est un compte sur Duniter2, et comment ils sont créés et utilisés.
[TOC]
## Trousseau de clefs
Un compte est un [trousseau de clefs cryptographique](TODO lien vers wikipedia), composé d'une *clef privée* (un très grand nombre qui permet de signer des documents) et d'une *clef publique* associée, qui permet de les *chiffrer*. Les deux clefs sont liées mathématiquement de sorte que :
- si on connaît une clef publique, on peut vérifier si un document a été signé par la clef privée associée (donc par la propriétaire du compte)
- si on connaît une clef privée (donc si on est propriétaire du compte), on peut déchiffrer les documents qui ont été chiffrés en utilisant la clef publique.
### Précisions sur la notion de compte "membre"
Un compte n'est pas *intrinsèquement* "membre" ou "portefeuille". Sur Ğ1, un compte peut être lié à une *identité*. C'est le lien avec cette identité qui détermine si un compte est "membre" ou pas. C'est l'identité, et non le compte, qui reçoit les certifications, même si par abus de language on parle de "certifier un compte membre".
## Adresse
La partie visible d'un compte est sa clef privée, qui est encodée d'une certaine façon, ce qui donne l'*adresse* du compte. Une même clef publique peut être représentée par plusieurs adresses, et c'est ce qui va se passer lors de la transtition V1 -> V2. Par exemple, l'adresse (V1) `B2HPiYRBVbLazd6DcoTx3rCJZYJxrGjrfBTz2ipHnBHP` peut avoir ces deux autres représentations :
- `B2HPiYRBVbLazd6DcoTx3rCJZYJxrGjrfBTz2ipHnBHP:5KN` en V1, avec le checksum
- `5FRx9wBiNAVragvnCXQdegpYQCN74WJxANnx6hFF1McW3Ei3` en V2, pour le réseau GDev
<!--- **TODO** adresse en V2, pour le réseau Ğ1 (je n'arrive pas à générer des adresses avec un préfixe custom.) -->
## Mnémonique ## Mnémonique
Un compte est généré à partir d'informations qui sont connues seulement du propriétaire et doivent rester secrètes.
EN V1, ces informations étaient un 'identifiant secret' et un 'mot de passe'. Ceci est toujours possible en V2, en utilisant le client Cesium. Mais la façon recommandée de créer un compte est désormais de créer une *phrase mnémonique* (qu'on appelle simplement 'mnémonique', parfois 'graine' ou 'phrase de passe').
Un mnémonique est une phrase de 12 mots choisis aléatoirement. C'est le secret qui va permettre de générer un trousseau de clefs, c'est-à-dire un compte.
Voici un exemple de mnémonique en anglais :
```
deposit kite bleak skate early flag fabric picture exile consider express sizdeposit kite bleak skate early flag fabric picture exile consider express size
```
## Dérivation ## Dérivation
## Oneshot account Les clefs publiques peuvent être *dérivées*, c'est-à-dire qu'on peut générer des comptes "enfants" d'un autre compte.
Le compte généré à partir du mnémonique est appelé la *racine*: c'est à partir de ce compte qu'on va dériver tous les autres. C'est cette propriété qui permet d'avoir un "coffre-fort" avec différents comptes, en utilisant un seulmnémonique.
La dérivation est notée, par exemple `//2` pour la dérivation d'un compte selon le chiffre 2. Prenons un exemple, avec le mnémonique qu'on a donné en exemple plus haut :
- `5FRx9wBiNAVragvnCXQdegpYQCN74WJxANnx6hFF1McW3Ei3` est l'adresse du compte racine sur le réseau GDev (`B2HPiYRBVbLazd6DcoTx3rCJZYJxrGjrfBTz2ipHnBHP` en V1)
- `5DSQLMy6LBinuMQSZGa83NkurD1eH2tcLxi72e5mhK5snQq3` est l'adresse de la dérivation `//2`
Si vous voulez faire des essais, l'extension [duniter-connect](https://addons.mozilla.org/fr/firefox/addon/duniter-connect/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=search) le permet.
### Dérivation des comptes membres
Par convention, les comptes membres sont créés sur la dérivation `//2`. Si vous devez importer le mnemonique de votre compte membre et que le logiciel client ne donne pas le compte membre, vous pouvez entrer le mnémonique et la dérivation :
```
deposit kite bleak skate early flag fabric picture exile consider express sizdeposit kite bleak skate early flag fabric picture exile consider express size//2
```
### Usages avancés de la dérivation
#### Dérivation par mot
Une dérivation peut également être faite par un mot, par exemple `//gdev`
#### Dérivation sur plusieurs niveaux
Il est possible de définir un *chemin de dérivation*, par exemple `//gdev//3`
### Oneshot account
Pour certains aspects techniques ou pour des aspects de confidentialité, il est possible de dériver des comptes "à usage unique" (`oneshot account`), qui recevront un unique versement et pourront le dépenser en même temps que d'autres `oneshot account` s'il y a besoin d'une somme qu'ils ne contiennent pas.
## Lien vers les frais A l'heure actuelle, aucun logiciel client ne prévoit ce cas d'usage.
\ No newline at end of file
## Frais et quotas +++
title="Frais et quotas"
# date = 2024-10-17
weight = 20
sort_by = "weight"
insert_anchor_links = "right"
Une blockchain n’est jamais illimitée. # [taxonomies]
# authors = ["Matograine",]
+++
Une blockchain à besoin d’une puissance de calcul et d’un espace de stockage. Les deux, bien que conséquents, ne sont pas illimités. Une attaque possible est la saturation de la puissance de calcul par envoi de milliards de transaction à la seconde. {% note(type="warning", markdown="true") %}
**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs
{% end %}
# Frais et quotas
## Une blockchain n’est jamais illimitée.
Une blockchain à besoin d’une puissance de calcul et d’un espace de stockage. Les deux bien que conséquents, ne sont pas illimités. Une attaque possible est la saturation de la puissance de calcul par envoi de milliards de transactions à la seconde.
Les autres blockchains prélèvent des frais pour chaque action afin de dissuader cette saturation des calculs et de l’espace de stockage. Les autres blockchains prélèvent des frais pour chaque action afin de dissuader cette saturation des calculs et de l’espace de stockage.
Mais la Ğ1 n’est pas comme les autres. Mais la Ğ1 n’est pas comme les autres.
Les frais ne seront prélevés qu’en cas de surcharge de la blockchain.
- Un nombre total transactions/certifications/adhésion par block a été evalué comme étant un fonctionement normal. ## Paiement et remboursement des frais de transaction
- C’est uniquement si le nombre d’actions dans un block dépasse cette limite que des frais sont prélevés. Frais estimés à environ 0.015 DUĞ1, soit 17 Ğ1 pour 100 transactions.
1-Les frais ne seront prélevés qu’en cas de surcharge de la blockchain.
- Un nombre total d’actions (transactions, certifications, adhésion, …) par block a été evalué comme étant la limite d’un fonctionnement “normal”. Au-delà la de cette limite la blockchain est considérée en saturation.
- C’est uniquement si le nombre d’actions dans un bloc dépasse cette limite que des frais sont prélevés. Frais estimés à environ 0.015 DUĞ1, soit 17 Ğ1 pour 100 transactions.
De plus les frais seront remboursés à tous les membres de la toile de confiance (c’est la force de notre Blockchain) 2-De plus les frais seront remboursés à tous les membres de la toile de confiance (c’est la force de notre Blockchain)
- Un quota d’action par membre et par block est défini (permettant quand même de nombreuses transactions) - Un quota d’actions par membre et par block est défini (permettant quand même de nombreuses transactions)
- Les comptes non membres pourront être liés à un compte membre et se faire rembourser aussi leur frais, dans la limite du quota par membre. - Les comptes non membres pourront être liés à un compte membre et se faire rembourser aussi leur frais, dans la limite du quota par membre.
- Un membre peut faire une seule transaction, mais si au même moment quelqu’un lance 1 millions de transaction sur 1 million de compte la blockchain sera saturé, le membre honête sera donc prélevé de frais. - Un membre peut faire une seule transaction mais si, au même moment, quelqu’un lance 1 millions de transactions sur 1 million de comptes, la blockchain sera saturée, ce membre sera donc prélevé de frais.
- Puis il sera remboursé parce qu’il ne dépasse pas le quota par membre. - Puis il sera remboursé parce qu’il ne dépasse pas le quota par membre.
- Si c’est un membre et ses comptes liés qui lancent des centaines de transactions entrainant la saturation, il ne sera remboursé que sur les premières transactions les suivantes étant au delà du quota. - Si ce sont un membre et ses comptes liés qui lancent des centaines de transactions entraînant la saturation, ce membre ne sera remboursé que sur ses premières transactions, les suivantes étant au-delà du quota.
- Si un membre lance des centaines de transaction même au delà du quota par membre mais qu’il est tout seul à faire des transactions à ce moment là, cela peut passer sans saturer la blockchain, donc pas de frais. - Si un membre lance des centaines de transactions même au-delà du quota par membre mais qu’il est tout seul à faire des transactions à ce moment là, cela peut passer sans saturer la blockchain, donc pas de frais.
- Par contre, pas de remboursement possible en cas de fermeture de compte ! - Par contre, pas de remboursement possible en cas de fermeture de compte !
- Il n’y aura pas de remboursement pour les comptes anonymes.
Il est peu probable qu’une telle attaque soit déclenchée car elle entraînerait la ruine de l’attaquant, pour un blocage temporaire. Ces frais sont donc une dissuasion. Il est peu probable qu’une telle attaque soit déclenchée car elle entraînerait la ruine de l’attaquant, pour un blocage temporaire. Ces frais sont donc une dissuasion.
## Gestion des frais dans le cas d'actions liées à la toile de confiance
**TODO partie à relire avec attention**
D'autres actions que les transactions entraînent des frais :
- certification
- évaluation de la règle de distance
- révocation
- **TODO à compléter**
Si ces actions n'aboutissent pas pour une raison quelconque, les frais ne seront pas remboursés :
- Une demande d'adhésion entraîne des frais. S'il s'avère que l'identité ne respecte pas la règle de distance et que l'adhésion ne peut pas se faire, les frais ne seront pas remboursés.
A l'inverse, pour ces actions les frais sont toujours remboursés :
**TODO** - préciser que les frais sont remboursés **si l'action est bien exécutée**. Par exemple, une demande d'adhésion entraîne des frais. S'il s'avère que l'identité ne respecte pas la règle de distance et que l'adhésion ne peut pas se faire, les frais ne seront pas remboursés. - si vous invitez un membre, les frais vous seront remboursés même s'il ne confirme pas l'invitation
\ No newline at end of file - si vous certifiez une identité et qu'elle ne devient pas membre, vos frais sont tout de même remboursés.
- Lorsque vous révoquez une identité, les frais sont toujours remboursés.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment