The idea: serialize data including containers (objects with fields), vectors, lists (variable length), bitvectors & bitlists, integer fields & booleans.
Then, encode all of this in a Merkle tree, such that accessing only part of this data (as a smart contract would do) does not incur the cost of loading the full data. Seems particularly important for storing contract code which currently has to be loaded all at once.
using non-pairing-friendly curves: "The lowest d such that (pd-1) % q = 0 is insanely high, so the F_p elements would have size 2200 or something like that"