@spalladino interestingly, I revisited Vitalik’s original post which inspired the “nullifier epochs” ideas. His proposal is actually aiming to prune accounts (and state) from Ethereum, using this mechanism.
If that forum is entertaining such a convoluted ux, perhaps it’s not completely insane to regularly prune contracts & account contracts?
It certainly makes it much simpler to deploy a variable number of contracts from a single function/tx, because we’re already aiming for such “variable-ness” with nullifiers. Designing the kernel to also juggle a varying number of contract deployment requests is a bit daunting.
this means that every client will need to store the old frozen trees that include the nullifiers for the contracts they need to run
Yeah, or they’d need to request witnesses (in some privacy-preserving way) from some 3rd party archive node that retains all the historic trees.