• Bitcoin Node와 역할에 따른 구분
    • Bitcoin 네트워크 참여자를 부르는 용어는 Node, Peer 등이 있다.
      • Hiperledger는 peer로 사용.
    • 최초 Bitcoin Network에서는 Bitcoind 을 통해서만 Network에 참여가 가능했기 때문에 모두다 Node 역할을 하였지만, 최근에는 Explorer, Miner, Wallet User(Client), Exchange 등 Network 참여목적에 따라 역할이 구분되고 있다.
    • 각 구분된 Node의 역할에 따라 bitcoin Node을 사용 방법이 다양하게 이루어진다.
    • 공식적인 문서에서는 Full Node, LightWeight(SPV) Node로만 구분하고 있다.
  • Bitcoin Node와 역할에 따른 구분
    • Bitcoin Core Full Node
      • Wallet, Full, Netwrok, Miner
    • Full Node
      • Full, Network
      • Full 블록체인을 가지고 Network에 참여하는 노드.
    • Miner Node
      • Full, Network, Miner
    • SPV Node (Light Weight)
      • Network, Wallet
      • 블록싱크, 블록의 header 부분만 가지고 있음.
    • Mining Pool Node
      • Miner, Route (Miner Node와 연결)
    • SPV Stratum Node
      • Wallet, Route
  • Explorer 구조
    • Full Node -신규 블록 생성 알림→ Exploer Server -신규블록 데이터 정제후 저장→ Database
      Client-블록체인 데이터 조회→Exploer Server
  • Exchange 구조
    • client → 출금요청→ Exchange Server → 거래소 hot wallet 출금 요청 → SPV Stratum Node (출금 tx 생성) → 출금 전송 요청 → Full Node
    • pc의 자원을 많이 사용하는 miner같은 기능은 explorer와 exhange와 같이 필요한 경우 끄고 사용한다.
  • Bitcoin Wallet
    • Bitcoin Wallet 의 역할은 사용자의 키를 안전하게 관리하고 이를 통해서 사용자가 쉽게 거래(송금)을 생성하는 것을 지원해준다.
    • 사용자가 필요로 하는 기본적인 기능들을 아래와 같이 제공한다.
      1. 거래 조회
      2. 사용자 잔액 조회
      3. 신규 블록 생성 알림
      4. 주소록 관리
      5. 사용자 키 관리
  • Bitcoin Wallet 종류
    • Bitcoin Wallet은 Web Wallet, App Wallet, Paper Wallet , Hardware Wallet 등이 있다.
      • web, app Wallet : 중앙화된 node에 tx를 전송
      • paper wallet : private key와 address가 적힌 종이. 초기에 많이 사용. 분실의 위험때문.
      • hardware wallet : 복구key(니모닉 코드)를 제공.
    • 개인키만 따로 json이나 string 형태로 Email이나 file형태로 저장하는 경우도 있지만, 이런 경우에는 해킹의 위험이 매우 높다.
  • Hardware Wallet
    • 기존 지갑들은 Private Key를 보관을 해주는 역할은 하였지만, 안전하게 보관을 해주는 기능이 부족함에 따라 개인키를 안전하게 보관할 수 있는 Hardware Wallet이 개발되었다.
    • 개인키를 Export 할 수 있는 기존 Wallet 과는 달리 Hardware Wallet은 Private Key를 Export 하거나 조회 할 수 없게 생성되었다.
    • 하나의 Hardware Wallet은 다수의 Address를 생성하고 관리 할 수 있게 관리된다.
    • 지문이나 PIN 번호 등 Hardware Wallet 자체의 보안기능을 제공한다.
      • 분실하더라도 사용할수 없게 2차 보안을 설정
    • Hardware Wallet 고장 시 복구할 수 있는 방법인 Mnemonic 기능을 제공한다.
      • Private key를 export할 수 없기때문에 menemonic을 이용해 private를 복호화
    • 가상자산 고액 자산가들이 대부분 사용한다.
  • Samsung Wallet
    • Samsung Blockchain은 삼성 스마트폰을 이용하는 사용자들이 따로 Wallet을 다운로드 받지 않고, 서비스를 제공 받을 수 있게 제공하는 기본 탑재 Wallet Application 이며, 이와 함께 Dapp Store를 출시하여 Wallet에서 바로 Dapp
      서비스들을 이용할 수 있는 기능을 제공한다.
    • Samsung Blockchain은 Hardware상에서 보안 안전 공간(Trust Zone)인 TEE(Trust Execution Environment)에서 사용자의 개인키를 보관 관리하는 기능을 제공한다.
      • 안드로이드의 취약점을 해결.
    • Hardware Wallet과는 달리 개인키를 안전하게 보관하며 Export 기능도 제공을 하고 있다.
    • 단점은 TEE 환경에서 동작하기 위해서 기본 Wallet에서 보안 관련 설정이 추가로 진행해야 된다.
  • Cold와 Hot Wallet
    • Cold Wallet과 Hot Wallet은 개인키를 관리하는 소프트웨어(지갑)이 인터넷 환경과 연결된 상태인지, 아닌지에 따라 구분된다.
    • Exchange는 사용자의 입출금이 활발하고 해킹의 위험이 항상 존재하기 때문에 Cold와 Hot Wallet으로 구분하여 자산을 관리한다.
    • Hot Wallet은 Web Wallet, App Wallet, Desktop Wallet등이 있다.
    • Cold Wallet은 Hardware Wallet, Paper Wallet, Offline Computer Wallet등이 있다.
      • Hot wallet은 인터넷이 연결된 환경에서 연결. Cold Wallet은 오프라인에 존재하다가 transaction이 필요할 때 인터넷을 연결. 보통 두개에 나눠서 자산을 보관.
  • Nondeterministic(Random) Wallet
    • 100 개의 Random 개인키를 생성하고, 이를 한번씩만 사용하는 지갑
    • 주소를 한번만 사용하다보니 Privacy 보장이 높아짐
    • Private Key 관리를 위해서 주기적인 BackUp이 필요함
  • Hierarchical Deterministic(Seed) Wallet
    • 하나의 Seed값에서 생성된 Master Key를 중심으로 계층적으로 개인키를 생성
    • 개인키(Master) 하나로 여러 개의 주소를 관리 가능
    • 여러 Branch 키를 생성하여, Branch 마다 용도에 맞는 주소 그룹 분류 가능
      • 주기적인 backup이 필요없어 관리에 용이. 최근 나오는 wallet과 hardware wallet에서 사용하는 방식
  • Mnemonic이란?
    • BIP-39에서 제안된 새로운 Seed 관리 방안
    • 기존 Random Seed를 통해 개인키 생성을 하고 개인키 분실 시 복구가 불가능
    • Mnemonic을 통해 개인키를 분실해도 Mnemonic을 통해 개인키 재 생성 가능
      • random seed → sha256 → checksum(4bits) → seed + checksum(132bits) → 11bits 씩 분할(12개) → 분할된 데이터 매핑 → wordlist에 맞는 숫자 검색
      • random seed를 잘 보관하는 방법에대한 고민.
profile
"프로그래밍은 저의 상상을 실현 시킬 수 있는 유일한 도구입니다."

0개의 댓글