ZKsync est un rollup à preuves à divulgation nulle de connaissance sur Ethereum : il exécute les transactions hors d'Ethereum et prouve leur validité par des preuves cryptographiques vérifiées sur Ethereum. Il accepte Solidity et Vyper, mais les exécute sur sa propre machine virtuelle, qui n'est pas une copie exacte de l'EVM. Pour un projet, cela signifie des langages familiers avec des différences de comportement à tester et à faire relire explicitement.
Développer sur ZKsync
Les sources Solidity et Vyper sont compilées avec des compilateurs dédiés vers la machine virtuelle du réseau. La plupart du code applicatif fonctionne tel quel, mais certains comportements de bas niveau diffèrent d'Ethereum. ZKsync intègre l'abstraction de compte : tout compte peut être un smart contract doté de sa propre logique de validation, ce qui permet par exemple la prise en charge des frais par un tiers, mais modifie les hypothèses sur l'initiateur d'une transaction.
- Langages : Solidity, Vyper
- Outils : extensions ZKsync pour Hardhat et version de Foundry adaptée à ZKsync
- Différences à vérifier : déploiement et calcul des adresses de contrats, certains opcodes et précompilés, coûts de gas et de données
Ce que regardent les auditeurs
- Les écarts avec l'EVM : code qui prédit des adresses CREATE ou CREATE2, assembleur en ligne, opcodes au comportement différent
- L'abstraction de compte : hypothèse d'un appelant simple, validation des signatures, logique des paymasters
- La messagerie depuis Ethereum et les actifs pontés, dont l'authentification des messages entrants
- Les hypothèses de coût de gas et de données reprises d'Ethereum
- Les risques applicatifs EVM classiques : réentrance, manipulation d'oracle, contrôle d'accès
Avant de demander des devis
- Vérifiez que le code compile avec la chaîne d'outils ZKsync et que les tests tournent dessus, pas seulement sur une EVM standard
- Signalez tout assembleur en ligne, contrat factory ou précalcul d'adresse
- Décrivez les comptes personnalisés ou paymasters si votre projet en utilise
- Listez les autres chaînes EVM où le même code sera déployé