오늘은
파트3[블록체인]
첫날로파트1[온보딩]
기간에 배운 블록체인 내용을 복습하는 시간을 가졌다.
UTXO
는 사용되지 않은 출력값(Unspent Transaction Output)이다.
비트코인과 같은 분산원장 기반 암호화폐에서의 거래 방식이다.
소유자의 개인키로 소유권을 증명하고 개인키로 본인이 소유한 코인을 검색하는데 여기서의 코인이 결국 사용되지 않은 출력 값(UTXO)이다.
그렇게 합쳐진UTXO
로 소유자의 전체 잔액을 계산할 수 있게 된다.
UTXO
에서는 모든 비트코인이 거래의 출력으로 생성되며, 이 출력이 다시 다른 거래의 입력으로 사용될 수 있다. 입력은 거래에 사용된비트코인의 양과 소유자의 공개키
로 구성된다. 그리고 출력은 새로 생성된비트코인의 양과 다음 소유자의 공개키
로 구성된다.
코인베이스
는 블록 생성에 대한 보상으로 각 블록 내의 첫번째 거래이고 새로운 비트코인이 생성되는 거래이다.
쉽게말해 채굴에 대한 보상으로 주어지는 비트코인에 대한 거래이다.
블록체인에서 모든 거래는입력과 출력
을 가지는데, 입력은 이전 거래에서 받은 비트코인의 양과 해당 비트코인이 보내진 주소 정보를 가지며, 출력은 새로운 비트코인이 보내지는 주소와 양을 갖게 된다.
그러나 이와 달리코인베이스
는 입력값이 없는(출력값만 있는)거래이다.
코인베이스 거래의 출력값은 채굴자의 지갑 주소로 지정되며, 새로 생성된 비트코인이 해당 주소로 입금된다. 이 출력값은 이후의 거래에서 입력값으로 사용될 수 있다.
locking script와 unlocking script는 비트코인과 같은 블록체인에서 사용되는 스크립트 언어의 두 가지 유형이다.
locking script
는 특정 트랜잭션 출력값이 사용되기 전에 만족시켜야 하는 조건을 정의하는 스크립트다. 즉, 트랜잭션 출력값이 어떤 상황에서 사용될 수 있는지를 결정한다.
이 스크립트는 특정 주소나 해시, 퍼블릭 키, 서명 등과 같은 데이터 요소들로 구성되며, 이들 요소 중 하나라도 맞지 않으면 해당 출력값을 사용할 수 없다.
반면,unlocking script
는locking script
에 포함된 요구사항을 충족시키기 위해 사용되는 스크립트이다. 즉, 해당 트랜잭션 출력값을 사용하기 위해서는 locking script에 정의된 조건들을 만족시키는 데이터를 unlocking script로 제공해야 한다.