Multi-party computation is the solution to the situation in which two (or more) agents say A,B, · · · have private variables a,b,· · · and wish to calculate a public result x = f(a, b, · · · ) without revealing to any one of them more than is strictly necessary — in this case for example A must learn no more than what it can deduce from its variable a (which it knows anyway) and x (which is in the end known by everyone).