Avez-vous entendu parler d'un Arbre de Merkle cartésien (CMT) ? C'est le premier arbre de Merkle avec une complexité de O(log n) qui utilise seulement n de stockage (contre 2n auparavant), car tous les nœuds, pas seulement les feuilles, stockent des informations utiles. Le CMT est déterministe et particulièrement adapté aux applications on-chain et ZK.
Astuce Solidity : lorsque `opcode(0x20, x)` semble meilleur que `opcode(x, 0x20)`, vous avez acquis le "sens du compilateur de machine à pile".
Parfois, Solidity l'optimise, parfois non.