If $ f(x \cdot f(y) + f(x)) = y \cdot f(x) + x $, then $f(x)=x$ Let $ f : \mathbb{Q} \rightarrow \mathbb{Q} $ be a function which has the following property:
$$ f(x \cdot f(y) + f(x)) = y \cdot f(x) + x \;,\; \forall \; x, y \in \mathbb{Q} $$
Prove that $ f(x) = x, \; \forall \; x, y \in \mathbb{Q} $.
So far, I've found that $f(f(x)) = x$, $f(0) = 0$ and $f(-1) = -1$. 
(For $f(0)=0$, we substitute $x=0$ to arrive at $f(f(0))-yf(0)$ identically $0$ for all rational $y$; for $f(f(x))=x$, we substitute $y=0$ and use $f(0)=0$. For $f(-1) = -1$, substitute $x=y=-1$ to get $f(0)=-f(-1)-1$, and use $f(0)=0$.)

If you have $f(f(x))=x$ it means that the function is onto 
Furthermore, assume that $f(y_1) = f(y_2)$ for some $y_1 \neq y_2$
$$ f(-f(y_1)-1 ) =f(-f(y_1)-1 )   $$
$$\Rightarrow  -y_1 -1 = -y_2 -1 $$
$$\Rightarrow  y_1 = y_2 !! $$
Thus the function is $1$ $to$ $1$, its inverse $f^{-1}$ exists,
in addition to $f(f(x))=x$, we have $f^{-1}=f$
From above, you get $f(f(1)+1) = f(1)+1 $ 
$f^{-1} = f \Rightarrow f(yf(x)+x) = f^{-1}(yf(x)+x) = xf(y) +f(x)  $
For some $x_0=f(1)$, $f(x_0)=f(f(1))=1$ and putting $y=1$
$x_0 f(1) + f(x_0) = f(1 f(x_0) + x_0 )$ 
$\Rightarrow f(1)^2 +1 = f(f(1)+1) = 2f(1) \Rightarrow f(1)=1$ 
$\Rightarrow f(y+1)=f(y)+1$ by putting $x=1$ into $f(yf(x)+x)  = xf(y) +f(x)  $
From the original definition, putting $y=1$ gives $f(x+f(x)) = f(x) +x$
Since $f(x)$ is onto, $f(x)+x$ is also onto(to be proved), therefore we can find $x$ such that $y=x+f(x)$ for all $y$ 
then $f(y) =y$
I cannot prove that it is onto... However, I found another way by looking at the answer of  Willard Zhan. He has proven $f(1/q) = 1/q$ for integers $q$
For all $\frac{p}{q}$, it can be always written as $\frac{m+1}{q}$, where $m$ is also an integer.
putting $y=m$ and $x=\frac{1}{q}$ into $f(yf(x)+x)=xf(y)+f(x)$
$$f\left( \frac{m+1}{q}\right)=f\left( \frac{m}{q} +\frac{1}{q}\right) = \frac{f(m)+1}{q} = \frac{m+1}{q}$$ 
since we have proved $f(m)=m$ for integers. I think it completes the proof.
