Образовано суффиксальным способом от существительного знаха, которое в свою очередь было образовано от глагола знати. Первоначальное значение – "знаток" со временем переходит в "колдун", что, видимо, свидетельствует о древних представлениях, согласно которым от знания до колдовства – один шаг.
Этимологический словарь русского языка. — СПб.: ООО "Виктория плюс". Крылов Г. А.. 2004.