Искон. Преф. производное от колпачить «дурачить», суф. образования от колпак в значении «дурак, простофиля» (ср. шляпа — тж.). Оба слова в диалектах еще отмечаются.
Школьный этимологический словарь русского языка. Происхождение слов. — М.: Дрофа
Н. М. Шанский, Т. А. Боброва
2004