[블록체인] 2. 지갑

GisangLee·2022년 4월 13일
0

블록체인

목록 보기
2/5

1. 사용자 측면의 지갑

  • 비트코인 지갑은 Key 관리, 잔고 관리, 거래 생성, 거래 인증 , 거래 내역 관리 등의 기능을 수행.
  • Full 노드에서의 지갑은 블록체인 데이터를 모두 관리하고 있으므로 위의 기능을 모두 쉽고 안전하게 수행할 수 있으며 보안 위험에 대한 안정성 측면에서는 가장
    바람직한 형태의 지갑. 그러나 블록체인 데이터를 유지/관리하는 비용이 크다고 할 수 있음.
  • Lightweight (SPV) 지갑은 블록체인 데이터가 없으므로 주변 Full 노드에 의존. 이 지갑은 블록 헤더만 가지고 주변 Full 노드의 도움을 받아 잔고를 직접
    관리해야 하고, 거래 생성 후 거래 인증도 직접 관리해야 함. 블록체인 데이터를 직접 관리하지 않아도 된다는 이득에 대한 대가로 약간의 보안 위험에 노출될 수
    있으며, 블록 헤더만으로 인증해야 하기 때문에 구현이 복잡해짐 (Bloom Filter, Merkle branch 인증 등)

2. 개발자 측면의 지갑

  • 지갑은 개인키, 공개키, 지갑 주소로 구성. (Key의 집합)
  • 비트코인의 잔액은 지갑에 보관되는 것이 아니라 네트워크 상의 블록체인에 기록되어 있음. 거래 내역에 누구로부터 얼마를 받았고, 이 중 얼마를 사용하지 않았다
    는 기록 (UTXO : Unspent transaction output)이 해당 지갑의 잔고 (Balance).
  • 개인키는 블록체인에 기록된 내 잔고를 사용할 때 본인 인증 (전자 서명 : Digital signature) 용으로 사용되고, 공개키는 내가 서명했다는 사실을 다른 사람들이 확
    인할 때 사용함 (서명 확인). 개인키는 내가 보관하고, 공개키는 블록체인 데이터 상에 공개.
  • 지갑 주소는 비트코인을 주고 받을 때 사용하고, 한 지갑에서 개인키, 공개키, 지갑 주소는 하나가 아니라 여러 개를 사용하는 것이 보통 (안전성).
  • 개인키로 공개키를 만들고 공개키로 지갑 주소를 만듦 (반대 방향으로는 안됨). 개인키만 알고 있으면 공개키와 지갑 주소는 언제든지 생성할 수 있음.
  • 만약 개인키를 잃어버리면 블록체인에 기록된 잔고를 사용할 수 없음.  해당 지갑으로 송금된 비트코인은 영원히 아무도 사용할 수 없음.

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글