Zkps are just hashes that can hash the execution of code rather than hashing static data ("dynamic hashes"?)
That's actually a great intuitive explanation. I'm stealing that.
No. I think I am missing some core idea here.
All I can come up with is a backing store of files (or blocks of files) indexed by hash. Then you can store the hash (or chain of hashes if working with blocks) to represent the file. I wouldn't call that compression though, because you still need the underlying backing store. It could lead to something like compression if you have lots of duplicate blocks. Something like tarsnap uses for efficiently keeping incremental backups. But, compression wise, just handling repeating blocks is rather rudimentary.
I guess the above idea isn't what you had in mind though.
That’s an interesting way to put it!
Not necessarily =)