Earlier quoted context omitted.
I trust bloom filters more than SGX. I assume they stopped using bloom filters because of performance or reliability reasons? Also, aren't most mobile processors not Intel? How would SGX be used?
Here you go: https://signal.org/blog/private-contact-discovery/
How do we know the closed source version of signal on the app stores is using the same MRENCLAVE as the one from the open source server?
Also, my understanding as to why a contact graph is needed at all is because signal wants to increase their virality. Couldn't we forgo this unnecessary feature? Signal could generate a long enough key locally, and if you want to add another signal user, the client could send it automatically to a contact through SMS. The client on the other side could automatically read the key through SMS and add the contact. Or the user could manually send the key through any mechanism they wanted.
A third note, trusting SGX assumes that 1. it has no bugs, and 2. it has no backdoors, 3. Signal server code has no bugs, 4. Signal server code has no backdoors. The first two of these are not strong guarantees, especially considering that it's not open source, intel doesn't have a great track record, and nation state actors have been involved in weakening these sorts of features in the past. At least with the Signal server code you can audit it.