Reputation/Trust-based blockchain systems have attracted considerable research interests for better integrating Internet-of-Things with blockchain in terms of throughput, scalability, energy efficiency and incentive aspects. However, most existing works only consider static adversaries. Hence, they are vulnerable to slowly adaptive attackers, who can target validators with high reputation value to severely degrade the system performance. Therefore, we introduce zkRep, a privacypreserving scheme tailored for reputation-based blockchains. Our basic idea is to hide both the identity and reputation of the validators by periodically changing the identity and reputation commitments (i.e., aliases), which makes it much more difficult for slowly adaptive attackers to identify validators with high reputation value. To realize this idea, we utilize privacypreserving Pedersen-commitment-based reputation updating and leader election schemes that operate on concealed reputations within an epoch. We also introduce a privacy-preserving identity update protocol that changes the identity and time-windowbased cumulative reputation commitments during each epoch transition. We have implemented and evaluated zkRep on the Amazon Web Service. The experimental results and analysis show that zkRep achieves great privacy-preserving features against slowly adaptive attacks with little overhead.