There is good discussion of the semantic differences in other answers, but the most important practical difference is that ignorant is a very insulting word that you should be careful about using, whereas naïve is not such.
In general naïve makes me picture a hopeful child who has unrealistic dreams and has not thought about the real world enough, whereas ignorant makes me picture a dumb, racist old man who won’t change his worldview in the face of overwhelming evidence.
So, for instance:
“I think you are being naïve, because...” is appropriate way to disagree with someone's theory at, say, a business meeting. It’s still a strong thing to say, and possibly condescending or belittling of your colleague’s theory.
On the other hand, “I think you are being ignorant, because...” is quite rude and aggressive. It's not practically very different from saying stupid even though the semantics differ.
That is, arguable can be used to describe a proposition which someone wishes to present as true. Debatable, on the other hand (especially in light of the apparent synonymy of questionable), is often used to describe a proposition which someone wishes to present as false or at least unlikely; see for example Merriam-Webster's sample phrase
the debatable wisdom of going back for another helping from the buffet
which, it seems, would indicate that going back is presented as unwise.
Best Answer
Ignorance is lack of knowledge.
Silly is behaving in a foolish manner, or showing poor judgment.
[Both definitions from NOAD]