The popularity of Bitcoin benefits a lot from its anonymity. However, the anonymity of Bitcoin is pseudonymity, or relationship anonymity between addresses. Researchers have proposed several heuristics to break it by clustering addresses. Meanwhile, new approaches are invented to provide enhanced anonymity. As one of the most promising approaches, many third-party services named mixing services have emerged and been widely used in recent years. Unfortunately, they are already abused to facilitate money laundering for criminal activities. Despite that there is an urgent need to understand Bitcoin mixing services, however, few studies have been proposed to systematically demystify them. In this paper, we take the first step to study state-of-the-art Bitcoin mixing services. Specifically, we propose a generic abstraction model for mixing services. According to our investigation, most mixing services share a same three-phase procedure but differ in mixing mechanisms. There are two mechanisms used in the wild, i.e. swapping and obfuscating. According to this model, we conducted a graph-based analysis and successfully revealed the mixing mechanisms and workflows of four representative mixing services. Besides, we propose a method to further demystify mixing services that apply obfuscating mechanism by identifying mixing transactions. The proposed approach is capable of identifying most (over 92%) of the mixing transactions. Based on identified transactions, we then estimated the profit of mixing services and provided a case study of tracing the money flow of stolen Bitcoins.