Abandon de la PoW au profit de BABE/GRANDPA

Je ne suis pas très doué en compréhension audio de l’anglais, mais je n’ai pas l’impression que cette limte soit mentionnée à cet endroit de la vidéo. Si je comprends correctement (à confirmer…), il dit qu’il y a 350 forgerons actifs, 152 forgerons en attente et 1050 nominateurs (?) qui élisent les forgerons. Il dit bien qu’il y a une limite au nombre de forgerons actifs (ici 350) mais je n’entends pas de référence à la valeur 1000 dans sa phrase.

L’intérêt commun étant qu’un maximum de la masse monétaire circule, il faudrait un moyen d’éviter ce travers.

2 Likes

Oui, à la base j’avais mis 350 dans mon message par rapport à cette vidéo. Mais ensuite j’ai vu ailleurs que la limite réelle était 1000. J’ai modifié mon message en conséquence.

Est-ce qu’on pourrait définir un seuil max pour la caution ? Et si plus de 1000 forgerons potentiels mobilisent cette somme, alors sélectionner par tirage au sort ? Ça permettrait d’éviter d’avoir trop de monnaie immobilisée pour la forge.

2 Likes

Tant que ça empêche, par exemple, les malwares mineurs (comme un script qui mine en utilisant les ressources du navigateur web client à son insu). Il faut qu’un forgeron soit obligé de se mettre en danger (en diffusant sa clé privée) pour déléguer son minage, comme c’est le cas pour Duniter v1.

Ah oui bonne idée. Et aussi en cas de pénalités reçues dans l’époque passée, exclusion pour l’époque à venir.

Dans la mesure où il n’y aurait pas de PoW dans Duniter V2S, ça ne me semble pas être un problème.

En tout cas ce sera la seule façon de déléguer son minage. D’ailleurs les frais de transaction seront attribués à la clé de session transmise, et seront donc contrôlables par le mandaté.

2 Likes

S’il est techniquement possible de tirer au sort 1000 forgerons de la prochaine ère parmi N>1000 candidats forgerons ayant déposé une caution, alors je ne vois pas l’intérêt d’avoir un seuil maximum ni de les choisir selon le montant déposé.

Il y aurait :

  • soit un seuil minimum de caution évolutif (on peut vouloir déposer plus pour rester forgeron si ce seuil augmente) avec une désignation aléatoire, pour chaque ère, des forgerons qui pourront écrire.
  • soit un seuil minimum de caution, toujours évolutif, avec une désignation des forgerons selon le montant déposé en caution.

Mélanger les deux, c’est de mon point de vue une usine à gaz.

A peser ensuite, les avantages et inconvénients de ces solutions, en termes de sécurité.

1 Like

L’intérêt principal du seuil maximum est d’éviter la mobilisation d’une trop grande partie de la masse monétaire pour la forge. Voir la remarque de @cgeek sur Polkadot : 60% de la monnaie immobilisée.

S’il n’y a pas d’intérêt individuel à mobiliser une forte somme pour forger, il n’y a pas de risque de bloquer une grande partie de la masse monétaire pour cet usage.

Si les forgerons sont tirés au sort, il n’y a pas d’intérêt individuel à mobiliser une forte somme pour forger.

Donc Si les forgerons sont tirés au sort, il n’y a pas de risque de bloquer une grande partie de la masse monétaire pour cet usage. Un “seuil maximum” est donc inutile.

L’idée de départ c’était :

  1. Les forgerons doivent mobiliser une caution
  2. Il y a un seuil minimum
  3. Les forgerons sont sélectionnés en fonction de leur caution (plus ils mobilisent plus ils ont de chance d’être sélectionnés)

Je ne connais pas les arguments pour ces trois points, mais ça semblait être le point de départ de la discussion. Le risque est toutefois de mobiliser trop de masse monétaire. D’où l’idée :

  1. Définir un seuil max (si on sait définir un seuil minimum, je ne vois franchement pas où est la complexité)
  2. S’il y a trop de prétendants au seuil max, tirer au sort.

Le statut de forgeron pourrait servir de caution, non ? La punition est l’exclusion. Ça évite la dérive ploutocratique.

La caution est utile en l’absence de toile de confiance. Mais si on en a une, pourquoi s’embêter ?

3 Likes

Le permis à points n’empêche pas l’amende. Certains se fichent de l’amende, d’autres des points, ça dépend des situations.

