Efficient techniques for publicly verifiable delegation of computation