A method for controlling the distribution of a data item using a data set, or hash table, and a blockchain, wherein the data set is stored at a data storage wherein the data set comprises a first encrypted data item and a first file identifier paired with the first encrypted data item, and the first encrypted data item has been generated by an encryption of the data item by a first user terminal using a first public key, wherein the blockchain comprises the first file identifier and a first recipient identifier identifying one or more, or a plurality of, allowed first recipients with access to the data storage and the blockchain, and each allowed first recipients has the first recipient identifier and a first private key matching the first public key, wherein the first file identifier is paired with the first recipient identifier in the blockchain wherein the method is performed by a second terminal being an allowed first recipient of the one or more, or the plurality of, allowed first recipients, and the method comprises: - identifying the first file identifier in the blockchain using the first recipient identifier, - sending a request containing the first file identifier to the data storage for a downloading of the first encrypted data item, - receiving the first encrypted data item from the data storage, and - decrypting the first encrypted data item using the first private key, wherein the second user terminal has a second public key, and the method further comprises: - generating a second encrypted data item by an encryption of the decrypted first encrypted data item using the second public key, - generating a second file identifier, - sending the second encrypted data item and the second file identifier to the data storage for an updating of the data set with the second encrypted data item paired with the second file identifier, and - adding the second file identifier and a second recipient identifier to the blockchain, wherein the second recipient identifier identifies, or is associated with, one or more, or a plurality of, allowed second recipients with access to the data storage and the blockchain, and each allowed second recipient has the second recipient identifier and a second private key matching the second public key. - identifying the first file identifier in the blockchain using the first recipient identifier, - sending a request containing the first file identifier to the data storage for a downloading of the first encrypted data item, - receiving the first encrypted data item from the data storage, and - decrypting the first encrypted data item using the first private key, - generating a second encrypted data item by an encryption of the decrypted first encrypted data item using the second public key, - generating a second file identifier, - sending the second encrypted data item and the second file identifier to the data storage for an updating of the data set with the second encrypted data item paired with the second file identifier, and - adding the second file identifier and a second recipient identifier to the blockchain, wherein the second recipient identifier identifies, or is associated with, one or more, or a plurality of, allowed second recipients with access to the data storage and the blockchain, and each allowed second recipient has the second recipient identifier and a second private key matching the second public key.