Blockchain Technology Cryptographic Principles 2 — Questions and Answers
Question 1: What property of a cryptographic hash function ensures that finding two different inputs with the same hash output is computationally infeasible?
- Pre-image resistance
- Collision resistance (Correct answer)
- Second pre-image resistance
- Avalanche effect
Correct answer: Collision resistance
Collision resistance means it is computationally infeasible to find two distinct inputs that produce the same hash output.
Question 2: In elliptic curve cryptography (ECC), what is the 'discrete logarithm problem' that provides security?
- Factoring large prime numbers
- Finding integer k given points P and Q=kP on the curve (Correct answer)
- Solving quadratic residues modulo a prime
- Computing modular exponentiation efficiently
Correct answer: Finding integer k given points P and Q=kP on the curve
ECC security relies on the difficulty of finding scalar k when given curve points P and Q=kP, known as the elliptic curve discrete logarithm problem.
Question 3: Which Merkle tree property allows a lightweight client to verify a transaction without downloading the entire blockchain?
- Root hash aggregation
- Merkle proof (branch verification) (Correct answer)
- Leaf node encryption
- Binary tree balancing
Correct answer: Merkle proof (branch verification)
A Merkle proof provides the sibling hashes along the path from a leaf to the root, letting a client verify inclusion with O(log n) data.
Question 4: What does the term 'nonce' refer to in the context of blockchain mining?
- A one-time cryptographic key for encrypting transactions
- A number miners adjust to find a valid proof-of-work hash (Correct answer)
- A timestamp appended to each block header
- A random salt added to wallet addresses
Correct answer: A number miners adjust to find a valid proof-of-work hash
Miners increment the nonce field in the block header until the resulting hash meets the network's difficulty target.
Question 5: In a digital signature scheme, what is verified using the signer's public key?
- The encrypted plaintext of the message
- The signature produced with the signer's private key (Correct answer)
- The symmetric key used to encrypt the message
- The hash of the recipient's address
Correct answer: The signature produced with the signer's private key
Anyone with the signer's public key can verify that the signature was created by the corresponding private key without revealing it.
Question 6: Which cryptographic primitive is used in zero-knowledge proofs to allow one party to prove knowledge of a secret without revealing it?
- Symmetric encryption
- Commitment schemes (Correct answer)
- HMAC functions
- Block ciphers
Correct answer: Commitment schemes
Commitment schemes let a prover commit to a value and later prove properties about it without disclosing the value itself, forming a foundation for zero-knowledge proofs.
Question 7: What is the purpose of a 'salt' in cryptographic password hashing used to protect wallet credentials?
- To speed up the hashing computation
- To prevent precomputed rainbow table attacks (Correct answer)
- To ensure the hash output is fixed-length
- To add a public key component to the hash
Correct answer: To prevent precomputed rainbow table attacks
A random salt is added to each password before hashing so that identical passwords produce different hashes, defeating precomputed rainbow tables.
What property of a cryptographic hash function ensures that finding two different inputs with the same hash output is computationally infeasible?