Is there a difference between taanit and tzom and what is it? At first I thought it was the difference between public and private fasts, but there are public and private taanit so that is not the case.
Taanis has it's root in עני & עינוי. It's meaning is suffering, fasting, for the purpose of humbling oneself, ענו & ענוה being closely related. This is the common understanding of the word.
Tzom according to Radak in the name of his father is an expression of gathering. The focus of this word in this context is the gathering of the people in order to repent, but the word means gathering even when done not for the purpose of gathering. He points to maseches chulin chapter 4 mishna 6 and the gemara there on 76a where tzumas hagidin means the gathering of sinews. This Radak can be seen in Melachim 1 21 9 and also in his seffer hasharoshim under צום.