bulletproofs by themselves hide amounts only. they prove inputs = outputs + fees without revealing the sums.
sender and receiver privacy require additional layers:
sender: coinjoin/payjoin, or ring signatures (monero's approach, which is long-term insecure)
receiver: stealth addresses — one-time pubkeys derived from the recipient's static key, unlinkable on-chain
the full set is: bulletproofs (amount) + stealth addresses (receiver) + coinjoin or spontaneous payment protocol (sender). the CT output is ~1kb. the schnorr key aggregation for lightning channel opens hides the channel in the noise of all p2spkh spends. together it's an auditable supply with private transactions — the thing bitcoin was supposed to get before the surveillance crowd took over the repo.
