🎁 지갑의 유형

개인키를 랜덤하게 생성하는 비결정적 방식과 공통 시드로부터 생성하는 결정적(deterministic) 방식이 있다.

비결정적 방식 지갑

여러개의 키를 랜덤하게 만드는 방식으로 Type-0형 지갑이라고 한다. 키들은 독립적으로 랜덤하게 생성되고 아무런 연관성이 없다.

🥎 결정적 방식 지갑 (Deterministic Wallet)

같은 상태라면 똑같은 입력을 주었을 때 항상 같은 결과가 나오는 방식이다. 시드 값과 해시 함수를 이용해서 연쇄적으로 키를 만든다. 각 키들은 시드값을 시작으로 키체인을 이룬다. 키들은 독립적이지 않고 관계를 갖는다. 초기 시드값으로는 단어 목록이나 문장을 사용할 수 있다.

결정적 방식은 초기 시드 값만 보관하면 나머지 키들은 언제든지 다시 만들 수 있다. 이방식을 Type-1형 지갑이라고 하고 이를 보완한 방식으로는 BIP-32로 제안된 계층적 구조를 가진 Type-2형 지갑이 있다.

🎲 계층적 구조의 결정적 방식 (Hierarchical Deterministic Wallet: HD Wallet; BIP-32)

HD지갑은 계층적 구조로 키와 지갑 주소를 관리 할 수 있다. 마스터 시드로 마스터 개인키와 공개키를 만들고, 마스터키로 하위 계층의 키와 주소를 생성한다.

이 구조의 특징은 하위 계층의 공개키를 만들 때 상위 계층의 공개키를 사용한다는 것이다. 이렇게 만든 공개키는 자기 계층의 개인키로 만든 공개키와 같다. 특정 계층의 개인키-공개키 쌍은 암호학적 틍징을 갖추고 있으므로 전자서명과 검증에 사용될 수 있다.

📓 니모닉 코드 (BIP-39)

사용자가 임의로 문장이나 단어목록을 지정하면 Brain Wallet이 되고, 사전에서 랜덤하게 문장이나 단어목록을 지정하면 Mnemonic Wallet이 된다.

BIP-39는 단어목록을 안전하게 선택하는 방법을 제안하고 있다.

🚕 트랜잭션

블록체인 네트워크의 목적은 트랜잭션이다. 암호, 지갑, 채굴 등 트랜잭션 이외의 요소들은 트랜잭션을 안전하게 만들기 위한 부수적인 것이다. 트랜잭션은 블록체인 기록된 코인의 소유권을 이전하는 절차이다. 트랜잭션에는 보내는 사람과 받는 사람이 있어야 하고 대상인 코인(잔액)이 있어야 한다.

🐘 트랜잭션ID

트랜잭션 데이터는 최종적으로 블록체인의 특정블록에 저장된다. 트랜잭션의 고유 ID로는 트랜잭션 데이터의 해시 값이 사용된다. 이 ID를 통해서 블록체인에서 데이터를 검색할 수있다.

가스 비용

가스 : 트랜잭션을 실행하기 위한 수수료의 단위

1 Ether = 1,000,000,000 Gwei