программы tor и i2p (и другие аналогичные, помню была еще freenet например) работают по следующему принципу:
1. по локальному адресу (это меняется в настройках) запускается веб сервер, представляющий интерфейс приложения (настройки, мониторинг, просмотр конфига)
2. для работы с onion сайтами в браузере прописывается socks прокси (порт 9050 по умолчанию), а сервер эту прокси эмулирует, переотправляя запросы в tor сеть
прокси это
протокол, где браузер отправляет в соответствующем формате ip порт (или строка доменного имени) и пакет данных, а прокси сервер возвращает ответ, который должен вернуться, если это обычная прокси то она просто по подключению к соответствующему серверу шлет указанные данные, ну а tor шлет эти данные по своей сети, завернув их в соответствующий формат и шифрование.
p.s. благодаря такой схемы для работы с tor или i2p можно использовать не только браузеры и специализированные библиотеки но и обычные приложения, умеющие использовать socks прокси (а есть возможность поднять такую прокси прозрачно, замапив tor сайты к примеру на ipv6 сайты)