티스토리 뷰

Block Chain

 

[ Bitcoin ]

  : Block Chain 기반의 가상화폐.

  : 중앙 기관 없이 사용자들 간에 직접 거래를 수행하고, 거래 기록을 공개적으로 검증할 수 있도록 함.

 

  · Distributed Ledger

    : Data의 복사본이 여러 참가자의 node에 분산되어 저장되는 Database.

    : 참가자 간에 거래 내역이 공유되어 기밀성 유지가 되지 않으나, 이로 인해 무결성 보장.

    : Data를 수정하려면 저장되어 있는 모든 참가자의 node를 수정해야 함.

  · Transaction : 거래의 흐름. 거래의 단위를 나타냄.

  · Bitcoin Address : 실명 대신 사용되는 Primary Key이며, ECDSA로 서명된 Public Key.

  · Chain of Transaction

    : 잔액이 표시되어있지는 않고, 거래 내용이 기록되어 있음.

    : 거래 내역을 통해 잔액을 쉽게 계산할 수 있음.

    : 각 Transaction을 Hashing할 때 이전 Transaction의 내용을 같이 Hashing함으로써 무결성 보장.

Chain of Transaction

  · Bitcoin Wallet : Bitcoin Address를 이용하기 위한 Private Key를 저장하기 위한 매체.

  · Bitcoin Block : Transaction 여러 개를 모아 순서에 따라 기록한 것.

 

[ Block Chain ]

  : Block을 연결한 형태.

  : 하나의 Block 내에 여러 Transaction과 Block Hash 값, 난수가 저장됨. 

  : 이전 Block의 Hash 값을 다음 Block에 포함하여 무결성 보장.

  : 변경의 영향이 Chain으로 이어져 값을 수정하려 이후 Block들을 모두 수정해야 함.

Block Chain

 

[ Bitcoin Network ]

  · Bitcoin Network : Transaction을 수행하는 P2P Network.

  · Bitcoin Node : Network로 연결된 각 개체를 일컫음.

    - Full-client : Block Chain 전체를 보유한 node.

    - Lightweight-client : Block Chain의 일부분을 보유하고 있으며, 필요한 경우 Full-client와 동기화.

 

[ Generation and Mining ]

  · Transaction Generation 

    : 거래 내역을 생성하며 주변 node에 broadcast 처리.

    : 가까운 node들로부터 생성 시 요청을 받아 transaction pool 생성.

       → 아직 검증되지 않은 Transaction들이 모여있으며, 각 Pool마다 들어 있는 Transaction의 종류는 상이함.

  · Block Generation

    : Transaction Pool 내에 대기 중인 Transaction 중 일부를 선택하여 이들을 포함한 block을 생성.

       ( Transaction은 지불 수수료가 높은 Transaction이 우선적으로 선택된다. )

    : 경쟁하는 여러 Block Chain 버전 중 하나의 Chain만 적용되며, 먼저 만들어지는 Block만 올라감.

Block Generation

  · Mininig

    : 새로운 Block이 생성될 때 올리는 Block이 모두 다르기 때문에 이를 올리기 위해 경쟁하는 과정.

    : PoW(Proof-of-Work)로 승자를 선택.

       → 작업 증명. Transaction과 이전 Block의 Hash값은 이미 정해진 값.

       → 때문에 변할 수 있는 값인 난수(nonce)값을 목표 범위(Current Target) 내에 들어가도록 SHA-256을 수행.

    : 채굴 보상으로 BitcoinTransaction Fee를 받음.

    : Block이 10분마다 생기도록 PoW의 난이도를 조절. (0.75배 ~ 4.0배 사이)

    : 채굴에 실패한 경우 Transaction이 Pool로 돌아감. → 보상 없음.

    : 매 21만 개 Block마다 채굴 성공 보상이 반감됨. (대략 4년) → 2140년에는 통화량 증가 없어짐.

 

[ Bitcoin Issues ]

  · Scalability

    : Block이 10분에 하나 생성되므로, Transaction 처리량이 초당 10개 이하.

    : 이러한 문제를 해결하기 위해 off-chain-transaction을 사용.

        ※ off-chain-transaction : Chain 외부에서 Transaction들을 처리하여 Transaction의 최종 결과만 Chain에 기록하도록 하는 것.

  · Mining pool 집중 문제

    : 특정 집단이 Mining의 대부분의 비율을 가져감.

    : 이 비율이 50%를 넘어가게 되면 그 그룹이 장악력을 갖게 되어 최초 목표인 중앙 관리자 없는 시스템 훼손 가능.

Mining Pool Graph

  · Full node, Thin Client

    : Thin Client(Lightweight Client)Full Client로부터 정보를 가져올 때의 Overhead에 대한 이슈.

    : Merkle Tree 자료구조를 이용하여 공간 복잡도를 O(n)에서 O(log n)으로 줄임.

       → Transaction 전체를 Hashing하는것이 아니라, 각각 Hashing하고 2개씩 묶어 다시 Hashing하는 방법으로 이루어짐.

       → 필요한 부분을 찾을 때 전체 범위를 보지 않고 일부 범위만 확인하면 되는 점을 이용해 공간 복잡도 절약.

Merkle Tree

 

[ Ethereum ]

  : Block Chain Network를 이용하여 하나의 거대한 가상 컴퓨터를 운영하는 구조.

 

  · EVM (Ethereum Virtual Machine) 

    : Ethereum에서 Smart Contract를 하기 위해 사용되는 Virtual Machine.

    : Turing-Complete한 Platform.

  · Ethereum Address : ECDSA Public Key를 Hashing하여 상위 160bit만 추출하여 사용.

  · Ethereum State 

    : 모든 사용자의 계정 잔액, 계약 코드, 저장소, 계정의 상태 변경 내역 등을 포함한 전역 상태.

    : Merkle Patricia Tree로 관리됨.

  · Ethereum Transaction : 서명된 명령(instruction)이 포함된 데이터.

  · EIP (Ethereum Improvement Proposal) : Ethereum Protocal의 발전과 개선을 위한 규칙 변경의 표준.

 

[ Hyperledger ]

  : 허가받은 소수만 참여할 수 있는 소수형 Block Chain.

  : 참여자들 간의 대립적인 이해 관계가 있고, 중앙에서 통제하기 힘든 상황에 적합.

 

[ NFT (Non-Fungible Token) ]

  : Data와 Ownership을 Block Chain에 기록하여 디지털 자산의 소유권을 주장.

  : on-chainoff-chain의 저장 방법을 지원.

     → on-chain : NFT 자산을 Block Chain에 직접 올리는 방법. 처리 비용이 크게 소요될 수 있음.

     → off-chain : NFT 자산을 외부 매체에 저장하는 방법. 용량 제한을 피하고 효율적인 관리를 할 수 있으나 중앙화된 요소 존재.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함