Solución:
Observe primero que la única función de la forma $f(x) = mx+n$ que satisface la relación es cuando $m=2$ o bien $m=n=0$.
Segundo, sustituyendo para $a=x$ y $b=0$, al igual que $a=0$ y $b=x$ se obtienen las siguientes identidades:
\begin{eqnarray}\label{eqn:second}
f(f(x)) &=& 2f(x) + f(0) \\
f(f(x)) &=& f(2x) + 2f(0)
\end{eqnarray}
De dónde se sigue (al igualar ambas expresiones) que:
$$f(2x) = 2f(x) - f(0)$$
Ahora bien, aplicando la igualdad anterior para el caso $x=a$ y sustituyendo en la expresión original se obtiene que:
\begin{equation}
f (f(a+b)) = 2f(a) + 2f(b) -f(0)
\label{eqn:first}
\end{equation}
Aplicamos esto nuevamente en $f(f(a)) = 2f(a) + f(0)$ y $f(f(b)) = 2f(b)+f(0)$.
Finalmente, combiando estas últimas tres identidades obtenemos que:
$$f(f(a+b)) = f(f(a)) + f(f(b)) - 3f(0)$$
De dónde se sigue que la función $g(x) = f(f(x)) -3f(0)$ separa sumas, es decir,
$$g(a+b) = g(a) + g(b)$$
Al ser una función de los enteros en los enteros que separa suma, se puede probar de manera estándard que $g$ es lineal. Es decir, $g(x) = Kx$ para algún número entero $K$. De dónde se sigue que $f(f(x)) = Kx + 3f(0)$
Sustituyendo en la expresión \eqref{eqn:first} obtenemos que:
$$K(a+b) + 3f(0) = 2f(a)+2(b) -f(0)$$
De dónde se observa que $K(a+b)$ es par para todo valor de $a$ y $b$, por lo tanto $K$ debe ser par. Entonces escribimos $K = 2L$. Al sustituir y dividir entre dos se obtiene:
$$L(a+b) + 2f(0)= f(a)+f(b)$$
Para todo $a$ y $b$ en $\mathbb{Z}$. En particular, para $a=x$ y $b=0$ se sigue que:
$f(x) = Lx +f(0)$
En consecuencia $f(f(x)) = f(Lx+f(0)) = L(Lx +f(0)) +f(0) = L^2x + Lf(0) + f(0)$.
Ahora bien, de \eqref{eqn:second} se sigue que:
$$L^2x + Lf(0) + f(0) = 2Lx + 3f(0)$$
Entonces $(L^2- 2L)x + (L -2)f(0) = 0$ para todo valor de $x$. Esta última ecuación se puede factorizar como $(L-2)(Lx + f(0)) = 0$ para todo valor de $x$. Lo cuál sólo será posible si $L =2$ o bien $Lx + f(0) = 0$. Es decir, si $f(x) = 2x + c$ o bien $f(x) = 0$.