The trick is that calculating the response to a challenge takes a very long time and the server only waits for a very short time to get any valid responses. So it follows that the harvesters must compute the responses in advance and store them on disk, which serves as proof that you had that disk space allocated to chia harvesting.
They are designed so that precomputing the bingo card is expensive but once you have them, checking to see if you have a bingo is cheap. It's thought that nobody will be able to compute a winning bingo cards on the fly ("grinding"), so it will be cheaper to store and reuse them once you have them.
(I don't know the details of the algorithms though.)
I suspect nodes ask one another to perform computations on random subsets of very large amounts of data. Since the subsets requested would be random, nodes can't predict the requests and thus have to store all the data. The data would then be augmented with the consensus results of these computations, so that future computations would be able to reference them.
Then the transaction validation is done by whoever finds value in their storage (instead of doing a lot of computations online, they are pre-generated).
I assume there's a bunch of tree-like structures in the middle to make the search faster.