[proofplan]
The proof is a direct unpacking of the definition of homology. First we use the chain complex identity $d_n \circ d_{n+1} = 0$ to show that every boundary in degree $n$ is a cycle, so the quotient $\ker(d_n)/\operatorname{im}(d_{n+1})$ is defined. Then we prove that this quotient module is the zero module exactly when its denominator equals its numerator.
[/proofplan]
[step:Identify cycles and boundaries in degree $n$]
Define the $R$-submodule of $n$-cycles by
\begin{align*}
Z_n(C_\bullet) := \ker(d_n) \subset C_n,
\end{align*}
and define the $R$-submodule of $n$-boundaries by
\begin{align*}
B_n(C_\bullet) := \operatorname{im}(d_{n+1}) \subset C_n.
\end{align*}
Since $C_\bullet$ is a chain complex, $d_n \circ d_{n+1} = 0$. Therefore, for every $x \in C_{n+1}$,
\begin{align*}
d_n(d_{n+1}(x)) = 0,
\end{align*}
so $d_{n+1}(x) \in \ker(d_n)$. Hence
\begin{align*}
B_n(C_\bullet) \subset Z_n(C_\bullet).
\end{align*}
Thus the quotient module
\begin{align*}
H_n(C_\bullet) := Z_n(C_\bullet)/B_n(C_\bullet)
\end{align*}
is well-defined.
[/step]
[step:Show that vanishing homology forces exactness at $C_n$]
Assume
\begin{align*}
H_n(C_\bullet) = 0.
\end{align*}
By the definition of homology, this means
\begin{align*}
Z_n(C_\bullet)/B_n(C_\bullet) = 0.
\end{align*}
Let $z \in Z_n(C_\bullet)$. The coset $z + B_n(C_\bullet)$ is an element of the zero quotient module, so it equals the zero coset:
\begin{align*}
z + B_n(C_\bullet) = B_n(C_\bullet).
\end{align*}
Therefore $z \in B_n(C_\bullet)$. Since $z \in Z_n(C_\bullet)$ was arbitrary, we have
\begin{align*}
Z_n(C_\bullet) \subset B_n(C_\bullet).
\end{align*}
Together with $B_n(C_\bullet) \subset Z_n(C_\bullet)$ from the previous step, this gives
\begin{align*}
Z_n(C_\bullet) = B_n(C_\bullet).
\end{align*}
Substituting the definitions of $Z_n(C_\bullet)$ and $B_n(C_\bullet)$, we obtain
\begin{align*}
\ker(d_n) = \operatorname{im}(d_{n+1}),
\end{align*}
so the complex is exact at $C_n$.
[/step]
[step:Show that exactness at $C_n$ forces vanishing homology]
Assume that $C_\bullet$ is exact at $C_n$, so
\begin{align*}
\operatorname{im}(d_{n+1}) = \ker(d_n).
\end{align*}
Using the definitions of $Z_n(C_\bullet)$ and $B_n(C_\bullet)$, this says
\begin{align*}
B_n(C_\bullet) = Z_n(C_\bullet).
\end{align*}
Hence
\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*}
Thus $H_n(C_\bullet)=0$.
[/step]
[step:Conclude the equivalence]
We have shown that $H_n(C_\bullet)=0$ implies
\begin{align*}
\operatorname{im}(d_{n+1}) = \ker(d_n),
\end{align*}
and that this equality implies $H_n(C_\bullet)=0$. Therefore $H_n(C_\bullet)=0$ if and only if $C_\bullet$ is exact at $C_n$.
[/step]