Hash Functions and Digital Signatures
Since time immemorial, most contracts, meaning any kind of agreement between people or groups, have been written on paper and signed manually using a particular signature at the end of the document to authenticate the signatory. This was possible because, physically, the signatories were in the same place at the moment of signing. The signatories could usually trust each other because a third trustable person (a notary or legal entity) guaranteed their identities as a super-party entity.
Nowadays, people wanting to sign contracts often don’t know each other and frequently share documents to be signed via email, signing them without a trustable third party to guarantee their identities.
Imagine that you are signing a contract with a third party and will be sending it via the internet. Now, consider the third party as untrustable, and you don’t want to expose the document’s contents to an unknown person via an unsecured...