Étant donné un actif X, nous désignons par [X] l'actif re-staké, c'est-à-dire un actif qui "boxe" X de sorte qu'une partie ou la totalité de X puisse être capturée par une partie donnée une condition arbitraire.
L'exemple de base introduit par EigenLayer est celui d'un validateur solo réinvestissant son ETH actuel mis en jeu. Pour ce faire, le validateur solo met à jour son adresse de retrait avec l'adresse d'un pod EigenLayerLes EigenPods sont des contrats intelligents qui suivent les services auxquels le staker solo s'est inscrit pour sécuriser avec sa mise. L'EigenPod devient finalement le propriétaire de l'actif soETH, tout en créditant le staker solo d'une représentation re-mise en jeu de son ETH misé.
La possession de l'actif soETH dans notre cadre signifie le "droit de premier refus" sur l'ETH retiré du protocole Ethereum, c'est-à-dire qu'il détient une revendication plus importante que tout autre participant de la chaîne. Lorsque le staker solo décide de retirer son ETH du protocole Ethereum, l'ETH retiré est filtré à travers le contrat EigenPod, vérifiant si le staker solo est autorisé à racheter la totalité du montant de soETH ou non (nous verrons plus tard quand cela pourrait ne pas être le cas). Avec nos bilans :
Nous rendons chaque étape explicite dans ce qui suit :
Nous pouvons déjà faire quelques observations intéressantes à partir des bilans ci-dessus. La première est que le protocole Ethereum n'a aucune conception de [soETH], puisque cela n'apparaît pas sur son propre bilan. Ce problème a été discuté dans “Démantèlement du PBS : Vers des engagements des proposants renforcés par protocole (PEPC)Un validateur sanctionné par EigenLayer conserve néanmoins un solde complet de mise en jeu dans le bilan du protocole Ethereum, ce qui peut entraîner un risque moral et des déséquilibres de récompense (un validateur réellement à moitié mis en jeu continue de percevoir l'intégralité des récompenses du protocole Ethereum). Nous détaillons le scénario de sanction dans les bilans suivants, en donnant des chiffres arbitraires pour illustrer le problème :
Ce problème est résolu dès que EigenLayer rapporte fidèlement le slashing d'EigenLayer d'un validateur au protocole Ethereum, rééquilibrant les feuilles. C'est possible avec EIP-7002: Exécution des sorties déclenchables de la couche d'exécution, même à un niveau grossier, puisque le déclencheur binaire se contente de sortir du validateur, mais le middleware EigenLayer ou l'EigenPod est toujours nécessaire pour déclencher le signal vers le protocole PoS d'Ethereum. Cette action est dans l'intérêt d'EigenLayer car une comptabilité appropriée profite aux services sécurisés via EigenLayer et augmente finalement la confiance des opérateurs et des re-stakers dans l'exécution fidèle de la plateforme.
Un déclencheur plus fin pourrait forcer un retrait partiel de l'équilibre du validateur du consensus Ethereum, sans sortir complètement le validateur. Cela est souhaitable pour les services EigenLayer qui souhaitent pénaliser les validateurs partiellement, sans déclencher de sortie. Notez que ni l'EIP-7002 ni les retraits partiels déclenchés par la couche d'exécution ne sont disponibles sur le réseau principal d'Ethereum aujourd'hui. Notez aussi que @mikeneuderMaxEB (suppression du plafond de 32 ETH sur le principal d'un seul validateur en jeu) se combinerait parfaitement avec des retraits partiels, éliminant ainsi un incitatif supplémentaire pour les validateurs de rester désagrégés (en faisant fonctionner de nombreux validateurs de 32 ETH au lieu d'un seul validateur de 2048 ETH, par exemple).
En l'absence de cette fonctionnalité de retrait partiel, il y a une incitation supplémentaire à maintenir la comptabilité d'EigenLayer séparée de la comptabilité du protocole Ethereum, ce qui, comme nous l'avons noté ci-dessus, peut introduire des désalignements. Dans ce qui suit, nous représentons un validateur sanctionné pour 8 ETH par EigenLayer, ce qui ne le retire pas de ses fonctions de consensus (le solde d'éjection est de 16 ETH) :
On peut se demander où vont les 8 [soETH] dans l'exemple précédent. Cette décision est laissée à la discrétion des Services de Validation Active (SVA) alimentés par EigenLayer. Un SVA est un service exigeant une certaine mise en jeu en guise de garantie. La présence d'une mise en jeu permet au service de s'engager de manière crédible envers une certaine performance, car la mise en jeu peut être réduite si le service n'est pas correctement exécuté.
Le validateur de re-staking s'inscrit dans les AVSs via leur EigenPod. Lorsqu'ils le font, l'EigenPod crée de nouvelles réclamations qui sont offertes aux AVSs, représentant le collatéral actuellement détenu sous l'EigenPod. Nous devons maintenant faire la distinction entre deux types de réclamations :
Une fois que le validateur agit contrairement aux objectifs de l'AVS (par exemple, déclencher une condition de réduction de l'AVS), l'AVS peut décider, par exemple, de brûler la réclamation du validateur pour ses ETH en jeu ou de conserver la mise en tant que revenu pour l'AVS. Nous illustrons cette deuxième option ci-dessous, en supposant que le protocole Ethereum crédite simplement 8 ETH à l'EigenPod comme retrait partiel suite au rapport de réduction de l'EigenLayer, après quoi EigenLayer le transfère à l'AVS:
La fonctionnalité (et le risque) offerte par EigenLayer est la capacité pour un re-staker de continuer à entrer de nouveaux engagements qu'ils promettent d'honorer. En d'autres termes, après que la mise a été remise en jeu, la mise remise en jeu peut être remise en jeu à nouveau, et encore, et encore... Plus concrètement, le re-staker prend de nouveaux engagements en s'inscrivant à plus de services via leur EigenPod.
Pour parvenir à une pleine généralité, et en prévision des sections suivantes où des actifs autres que le soETH sont restakés, nous désignons par $X$ l'actif qui est restaké par le restakeur. Voyons comment le restaking multiple fonctionne :
Nous désignons par [X]p l'actif X restaké p fois. Pour l'instant, il s'agit d'une définition simple, mais nous allons suggérer certaines des propriétés de ces actifs après avoir détaillé les étapes de ces bilans. L'EigenPod est capable d'imprimer ces passifs à volonté, forgeant de nouveaux actifs chaque fois que le restakeur s'engage dans de nouveaux AVSs.
Sur la base des bilans ci-dessus, nous abordons maintenant quelques questions. Nous observons que la chaîne Y reçoit [X]¹, tandis que la chaîne Z reçoit [X]². Ces actifs sont-ils du même type, et pouvons-nous simplement dire qu'ils reçoivent tous les deux des actifs de type [X]?
La réponse serait non s'il y avait une hiérarchie des revendications AVS. Imaginez un scénario où le re-staker commet des infractions pouvant être sanctionnées sur les deux chaînes en même temps, et où les deux chaînes souhaitent réduire l'intégralité de la garantie. Nous pouvons alors envisager deux cas :
Dans la section précédente, nous avons présenté les AVS, qui sont des services auxquels le validateur de restaking s'engage à fournir. L'engagement est sécurisé via EigenLayer, qui prend possession de l'enjeu du re-staker valideur et règle les réclamations faites par les AVS.
Mais qu'est-ce qu'un AVS exactement? Tout comme nous avons séparé ci-dessus les protocoles LST et les opérateurs LST, il est logique ici de discuter de ces deux rôles fonctionnels séparément et de leur attribuer des actifs et des revendications différents.
En bref, l'AVS exige une garantie pour offrir un service, par exemple, un AVS affirme de manière crédible qu'une attaque contre l'AVS entraînera la perte d'une fraction de la garantie actuellement détenue par l'AVS. L'AVS est donc considéré ici comme un protocole engageant des opérateurs pour un service. Nous distinguons ensuite deux façons dont les re-stakers peuvent interagir avec l'AVS :
Dans les sections ci-dessus, nous avons identifié le re-staker de validation à la fois en tant que fournisseur de capital (leur propre mise est re-stakée) et en tant qu'opérateur AVS (on attend d'eux qu'ils fournissent un certain service). Cependant, nous pouvons envisager une construction différente, où le re-staker de validation n'opère pas eux-mêmes l'AVS, déléguant plutôt cette fonction à un opérateur. Cela pourrait permettre aux stakers solos de rivaliser en rendement avec les Fournisseurs de Services de Staking Intégrés (FSSI)/opérateurs. L'exemple suivant présente une situation où un seul opérateur AVS valide sur certaines chaînes Y et Z, au nom d'un re-staker. Nous faisons l'hypothèse que toutes les revendications AVS sont du même type [X] (pas de hiérarchie de revendications).
Dans ce paradigme, nous retrouvons des constructions familières. Aucun actif n'est reçu par le re-staker, laissant déjà entrevoir la possibilité de liquider de telles positions. Nous discuterons de ces constructions avancées dans le prochain article, mais avant de le faire, mentionnons la recherche en cours sur le "PBS for AVS" comme une approche pour réduire la centralisation de l'opérateur.
Sous le Cadre de Délégation Optimiste (CDO)proposé par Drew Van der Werff (voir aussiLa récente conférence sur la cryptéconomie de 0xKydo à Columbia) Un re-staker peut externaliser l'exploitation des AVS auxquels il s'inscrit sur un marché ouvert de "co-processeurs". Les co-processeurs peuvent être identifiés par le rôle de "constructeur" du PBS, une entité spécialisée capable d'exécuter des opérations potentiellement intensives, inaccessibles aux entités non sophistiquées ou limitées en calcul, telles que les stakers individuels. Les co-processeurs soumettent des offres aux re-stakers, dans un mécanisme d'enchères de passation de marchés, permettant au re-staker de déterminer l'opérateur le plus rentable. Pour garantir davantage les performances, les co-processeurs sont des participants sous caution, s'exposant à la perte de leur caution s'ils soumettent une pièce de travail prouvablement invalide au cours de leurs opérations.
Étant donné un actif X, nous désignons par [X] l'actif re-staké, c'est-à-dire un actif qui "boxe" X de sorte qu'une partie ou la totalité de X puisse être capturée par une partie donnée une condition arbitraire.
L'exemple de base introduit par EigenLayer est celui d'un validateur solo réinvestissant son ETH actuel mis en jeu. Pour ce faire, le validateur solo met à jour son adresse de retrait avec l'adresse d'un pod EigenLayerLes EigenPods sont des contrats intelligents qui suivent les services auxquels le staker solo s'est inscrit pour sécuriser avec sa mise. L'EigenPod devient finalement le propriétaire de l'actif soETH, tout en créditant le staker solo d'une représentation re-mise en jeu de son ETH misé.
La possession de l'actif soETH dans notre cadre signifie le "droit de premier refus" sur l'ETH retiré du protocole Ethereum, c'est-à-dire qu'il détient une revendication plus importante que tout autre participant de la chaîne. Lorsque le staker solo décide de retirer son ETH du protocole Ethereum, l'ETH retiré est filtré à travers le contrat EigenPod, vérifiant si le staker solo est autorisé à racheter la totalité du montant de soETH ou non (nous verrons plus tard quand cela pourrait ne pas être le cas). Avec nos bilans :
Nous rendons chaque étape explicite dans ce qui suit :
Nous pouvons déjà faire quelques observations intéressantes à partir des bilans ci-dessus. La première est que le protocole Ethereum n'a aucune conception de [soETH], puisque cela n'apparaît pas sur son propre bilan. Ce problème a été discuté dans “Démantèlement du PBS : Vers des engagements des proposants renforcés par protocole (PEPC)Un validateur sanctionné par EigenLayer conserve néanmoins un solde complet de mise en jeu dans le bilan du protocole Ethereum, ce qui peut entraîner un risque moral et des déséquilibres de récompense (un validateur réellement à moitié mis en jeu continue de percevoir l'intégralité des récompenses du protocole Ethereum). Nous détaillons le scénario de sanction dans les bilans suivants, en donnant des chiffres arbitraires pour illustrer le problème :
Ce problème est résolu dès que EigenLayer rapporte fidèlement le slashing d'EigenLayer d'un validateur au protocole Ethereum, rééquilibrant les feuilles. C'est possible avec EIP-7002: Exécution des sorties déclenchables de la couche d'exécution, même à un niveau grossier, puisque le déclencheur binaire se contente de sortir du validateur, mais le middleware EigenLayer ou l'EigenPod est toujours nécessaire pour déclencher le signal vers le protocole PoS d'Ethereum. Cette action est dans l'intérêt d'EigenLayer car une comptabilité appropriée profite aux services sécurisés via EigenLayer et augmente finalement la confiance des opérateurs et des re-stakers dans l'exécution fidèle de la plateforme.
Un déclencheur plus fin pourrait forcer un retrait partiel de l'équilibre du validateur du consensus Ethereum, sans sortir complètement le validateur. Cela est souhaitable pour les services EigenLayer qui souhaitent pénaliser les validateurs partiellement, sans déclencher de sortie. Notez que ni l'EIP-7002 ni les retraits partiels déclenchés par la couche d'exécution ne sont disponibles sur le réseau principal d'Ethereum aujourd'hui. Notez aussi que @mikeneuderMaxEB (suppression du plafond de 32 ETH sur le principal d'un seul validateur en jeu) se combinerait parfaitement avec des retraits partiels, éliminant ainsi un incitatif supplémentaire pour les validateurs de rester désagrégés (en faisant fonctionner de nombreux validateurs de 32 ETH au lieu d'un seul validateur de 2048 ETH, par exemple).
En l'absence de cette fonctionnalité de retrait partiel, il y a une incitation supplémentaire à maintenir la comptabilité d'EigenLayer séparée de la comptabilité du protocole Ethereum, ce qui, comme nous l'avons noté ci-dessus, peut introduire des désalignements. Dans ce qui suit, nous représentons un validateur sanctionné pour 8 ETH par EigenLayer, ce qui ne le retire pas de ses fonctions de consensus (le solde d'éjection est de 16 ETH) :
On peut se demander où vont les 8 [soETH] dans l'exemple précédent. Cette décision est laissée à la discrétion des Services de Validation Active (SVA) alimentés par EigenLayer. Un SVA est un service exigeant une certaine mise en jeu en guise de garantie. La présence d'une mise en jeu permet au service de s'engager de manière crédible envers une certaine performance, car la mise en jeu peut être réduite si le service n'est pas correctement exécuté.
Le validateur de re-staking s'inscrit dans les AVSs via leur EigenPod. Lorsqu'ils le font, l'EigenPod crée de nouvelles réclamations qui sont offertes aux AVSs, représentant le collatéral actuellement détenu sous l'EigenPod. Nous devons maintenant faire la distinction entre deux types de réclamations :
Une fois que le validateur agit contrairement aux objectifs de l'AVS (par exemple, déclencher une condition de réduction de l'AVS), l'AVS peut décider, par exemple, de brûler la réclamation du validateur pour ses ETH en jeu ou de conserver la mise en tant que revenu pour l'AVS. Nous illustrons cette deuxième option ci-dessous, en supposant que le protocole Ethereum crédite simplement 8 ETH à l'EigenPod comme retrait partiel suite au rapport de réduction de l'EigenLayer, après quoi EigenLayer le transfère à l'AVS:
La fonctionnalité (et le risque) offerte par EigenLayer est la capacité pour un re-staker de continuer à entrer de nouveaux engagements qu'ils promettent d'honorer. En d'autres termes, après que la mise a été remise en jeu, la mise remise en jeu peut être remise en jeu à nouveau, et encore, et encore... Plus concrètement, le re-staker prend de nouveaux engagements en s'inscrivant à plus de services via leur EigenPod.
Pour parvenir à une pleine généralité, et en prévision des sections suivantes où des actifs autres que le soETH sont restakés, nous désignons par $X$ l'actif qui est restaké par le restakeur. Voyons comment le restaking multiple fonctionne :
Nous désignons par [X]p l'actif X restaké p fois. Pour l'instant, il s'agit d'une définition simple, mais nous allons suggérer certaines des propriétés de ces actifs après avoir détaillé les étapes de ces bilans. L'EigenPod est capable d'imprimer ces passifs à volonté, forgeant de nouveaux actifs chaque fois que le restakeur s'engage dans de nouveaux AVSs.
Sur la base des bilans ci-dessus, nous abordons maintenant quelques questions. Nous observons que la chaîne Y reçoit [X]¹, tandis que la chaîne Z reçoit [X]². Ces actifs sont-ils du même type, et pouvons-nous simplement dire qu'ils reçoivent tous les deux des actifs de type [X]?
La réponse serait non s'il y avait une hiérarchie des revendications AVS. Imaginez un scénario où le re-staker commet des infractions pouvant être sanctionnées sur les deux chaînes en même temps, et où les deux chaînes souhaitent réduire l'intégralité de la garantie. Nous pouvons alors envisager deux cas :
Dans la section précédente, nous avons présenté les AVS, qui sont des services auxquels le validateur de restaking s'engage à fournir. L'engagement est sécurisé via EigenLayer, qui prend possession de l'enjeu du re-staker valideur et règle les réclamations faites par les AVS.
Mais qu'est-ce qu'un AVS exactement? Tout comme nous avons séparé ci-dessus les protocoles LST et les opérateurs LST, il est logique ici de discuter de ces deux rôles fonctionnels séparément et de leur attribuer des actifs et des revendications différents.
En bref, l'AVS exige une garantie pour offrir un service, par exemple, un AVS affirme de manière crédible qu'une attaque contre l'AVS entraînera la perte d'une fraction de la garantie actuellement détenue par l'AVS. L'AVS est donc considéré ici comme un protocole engageant des opérateurs pour un service. Nous distinguons ensuite deux façons dont les re-stakers peuvent interagir avec l'AVS :
Dans les sections ci-dessus, nous avons identifié le re-staker de validation à la fois en tant que fournisseur de capital (leur propre mise est re-stakée) et en tant qu'opérateur AVS (on attend d'eux qu'ils fournissent un certain service). Cependant, nous pouvons envisager une construction différente, où le re-staker de validation n'opère pas eux-mêmes l'AVS, déléguant plutôt cette fonction à un opérateur. Cela pourrait permettre aux stakers solos de rivaliser en rendement avec les Fournisseurs de Services de Staking Intégrés (FSSI)/opérateurs. L'exemple suivant présente une situation où un seul opérateur AVS valide sur certaines chaînes Y et Z, au nom d'un re-staker. Nous faisons l'hypothèse que toutes les revendications AVS sont du même type [X] (pas de hiérarchie de revendications).
Dans ce paradigme, nous retrouvons des constructions familières. Aucun actif n'est reçu par le re-staker, laissant déjà entrevoir la possibilité de liquider de telles positions. Nous discuterons de ces constructions avancées dans le prochain article, mais avant de le faire, mentionnons la recherche en cours sur le "PBS for AVS" comme une approche pour réduire la centralisation de l'opérateur.
Sous le Cadre de Délégation Optimiste (CDO)proposé par Drew Van der Werff (voir aussiLa récente conférence sur la cryptéconomie de 0xKydo à Columbia) Un re-staker peut externaliser l'exploitation des AVS auxquels il s'inscrit sur un marché ouvert de "co-processeurs". Les co-processeurs peuvent être identifiés par le rôle de "constructeur" du PBS, une entité spécialisée capable d'exécuter des opérations potentiellement intensives, inaccessibles aux entités non sophistiquées ou limitées en calcul, telles que les stakers individuels. Les co-processeurs soumettent des offres aux re-stakers, dans un mécanisme d'enchères de passation de marchés, permettant au re-staker de déterminer l'opérateur le plus rentable. Pour garantir davantage les performances, les co-processeurs sont des participants sous caution, s'exposant à la perte de leur caution s'ils soumettent une pièce de travail prouvablement invalide au cours de leurs opérations.