In The Crucible, why does Giles not reveal his witness?
Quite simply, Giles is a man of honor. He knows as soon as he reveals his witness to the fact that Thomas Putnam is killing his neighbors for their land that he will be next on the list of people to be killed.
Giles claims that the man had heard Putnam say that was what he was doing. When asked specifically why Giles refuses to reveal his witness Giles claims:
You know well why not! He'll lay in jail if I give his name!
Giles knows this from experience. Just asking the question about what his wife's reading meant landed her in jail. He recognizes the flaw in the courts and he tells them their flaw. Giles took great shame in what they did to his wife. He feels he will go to hell and he couldn't have another person's soul on his conscience if he gave a name this time.