Is there a deterministic number generator that allows me to share some (not all) numbers I've generated using a smallish seed?
A really basic insecure example would be to use sha256(seed + n) where n starts at 0 and increases for each number. You would share the seed plus all the n values you want to share. Obviously this means people could generate the numbers I don't want them to by filling in the missing n values.


You could extend that idea and use $\operatorname{sha256}(seed || n || r_i)$, where $r_i$ are smaller random numbers. By using 32-bit seeds to produce 256-bit random numbers, you would save almost 90% of the transmission and storage costs.
However, anyone could tell an unrevealed number was one of the $2^{32}$ that could be created with that seed and n.

If that's not acceptable, you could build hash trees, where you start from one seed and at each level derive two seeds from one, eventually ending in the random numbers desired. (There would be one hash tree for &quot;left&quot; and one for &quot;right&quot; values in the pairs.)
Then you could reveal any seeds for which the whole subtree should be revealed. On average this could save almost a third of the data.

As a special case of the above, if you just used a new seed every other left/right value (i.e. left of the first two pairs would be derived from a single seed), you could save exactly 25% of the data on average with simpler logic than a whole hash tree requires.