[블록체인] 8. 비트코인 스크립트

2024. 10. 17. 03:02·CS/블록체인
반응형

비트코인의 트랜잭션에는 간단한 스크립트 코드를 넣을 수 있다.

그래서 비트코인은 프로그래머빌리티가 없다, static 하다, 변하지 않는다고 하면 틀린 말이다.

물론 이 스크립트 코드는 turing complete 하지는 않아서 모든 기능을 자유롭게 쓸 수 있지는 않지만, 제한적인 프로그래밍이 가능하다.

(참고로 이더리움은 튜링 컴플리트를 지향하는 블록체인 프로젝트이다. 기말고사 범위에서 정리할 예정)

 

비트코인의 스크립트는 스택 기반으로 실행되는 코드이며,

트랜잭션 검증과 서명 검증을 위한 다양한 명령어를 제공한다.

 

대표적인 스크립트 타입은 다음과 같다.

- Pay To Public Key (P2PK) :

비트코인의 초창기 트랜잭션 방식, 사카시 나카모토가 고안했던 방식으로 public key hash에 지불한다.

즉, 비트코인 주소에 지불하는 것을 말한다.

그러면 이 비트코인 주소의 주인은 내가 받은 비트코인을 꺼낼 수 있다.

(내가 주인이라는 것은 그 퍼블릭 키에 맞는 프리이빗 키 쌍을 갖고 있음을 증명하면 된다.)

 

- Pay To Public Key Hash (P2PKH)

요즘은 퍼블릭 키를 해싱한 것에 지불하는 방식이 주로 사용되고 있다.

이것 역시 비트코인 주소에 지불하는 것과 같다.

 

- Pay To Script Hash

꼭 비트코인 주소가 아니라 다른 스크립트에도 비트코인을 지불할 수 있다.

이 부분이 비트코인의 프로그래머빌리티를 끌어올린 부분이다.

스크립트에 지불한다는 것은, 내가 비트코인을 꺼내 쓰기 위해서는 이 스크립트와 동일한 스크립트를 제시해서 내가 이 스크립트의 주인임을 명시하면 된다.

물론 스크립트를 그대로 보내면 증명할 수 없으므로 스크립트 해시를 목적지로 보내면, 원본 스크립트를 소유한 사람이 똑같이 해시한 결과를 제시함으로써 내가 주인임을 증명할 수 있다.

(크립토 해시 함수는 역으로 인풋 데이터를 알아낼 수 없는 성질을 이용한다.)

 

- M of N MultiSig

'N 개 중, M 개의 서명' 이라는 뜻이다.

 

예를 들어 내가 물건을 만들어서 파는데, 그 판매 대금을 회사 비트코인으로 받았다고 해보자.

이때 이 회사의 비트코인을 꺼내서 지불하는데 사용하려면 N명의 이사진 중 M 명의 서명이 필요하다고 제한을 걸 수 있다.

관련된 내용은 나중에 따로 자세히 정리한다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'CS > 블록체인' 카테고리의 다른 글

[블록체인] 10. 비트코인이 해결하는 문제들  (1) 2024.10.25
[블록체인] 9. 암호학 개념들  (0) 2024.10.24
[블록체인] 7. 비트코인 네트워크  (0) 2024.10.15
[블록체인] 6. Proof-of-Work (Consensus Protocol & Native Currency)  (0) 2024.10.11
[블록체인] 5. 트랜잭션 포맷  (1) 2024.10.10
'CS/블록체인' 카테고리의 다른 글
  • [블록체인] 10. 비트코인이 해결하는 문제들
  • [블록체인] 9. 암호학 개념들
  • [블록체인] 7. 비트코인 네트워크
  • [블록체인] 6. Proof-of-Work (Consensus Protocol & Native Currency)
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
  • 에버듀
    Blog. 에버듀
    에버듀
  • 전체
    오늘
    어제
    • 분류 전체보기 (614) N
      • 개인 프로젝트 (43)
        • 토이 프로젝트 (3)
        • [2020] 카카오톡 봇 (9)
        • [2021] 코드악보 공유APP (22)
        • [2022] 유튜브 뮤직 클론코딩 (9)
        • [2025] 한글 SQL 데이터베이스 (0)
      • 팀 프로젝트 (22)
        • [2020] 인공지능 숫자야구 (4)
        • [2022] OSAM 온라인 해커톤 (10)
        • [2024] GDSC 프로젝트 트랙 (6)
        • [2025] 큰소리 웹 페이지 (2)
      • CS (335)
        • 자료구조 (19)
        • 어셈블리 (41)
        • 멀티미디어응용수학 (7)
        • 컴퓨터 구조 (29)
        • 알고리즘 분석 (4)
        • 컴퓨터 네트워크 (38)
        • 프로그래밍언어론 (15)
        • HCI 윈도우즈프로그래밍 (26)
        • 기초데이터베이스 (29)
        • 운영체제 (23)
        • 오토마타 (24)
        • 문제해결기법 (11)
        • 블록체인 (22)
        • 소프트웨어공학 (21)
        • 기계학습심화 (12)
        • 컴퓨터그래픽스와 메타버스 (8)
        • 분산시스템특론 (6)
      • 자기계발 (44)
        • 생각 정리 (22)
        • 대외활동 (11)
        • 동아리 (7)
        • 자격증 (3)
        • 머니 스터디 (1)
      • 알고리즘 (PS) (107)
        • BOJ (101)
        • Programmers (5)
        • 알고리즘 이모저모 (1)
      • WEB(BE) (8) N
        • express.js (1)
        • Spring & Spring Boot (7) N
      • WEB(FE) (2)
        • html, css, js (1)
        • React.js (1)
      • Tool & Language (6)
        • Edit Plus (1)
        • Git (1)
        • Python3 (2)
        • Java (2)
      • Infra (12)
        • AWS (1)
        • Oracle Cloud (8)
        • Firebase (2)
        • Network (1)
      • Android (18)
        • Java (6)
        • Flutter (12)
      • Window (2)
        • Visual Studio 없이 WPF (1)
        • MFC (1)
      • 독서 (14)
        • Inside Javascript (7)
        • Database Internals (6)
        • 한 글 후기 (1)
  • 링크

    • github
    • website
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
에버듀
[블록체인] 8. 비트코인 스크립트
상단으로

티스토리툴바