#dusk $DUSK
Les nombres 2/3 et 1/2 ont continué à apparaître dans des parties distinctes de la documentation du consensus, et je les ai traités comme s’il s’agissait du même seuil, avec une notation différente. Or ce n’est pas le cas : ce sont deux règles de quorum différentes pour deux résultats différents.
Seuil d’approbation du bloc : ≥2/3 des crédits du comité doivent voter Valid (Valide). C’est une supermajorité. Pour un comité de 64 crédits, cela signifie qu’il faut au moins 43 crédits qui s’accordent pour dire que le bloc est correct avant qu’il ne soit accepté.
Seuil de rejet du bloc : >1/2 des crédits du comité — strictement plus de la moitié, plus un — doivent voter Invalid (Invalide), NoCandidate, ou NoQuorum. Il s’agit d’une simple majorité. Pour 64 crédits, cela correspond à au moins 33.
Même comité. Seuil différent. Obtenir l’approbation est plus difficile que déclencher un échec.
Alors pourquoi le seuil de rejet ne requiert-il pas aussi 2/3.
L’asymétrie est intentionnelle. La justification de conception est que l’approbation d’un bloc requiert une forte confiance : vous ne voulez pas qu’un bloc soit accepté à moins qu’une majorité solide s’accorde pour dire qu’il est correct. En revanche, fermer une itération échouée ne comporte pas le même risque. Si le générateur de blocs était hors ligne, ou a envoyé quelque chose d’invalide, vous voulez que le réseau passe rapidement à autre chose plutôt que d’attendre un seuil plus élevé pour confirmer l’échec. Un seuil de rejet plus bas fait échouer le réseau plus vite et l’amène à réessayer plus tôt.
En fait, je trouve l’asymétrie des seuils plus intéressante du point de vue de la sécurité que de la vitesse. Le seuil d’approbation plus difficile rend nettement plus coûteux pour un attaquant de faire accepter un bloc malveillant que pour des validateurs honnêtes de rejeter un bloc mauvais.
Ce que je n’ai pas vu expliquer, c’est comment la pondération du comité interagit avec ces seuils — savoir si un seul provisioner détenant 20 des 64 crédits peut bloquer l’approbation de manière significative ou accélérer le rejet à lui seul, ou si la répartition des crédits au sein du comité rend pratiquement impossible une telle concentration. @Dusk
$DUSK #dusk
Les nombres 2/3 et 1/2 ont continué à apparaître dans des parties distinctes de la documentation du consensus, et je les ai traités comme s’il s’agissait du même seuil, avec une notation différente. Or ce n’est pas le cas : ce sont deux règles de quorum différentes pour deux résultats différents.
Seuil d’approbation du bloc : ≥2/3 des crédits du comité doivent voter Valid (Valide). C’est une supermajorité. Pour un comité de 64 crédits, cela signifie qu’il faut au moins 43 crédits qui s’accordent pour dire que le bloc est correct avant qu’il ne soit accepté.
Seuil de rejet du bloc : >1/2 des crédits du comité — strictement plus de la moitié, plus un — doivent voter Invalid (Invalide), NoCandidate, ou NoQuorum. Il s’agit d’une simple majorité. Pour 64 crédits, cela correspond à au moins 33.
Même comité. Seuil différent. Obtenir l’approbation est plus difficile que déclencher un échec.
Alors pourquoi le seuil de rejet ne requiert-il pas aussi 2/3.
L’asymétrie est intentionnelle. La justification de conception est que l’approbation d’un bloc requiert une forte confiance : vous ne voulez pas qu’un bloc soit accepté à moins qu’une majorité solide s’accorde pour dire qu’il est correct. En revanche, fermer une itération échouée ne comporte pas le même risque. Si le générateur de blocs était hors ligne, ou a envoyé quelque chose d’invalide, vous voulez que le réseau passe rapidement à autre chose plutôt que d’attendre un seuil plus élevé pour confirmer l’échec. Un seuil de rejet plus bas fait échouer le réseau plus vite et l’amène à réessayer plus tôt.
En fait, je trouve l’asymétrie des seuils plus intéressante du point de vue de la sécurité que de la vitesse. Le seuil d’approbation plus difficile rend nettement plus coûteux pour un attaquant de faire accepter un bloc malveillant que pour des validateurs honnêtes de rejeter un bloc mauvais.
Ce que je n’ai pas vu expliquer, c’est comment la pondération du comité interagit avec ces seuils — savoir si un seul provisioner détenant 20 des 64 crédits peut bloquer l’approbation de manière significative ou accélérer le rejet à lui seul, ou si la répartition des crédits au sein du comité rend pratiquement impossible une telle concentration. @Dusk
$DUSK #dusk

