[비트산책] 커피를 비트코인으로 사려면 얼마나 기다려야하나요?

[비트산책] 커피를 비트코인으로 사려면 얼마나 기다려야하나요?


"카페에서 아이스아메리카노를 비트코인으로 결제하게 되면 1시간동안 기다려야 해"

카페에서 비트코인으로 결제하면 오래기다려야 한다는 얘기를 종종 들어왔습니다. 이 때문에 결제에 사용 할 수 없다고들 합니다. 이 얘기는 조금 낯설 수도 있는데, 거래소에서 다른 거래소로 비트코인을 옮길 때 오랫동안 기다려본 경험은 다들 있을 겁니다.

혹시 왜 그렇게 기다려야하는지에 궁금해보신적 없나요?


오늘 제가 그 답을 가져와 봤습니다.

그 답을 설명하기전에 한가지 개념에 대해서 설명해드리려고 합니다.

Finality


The Finality( 완결성) : Finality guarantees that history will never be changed!

바로 완결성이라는 개념입니다. 완결성이란 역사가 절대 변하지 않을 것이란걸 보증한다는 뜻입니다. 조금 난해하죠? 더 쉽게 표현해보겠습니다. 제가 카페에 커피를 사먹기위해서 5000원을 카드로 결제했습니다. 한번 결제하고나면 이 기록되고나면 절대로 바뀌지 않는다는 뜻입니다. 너무나 당연한 얘기입니다. 그래야 사장님이 저에게 커피를 내줄 수 있는 것이죠.결제할때 완결성이라는 것이 매우중요합니다. 이건 돈을 보냈다는 것이 보장이되고 이를 통해 거래의 불확실성을 제거해주기 때문이지요.

아이러니하게 비트코인의 경우에는 이처럼 Finality가 보장되지는 않습니다.

비트코인의 문제


출처 : Pixabay

다시 처음의 카페로 돌아가겠습니다.
제가 카페에가서 아메리카노를 사기위해서 1btc을 카페 사장님께 전송했습니다. 카페사장님은 저에게 바로 아메리카노를 만들어 줄 수 없었습니니다. 왜냐면 비트코인은 바로 Finality 완결성을 보장해주지 않기 때문입니다. 10분이 지나 블록이 형성되어도 만들어 주지 않았습니다. 그래도 완결성이 보장되어있지 않아서죠.

이론상으로 다음과 같은 일이 가능합니다.

시나리오 1( 저는 1btc를 갖고있습니다.)

  1. 카페 사장님께 1btc를 보내고 커피를 받습니다. 이 거래는 a블록에 포함되어 있습니다.
  2. 또 따른 내 주소로 1btc를 보냅니다. 이 거래를 b블록에 포함시킵니다.
  3. 51%이상의 해시파워를 갖은 마이너와 짜고 b블록을 더 길게 만듭니다.
  4. 가장 긴 블록이 옳은 블록으로 인정하기 때문에 b 블록이 인정받고 a블록은 사라지게 됩니다.
  5. 카페사장님은 공짜로 커피를 내주게 됩니다.

이 걸 이중지불 문제라고 합니다. 이 문제가 발생할 가능성이 있기 때문에 완결성이 보장되지 않는 겁니다.

이것만 있는게 아닙니다. 다음과 같은 시나리오도 있을 수 있습니다.

시나리오 2

  1. 제가 카페 사장님께 보낸 거래는 a블록에 포함되어 있지만, b블록에는 포함되어있지 않았습니다.
  2. a블록과 b블록이 동시에 채굴되었습니다.
  3. 분기된 두가지 블록이 동시에 채굴되다가 b쪽이 더 길어져 옳은 블록으로 인정되었습니다.
  4. 그럼 이전에 보낸 거래는 사라지고 카페사장님은 공짜로 커피를 내주게 된 꼴이됩니다.

이처럼 비트코인은 거래가 일어난 후 완결성이 보장되지 않아서 바로 커피를 내어줄 수 없는 것입니다. 거래소 또한 똑같습니다. 다음과 같은 문제가 발생할 수 있어서 바로 내 아이디에 충전을 해줄 수 없는 것이지요.

