Un grand merci à Micah Zoltu, Toni Wahrstätter, Justin Traglia et pcaversaccio pour la discussion
La critique la plus courante concernant l'augmentation de la limite de gaz L1, en dehors des préoccupations concernant la sécurité du réseau, est qu'elle rend plus difficile l'exécution d'un nœud complet.
Surtout dans le contexte d'une feuille de route axée sur dégroupagele nœud complet, pour aborder cela il est nécessaire de comprendre à quoi servent les nœuds complets.
Historiquement, on pensait que les nœuds complets servaient à valider la chaîne; voir icipour ma propre exposition de ce qui pourrait se passer si les utilisateurs réguliers ne peuvent pas vérifier. Si c'est le seul problème, alors la mise à l'échelle L1 est débloquée par ZK-EVM : la seule limite est de maintenir les coûts de construction de bloc et de preuve assez bas pour que les deux puissent rester1-sur-nrésistant à la censure et un marché concurrentiel.
Cependant, en réalité, ce n'est pas vraiment la seule préoccupation. L'autre préoccupation majeure est : il est précieux d'avoir un nœud complet afin de disposer d'un serveur RPC local que vous pouvez utiliser pour lire la chaîne de manière décentralisée, résistante à la censure et respectueuse de la vie privée. Ce document discutera des ajustements à apporter à la feuille de route actuelle de mise à l'échelle L1 pour que cela se produise.
Le feuille de route de confidentialité que j'ai publiée le mois dernierse concentre sur les TEEs +ORAMcomme un correctif à court terme plus PIRcomme solution à long terme. Cela, associé à la vérification de Helios et ZK-EVM, permettrait à tout utilisateur de se connecter à des RPC externes et d'être pleinement confiant que (i) la chaîne qu'ils obtiennent est correcte et (ii) leur confidentialité des données est protégée. Il vaut donc la peine de se poser la question : pourquoi ne pas s'arrêter ici ? Ces types de solutions cryptographiques avancées ne rendent-elles pas les nœuds auto-hébergés obsolètes ?
Ici, je peux donner quelques réponses :
Pour ces raisons, il est utile de continuer à garantir une plus grande facilité d'exécution d'un nœud personnel.
Une fois que nous activons la vérification sans état, il devient possible d'exécuter un nœud capable de RPC (c'est-à-dire un nœud qui stocke l'état) sans stocker les branches de Merkle d'état. Cela réduit encore les besoins de stockage d'environ 2 fois.
Il s'agit de la nouvelle idée, et sera clé pour permettre le fonctionnement du nœud personnel même dans un contexte où la limite de gaz L1 augmente de 10 à 100 fois.
Nous ajoutons un type de nœud qui vérifie les états des blocs de manière sans état, et vérifie l'ensemble de la chaîne (soit par validation sans état, soit par ZK-EVM) et maintient à jour une partie de l'état. Le nœud est capable de répondre aux demandes RPC tant que les données requises se trouvent dans ce sous-ensemble de l'état ; les autres demandes échoueront (ou devront recourir à une solution cryptographique hébergée à l'extérieur ; que ce soit le choix de l'utilisateur ou non).
partial_statelessness.drawio776×341 19.9 KB
La partie exacte de l'état à détenir dépendra d'une configuration choisie par l'utilisateur. Quelques exemples pourraient être:
La configuration pourrait être gérée par un contrat onchain : un utilisateur exécuterait son nœud avec —save_state_by_config 0x12345…67890, et l'adresse spécifierait dans une certaine langue une liste d'adresses, d'emplacements de stockage ou de régions filtrées de l'état que le nœud enregistrerait et maintiendrait à jour. Notez qu'il n'est pas nécessaire que l'utilisateur enregistre les branches de Merkle ; ils ont seulement besoin d'enregistrer les valeurs brutes.
Ce type de nœud offrirait les avantages d'un accès local direct à l'état dont un utilisateur doit se soucier, ainsi qu'une confidentialité maximale de l'accès à cet état.
Un grand merci à Micah Zoltu, Toni Wahrstätter, Justin Traglia et pcaversaccio pour la discussion
La critique la plus courante concernant l'augmentation de la limite de gaz L1, en dehors des préoccupations concernant la sécurité du réseau, est qu'elle rend plus difficile l'exécution d'un nœud complet.
Surtout dans le contexte d'une feuille de route axée sur dégroupagele nœud complet, pour aborder cela il est nécessaire de comprendre à quoi servent les nœuds complets.
Historiquement, on pensait que les nœuds complets servaient à valider la chaîne; voir icipour ma propre exposition de ce qui pourrait se passer si les utilisateurs réguliers ne peuvent pas vérifier. Si c'est le seul problème, alors la mise à l'échelle L1 est débloquée par ZK-EVM : la seule limite est de maintenir les coûts de construction de bloc et de preuve assez bas pour que les deux puissent rester1-sur-nrésistant à la censure et un marché concurrentiel.
Cependant, en réalité, ce n'est pas vraiment la seule préoccupation. L'autre préoccupation majeure est : il est précieux d'avoir un nœud complet afin de disposer d'un serveur RPC local que vous pouvez utiliser pour lire la chaîne de manière décentralisée, résistante à la censure et respectueuse de la vie privée. Ce document discutera des ajustements à apporter à la feuille de route actuelle de mise à l'échelle L1 pour que cela se produise.
Le feuille de route de confidentialité que j'ai publiée le mois dernierse concentre sur les TEEs +ORAMcomme un correctif à court terme plus PIRcomme solution à long terme. Cela, associé à la vérification de Helios et ZK-EVM, permettrait à tout utilisateur de se connecter à des RPC externes et d'être pleinement confiant que (i) la chaîne qu'ils obtiennent est correcte et (ii) leur confidentialité des données est protégée. Il vaut donc la peine de se poser la question : pourquoi ne pas s'arrêter ici ? Ces types de solutions cryptographiques avancées ne rendent-elles pas les nœuds auto-hébergés obsolètes ?
Ici, je peux donner quelques réponses :
Pour ces raisons, il est utile de continuer à garantir une plus grande facilité d'exécution d'un nœud personnel.
Une fois que nous activons la vérification sans état, il devient possible d'exécuter un nœud capable de RPC (c'est-à-dire un nœud qui stocke l'état) sans stocker les branches de Merkle d'état. Cela réduit encore les besoins de stockage d'environ 2 fois.
Il s'agit de la nouvelle idée, et sera clé pour permettre le fonctionnement du nœud personnel même dans un contexte où la limite de gaz L1 augmente de 10 à 100 fois.
Nous ajoutons un type de nœud qui vérifie les états des blocs de manière sans état, et vérifie l'ensemble de la chaîne (soit par validation sans état, soit par ZK-EVM) et maintient à jour une partie de l'état. Le nœud est capable de répondre aux demandes RPC tant que les données requises se trouvent dans ce sous-ensemble de l'état ; les autres demandes échoueront (ou devront recourir à une solution cryptographique hébergée à l'extérieur ; que ce soit le choix de l'utilisateur ou non).
partial_statelessness.drawio776×341 19.9 KB
La partie exacte de l'état à détenir dépendra d'une configuration choisie par l'utilisateur. Quelques exemples pourraient être:
La configuration pourrait être gérée par un contrat onchain : un utilisateur exécuterait son nœud avec —save_state_by_config 0x12345…67890, et l'adresse spécifierait dans une certaine langue une liste d'adresses, d'emplacements de stockage ou de régions filtrées de l'état que le nœud enregistrerait et maintiendrait à jour. Notez qu'il n'est pas nécessaire que l'utilisateur enregistre les branches de Merkle ; ils ont seulement besoin d'enregistrer les valeurs brutes.
Ce type de nœud offrirait les avantages d'un accès local direct à l'état dont un utilisateur doit se soucier, ainsi qu'une confidentialité maximale de l'accès à cet état.