  Trading data through blockchain platforms is hard to achieve \textit{fair
exchange}. Reasons come from two folds: Firstly, guaranteeing fairness between
sellers and consumers is a challenging task as the deception of any
participating parties is risk-free. This leads to the second issue where
judging the behavior of data executors (such as cloud service providers) among
distrustful parties is impractical in the context of traditional trading
protocols. To fill the gaps, in this paper, we present a
\underline{b}lockchain-based \underline{d}ata \underline{t}rading
\underline{s}ystem, named BDTS. BDTS implements a fair-exchange protocol in
which benign behaviors can get rewarded while dishonest behaviors will be
punished. Our scheme requires the seller to provide consumers with the correct
encryption keys for proper execution and encourage a rational data executor to
behave faithfully for maximum benefits from rewards. We analyze the strategies
of consumers, sellers, and dealers in the trading game and point out that
everyone should be honest about their interests so that the game will reach
Nash equilibrium. Evaluations prove efficiency and practicability.
