How to mask IP address of ZNC
Solution 1:
An IP address is always necessary in order to establish a connection. You can't really hide it from your end, you can only borrow someone else's by connecting through a relay. (Such as an IRC bouncer.)
Indeed that's exactly what many people use bouncers for – they "hide" their own IP address by having the bouncer connect to IRC on their behalf. So if you wanted to hide the bouncer's address too, you'd need to... make it connect through another bouncer, I guess?
More sensibly, you can make the bouncer connect through a SOCKS proxy, or a system-wide VPN. Then only the proxy's or VPN server's address will be seen by the final destination. (You'll probably need to pay for a commercial VPN service; hosting it on your own server would defeat the point.)
(Note: I'm talking about a "normal" proxy. A "reverse" proxy is something you'd use for incoming connections, e.g. if hosting a web server.)
The extreme option is Tor, which works like a SOCKS proxy but automatically creates 3-layer proxy connections, trying to provide high anonymity. Many IRC networks either ban Tor relays outright or require users to log in before accessing the network via Tor.