 A machine 'knows something', if this something can be computed, given the machine as an input.As the program of the prover does not necessarily spit out the knowledge itself (as is the case for zero-knowledge proofs) a machine with a different program, called the knowledge extractor is introduced to capture this idea.We are mostly interested in what can be proven by polynomial time bounded machines.