In smart cities, Internet of Things (IoT) technology can enable intelligence in various fields such as urban transportation, energy, environment, and security. While a large number of terminals collect data to bring efficiency and convenience, the problem of data security is becoming increasingly severe. Although existing centralized cloud services can provide powerful computing and storage resources, they also present risks such as data congestion, single points of failure, and privacy leakage. In order to address the above challenges, this paper proposes a blockchain-based decentralized storage management scheme for IoT data in smart cities scenario to improve data storage security. The scheme uses a non-interactive verification mechanism, combined with smart contracts, to realize automatic data verification. Set rewards and penalties to ensure fairness in IoT data storage transactions. The security analysis shows that the data verification mechanism proposed in this paper can effectively mitigate multiple attacks. We deploy smart contracts on the Ethereum platform and conduct experimental evaluations, then write smart contracts on the chain and test the Gas consumption of the contracts. We also evaluate the time efficiency of the algorithms off the chain, and the experimental results prove the practicality of the proposed scheme.