0
$\begingroup$

I have a couple questions related to hashing and data. Please let me know if the questions I have are too broad for this site, or if clarification is needed.

I have read a lot about hashing as it relates to distributed ledger technology (DLT) like blockchains and directed acyclic graphs (DAG), but I am I am wondering if hashing is only to confirm that the data being hashed was unaltered, so I have some questions:

  1. Can hashes be used in other ways? For example, can a hash be used as an address to locate data?

  2. Since a hash is only one way I am guessing someone cannot obtain the original data before hashing, which means a hash is only a confirmation that data is unaltered?

  3. If data in the past is altered, the current hash encompassing previous data will change, but where is the original hash to compare it to that lets a user know that a hash has changed? I am guessing the correct hash is held by a majority of people in the DLT?

$\endgroup$
1
$\begingroup$
  1. Can hashes be used in other ways? For example, can a hash be used as an address to locate data?

Hashes of many kinds figure prominently almost everywhere in cryptography: stream ciphers, key derivation, message authentication, public-key signatures, public-key encryption, noninteractive zero-knowledge proofs, etc. They are indeed sometimes used as an address for data in content-addressed storage systems like Tahoe-LAFS.

  1. Since a hash is only one way I am guessing someone cannot obtain the original data before hashing, which means a hash is only a confirmation that data is unaltered?
  • If a hash function $H$ is second-preimage-resistant, and you know $h = H(m)$, then it is hard for an adversary to retroactively find $m' \ne m$ such that $h = H(m')$ even if they know $m$.
  • If a hash function $H$ is collision-resistant, then it is hard for an adversary to actively find $m' \ne m$ such that $H(m') = H(m)$, which would enable them to hand you a benign message $m$ for you to review, and later substitute a malicious message $m'$ for it without anyone being any the wiser because the hash didn't change.
  1. If data in the past is altered, the current hash encompassing previous data will change, but where is the original hash to compare it to that lets a user know that a hash has changed? I am guessing the correct hash is held by a majority of people in the DLT?

This depends on the details of the protocol. Nothing can be said in general. But usually in a complex data structure like a Merkle tree or a blockchain (which is a kind of pathologically unbalanced Merkle tree), the current hash is calculated over some data together with the previous hash.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.