We claim that the solutions are f1=1R and f2=−1R.
For x=0 we obtain f(f(y))=f(f(0))+y, for each y∈R, so f is an one-to-one function.
For y=0 we have f(xf(x)+f(0))=f(f(x2)), ∀x∈R, which, due to f being one-to-one, leads to xf(x)+f(0)=f(x2), ∀x∈R.
Putting x=1 in the last relation gives f(0)=0, so the last relation can be written as xf(x)=f(x2), ∀x∈R, while the first relation becomes f(f(x))=x, ∀x∈R.
Putting x→f(x) in the above relation, we have f(f(x)2)=f(f(x))f(x)=xf(x)=f(x2), which, due to f being one-to-one, implies that (f(x))2=x2, so for each x∈R we have f(x)=x or f(x)=−x.
Supposing that exists a pair (x0,y0)∈R∗×R∗ such that f(x0)=x0 and f(y0)=−y0. Putting x→x0 and y→y0 in the given functional equation, we obtain f(x2−y)=x2+y, so x2−y=x2+y or x2−y=−x2−y, implying that y=0 or x=0, which is a contradiction. Therefore, the claim is proved.