이 글은 MIT OpenCourseWare 의 MAS.S62 - Cryptocurrency Engineering and Design의 강의를 요약, 정리 한 것입니다..
글을 읽으실 때 이해를 위하여 원 강의를 함께 보시는 것을 추천합니다.
*글에 포함된 이미지는 강의에서 제공되는 Lecture Note로부터 캡쳐한 것입니다.
https://www.youtube.com/watch?v=VT2o4KCEbes&list=PLUl4u3cNGP61KHzhg3JIJdK08JLSlcLId&index=4
*최종수정 : 2025.01.12. 강의 렉쳐노트 요약을 chatgpt에게 요청한 결과물. 추후 설명을 덧붙일 예정입니다.
1. 트랜잭션의 필요 요소 (p.4-8)
- 트랜잭션의 필수 요소:
- 송신자 정보 (예: Alice)
- 송금 금액 (예: $5)
- 수신자 정보 (예: Bob)
- 송신자 서명 (예: SigAlice(TXN))
2. 계정 기반 모델 (p.9-15)
- 특징:
- 계정과 잔액의 목록을 저장.
- 트랜잭션 유효성 검증: 계정에 충분한 잔액이 있어야 함.
- 송신자의 잔액이 차감되고 수신자의 잔액이 증가.
- 문제점:
- 리플레이 공격(replay attack)에 취약:
- 동일한 트랜잭션이 반복 실행될 수 있음.
- 리플레이 공격(replay attack)에 취약:
3. UTXO (Unspent Transaction Outputs) 모델 (p.16-19)
- 특징:
- 코인(UTXO)은 특정 트랜잭션의 출력(output)으로 생성.
- 코인은 소비되며 새로운 코인을 생성.
- 각 코인은 한 번만 사용할 수 있음.
- 트랜잭션 포맷:
- 입력(input): 이전 트랜잭션 ID, 출력 인덱스, scriptSig.
- 출력(output): 금액(value), scriptPubKey.
4. ScriptSigs와 ScriptPubKeys (p.20-21)
- ScriptPubKey: 특정 조건을 정의하는 스크립트.
- ScriptSig: ScriptPubKey의 조건을 만족시키는 스크립트.
5. 다중 입력과 출력 (p.22-23)
- 트랜잭션은 여러 입력과 출력을 가질 수 있음.
- 입력과 출력은 서로 독립적이며, 각각 고유한 트랜잭션 ID와 인덱스를 가짐.
6. 트랜잭션의 유효성 검증 (p.25)
- 검증 조건:
- 입력의 합 ≤ 출력의 합 (예외: 코인베이스 트랜잭션).
- ScriptSig + ScriptPubKey의 결과가 true여야 함.
- 출력이 이미 사용되지 않았어야 함.
7. Pay to Pubkey Hash (P2PKH) (p.26-36)
- 아이디어: 공개키 해시(Pubkey Hash)에 송금.
- ScriptPubKey:
- 공개키 해시를 검증하는 명령어 포함.
- ScriptSig:
- 서명과 공개키 포함.
8. UTXO 모델의 장단점 (p.39-41)
- 장점:
- 리플레이 공격 방지.
- 프라이버시 강화 (새로운 공개키 생성 가능).
- 단점:
- 복잡성 증가.
- 코인의 대체 가능성 문제 (블랙리스트 처리 가능).
9. UTXO 집합과 코인베이스 트랜잭션 (p.42-44)
- UTXO 집합:
- 모든 비트코인 노드는 블록체인에서 유효한 코인의 목록을 계산.
- 현재 약 60M UTXO, 약 3GB 크기.
- 코인베이스 트랜잭션:
- 채굴 보상과 수수료로 구성된 특별 트랜잭션.
'IT' 카테고리의 다른 글
[MIT OCW] 3. Signiture (1) | 2025.01.09 |
---|---|
[MIT OCW] 2. Proof of Work and Mining (2) | 2025.01.05 |
[MIT OCW] 1 . Signatures, Hasing, Hash Chains, e-cash, and Motiviation (1) | 2025.01.02 |