Lecture de Walrus simplifiée : Collectez 2f+1 fragments & Vérifiez
Lire un blob à partir de Walrus est d'une simplicité algorithmique. Un client n'a besoin que de deux actions : rassembler suffisamment de fragments et vérifier qu'ils se reconstruisent correctement. Le protocole rend les deux opérations transparentes et efficaces.
La lecture commence par une cible. Le client connaît l'ID du blob et le PoA en chaîne qui l'a engagé. À partir de ces informations, il déduit quels validateurs détiennent quels fragments en utilisant le même calcul de grille utilisé lors de l'écriture. Le client contacte les validateurs et demande des fragments.
Le client recueille des réponses des validateurs. Certains fragments arrivent rapidement (fragments principaux des validateurs réactifs). D'autres arrivent lentement ou pas du tout (secondaires ou nœuds non réactifs). Le protocole nécessite un seuil : 2f+1 fragments honnêtes sont nécessaires pour garantir la correction même si f fragments sont corrompus ou byzantins.
Une fois que le client a suffisamment de fragments, la reconstruction est simple. En utilisant la structure de grille 2D, il combine les fragments et vérifie le résultat par rapport au hachage d'engagement en chaîne. Si le blob reconstruit correspond au hachage engagé, la vérification réussit. Sinon, le client sait que la reconstruction a échoué et peut réessayer ou signaler une erreur.
La beauté réside dans la simplicité. Pas d'élection de quorum complexe. Pas d'élection de leader. Pas de protocole de consensus. Juste : collecter des fragments, vérifier contre l'engagement, c'est fait. Si la vérification échoue, collectez plus de fragments et réessayez. Le système est naturellement résilient aux validateurs lents ou mensongers.
Cette simplicité rend la lecture robuste. Les clients peuvent l'implémenter localement sans coordination avec d'autres lecteurs. Les validateurs byzantins ne peuvent pas provoquer d'incohérence car chaque lecteur vérifie indépendamment contre l'engagement en chaîne.


