Bitcoin Interview Questions
Here is an interesting list of Bitcoin-specific questions. It can help you prepare for an interview, regardless of which side of the table you sit.
Some of the questions are pretty open-ended and only require the interviewee to show how much they know about a certain subject, even if they don't know all of its intricate details.
Nope. Not yet, anyway.
However, the answers can be found in the list of resources provided at the end. It's the job of the interviewee to go and do their own research, learn about what they don't know, dig deeper and make up their own answer. This list only provides a starting point of things to go and explore.
You're welcome to contribute to this guide (please do), just keep a couple of things in mind.
I've left all the trivia questions out of this guide. Questions like
how many bitcoin will there ever be?or
who created bitcoin?are of very little value.
Please don't submit PRs reformatting the whole thing.
Table of contents
- Helpful learning resources
- Credits for some of the questions and exercises:
- What is a soft fork vs a hard fork?
- What is the difference between a full node client and an SPV client?
- What consensus rules do you know?
- What are your favorite bitcoin improvement proposals (BIPs)?
- What is Segregated Witness, how does it work and what problems does it solve?
- In a nutshell, how does lightning network work?
- What does the HD in HD wallet mean? How does it work?
- What's the difference between mnemonics, passphrases and passwords in the context of HD wallets?
- How does Proof-of-work work?
- Why is it almost impossible for miners to mine competing blocks having the same hash?
- What are the difficulty and the target? How are they calculated?
- How does a miner go about constructing a block?
Privacy and Security
- Why do we advise users to only use addresses once?
- Do you know any mixing protocols? How do they work?
- What types of attacks on Bitcoin do you know?
- What is Byzantine Fault Tolerance?
- How does Bitcoin achieve Byzantine Fault Tolerance?
- What P2P message types do you know? What do they do?
- How are peers discovered on the network?
- What are blind signatures?
- what is a hash function vs cryptographic hash function?
- What is ECDSA used for in Bitcoin? How does it work?
- How do digital signatures work?
- What types of cryptography are used in Bitcoin?
- What is a cryptographic commitment?
- What does IBD mean?
- What is headers-first?
Transactions and scripts
- What is the particularity of OP codes ending in *VERIFY?
- What are inputs and outputs in transactions?
- What is meant by a dust output?
- What is the purpose of the different signature hash types?
- What does the sequence in a transaction input mean?
- What is a transaction lock time?
- What is transaction malleability?
- What are Merkle trees, Merkle roots and why is it useful in Bitcoin?
- How is a P2PKH bitcoin address constructed?
- What's P2SH and how does it work?
- What are bech32 addresses?
- In what cases can we have orphaned transactions?
- What are little endian and big endian?
How can this be spent?
IF <Bob PubKey> CHECKSIG ELSE <Alice PubKey> CHECKSIG ENDIF
How can this be spent?
IF <Bob PubKey> CHECKSIGVERIFY HASH160 <Bob Hash> EQUAL ELSE <Alice PubKey> CHECKSIG ENDIF
What does this do?
IF IF 2 ELSE <30 days> CHECKSEQUENCEVERIFY DROP <A PubKey> CHECKSIGVERIFY 1 ENDIF <B PubKey> <C PubKey> <D PubKey> 3 CHECKMULTISIG ELSE <90 days> CHECKSEQUENCEVERIFY DROP <A PubKey> CHECKSIG ENDIF
Helpful learning resources
Bitcoin source code
Bitcoin Developer Documentation
Bitcoin Stack Exchange
Learn me a Bitcoin
SF Bitcoin Developers YouTube Channel
Bitcoin Peer-to-Peer Network Programming
Blockchain tutorial videos