* 중요하지 않은 부분은 제외하고 개념과 기술 위주로 정리

지갑
Wallet
사람들이 가장 많이 하는 오해는 비트코인 지갑에 비트코인이 동전처럼 땡그랑- 들어있다고 생각하는 것이다. 코인은 비트코인 네트워크의 블록에 기록되고, 비트코인 지갑에는 앞 장에서 본 ‘키’만 들어있다. 비트코인 지갑 = 키링(개인키, 공개키 한 쌍이 엮여있는)으로 이해하면 쉽다.
1) 넓은 의미
An application that serves as the primary user interface. It controls access to a user’s money, managing keys and addresses, tracking the balance, and creating and signing transactions.
기본 사용자 인터페이스로 사용되는 응용 프로그램으로 사용자의 돈에 접근하고, 키와 주소 관리, 잔액 추적, 트랜잭션 생성 및 서명을 제어한다.
2) 좁은 의미
The data structure used to store and manage a user’s keys.
사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조를 의미한다.
The wallet contains only keys
Users control the coins on the network by signing transactions with the keys in their wallets.
사용자는 지갑의 키를 사용하여 트랜잭션에 서명함으로써 코인에 대한 소유권을 증명한다.
Two primary types of wallets
distinguished by whether the keys they contain are related to each other or not

비결정적 지갑
1) Nondeterministic Wallet (JBOK wallet : Just a Bunch Of Keys) - 비결정적 지갑
Each key is independently generated from a random number.
서로 간의 관계성이 없는 키를 무작위로 생성하는 방법
If you generate many of them you must keep copies of all of them, meaning that the wallet must be backed up frequently. 많은 수의 키를 생성 할 경우, 모든 키의 복사본을 보관해야하므로 백업과 저장에 대한 문제가 있다.

결정적 지갑
2) Deterministic Wallet - 결정적 지갑
Contain private keys that are all derived from a common seed, through the use of a one-way hash function.
공통 시드에서 단방향 해시 함수를 통해 키를 연속으로 생성하는 방법

해시 함수 개념
The seed is sufficient to recover all the derived keys, and therefore a single backup at creation time is sufficient.
해시 함수는 입력값이 같은 경우 동일한 출력값을 생성하기 때문에 공통 시드만 알고 있다면 모든 키를 복원할 수 있다.

계층 결정적 지갑
3) HD Wallet (Hierarchical Deterministic wallet) - 계층 결정적 지갑
Derive many keys from a single seed.
루트 시드에서 트리 구조로 많은 키를 생성하는 방법
Contain keys derived in a tree structure, such that a parent key can derive a sequence of children keys, each of which can derive a sequence of grandchildren keys, and so on, to an infinite depth.
부모키가 자식키열을 만들고 각각의 자식키가 또 손자키열을 만들어내므로, 매 거래마다 새로운 주소를 생성하여 익명성이 보장된다.
상위 계층의 키로 하위 계층의 키를 제어할 수 있지만 역은 불가능하다.