Homework on Hash Functions - Questions

1- A hash function is a string of letters and numbers for specific given data or information.

2- They are used as cryptographic hash functions in which they secure the network by linking every block to the previous one, in which if a hacker tries to hack or change any piece of information that would require the change of every block in the blockchain which would cause the collision of the entire network.

3- it means that every hash needs to be unique in which there aren’t two hashes that have the same string of letters and numbers. and that doesn’t mean that it is impossible but it means that it’s very unlikely to happen that it wouldn’t even matter if it happens once.

  1. Hash function is a function produces unique out put from each input

  2. To identify digital signeture , validate transaction and produce new wallet addresses

  3. means hash functions should not produce same out put for 2 different inputs

  1. A hash function is a one-way function, where a particular input will always lead to the same unique output. Simply put, it is like the fingerprint of an input. A hash function’s security increases with its number of bits.

  2. Hash functions like SHA256 are used in cryptocurrencies to encrypt transactions, as well as in the mining process where miners brute force until they generate a hash that is lower than the difficulty level. SHA256 hashes are hexadecimal numbers and the number has to be lower than that of the current difficulty level in order to create the next block. Because a network of more powerful nodes will generate that hash faster, the difficulty level will adjust accordingly. This ensures a block creation time of 10 minutes, so that no duplicate blocks will be created that then exist outside of the blockchain. The first node to generate the hash lower than the difficulty wins, and thus gets the block rewards in bitcoin. In a pool several nodes act as one node and share the reward.
    Each block has a hash pointer to the next block in order to link the blocks together, thus creating a chain of blocks. Every transaction’s hashes between two blocks will be combined into a merkle tree. The merkle root is then added to the block. This combination simplifies the structure of transaction and is better than a sequential list.

  3. A collision in a hash function describes the rare event of two different inputs resulting in the same hash. Because the number of possible hashes is not infinite, it is technically possible. It is, however, extremely unlikely for this to happen in a reasonable amount of time. The higher the number of bits used in the hashing algorithm, the longer it takes for a collision to occur.

Side note: All of the questions have been, although somewhat simplified, addressed in the previous reading assignment.

  1. A hash function is a one way operation where an input, no matter how complex, results in a unique, specific-length output. However, the input can never be determined from the output. (except through brute-force, which is infeasible.)

  2. They secure the information within each block and tie blocks together.

  3. Two different sets of data should not result in the same hash.

  1. Hash function is a one-way function to produce a “digital finger print” of an input. However, you cannot generate the input from the generated finger print (ie output). It is Pre-Image Resistant.

  2. Hashing is used exclusively in everything in the Bitcoin blockchain. Every data in the blockchain is hashed forming a Merkle Tree. The Merkle Root eventually together with nonce, timestamp, previous block hash which forms the Block Header will be hashed again to be input into the next block in the chain.

  3. Hash function is collision resistant if it is hard to find two different inputs that may result in the same output.

  1. A hash function creates a digital fingerprint for an input and you cannot figure out the input from the output.

  2. Hash functions are used to encrypt transactions on the blockchain and to generate encrypted keys for wallets.

  3. Collision resistant means that the chance of two different inputs to get the same output is incredibly low.

  1. Hash functions turn any length input into a fixed character number.

  2. The hash of the previous block becomes the header for the next block.

  3. Collisions are multiple outputs from a single input.

  1. Describe hash functions with your own words
    A hash function turns an input with arbitrary length into an output with a predefined number of characters. It’s a one way function that only works from input to output.

  2. How are hash functions used in cryptocurrencies like bitcoin? (Try to research this on your own, we will cover this later in the course but challenge yourself and see if you can find information on this already now).
    Hash functions are used in the mining process. Every block receives a unique hash.

  3. What does it mean when we say that hash functions need to be collision resistant? (We didn’t use the term “collision resistant” in the lecture, but you will easily find this on Google, we add this question intentionally to make you research information on your own, that’s how you learn best).
    Collision resistant means, that for every unique input, there is a unique hash. It’s not possible that two different inputs result in the same hash.

