Définition
KZG commitment : définition
Un engagement KZG est une technique cryptographique qui résume un grand ensemble de données en une empreinte très compacte, puis permet de prouver la valeur de n'importe quelle partie sans tout révéler ; Ethereum l'utilise pour les blobs.
Thème : Layer 2 et scalabilité
Le nom vient de ses auteurs, Kate, Zaverucha et Goldberg. Le principe : les données sont représentées sous forme de polynôme, et l'on calcule un engagement, une valeur courte qui le fixe définitivement. On peut ensuite produire une petite preuve démontrant que ce polynôme prend telle valeur en tel point, et cette preuve se vérifie rapidement. L'engagement fonctionne comme une empreinte, avec une propriété supplémentaire : il permet des vérifications partielles, ce qu'un simple hash ne permet pas sans fournir l'intégralité des données.
Avec l'EIP-4844 (proto-danksharding), les rollups publient leurs données dans des blobs, des paquets temporaires moins coûteux que le calldata. Chaque blob est accompagné de son engagement KZG, et les transactions y font référence via un hash de cet engagement. Le schéma repose sur une configuration initiale, appelée trusted setup : Ethereum a organisé une cérémonie publique à laquelle un très grand nombre de participants ont contribué, et il suffit qu'un seul ait détruit son secret pour que le système soit sûr. Ces engagements préparent aussi l'échantillonnage de disponibilité des données.
Un exemple concret
Imaginons un rollup qui publie un blob contenant des milliers de transactions compressées. Plutôt que d'intégrer ce blob pour toujours à l'historique d'Ethereum, le réseau conserve durablement son engagement KZG, très court. Si quelqu'un doit prouver plus tard qu'une donnée précise figurait dans le blob, il fournit cette donnée et une petite preuve, que n'importe qui peut vérifier par rapport à l'engagement.
Les risques à connaître
La sécurité repose sur la cérémonie de configuration initiale et sur des hypothèses mathématiques bien étudiées, mais qui ne résistent pas aux ordinateurs quantiques : une machine suffisamment puissante pourrait les remettre en cause à terme. Pour un utilisateur, le principal piège est de croire que les données des blobs sont conservées indéfiniment par le réseau, ce qui n'est pas le cas.
Questions fréquentes sur KZG commitment
Pourquoi Ethereum a-t-il eu besoin d'un trusted setup pour KZG ?
Le schéma requiert des paramètres publics générés à partir d'un secret qui doit ensuite disparaître. La cérémonie ouverte à tous permet de s'assurer qu'au moins un participant honnête a détruit sa contribution secrète.
Les blobs sont-ils stockés pour toujours ?
Non. Les nœuds ne conservent les blobs que pendant une période limitée ; seuls leurs engagements restent liés de façon permanente à la chaîne.