The hard problem: reads are free and off-chain. The contract has no way to know when someone downloads and decrypts a document.