Blockchain/Bitcoin

[Bitcoin] 비트코인 거래 과정

byunghyun23 2021. 3. 19. 16:45

본 포스팅은 이곳을 참조하여 작성했습니다.

1. 비트코인 거래 생성

Son이 Kane에게 1비트코인을 전달하는 거래가 발생했다고 가정해봅시다.

이것은 1비트코인을 전달한다는 의사표시일 뿐, 실제로 코인이 전달된 것은 아닙니다.

 

Fig 1. Bitcoin transaction

 

2. 비트코인 거래 서명

비트코인을 전달하려면 송신자(Son)와 수신자(Kane) 중 누가 거래를 생성했든 비트코인의 소유자(Son)가

해당 거래에 대한 디지털 서명을 해야 합니다.

서명 완료 후에 해당 거래 정보(트랜잭션)가 블록체인에 쓰여지고, 검증을 통과하면 해당 거래는 유효한 거래가 될 수 있습니다.

디지털 서명은 흔히 수표를 이서와 유사합니다.

'Son이 Kane에게 1비트코인을 전달' 이라는 내용의 수표에 이서한 것이라고 생각하면 됩니다.

 

Fig 2. Digital signature

 

3. 비트코인 거래 정보 전달

Son이 디지털 서명 후에 'Son이 Kane에게 1비트코인을 전달' 이라는 거래 정보를 Kane에게 전달합니다.

Son의 개인키로 서명(암호화)된 거래 정보를 Kane이 Son의 공개키를 이용하여 복호화 후 이상이 있는지 확인합니다.

 

 

4. 비트코인 거래 정보 전파

'Son이 Kane에게 1비트코인을 전달' 이라는 거래 정보는 Son과 Kane만 알고 있는 사실입니다.

그렇기 때문에 이 거래는 유효한 거래로 인정 받을 수 없습니다.

일반적으로 거래는 '은행' 이라는 특정 대상이 검증함으로써 신뢰를 얻을 수 있지만,

블록체인은 탈중앙화 시스템으로 이 거래 내용을 검증할 수 있는 특정 대상이 존재하지 않습니다.

따라서 반드시 블록체인 네트워크에 거래 정보를 전파해야 합니다.

 

블록체인 네트워크는 P2P를 기반으로 거래 정보를 공유 및 동기화합니다. 즉, 모든 노드는 동등한 지위를 가지고 있습니다.

블록체인에서 거래 정보 하나를 수천개의 노드에 전파하는 시간은 불과 몇 초밖에 소요되지 않습니다.

 

Fig 3. Transaction broadcasting

 

5. 블록 채굴

비트코인 거래 정보는 각 노드에 전파되고, 쌓입니다. 거래 정보를 전파한 Son은 이 거래 정보를

채굴자가 블록에 작성하도록 수수료를 책정합니다.

해시 퍼즐을 풀고(PoW) 블록에 거래 정보를 쓸 권한을 얻은 채굴자는 수수료를 받기 위해 거래 정보를 블록에 작성하고,

생성된 블록을 다시 네트워크에 전파합니다.

 

 

6. 블록 검증 및 비트코인 거래 완료

블록을 전파받은 각 노드는 해시 블록 값을 이용해 블록을 검증합니다. (머클 트리를 이용해 트랜잭션 내용 검증이 포함됨)

검증이 완료되면 자신의 블록체인에 새로운 블록을 연결합니다. 블록이 연결되면 비로소 거래 정보가 영구적으로 기록됩니다.

연결된 블록의 내용은 위조 및 변조가 사실상 불가능해집니다.

 

Fig 4. Block broadcasting stage

 

채굴자가 해시 퍼즐을 푸는 시점이 거의 유사할 때, 블록의 분기가 발생하지만 지금까지 비트코인은 길이가 6이상인 고아 블록은 발생하지 않았습니다. 비트코인에서는 Longest chain rule을 적용하고 있습니다.

그렇기 때문에, 비트코인 거래는 보통 1시간 이내에는 유효한 거래로 인정 받을 수 있습니다.