CS120 Study Guide

Unit 6: Bitcoin Nodes and Wallets

6a. Describe the functions of a full node 

  • What is the definition of a full Bitcoin node, and how does it compare to a mining node?

A Bitcoin node is a computer that participates in the Bitcoin network. A Bitcoin node can consist of a combination of the following functions: a miner, a wallet, a network router, and storage of the Bitcoin Blockchain, although to be considered a Bitcoin node, it is necessary that the computer participates in network routing.
 
A Bitcoin full node keeps a complete and up-to-date record of the entire Bitcoin blockchain and can independently and authoritatively verify Bitcoin transactions.
 
A mining node, by comparison, needs only to run the mining protocol and may defer the other functions of a full bitcoin node to a pool protocol.
 
To review, see What is the Role of Nodes? and Running Your Own Node.
 

6b. Experience Bitcoin node and wallet functionality by setting up a regtest node and using it to perform basic functions 

  • What are some of the primary functions of Bitcoin nodes, and what types of Bitcoin networks are available for testing purposes?

Bitcoin nodes are used for mining, verifying transactions, communicating with the network, and making and receiving Bitcoin transactions in the case of a node that is also a wallet.
 
There are three main network types:

  1. Mainnet, where the actual Bitcoin blockchain runs
  2. Testnet, an equivalent Bitcoin network that uses test Bitcoin to allow for testing by developers and Bitcoin users without the need to risk real bitcoin.
  3. Regtest, a completely local version of the Bitcoin network, allows simple and lightweight developer testing and testing modifications to network protocols.

To review, see Exercise: Set Up a Regtest Node and Running Your Own Node.
 

6c. Distinguish between the different functions of a Bitcoin wallet 

  • What are the primary functions of a Bitcoin wallet from the developers' point of view? And from the point of view of an end-user?

From the developer's point of view, the primary function of a Bitcoin wallet is a key storage and management system.
 
From the end user's point of view, the primary function of a Bitcoin wallet is a user interface that allows them to interact with the Bitcoin network, that is, to send and receive Bitcoin and track the balance of the bitcoin they control,
 
Remember: a Bitcoin wallet does not store bitcoin, but rather the private keys that allow bitcoin to be spent.
 
To review, see Wallets.
 

6d. Retrieve wallet data from a node 

  • What are some of the industry best practices for Bitcoin wallets that have improved interoperability and security?

As Bitcoin wallet technology developed, an unofficial set of best practices has developed, greatly improving standardization, interoperability, and security. Here are some of the most important best practices and a brief refresher on their purpose:

  • Mnemonic code words (BIP-39: makes transcribing private keys much easier and more accurate for end-users)
  • Hierarchical Deterministic - HD - (BIP-32/BIP-44: allows for wallets to continuously generate new addresses and public keys, improving security and making backups more reliable)
  • Multipurpose HD wallet structure (BIP-43: defines the structure of an HD wallet for standardization)
  • Multicurrency and multi-account wallets (BIP-44: allowing for wallets to track different currency conversions and organize transactions into different accounts)

To review, see Wallets.
 

Unit 6 Vocabulary

This vocabulary list includes terms you will need to know to successfully complete the final exam.

  • full node
  • Mainnet
  • Regtest
  • Testnet