The notion of security for multi-party computations is not absolutely defined. Simulation is a technique that models an abstract "ideal world" where a desired multi-party functionality is computed, and is secure by definition. Then in the "real world" you would execute any given interactive protocol between agents, who could be honest or cheating. You would then argue that the outputs are similar to those of the secure "ideal world", and in doing so prove that the protocol itself is secure. In this seminar, I will talk about some such simulation proof techniques for some common multi-party computation problems - oblivious transfer and the zero-knowledge proof for the 3-colouring graph problem - based on examples from a tutorial by Yehuda Lindell.