The widespread acceptance of data sharing has promoted the relevant research in both academia and industry. ''Data sharing'' is the process of interchanging data among multiple data sources in a controllable access manner. Any such system provides common functionality of storage and access; however, there are prominent differences in non-functionalities, such as self-control, transparency, costeffectiveness, incentive, and auditing, which make data sharing in a dilemma. In this paper, we propose a distributed data sharing model based on blockchain technology: data owner publishes data with an additional control policy; data consumer inquires data with an access request; and consensus nodes evaluate the request and make decisions. After formalizing the system model, we discuss the procedure of data sharing, reputation management, and proposed solution. With the access control policy, price compensation, and reputation management mechanism, we achieve self-control and price balance in sharing data. Our model is equally a closed-loop control system that acts as a regulator of supervising its participants. The analyses and experimental results show, comparing with the existing sharing systems, that our model is practical and can spur agents to participate actively in sharing data.