[proofplan]
We use the contracting homotopy directly. For each degree $n$, every $n$-cycle $z \in \ker d_n$ is shown to be the boundary of the element $s_n(z) \in C_{n+1}$. Hence the cycle subgroup equals the boundary subgroup, so the quotient defining $H_n(C_\bullet)$ is the zero group.
[/proofplan]
custom_env
admin
[step:Define the cycle and boundary subgroups in degree $n$]
Fix $n \in \mathbb{Z}$. Define the $n$-cycle subgroup $Z_n(C_\bullet) \le C_n$ and the $n$-boundary subgroup $B_n(C_\bullet) \le C_n$ by
\begin{align*}
Z_n(C_\bullet) &= \ker(d_n: C_n \to C_{n-1}), \\
B_n(C_\bullet) &= \operatorname{im}(d_{n+1}: C_{n+1} \to C_n).
\end{align*}
Since $d_n \circ d_{n+1} = 0$, every boundary is a cycle, so
\begin{align*}
B_n(C_\bullet) \subseteq Z_n(C_\bullet).
\end{align*}
[/step]
custom_env
admin
[step:Show that every cycle is a boundary using the contracting homotopy]Let $z \in Z_n(C_\bullet)$. Then $z \in C_n$ and $d_n(z) = 0$. Applying the contracting homotopy identity in degree $n$ gives
\begin{align*}
z
&= \operatorname{id}_{C_n}(z) \\
&= d_{n+1}(s_n(z)) + s_{n-1}(d_n(z)) \\
&= d_{n+1}(s_n(z)) + s_{n-1}(0) \\
&= d_{n+1}(s_n(z)).
\end{align*}
Because $s_n: C_n \to C_{n+1}$, we have $s_n(z) \in C_{n+1}$, and therefore $z \in \operatorname{im} d_{n+1} = B_n(C_\bullet)$. Hence
\begin{align*}
Z_n(C_\bullet) \subseteq B_n(C_\bullet).
\end{align*}[/step]
custom_env
admin
[guided]The goal in degree $n$ is to prove that the homology group
\begin{align*}
H_n(C_\bullet) = Z_n(C_\bullet)/B_n(C_\bullet)
\end{align*}
is zero. This happens exactly when every cycle is already a boundary.
Let $z \in Z_n(C_\bullet)$. By definition of $Z_n(C_\bullet)$, this means $z \in C_n$ and
\begin{align*}
d_n(z) = 0.
\end{align*}
The contractibility hypothesis gives homomorphisms $s_k: C_k \to C_{k+1}$ for all $k \in \mathbb{Z}$ satisfying
\begin{align*}
d_{k+1} \circ s_k + s_{k-1} \circ d_k = \operatorname{id}_{C_k}.
\end{align*}
Using this identity with $k = n$ and evaluating at $z \in C_n$, we obtain
\begin{align*}
z
&= \operatorname{id}_{C_n}(z) \\
&= d_{n+1}(s_n(z)) + s_{n-1}(d_n(z)).
\end{align*}
Since $z$ is a cycle, $d_n(z) = 0$. Since $s_{n-1}: C_{n-1} \to C_n$ is a group homomorphism, it sends $0 \in C_{n-1}$ to $0 \in C_n$. Therefore
\begin{align*}
z
&= d_{n+1}(s_n(z)) + s_{n-1}(0) \\
&= d_{n+1}(s_n(z)).
\end{align*}
Now $s_n(z) \in C_{n+1}$ because $s_n: C_n \to C_{n+1}$. Thus $z$ lies in the image of $d_{n+1}: C_{n+1} \to C_n$, which is precisely $B_n(C_\bullet)$. We have proved
\begin{align*}
Z_n(C_\bullet) \subseteq B_n(C_\bullet).
\end{align*}[/guided]
custom_env
admin
[step:Conclude that the homology group vanishes in every degree]
From the two inclusions
\begin{align*}
B_n(C_\bullet) \subseteq Z_n(C_\bullet)
\quad \text{and} \quad
Z_n(C_\bullet) \subseteq B_n(C_\bullet),
\end{align*}
we get
\begin{align*}
Z_n(C_\bullet) = B_n(C_\bullet).
\end{align*}
Therefore
\begin{align*}
H_n(C_\bullet)
= Z_n(C_\bullet)/B_n(C_\bullet)
= Z_n(C_\bullet)/Z_n(C_\bullet)
= 0.
\end{align*}
Since $n \in \mathbb{Z}$ was arbitrary, $H_n(C_\bullet) = 0$ for every $n \in \mathbb{Z}$.
[/step]