To solve the single point of failure and opaque transaction problems in the current centralized data trading model, we propose a blockchain-based data trading scheme. Firstly, we construct a blockchain-based data transaction model to provide users with peer-to-peer trusted transaction services. Then, we design a two-stage one-to-many data pricing method based on smart contracts and the Rubinstein model, which can guarantee the reasonableness of data transaction pricing and achieve a fair price between a single data demander and multiple data owners. Next, we suggest a forensic dispute arbitration method based on on-chain and off-chain data collaboration and a data integrity verification method, which aims to ensure the reliability of de-centralized data transactions and prevent malicious acts such as data owners providing false data, data requesters refusing to pay, and data stored in the cloud being tampered with. Finally, we perform experiments based on consortium blockchain. Experimental results show that the scheme of this paper has better functionality and performance than other schemes of data transactions.