If you render transparencies you need to keep different thing in mind.
Normally you render in OpenGL with z-buffer testing and writing enabled.
So if a face is rendered OpenGL looks which pixels are visible testing them against the z-buffer. If it is visible it is drawn with the blending setting and its z value is written into the z-buffer. If not it is discarded.
If you don't render your faces in the correct z-order (from back to front out of the view direction) they are rendered in the order they arrive in the pipeline.
The artifacts appear when e.g. for some areas the pixels of the back-faces are rendered before the overlaying pixels of the front-faces, and if for some areas the pixels of the front faces are rendered before the one of the back face. So for some areas of your object you have a blending of background - backface - frontface
and for some areas you only have background - forntface
.
I know that explanation is not accurate, but i hope you get what i mean. Otherwise feel free to ask.