Smart cities have got a rapid development with the advances of information and communication technologies such as Internet of Things (IoT). To tackle with the data storage issues raised by large-scale data generated by IoT devices, an increasing number of enterprises and individuals prefer to outsource their data to cloud, where data integrity becomes a concern to cloud users. A variety of provable data possession (PDP) protocols have been proposed for centralized cloud storage scenarios so far. However, centralized cloud relies too much on the trust of the central servers and thus, is prone to the single point of failure. In this paper, we describe a blockchain-based PDP model to realize decentralized outsourcing storage framework, and then present a concrete construction of decentralized provable data possession by using multi-replica storage tricks. Moreover, our protocol provides dynamic operations for outsourced data and at the same time, guarantees the fairness of all parties involved. We provide a detailed security proof for the proposed protocol and deploy a smart contract for the protocols as well. We finally evaluate the algorithms and the implementation results demonstrate the practicability of the proposed protocol.