A method of proving the immutability of digital records in a blockchain in a first entity, comprising: storing, by the first entity, the digital records in the blockchain including a sequence of blocks; each block having a hash value computed from a content of a current block and all its previous blocks; regularly sending, by the first entity to a first external party and a second external party, at least one hash value; storing, by the first external party, the at least one hash value sent from the first entity in a blockchain in the first external party; storing, by the second external party, the at least one hash value sent from the first entity in a blockchain in the second external party; computing, by a second entity, a re-computed hash value of a specific block from the digital records stored at the first entity, starting from a selected block (511; 513) of the sequence of blocks to the specific block; retrieving, by the second entity, a hash value of the specific block from the blockchain in the first external party and the blockchain in the second external party by mapping a key index, wherein the key index corresponds to the specific block in the sequence of blocks in the first entity; comparing, by the second entity, the hash value retrieved from the blockchain in the first external party to the hash value retrieved from the blockchain in the second external party in order to verify the data integrity of the first external party and the second external party; comparing, by the second entity, the re-computed hash value and the hash value retrieved from the blockchain in the first external party or from the blockchain in the second external party; and proving, by the second entity, that the digital records have not been changed up to the specific block if the re-computed hash value is the same as the hash value retrieved from the blockchain in the first external party or from the blockchain in the second external party. storing, by the first entity, the digital records in the blockchain including a sequence of blocks; each block having a hash value computed from a content of a current block and all its previous blocks; regularly sending, by the first entity to a first external party and a second external party, at least one hash value; storing, by the first external party, the at least one hash value sent from the first entity in a blockchain in the first external party; storing, by the second external party, the at least one hash value sent from the first entity in a blockchain in the second external party; computing, by a second entity, a re-computed hash value of a specific block from the digital records stored at the first entity, starting from a selected block (511; 513) of the sequence of blocks to the specific block; retrieving, by the second entity, a hash value of the specific block from the blockchain in the first external party and the blockchain in the second external party by mapping a key index, wherein the key index corresponds to the specific block in the sequence of blocks in the first entity; comparing, by the second entity, the hash value retrieved from the blockchain in the first external party to the hash value retrieved from the blockchain in the second external party in order to verify the data integrity of the first external party and the second external party; comparing, by the second entity, the re-computed hash value and the hash value retrieved from the blockchain in the first external party or from the blockchain in the second external party; and proving, by the second entity, that the digital records have not been changed up to the specific block if the re-computed hash value is the same as the hash value retrieved from the blockchain in the first external party or from the blockchain in the second external party.