Making your proof more rigorous
The way I read your proof, you use the $=$ sign to denote what you intend to proove, not what you already have established. You might make that clearer by writing $\overset?=$ instead. But I'll leave that notational aspect to other answers, and concentrate on what I believe you are trying to say.
You could improve your derivation by stating clearly what set of axioms you assume, what theorems you already derived from these axioms (as far as they are or at least might be relevant), and which of these axioms or theorems you use at each step.
If you look at e.g. the definition of a ring in Wikipedia, and compare that with your proof, you could end up with something like this:
- Let $a$ be an arbitrary element of the ring. You could simplify the proof by specifically choosing $a=0$ or $a=1$, but I'll follow your approach. The important fact is that the underlying set cannot be empty, which is guaranteed by the existence of the additive and multiplicative identities (which might be the same).
- Let $-a$ be the additive inverse of $a$, so $a+(-a)=0$. Writing this as $a-a$ is a syntactic simplification which can obscure what exactly you may assume at any given point, so I'd not do this here.
- Substitute that into both occurrences of $0$ in $0\cdot 0$, to obtain $\bigl(a+(-a)\bigr)\bigl(a+(-a)\bigr)$. It might be enough to substitute one, since in fact $0\cdot a=0$ for any $a$, but again I follow your approach.
- Use left distributivity to split the right paren: $\bigl(a+(-a)\bigr)a + \bigl(a+(-a)\bigr)(-a)$.
- Use right distributivity twice to obtain $\bigl(a^2 + (-a)a\bigr) + \bigl(a(-a)+(-a)^2\bigr)$.
- Next you essentially simplify $(-a)a$ to $-(a^2)$. But how do you know that's valid? You might be tempted to derive that from $a^2+\bigl(-(a^2)\bigr)=0=0\cdot a=\bigl(a+(-a)\bigr)a=a^2+(-a)a$. But at the second $=$ you'd need to show that $0=0\cdot a$, which is a more general version of what you're about to prove.
At this point you can see that your proof is flawed, and can either look for ways to fix it, or start in a different direction. And I hope you will notice how shorthand notation like the use of minus as a binary operator can lead to oversights when dealing with axiomatic systems at such a low level.
A working example of a pretty rigorous proof
If you apply the same notation to a variant of the proof Mirko suggested, you get
- Consider $0\cdot a=b$ which includes the special case of $a=0$.
- Since $0$ is the additive identity, you have $0+0=0$.
- Substitute 2. into 1. to get $(0+0)\cdot a=b$.
- Use right distributivity to obtain $0\cdot a+0\cdot a=b$.
- Substitute 1. into this to obtain $b+b=b$.
- Add $-b$, the additive inverse of $b$, to both sides: $(b+b)+(-b)=b+(-b)$.
- Apply associativity on the left hand side to obtain $b+\bigl(b+(-b)\bigr)=b+(-b)$.
- Use the fact that $b+(-b)=0$ since $-b$ was chosen to be the additive inverse. So you get $b+0=0$.
- And since $0$ is the additive identity this simplifies to $b=0$.
Taking everything together you conclude that $\forall a:0\cdot a=0$.
Using essentially the same steps, you can show that $\forall a:a\cdot 0=0$. Either of these will include $0\cdot0=0$ as a special case.
If you don't like the use of $b$ as an abbreviation for $0\cdot a$, or if you prefer dealing with terms instead of equations, you can also write this whole thing as a sequence of such term transformations:
&= 0\cdot a + 0
\\&= 0\cdot a + \Bigl(0\cdot a + \bigl(-(0\cdot a)\bigr)\Bigr)
\\&= (0\cdot a + 0\cdot a) + \bigl(-(0\cdot a)\bigr)
\\&= (0 + 0)\cdot a + \bigl(-(0\cdot a)\bigr)
\\&= 0\cdot a + \bigl(-(0\cdot a)\bigr)
Alternate subject areas
If you are not talking about rings, then what else are you talking about?
- If you are talking about natural numbers, there are several ways to define those – or rather the multiplication operation on these.
- One could define them using Peano arithmetic, and as CommonerG pointed out, $a\cdot0=0$ is part of the definition of multiplication there.
- One could define them as the cardinals of finite sets, with multiplication defined the way Martín-Blas Pérez Pinilla used it.
- Other set-theoretic definitions represent the numbers themselves as sets. I'm no expert on how multiplication is defined in each of these formalisms, but I guess it will likely boil down to Peano arithmetic again.
- You might be talking about integers, rationals, reals or complex numbers. Each of these is usually either defined axiomatically in a way that includes the ring axioms, or constructed (ℤ, ℚ, ℝ, ℂ) in a way that eventually builds on natural numbers, so you'd prove it there and then use the details of the construction to propagate that fact.
- Transfinite cardinal arithmetic is a generalization of this cardinal-based set-theoretic definition to infinite cardinals. Doesn't make a difference for $0$. Transfinite ordinal arithmetic has different definitions, so be precise which one you use.