I am looking for a theoretical solution to the following problem: Alice receives a signed statement from her bank with information about her account and credit balance. Alice wants to prove this knowledge of the contents and the bank's valid signature to Bob, but at the same time prevent Carol from determining who signed the proof.
To better illustrate my problem, I took the liberty of making a simple graphic:
As a (partial) solution, I was able to find the approach of "non-interactive zero-knowledge proofs" in the literature. Building on this, I was able to find the proposed solution of "designed verifier proofs". Combining both ideas, Alice could prove knowledge to Bob and at the same time prevent Carol from establishing her identity. Bob may know about the bank, but should not be able to learn details about Alice or even store them in plaintext.
After ploughing through the theory section, I am left with the question, how can I prove to Bob that Alice's statement was signed by the bank if she only confronts individual parts of it as a proof? Is "non-interactive zero-knowledge proof" even suitable for my use case or do better methods exist? As a software developer without the necessary cryptographic terminology, it is difficult for me to find suitable approaches in the literature and I would therefore appreciate any help!