I believe we can solve both anonymity + proof-of-humanity using zero-knowledge proofs that act as intermediary between a trusted identity provider and the service provider. I.e. you get a digital id but you use it to generate proofs rather than handing out your identity.
Right?