Hyperledger Fabric, the popular open-source permissioned blockchain platform, contains a mechanism called endorsement for establishing the validity of a transaction. In this paper we take a comprehensive look at endorsements in Fabric by reviewing their definition, security model and role in Fabric. We then review motivation, architecture and design for the recently introduced state-based endorsement. This feature permits developers of smart contracts to set endorsement policies at the level of individual state variables, enabling more fine-grained security policies. We further introduce cryptographic schemes for privacy-preserving endorsements that hide the identity of an endorser and ensure unlinkability across multiple endorsements. We present security model and analysis for both approaches, as well as benchmarks to evaluate the practicality of the proposed schemes.