A hash function is a unique fingerprint of of a particular
input. One small change in the original input will create
a completely different and unique output.

Hash functions are used in cryptocurrencies to document a particular transaction
in the public ledger. The transaction is verified by the decentralized
blockchain and is secured from hacking by the hash encryption algorythm.

It is the rare occurrence that 2 different inputs will generate
the same output hash. When this circumstance happens it is referred to as
a collision. Due to the high frequency of hash transactions it is unlikely that
a collision will occur.

  1. hash functions are a one way process that takes any input and transforms it into a fixed number output.
  2. hash function sha 256 is used to encrypt the previous block to derive the block header of the next block making a chain of encrypted blocks.
  3. collisions are multiple outputs of hashed inputs
  1. its a digital fingerprint thats allows to make an input to get a specific output but not being able to look at any output and figuring out the input.

  2. In the bitcoin protocol, hash functions are part of the blockchain algorythm which is used to write new transactions into the blockchain through the mining process.

  3. it needs to be very difficult to find 2 inputs that has the same output.

Homework on Hash Functions - Questions

  1. Describe hash functions with your own words
    A hash function is a function that takes an input and gives an output. In a hash function it is really important that it is impossible to go from output to input. It is know as a one way function.

  2. How are hash functions used in cryptocurrencies like bitcoin? (Try to research this on your own, we will cover this later in the course but challenge yourself and see if you can find information on this already now). Every block’s hash also includes the hash of the last block in the input. Also, in mining, miners try to brute force (guess) the input that will cause the hash to have a certain number of 0’s at the beginning of the string. The more 0’s required the more the difficulty increases and the more computing power it takes to find the anwer.

  3. What does it mean when we say that hash functions need to be collision resistant? (We didn’t use the term “collision resistant” in the lecture, but you will easily find this on Google, we add this question intentionally to make you research information on your own, that’s how you learn best).

Because a hash has only a certain number of characters, it means that 2 inputs can have the same output. For example, if I input the numbers 1 and 10 in a hash function and it outputs the same answer, that hash function would be very mediocre because there was a “collision” right there (2 inputs with the same output). Of course there will always be pairs of inputs with the same output, but we want it protected by the law of large numbers, so it is very unlikely to occur.

  1. A hash function is a function that produces a unique fingerprint of a fixed length, of the input given.

  2. Hash functions are completely unique and attached to the input. This makes it really easy to detect even the smallest changes in the input. In cryptocurrencies like Bitcoin, all blocks and transactions are defined and identified by a hash, that’s calculated by the content of the transactions and the blocks. Each block has also a hash of the previous block so every block will always stay in the correct order. This also ensures correctness in the blockchain since a block becomes invalid if the hash pointing to the previous block does not match with any block hash (which it won’t if someone tampers with previous transactions/blocks, since change of an input changes the hash).

  3. Hash functions need to be collision resistant in order to ensure 99.99 % correctness. If a hash function is not collision resistant it means that 2 different inputs are highly likely to give the same output. That would be fatal. Collision resistance does not mean that collisions will never happen; it means it’s highly unlikely.

Collision resistance is important to prevent unnoticed tampering, like changing “Ivan sends 1 BTC to Sebastian” to “Ivan sends 1.000 BTC to Sebastian” and receiving the same hash.

  1. Hash function is when every input (regardless of the leght) gets a unique output of a fixed lenght. As a finger print. The smallest change on the input date will completely change the output.,

  2. Hash functions are used in bitcoin to secure data in the blockchain from hackers. It also amkes it easier to store data.

  3. Its important for hash function to be collision resistance to significantly reduce the chances of getting repeated outputs.

1 Funções de hash são formas de algoritmos utilizados para garantir a segurança/integridade de um dado/informação ao transformar esse dado/informação de entrada em uma informação de saída padronizada. Existem diversas funções hash, elas podem ser utilizadas para criptografia e assinaturas digitais. Quando utilizada em assinaturas digitais a função de hash, através de algoritmos irá criar um ouput (informação de saída) através de cálculos e informações pré estabelecidas na fórmula do algoritmo. Essa informação pode ser utilizada para checar a imutabilidade do input(informação de entrada).

