티스토리 뷰
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함으로써 무결성 보장.
· Bitcoin Wallet : Bitcoin Address를 이용하기 위한 Private Key를 저장하기 위한 매체.
· Bitcoin Block : Transaction 여러 개를 모아 순서에 따라 기록한 것.
[ Block Chain ]
: Block을 연결한 형태.
: 하나의 Block 내에 여러 Transaction과 Block Hash 값, 난수가 저장됨.
: 이전 Block의 Hash 값을 다음 Block에 포함하여 무결성 보장.
: 변경의 영향이 Chain으로 이어져 값을 수정하려 이후 Block들을 모두 수정해야 함.
[ 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만 올라감.
· Mininig
: 새로운 Block이 생성될 때 올리는 Block이 모두 다르기 때문에 이를 올리기 위해 경쟁하는 과정.
: PoW(Proof-of-Work)로 승자를 선택.
→ 작업 증명. Transaction과 이전 Block의 Hash값은 이미 정해진 값.
→ 때문에 변할 수 있는 값인 난수(nonce)값을 목표 범위(Current Target) 내에 들어가도록 SHA-256을 수행.
: 채굴 보상으로 Bitcoin과 Transaction 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%를 넘어가게 되면 그 그룹이 장악력을 갖게 되어 최초 목표인 중앙 관리자 없는 시스템 훼손 가능.
· Full node, Thin Client
: Thin Client(Lightweight Client)가 Full Client로부터 정보를 가져올 때의 Overhead에 대한 이슈.
: Merkle Tree 자료구조를 이용하여 공간 복잡도를 O(n)에서 O(log n)으로 줄임.
→ Transaction 전체를 Hashing하는것이 아니라, 각각 Hashing하고 2개씩 묶어 다시 Hashing하는 방법으로 이루어짐.
→ 필요한 부분을 찾을 때 전체 범위를 보지 않고 일부 범위만 확인하면 되는 점을 이용해 공간 복잡도 절약.
[ 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-chain과 off-chain의 저장 방법을 지원.
→ on-chain : NFT 자산을 Block Chain에 직접 올리는 방법. 처리 비용이 크게 소요될 수 있음.
→ off-chain : NFT 자산을 외부 매체에 저장하는 방법. 용량 제한을 피하고 효율적인 관리를 할 수 있으나 중앙화된 요소 존재.
'컴퓨터 공학 이론 > 컴퓨터 보안' 카테고리의 다른 글
[컴퓨터 보안] Digital Signature (0) | 2023.06.08 |
---|---|
[컴퓨터 보안] Hash Function & MAC (0) | 2023.06.08 |
[컴퓨터 보안] Other Public-Key Cryptosystems (0) | 2023.06.08 |
[컴퓨터 보안] Stream Cipher & Block Cipher (0) | 2023.04.27 |
[컴퓨터 보안] Group and Field (0) | 2023.04.27 |