본문 바로가기

IT

[MIT OCW] 4. Transactions and the UTXO model

이 글은 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)에 취약:
      • 동일한 트랜잭션이 반복 실행될 수 있음.

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