Le PPOS est un algorithme de consesus qui reprend les bases du proof of stake avec quelques améliorations.
Dans le POS classique, certains nœuds sont nominés en tant que "Proposer" et se chargent de proposer les blocs, une fois le bloc proposé l'ensemble des nœuds jouent le rôle de "Validator", mais le critère de nomination pour un "Proposer" dépend du "stake" possédé par un nœud.
Ceci limite la décentralisation du serveur, vu que les mêmes nœuds seront nominés et augmenteront leurs "stake" via les "incentives" qu'ils reçoivent en proposant les blocs, pour éviter ce scénario, des pénalités sont appliquées aux nœuds qui ne répondent pas à leurs responsabilités (le slashing) ce qui devrait diminuer leurs "stakes" et permettre donc à d'autres nœuds de participer en tant que "Proposer"
PPOS améliore ceci en faisant appel à une VRF (verifiable random function) qui va désigner un certain nombre de nœuds comme "Proposer", ces "Proposer" s'occupent de hasher les données d'une transaction sous forme de "bloc" et de présenter celui-ci au reste des nœuds afin qu'ils le valident. à cette fin, on fait de nouveau appel à la VRF pour créer un "comité" de "Validator". Ceci rend le système plus scalable car on ne fait pas appel à l'ensemble des nœuds cependant il faut tout de même que ce comité soit composé de 75% des nœuds, si un consensus n'est pas atteint après cette première manche de validation, une seconde manche commence avec un nouveau comité toujours choisi via la VRF, si la majorité des nœuds sont saints alors il n'y aura qu'un bloc final au bout de 2 ou 3 manches de validation, cette méthode fait que le bloc peut tout de suite être commité dans la blockchain sans avoir à créer de fork contrairement au POS standard
Si au bout d'un certain temps un bloc final n'a pas été validé, alors le serveur passe en mode "Recovery", dans ce cas les nœuds vont voter pour 2 différentes solutions; soit ils vont continuer à traiter les blocs actuels, soit demander au serveur de proposer un nouveau bloc complètement, si là encore un consensus n'est pas atteint, alors les nœuds resteront inactifs jusqu'à ce que les nœuds qui causent ce blocage soient éliminés via un vote gouvernance.
Les avantages immédiatement apparents de ces améliorations sont la scalabilité du système et la finalité du bloc validé à la fin, comme le POS classique le PPOS est toujours bien résistant aux attaques Sybil avec l'utilisation du "stake", de plus un détail intéressant est qu'à chaque proposition de bloc les noeuds participants ("validator" & "proposer") créer une nouvelle "staking keys" qui sera utilisée pour signer les blocs puis la supprime dans le mode de fonctionnement par défaut. Ceci fait que le PPOS est plus résistant aux attaques où un acteur malicieux reprend les anciennes clés de stakings pour recréer une chaîne de blocs, si celle-ci devient plus longue elle risque de devenir la chaine "principale" est de causer un fork et déstabilier le réseau.
Malgré ces améliorations le PPOS reste susceptible au "Nothing at stake" et Alogrand n'offre plus "d'incentive" aux "Validators", ceci fait que seulement 15% de tous les tokens d'Alogrand sont utilisés pour le "stake" ainsi une personne malveillante n'a besoin que de 13% des tokens pour contrôler le serveur avec une majorité , et enfin malgré l'effort de suppression des clés de la part de l'algorithme de base, il n'est pas impossible qu'un noeuds désactive cette fonctionalité, ni même que ces clés ne soient revendu au marché noire.
Source:
-https://algorand.co/technology/pure-proof-of-stake
-