По некоторым источникам слово «зга» произошло от древнерусских слов – «стега», «стезя», которые означают – тропа, путь, дорожка. Но если предположить, что фразеологизм ни зги не видно связан именно с данным значением слова «зга», то это вызывает вопросы со стороны семантики.
По другим источникам слово «зга» является диалектной формой слова «згинка», значение которого — «искра», «крошка». Но если взять такое выражение, как «зги божьей не видно», то можно сделать вывод, в данном значении слова, «зга» — это свет. А, следовательно, фразеологизм «не видно ни зги» по данной теории будет иметь значение – темнота. Но если же слово «зга» — это крошка (Ни зги хлеба нет!), значение фразеологизма будет таково – не осталось ни частицы чего – либо. И наконец, слово «зга» возможно произошло от слова «пазгать» — пылать, сильно гореть. В данном случае опять же приходим к слову «искра». А это те искорки, которые видят люди, зажмурившись и видят большинство слепых людей. Из этого получается, что не видно ни зги означает, то что не видно даже того что видят слепые.
Если предположить, что слово «зга» произошло от глагола «стегать», т.е. бить животных, погонять «стегой», то смысл выражения будет следующим – не видеть предмета, который держишь в руке. Так как стега – это кнут, бич, прут, хворостина.
Не менее интересная версия происхождения выражения заключается в том, что «зга» это часть конской упряжи, а именно колечко через которое просовывали повод чтобы не болтался. И когда ямщику необходимо было в темноте распрячь лошадь, то он и говорил, что «ни зги не видно».
Из всех версий происхождения можно сделать вывод, что современное значение фразеологизма не видно ни зги трактуется, как «ничего не видно», «непроглядная густая тьма».