1 Like

Sauf que là ce n’est pas juste le retrait du permis, mais de la voiture. Si tu fraudes, tu n’as plus le droit de forger pour une durée donnée, suffisante pour empêcher le spam.

Oui mais inversement, en étant trop sévère on risque d’aboutir à une situation où il ne resterait plus personne pour forger. Exemple : un bug dans le calcul de WoT présent chez 90% des forgerons fait que tous les nœuds tentent d’inclure une adhésion qui ne respecte pas la règle de distance.

Les 90% se font donc exclure, ce qui facilite une attaque par déni de service sur les 10% restants.

2 Likes

L’idée que j’ai en tête depuis des années c’est d’implémenter une sous-toile spéciale «membres forgerons», et seuls les membres de cette sous-toile pourront s’inscrire parmi les autorités.

Petit point de vocabulaire, dans substrate ceux qui écrivent les blocs sont nommés «autorités», les validateurs désignent en réalité un groupe plus large, certains validateurs n’écrivent pas de blocs, ils se contentent de les valider.
Le terme validateur correspond plutôt à ce que l’on appelle « nœud miroir ».

Je propose donc que seuls les membres de la sous-toile forgeron puissent s’inscrire comme autorités pour une session. Je pense même qu’il faut exiger que chaque membre forgeron s’inscrive régulièrement à une session pour rester membre forgeron, afin que les membres forgerons inactif ne puisse pas rester membre forgerons.

Concernant les sanctions, je pense que le slashing d’une caution est une mauvaise idée, car ça oblige à déposer une caution, je préfère la privation de DU futurs, ou pas de sanction financière du tout.

En tous les cas, je pense qu’on doit d’abord s’appuyer sur des sanctions non-financières, je suis favorable à un système de points, un peu comme le permi à points, ou l’on perdrait le droit d’écrire des blocs pendant un certain temps si l’on perd trop de points.

On peut aussi faire varier le «poids» de chaque autorité dans BABE, une sanction intermédiaire peut donc être de faire baisser le poids des autorités qui agissent mal (ou qui sont trop souvent hors-ligne).

Le « poids » d’une autorité dans BABE influe sur le seuil que la VRF doit atteindre pour être éligible à l’écriture d’un bloc primaire. Par défaut il est le même pour toutes les autorités.

1 Like

Attention à ce point, car un sous-groupe pourrait réaliser une attaque en se concentrant sur des slots lointains afin de faire sortir les autres forgerons de la fenêtre.

Ceci dit la privation du droit de forger, ou limiter le poids d’un forgeron, implique une perte de rémunération aussi. Donc ça revient au même, j’y repensais suite à la réponse de @tuxmain. Ça me va aussi.

J’ai quand même des craintes quand la Ğ1 grossira et que les enjeux seront plus grand.

Je ne comprends pas cette phrase, que signifie “slot lointain” ? que signifie “fenêtre” ? Quel est l’attaque ?

Seulement si la rémunération des créateurs de bloc est protocolaire.

Moi aussi, mais je pense qu’on en est encore à des années lumières, et que quand ces questions se poseront ont aura plus de cerveau disponibles pour y réfléchir et continuer d’améliorer le protocole.

Point 1 : si j’ai correctement compris le fonctionnement de BABE, des “slots” d’une session peuvent être ignorés pour la simple et bonne raison qu’il peut ne pas y avoir d’autorité disponible. Du coup, il est possible de directement produire un bloc pour un slot “lointain”, c’est-à-dire directement le dernier slot de la session en cours par exemple, ou pourquoi pas même le 1er slot de la session suivante, etc.

Or, toujours si j’ai bien suivi, en changeant de session on change aussi les autorités en prenant celles définies par les règles de la blockchain. Mais donc si les règles font disparaître des autorités qui seraient jugées “inactives”, alors il faut se méfier de la définition de ce critère étant donné le point 1 qui permettrait de faire sortir des forgerons de force.

Non, car les autres validateurs attendront que leur horloge interne atteigne réellement ce slot (au rythme d’un slot toutes les 6 secondes), avant de vérifier ce bloc, et si entre-temps un bloc avec un slot inférieur arrive, alors le bloc sera considéré invalide.

Si c’est le cas, alors c’est bon. Malheureusement je n’ai jamais trouvé cette information.