2 As funções de Hash são a forma de criar o consenso na blockchain, no caso o Proof of Work. Através de cálculos matemáticos os mineradores buscam encontrar uma hash correspondente ao critério pré estabelecido pela dificuldade da rede. Ao encontrar uma hash compatível dizemos que o bloco foi minerado e a hash será utilizada no cálculo da hash do próximo bloco, isso faz com que todos os blocos sejam interligados pelas hashs, criando imutabilidade e segurança na blockchain.

3 Significa dizer que a probabilidade de dois inputs(os inputs são os dados utilizados para cálculas a hash) resultarem em um mesmo output(hash do bloco) é infinitamente pequena.

  1. Describe hash functions with your own words

Hash functions are inputs that produce a unique output that can not be reversed. The output produced is a digital fingerprint.

  1. How are hash functions used in cryptocurrencies like bitcoin? (Try to research this on your own, we will cover this later in the course but challenge yourself and see if you can find information on this already now).

From the Input data the hashing algorithm sha-256 creates a unique Output known as the Hash, this can not be reversed. The Miners solve complicated math, once solved, then a block is created. This is Proof of Work.

  1. What does it mean when we say that hash functions need to be collision resistant? (We didn’t use the term “collision resistant” in the lecture, but you will easily find this on Google, we add this question intentionally to make you research information on your own, that’s how you learn best).

So that two Inputs can not produce the same Output.

  1. A hash function is a one way system of encryption that is very secure.
  2. Hash functions are part of the security of bitcoin mining. There can only be one correct answer and it takes time, so more secure. Resistance to brute-force attacks. Also as a signature.
  3. Cryptographic hash functions must have what’s known as collision resistance. This means that it must be extremely unlikely— in other words, practically impossible— to find two different inputs that produce the same output.
  1. A hash function takes an input, that can be a text, an image, a video, anything digital… and “hashes” it (transforms it through the hash function), in an one-way, not reversible, process. This function produces an output, which is a sequence of digits and letters, depending of the hashing algorithm used.

  2. In Bitcoin, the SHA-256 hash function is used in the process of creating a Bitcoin address from a public key (along with another hashing algorithm, RIPEMD160). Furthermore, SHA-256 is used as well when a block is mined (Proof of work algorithm).

  3. Collision resistance is a property of cryptographic hash functions. A hash function is collision resistant when it is not feasible to find two inputs that has one output. For example, today it is infeasible to break the SHA-256 hash function, because we would need trillions of years, with the today’s actual computational power, to brute-force the 256-bit hash. In the future, when quantum computing will eventually arrive, participants in the Bitcoin network will probably agree on strengthening and complexifying the hashing algorithms used, so in my opinion, hash functions used in Bitcoin will be collision resistant for a very long time.

  1. Hashing means generating letters and numbers which are based on string of text by using mathematical conversion.

  2. Hash functions are used in mining new blocks. Blocks are chained with block hash, which is formated from all of the transactions in the block. Also it’s adding security due to infeasible complexity to guess right “message”.

  3. It means that two different inputs can’t have same hash output. It’s statistically unlikely to happen.

  1. Describe hash functions with your own words

Hash functions are used to create a unique digital fingerprint for each unique input.

  1. How are hash functions used in cryptocurrencies like bitcoin? (Try to research this on your own, we will cover this later in the course but challenge yourself and see if you can find information on this already now).

Bitcoin uses SHA 256 hashing to create a 64-bit hexadecimal numbers that represent each block in the cryptocurrency chain.

  1. What does it mean when we say that hash functions need to be collision resistant? (We didn’t use the term “collision resistant” in the lecture, but you will easily find this on Google, we add this question intentionally to make you research information on your own, that’s how you learn best).

Collision resistant means that it is highly unlikely that the same hash is created for two different inputs. Bitcoin achieves this by creating new blocks every 10 minutes, which reduces the chance of having a collision with high hash rate.