본문 바로가기
BlockChain/BitCoin

[BitCoin] 비트코인내에서의 거래

by 손정빈 2019. 4. 16.
728x90
반응형

거래는 비트코인 시스템의 가장 중요한 요소인데 비트코인에서 말하는 거래는 비트코인 시스템 내에 있는 참가자들 간 가치를 전송하는 행위를 인코딩한 데이터 구조를 의미합니다.

 

거래 입력값과 출력값

이러한 거래는 입력값과 출력값으로 구성되어 있으며 거래의 입력값과 출력값은 계좌 혹은 신분에 상관 없이 소유주나 비밀키를 알고 있는 사람만이 풀 수 있는 특수 비밀키로 잠겨 있고 수많은 필드를 포함하고 있습니다.

비트코인 거래의 기본 요소는 소비되지 않은 거래 출력값(unspent transaction output), 즉 UTXO입니다. 

UTXO는 특정 소유주에 대해 암호로 잠겨 있고, 블록체인상에 기록되어 있으며, 전체 네트워크에 의해 통화 단위로 인정받은 불가분의 비트코인 덩어리입니다.

 

모든 비트코인 거래는 출력값을 생성하며, 출력값은 비트코인 장부에 기록됩니다. 출력값 대부분은 소비하지 않은 거래 출력값, 즉 UTXO라고 불리는 소비 가능한 비트코인 덩어리를 생성하는데, UTXO는 생성된 후 네트워크 전체의 승인을 받고, 향후 거래에서 소유주가 사용 가능하게 됩니다. 누군가에게 비트코인을 전송하는 것은 소유주의 주소에 등록된 소비 가능한 UTXO를 생성한다는 것과 같은 의미를 가집니다.

 

거래의 출력값은 거래총액과 잠금스크립트로 구성되어 있습니다.

필드 

설명 

 총액

 사토시 단위의 거래금액(1사토시는 1억분의 1 비트코인) 

 잠금 스크립트 크기

 잠금 스크립트 길이 

 잠금 스크립트

 출력값을 소비하는데 필요한 조건 

 

거래 입력값은 UTXO에 대한 지시자 역할을 합니다. 거래 입력값은 UTXO가 블록체인 내에 기록되는 경우 해당 거래의 해시와 일련번호를 참조하여 특정 UTXO를 지정합니다. UTXO를 소비하기 위해서 거래의 입력값에는 UTXO에 의해 설정된 소비 조건을 만족시키는 해제 스크립트도 포함되어야 하는데 해제 스크립트란 잠금 스크립트 내에 있는 비트코인 주소의 소유권을 입증하는 서명을 가르킵니다. 

 필드 

설명 

 거래 해시

 소비될 UTXO를 담고있는 거래에 대한 ID (TxID)

 출력값 인덱스

 소비될 UTXO의 인덱스 번호

 해제 스크립트 크기

 해제 스크립트 길이

 해제 스크립트

 UTXO의 소비조건을 충족하는 스크립트

 일련번호

 사용하지않음, 0xFFFFFFFF로 설정

 

 

거래수수료

비트코인 대부분의 거래에는 수수료가 포함되어 있습니다. 거래 수수료는 비트코인 네트워크를 안전하게 유지해주는 역할을 하는 비트코인 채굴자들에게 제공하는 일종의 보상금입니다.

 

이러한 수수료는 모든 거래에 소액의 비용을 부과함으로써 다음 블록에 거래를 포함시키는데(채굴) 대한 동기부여의 역할을 할뿐만 아니라, '스팸'거래나 어떠한 종류의 시스템 오용에 대한 동기상실의 역할을 합니다.

 

거래의 데이터 구조에는 수수료 필드드가 없는데 대신 입력값의 총합과 출력값의 총합의 차이로 수수료를 알 수 있습니다.

 

Fees = Sum(inputs) - Sum(outputs)

 

 

거래 스크립트

비트코인 거래에 있어 보았던 스크립트는 잠금과 해제가 있었습니다. 

잠금 스크립트는 출력값에 위치한 예상지출로, 향 후 출력값을 소비하기 위해 충족되어야하는 조건을 명시하고 있습니다. 보통 공개키 혹은 비트코인 주소를 담고 있기 때문에 스크립트펍키라고 부르기도 합니다.

 

해제 스크립트는 잠금 스크립트가 출력값에 놓아 둔 조건을 '해결'하거나 충족시켜서 출력값이 소비될 수 있도록 하는 스크립트인데 모든 거래의 입력값에 들어 있는 요소이며, 대부분의 경우 사용자의 지갑이 개인키로부터 생성한 디지털 서명을 담고 있습니다. 그러기에 스크립트시그라고 부르기도 합니다. 

 

반응형

'BlockChain > BitCoin' 카테고리의 다른 글

[BitCoin] 블룸 필터  (0) 2019.05.02
[BitCoin] 타원 곡선 암호화  (0) 2019.05.02
[BitCoin] 단순지불검증(SPV) 노드  (0) 2019.04.16
[BitCoin] 비트코인 네트워크  (0) 2019.04.16
[BitCoin] 키, 주소, 지갑  (0) 2019.04.15

댓글