Find all functions $f$ such that if $a+b$ is a square, then $f(a)+f(b)$ is a square Question:

For any  $a,b\in \mathbb{N}^{+}$, if $a+b$ is a square number, then $f(a)+f(b)$ is also a square number. Find all such functions.

My try: It is clear that the function
$$f(x)=x$$ satisfies the given conditions, since:
 $$f(a)+f(b)=a+b.$$
But is it the only function that fits our needs? 
It's one of my friends that gave me this problem, maybe  this is a Mathematical olympiad problem.  Thank you for  you help.
 A: It's not a complete answer, but as mentioned in comments, this problem probably missed some restrictions, and so have too many solutions. Thus I decided to answer this question for the case that $f$ have constant value in infinite (or finite by little changes) partition of $\mathbb N$.
I expect another answers for remained cases e.g when $f$ is an increasing function (polynomial case mentioned in comments).  
Let $A$ is an infinite subset of $\mathbb N$, not containing two numbers with square sum (like https://oeis.org/A203988 except elements of the form $\frac{(2k)^2}{2}$ in this sequence) and $A'=\mathbb N -A$ . Suppose $A_1,A_2,...$ is an infinite non-empty partition of $A$, now $f$ could be defined as below
$$ f(n) =
  \begin{cases}
    a=\frac{(2k)^2}{2}& \quad \text{if } n \in A' \\a_1^2-a  & \quad \text{if } n \in A_1\\a_2^2-a  & \quad \text{if } n \in A_2\\.\\.\\.
  \end{cases}  
$$ where $k$ and $a_i \in \mathbb N$ .  
Now if $x,y \in \mathbb N$ and $x+y$ is a perfect square, then both of $x$ and $y$ should be contained in $A'$, or on of them is in $A'$ and another one is in $A$ (and so contained in one of the $A_i$), in both cases $f(x)+f(y)$ is a perfect square .  
A: we can find some other solutions such the zero function or the functions under the form $f(n)=a^2n$ or the constant functions under the form $f(n)=\dfrac{a^2}{2}$, or an other function $f$ which can be determined following this method.
Here I am just giving a way to build a function with this property
suppose that $a, b \in \mathbb{N}^{+} $ such that their sum is a perfect square, that is there exists $n \in \mathbb{N}_{≥2}$ such that
$$ a+b=n^2 $$
which is equivalent to 
$$ a=n^2-b $$
which implies that 
$$ f(a)+f(b)=f(n^2-b)+f(b) $$
then from here we can see that we are looking for a function $f$ such that 
$$ \forall n \in \mathbb{N}_{\geq 2},  \forall b \in { 1, 2,..., [ 
 \dfrac{n^2}{2}] }, \exists a(b,n) \in \mathbb{N};  f(n^2-b)+f(b)=(a(b,n))^2$$
Let's start building
for $n=2$ we need to give values to $f(b) $ and $a(b, 2)$ for $ b \in \{ 1, 2 \}$ such that
$$  f(4-b)+f(b)=(a(b,2))^2$$
that is we need to give values to $f(1), f(2), f(3)$ and $a(1, 2), a(2,2)$ such that
$$ \begin{cases}  f(3)+f(1)=(a(1,2))^2 \\
f(2)+f(2)=(a(2,2))^2
 \end{cases} $$
Then we find that we can associate a random values to $f(1), a(1,2), a(2,2)$ and we define $f(2), f(3)$ as follows
$$ \begin{cases}  f(2)=\dfrac{(a(2,2))^2}{2} \\
f(3)=(a(1,2))^2-f(1)   \end{cases}$$
before moving to the next step we need to note that if $n$ is even and by taking $ b=  \left[ \dfrac{n^2}{2}\right]$ the equality $ f(n^2-b)+f(b)=(a(b,n))^2 $ gives 
$$ f(  [ \dfrac{n^2}{2}] )=\dfrac{a( [ \dfrac{n^2}{2}], n)^2}{2}...(*) $$
and we can choose any natural value for $a( [ \dfrac{n^2}{2}], n)$ to define $f( [ \dfrac{n^2}{2}] )$. 
in the next steps we have to take in account that $f( [ \dfrac{n^2}{2}])$ has been already determined. 
for $n=3$ we need to give values to $f(b) $ and $a(b, 2)$ for $ b \in \{ 1, 2, 3, 4\}$ such that
$$  f(9-b)+f(b)=(a(b,3))^2$$
that is
$$ \begin{cases}  f(8)+f(1)=\dfrac{(a(1,3))^2}{2} \\ f(7)+f(2)=(a(2,3))^2\\ f(6)+f(3)=(a(3,3))^2\\ f(5)+f(4)=(a(4,3))^2
 \end{cases}$$
Here we need to see that $f(2)$ and $f(8)$ have been already choosed from the equality $(*) $ that implies that $f(1)$ is not random as we find in the first step so we need to change the choice of $f(1)$ to be under the form
$$ f(1)=\dfrac{(a(1,3))^2}{2}-f(8)$$
and since $f(2), f(3)$ are well determined we can easily associate values to $f(7), f(6)$.
but $f(4), f(5)$ remain not determined, it's clear that we can associate
a random value to $f(4)$ and then we get $f(5)=(a(4,3))^2-f(4)$, but is this true? 
Maybe in the next steps we will need to change one of these values as we have done with $f(1)$, and we iterate counting the next values of the function $f$.
