Har du hört talas om ett kartesiskt merkleträd (CMT)? Det är det första Merkle-trädet med O(log n) komplexitet som bara använder n lagring (ned från 2n), eftersom alla noder, inte bara löv, lagrar användbar information. CMT är deterministiskt och särskilt bra för on-chain- och ZK-applikationer.
Soliditetstips: när 'opcode(0x20, x)' känns bättre än 'opcode(x, 0x20)', har du skaffat dig "stack machine compiler sense".
Ibland optimerar Solidity det, ibland inte.