Surprisingly, two-party computation protocols are occasionally more efficient than their three party computation counterparts. This is due to the fact that two-party protocols can use distributed point function (DPF) which are a very efficient building block. In this talk, we will examine what mathematical tools are used to build efficient DPFs and we will go in details over a specific construction. This will help us understand why multi-party DPFs have been difficult to construct and what assumptions could allow us to circumvent this barrier in the future.