I was looking through allot of the details with the hidden services. One answer was done very well and explained allot, which I have linked below. I wasn't sure on exactly how the intro can correlate a hidden service to their ip however. If the hidden service gives the public key then isn't it possible for the intro to also know the hidden service domain at some point and correlate the 2?
In other words:
1. hidden service gives public key to intro.
2. intro saves public key as variable name for the ip.
3. months later the intro comes across a blank.onion which they get a public key from.
4. they correlate that with the public keys they have and suddenly have the ip of blank.onion
The introduction point never learns the IP address of the onion service. The onion service builds a 3-hop circuit to the introduction point in order to stay anonymous, just like clients build 3-hop circuits. Also, the answer you linked to was for V2 onion services. Since then Tor has added support for V3 onion services which provide much better security/privacy for onion services.