Providing proper economic incentives is essential for the success of dynamic spectrum sharing. Cooperative spectrum sharing is one effective way to achieve this goal. In cooperative spectrum sharing, secondary users (SUs) relay traffics for primary users (PUs), in exchange for dedicated transmission time for the SUs' own communication needs. In this paper, we study the cooperative spectrum sharing under incomplete information, where SUs' types (capturing their heterogeneity in relay channel gains and evaluations of power consumptions) are private information and not known by PUs. Inspired by the contract theory, we model the network as a labor market. The single PU is the employer who offers a contract to the SUs. The contract consists of a set of contract items representing combinations of spectrum accessing time (i.e., reward) and relaying power (i.e., contribution). The SUs are employees, and each of them selects the best contract item to maximize his payoff. We study the optimal contract design for both weak and strong incomplete information scenarios. First, we provide necessary and sufficient conditions for feasible contracts in both scenarios. In the weak incomplete information scenario, we further derive the optimal contract that achieves the same maximum PU's utility as in the complete information benchmark. In the strong incomplete information scenario, we propose a Decompose-and-Compare algorithm that achieves a close-to-optimal contract. We future show that the PU's average utility loss due to the suboptimal algorithm and the strong incomplete information are both relatively small (less than 2% and 1.3%, respectively, in our numerical results with two SU types).