비트코인의 완결성


" Finality is the guarantee that past transactions can never be changed "
블록체인에서 완결성이란 이전의 거래가 변할 가능성이 없다는 보장입니다.

하지만 비트코인이 끝가지 완결성을 얻을 수 없는 것은 아닙니다. 일반적으로 비트코인의 경우 6번 이상의 confirmation이 있으면 전송이 완료되었다고 간주합니다. 왜냐면 6개의 블록을 따라잡는 분기를 만들기 확률적으로 힘들기 때문입니다. 확률적으로 10%의 해시파워를 갖고 있다면 0.1%도 안된다고 합니다. 이렇게 6번 이상의 confirmation이 지나고 나면 커피사장님이 커피를 내줄 수 있고, 거래소에서 내 아이디에 비트코인을 추가해줄 수 있는겁니다. 이런 경우 Finality 가 Implicit 하다 또는 Probabilistic 라고 표현합니다.

(6번 이상의 confirmation이란 블록이 생성되고나서 그 블록 위에 5개 이상의 블록이 만들어 졌다는 의미입니다. 평균 블록 생성시간이 10분이니 60분이 지나면 확률적으로 완결성을 얻었다고 합니다.)

추가적인정보


  • https://blockchain.info/ 여기서 트랜잭션 아이디를 검색하면 컨펌을 확인하실수 있습니다.
  • 쿼라의 미국 아저씨는 아래처럼 하면 리스크를 줄일 수 있다고 합니다.

0 confirmations: less than $250
1 confirmation: $250-$2.5k
2 confirmations: $2.5k-$25k
3 confirmations: $25k-$250k
4 confirmations: $250k-$2.5M
5 confirmations: $2.5M-$25M
6 confirmations: $25M or more

마치며


지금까지 Finality 의 개념과 함께 커피를 비트코인으로 샀다면 기다려야만 하는지에 대해서 알아봤습니다. 사실 실제 커피를 살 때 쓴 돈으로 이중지불을 만들 가능성은 극히 드뭅니다. 배보다 배꼽이 더 크기 때문에 다음과 같은 일이 발생할 가능성이 드뭅니다. 조금 과장한 사례라고 할 수 있습니다. 소액을 거래 할 때는 1 컴펌이여도 상관 없습니다. 고액의 거래일 때는 꼭 확인해야 합니다. 만약에 조금 세월이 더 지난 뒤 비트코인으로 자동차를 사고 집을 사는 날이 왔을 때, 이 글을 기억하며 6 confirmation을 기억해 주셨으면 감사하겠습니다:)

재밌게 읽으셨고 유익하셨다면 팔로우/보팅/ 리스팀 부탁드리겠습니다:) 주관이 많이 담겨있습니다. 저도 아직 공부하는 중이라 틀린점도 많고 모르는 부분도 많이 있습니다. 토론할 거리, 혹은 제가 잘못 알고 있다면 언제든지 피드백 기다리고 있겠습니다.
( dofac0802@gmail.com 으로 메일로 보내주셔도 감사하겠습니다:) )

더하여


저는 블록체인이 앞으로 더 성장하고 미래의 핵심이 될 것이라고 생각하고 있습니다. 그래서 거의 모든시간을 블록체인에 대해 공부하는데 시간을 쓰고 있습니다. 스팀잇에도 정말 많은 분들이 블록체인에 대해서 공부하고 연구하는 것 같다는 생각이 들어 함께 공부하면 좋겠다라는 생각이 들었습니다. 그래서 함께 스터디 하실분을 찾고 있습니다. 아직 정해진 방법은 없고 함께 만나서 토의하고 서로 발표하는 자리를 만들고 싶습니다. 편하게 연락주시면 감사하겠습니다.
우선 지금은 백서스터디 생각하고 있습니다.!

https://open.kakao.com/o/seuIjvG
문의 주시면 단체방 알려드리겠습니다:)

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now