A system, apparatus, method, and computer-readable medium are provided for
secure P2P caching. In one method, a requesting peer obtains a hash of
requested data from a server. The requesting peer then transmits a
request for the data to other peers. The request proves that the
requesting peer has the hash. If a caching peer has the data, it
generates a reply to the request that proves that it has the requested
data. If the requesting peer receives a reply from a caching peer, the
requesting peer establishes a connection to the caching peer and
retrieves the data from the caching peer. If the requesting peer does not
receive a reply to the request from any other peer, the requesting peer
establishes a connection to the server and retrieves the data from the
server. The requesting peer stores the data for use in responding to
requests from other peers.