Batching In Cryptography : Constructing Efficient Ciphertexts, Time-Locked Puzzles And Proofs