Find all functions $f:\mathbb{R}^+\to\mathbb{R}^+$ such that for any real numbers $a, b, c, d >0$ satisfying $abcd=1$,\[(f(a)+f(b))(f(c)+f(d))=(a+b)(c+d)\] holds true.

[i](Swiss Mathematical Olympiad 2011, Final round, problem 4)[/i]
1. Let \( P(a, b, c, d) \) be the assertion of the given functional equation:
   \[
   (f(a) + f(b))(f(c) + f(d)) = (a + b)(c + d)
   \]
   for all \( a, b, c, d > 0 \) such that \( abcd = 1 \).

2. Consider the case \( P(1, 1, 1, 1) \):
   \[
   (f(1) + f(1))(f(1) + f(1)) = (1 + 1)(1 + 1)
   \]
   Simplifying, we get:
   \[
   4f(1)^2 = 4 \implies f(1)^2 = 1 \implies f(1) = 1
   \]
   (since \( f \) maps \(\mathbb{R}^+\) to \(\mathbb{R}^+\), \( f(1) \) must be positive).

3. Next, consider \( P(x, \frac{1}{x}, 1, 1) \):
   \[
   (f(x) + f(\frac{1}{x}))(f(1) + f(1)) = (x + \frac{1}{x})(1 + 1)
   \]
   Substituting \( f(1) = 1 \), we get:
   \[
   (f(x) + f(\frac{1}{x}))(1 + 1) = (x + \frac{1}{x}) \cdot 2
   \]
   Simplifying, we obtain:
   \[
   2(f(x) + f(\frac{1}{x})) = 2(x + \frac{1}{x}) \implies f(x) + f(\frac{1}{x}) = x + \frac{1}{x} \quad \text{(Equation (a))}
   \]

4. Now consider \( P(x, 1, \frac{1}{x}, 1) \):
   \[
   (f(x) + f(1))(f(\frac{1}{x}) + f(1)) = (x + 1)(\frac{1}{x} + 1)
   \]
   Substituting \( f(1) = 1 \), we get:
   \[
   (f(x) + 1)(f(\frac{1}{x}) + 1) = (x + 1)(\frac{1}{x} + 1)
   \]
   Expanding both sides, we have:
   \[
   f(x)f(\frac{1}{x}) + f(x) + f(\frac{1}{x}) + 1 = x \cdot \frac{1}{x} + x + \frac{1}{x} + 1
   \]
   Simplifying, we get:
   \[
   f(x)f(\frac{1}{x}) + f(x) + f(\frac{1}{x}) + 1 = 1 + x + \frac{1}{x} + 1
   \]
   \[
   f(x)f(\frac{1}{x}) + f(x) + f(\frac{1}{x}) + 1 = x + \frac{1}{x} + 2
   \]
   Using Equation (a), \( f(x) + f(\frac{1}{x}) = x + \frac{1}{x} \), we get:
   \[
   f(x)f(\frac{1}{x}) + (x + \frac{1}{x}) + 1 = x + \frac{1}{x} + 2
   \]
   \[
   f(x)f(\frac{1}{x}) + 1 = 2 \implies f(x)f(\frac{1}{x}) = 1 \quad \text{(Equation (b))}
   \]

5. From Equations (a) and (b), we have:
   \[
   f(x) + f(\frac{1}{x}) = x + \frac{1}{x}
   \]
   \[
   f(x)f(\frac{1}{x}) = 1
   \]
   These are the roots of the quadratic equation:
   \[
   t^2 - (x + \frac{1}{x})t + 1 = 0
   \]
   Solving this quadratic equation, we get:
   \[
   t = \frac{x + \frac{1}{x} \pm \sqrt{(x + \frac{1}{x})^2 - 4}}{2}
   \]
   \[
   t = \frac{x + \frac{1}{x} \pm \sqrt{x^2 + 2 + \frac{1}{x^2} - 4}}{2}
   \]
   \[
   t = \frac{x + \frac{1}{x} \pm \sqrt{x^2 - 2 + \frac{1}{x^2}}}{2}
   \]
   \[
   t = \frac{x + \frac{1}{x} \pm \sqrt{(x - \frac{1}{x})^2}}{2}
   \]
   \[
   t = \frac{x + \frac{1}{x} \pm |x - \frac{1}{x}|}{2}
   \]
   This gives us two solutions:
   \[
   t = x \quad \text{or} \quad t = \frac{1}{x}
   \]

6. Therefore, for each \( x \in \mathbb{R}^+ \), \( f(x) \) must be either \( x \) or \( \frac{1}{x} \).

7. Suppose there exist \( a \neq 1 \) such that \( f(a) = a \) and \( b \neq 1 \) such that \( f(b) = \frac{1}{b} \). From \( f(x)f(\frac{1}{x}) = 1 \), we get:
   \[
   f(\frac{1}{a}) = \frac{1}{a} \quad \text{and} \quad f(\frac{1}{b}) = b
   \]

8. Consider \( P(a, b, \frac{1}{a}, \frac{1}{b}) \):
   \[
   (f(a) + f(b))(f(\frac{1}{a}) + f(\frac{1}{b})) = (a + b)(\frac{1}{a} + \frac{1}{b})
   \]
   Substituting \( f(a) = a \), \( f(b) = \frac{1}{b} \), \( f(\frac{1}{a}) = \frac{1}{a} \), and \( f(\frac{1}{b}) = b \), we get:
   \[
   (a + \frac{1}{b})(\frac{1}{a} + b) = (a + b)(\frac{1}{a} + \frac{1}{b})
   \]
   Simplifying, we get:
   \[
   (ab + 1)^2 = (a + b)^2
   \]
   \[
   ab + 1 = a + b \quad \text{or} \quad ab + 1 = -(a + b)
   \]
   Since \( a, b > 0 \), the second equation is not possible. Thus:
   \[
   ab + 1 = a + b \implies (a - 1)(b - 1) = 0
   \]
   This implies either \( a = 1 \) or \( b = 1 \), which contradicts our assumption that \( a \neq 1 \) and \( b \neq 1 \).

9. Therefore, the only consistent solutions are:
   \[
   f(x) = x \quad \forall x \in \mathbb{R}^+
   \]
   or
   \[
   f(x) = \frac{1}{x} \quad \forall x \in \mathbb{R}^+
   \]

The final answer is \( \boxed{ f(x) = x } \) or \( f(x) = \frac{1}{x} \).