A method comprising determining if two separated distributed ledgers, a first distributed ledger and a second distributed ledger, share a common history, and merging the two distributed ledgers if the determination has revealed that the two distributed ledgers are forks, a first fork and a second fork, of a same original distributed ledger, and wherein determining if the two distributed ledgers are forks is based on a challenge response authentication scheme, wherein the challenge response authentication scheme comprises: the first distributed ledger sending (S201; S202) one or more challenges (CA 1,...,CA L) respectively corresponding to L blocks of transactions present in the first distributed ledger to the second distributed ledger, wherein each of the one or more challenges (CA 1,...,CA L) comprises a request to return a hash value of a respective corresponding block i in L blocks of transactions in the second distributed ledger, the second distributed ledger returning the respective hash values (H(RA 1),...,H(RA L)) of the L blocks of transactions in the second distributed ledger, the first distributed ledger checking if the returned hash values (H(RA 1),...,H(RA L)) are correct by checking if a number of matches between the returned hash values (H(RA 1),...,H(RA L)) and respective hash values of the L blocks of transactions in the first distributed ledger exceeds a predefined number. determining if two separated distributed ledgers, a first distributed ledger and a second distributed ledger, share a common history, and merging the two distributed ledgers if the determination has revealed that the two distributed ledgers are forks, a first fork and a second fork, of a same original distributed ledger, and wherein determining if the two distributed ledgers are forks is based on a challenge response authentication scheme, wherein the challenge response authentication scheme comprises: the first distributed ledger sending (S201; S202) one or more challenges (CA 1,...,CA L) respectively corresponding to L blocks of transactions present in the first distributed ledger to the second distributed ledger, wherein each of the one or more challenges (CA 1,...,CA L) comprises a request to return a hash value of a respective corresponding block i in L blocks of transactions in the second distributed ledger, the second distributed ledger returning the respective hash values (H(RA 1),...,H(RA L)) of the L blocks of transactions in the second distributed ledger, the first distributed ledger checking if the returned hash values (H(RA 1),...,H(RA L)) are correct by checking if a number of matches between the returned hash values (H(RA 1),...,H(RA L)) and respective hash values of the L blocks of transactions in the first distributed ledger exceeds a predefined number. the first distributed ledger sending (S201; S202) one or more challenges (CA 1,...,CA L) respectively corresponding to L blocks of transactions present in the first distributed ledger to the second distributed ledger, wherein each of the one or more challenges (CA 1,...,CA L) comprises a request to return a hash value of a respective corresponding block i in L blocks of transactions in the second distributed ledger, the second distributed ledger returning the respective hash values (H(RA 1),...,H(RA L)) of the L blocks of transactions in the second distributed ledger, the first distributed ledger checking if the returned hash values (H(RA 1),...,H(RA L)) are correct by checking if a number of matches between the returned hash values (H(RA 1),...,H(RA L)) and respective hash values of the L blocks of transactions in the first distributed ledger exceeds a predefined number.