5살도 이해하는 비트코인 이야기 [3부]

안녕하세요! ‘5살도 이해는 비트코인 이야기’도 벌써 3부에 도달했네요. 지난 2부에는 ‘이중 지불 문제(Double-spending problem)’가 무엇인지 알아봤어요.

‘이중 지불 문제’가 무엇인지 기억나지 않는다고요? 걱정 마세요! 2부를 다시 한번 보면 된답니다.

그럼, 오늘은 기존 시스템이 이중 지불 문제를 어떻게 처리하고 있는지 그리고 블록체인은 어떻게 이중 지불 문제 해결하는지 알아볼게요.

“안녕하세요, 고객님! 번호표를 뽑고 대기하시다, 해당 번호가 뜨는 창구로 이동해주세요.”

우리가 은행에 들어가면 환한 미소와 함께 듣게 되는 말이에요. 우리 생활과 매우 밀접한 관계에 있는 은행은 ‘이중 지불 문제’를 해결해주는 가장 대표적인 기업 중 하나랍니다.

그럼, 은행은 ‘어떤’ 이중 지불 문제를 ‘어떻게’ 해결하고 있을까요?

자 ~ 머릿속에 자신의 통장 잔액를 떠올려보세요. 아이참! 통장 잔액이 몇 자리인지에 너무 집중하지 마시고요!

여러분의 머릿속에 떠오른 통장 잔액이 바로 은행이 가지고 있는 ‘원본 데이터’예요. 즉, 은행은 우리가 통장에 어느 정도의 돈을 예금해 놨는지에 대한 정보를 ‘데이터’화해서 가지고 있어요.

어! 잠시만요 친구한테 문자가 왔어요.

친구가 어제 먹은 점심값을 제게 보냈나 봐요. 그럼, 어떻게 해야될까요? 네! 통장 잔액을 확인해봐야 해요.

만약, 친구가 눈앞에서 8,000원을 건네줬다면 우리는 굳이 그 지폐가 ‘위조지폐’인지 여부까지는 확인하지 않고 점심값 8,000원을 잘 받았다고 할 거예요.

하지만 통장으로 돈을 송금받은 경우에는 은행 통장 내역을 확인해야 그 결과를 알 수 있어요. 왜냐하면, 송금은 실물 ‘돈’을 주고받는 게 아니라 ‘데이터’를 주고받는 과정이기 때문이에요.

그래서 친구가 제게 ‘돈’을 송금했다는 데이터가 은행이 가진 ‘원본 데이터’, 즉 제 ‘통장 잔액’에 기록되어야 저는 친구에게 돈을 받았다고 생각해요.

만약, 친구는 보냈다고 하는데 은행 잔고에 돈을 받은 내역이 없으면 어떻게 될까요? 앗! 이중 지불 문제가 발생했어요. 친구는 보냈다고 주장하고, 은행은 받은 사실이 없다고 주장해요.

친구와 은행이 서로 자신의 원본 데이터가 맞다고 주장하고 있어요. 그럼 어떻게 해야 될까요?

친구야, 점심값 도착 안 했는데?

라고 보내겠죠. 왜냐하면, 우리는 은행이 가지고 있는 ‘원본 데이터’인 ‘통장 잔액’에 기록된 내용을 더 신뢰하기 때문이에요.

즉, 은행은 ‘은행 데이터베이스에 기록된 계좌 정보’가 원본 데이터임을 보증하고, 우리는 은행을 믿고 그 데이터를 ‘원본’으로 받아드려요.

이게 바로 기존 시스템에서 원본 데이터를 쉽게 구분할 수 없기 때문에 발생하는 ‘이중 지불 문제’를 해결하는 방법이에요.

은행과 같은 ‘신뢰할 수 있는 기관’이 보유하고, 관리하고, 제공하는 데이터를 ‘원본 데이터’로 ‘신뢰’하는 것이 기존 시스템이 이중 지불 문제를 해결하는 방법이랍니다. 좀 더 쉽게 설명하면 친구의 말보다는 은행이 보장하는 통장 잔액 내역을 더 신뢰한다는 말이랍니다!

정리하면, ‘신뢰할 수 있는 주체’가 기록, 관리 및 제공하는 ‘데이터’를 ‘원본 데이터’로 인정하는 것이 기존에 사용되는 방법이에요. ‘은행’이 보유한 데이터인 ‘계좌 잔액’에 기록된 내용을 ‘신뢰’하는 거죠!

이러한 예시는 곳곳에서 찾아볼 수 있어요. 신용카드를 한번 생각해볼까요? 우리가 신용카드를 사용하면 신용 카드를 사용했다는 데이터가 카드 회사로 넘어가요. 카드 회사는 그 ‘데이터’에 따라 물건을 판매한 판매자의 통장에 ‘결제 대금을 송금’해줘요.

이 과정에서 우리는 판매자에게 직접 현금을 주지 않아요. 우리가 물건 결제에 때 신용 카드를 사용했다는 ‘데이터’가 카드 회사와 은행으로 넘어가는 과정만 존재해요. 그리고 우리는 카드 회사와 은행이 그들이 보유한 ‘데이터’를 바탕으로 모든 과정을 올바르게 수행할 것이라고 ‘신뢰’하는 것이에요.

하지만, 카드 회사와 은행은 그들이 보유한 ‘데이터’를 외부에 공개하지 않기 때문에 우리는 카드 회사와 은행이 원본 데이터를 정직하게 관리하고 행동할 것이라고 ‘신뢰할 수밖에’ 없답니다.

즉, 우리는 데이터를 직접 보거나, 관리할 수 없고 그 데이터를 관리하고 제공하는 ‘기관’이 ‘원본 데이터’를 거짓 없이 제공할 것이라고 ‘신뢰’하는 사회에서 살고 있답니다.

그럼, 블록체인은 이중 지불 문제를 어떻게 해결할까요?

기존 시스템하에서 우리는 ‘은행 계좌 정보’와 같은 데이터를 직접 확인하거나 혹은 관리하지 못해요. 우리가 할 수 있는 최선은 ‘은행과 카드 회사’ 같은 회사들이 ‘원본 데이터’를 조작 및 변경하지 않고 올바르게 제공할 것이라고 신뢰하는 것이에요.

여기서 한발 더 나아가려면 어떻게 해야 될까요?

네! 바로 모두가 ‘원본 데이터’를 가지고 있는 방식을 도입하는 거예요! 기존 시스템에서는 신뢰할 수 있는 기관들이 ‘원본 데이터’를 전적으로 관리하고 제공해왔어요.

하지만 블록체인은 참여자가 ‘원본 데이터’를 보유할 수 있는 시스템을 가지고 있어요. 예를 들면 비트코인의 경우 누구나 비트코인 계좌가 몇 개인지, 각 계좌에 몇 개의 비트코인이 들어있는지 확인할 수 있답니다.

생각보다 더 투명한 시스템이죠? 참여자들이 직접 ‘원본 데이터’를 보유할 수 있고, 확인할 수 있고, 관리에 참여할 수 있는 시스템이 블록체인이랍니다!

이렇게 참여자들이 ‘원본 데이터’를 보유하고 있기 때문에 블록체인에 기록된 정보를 ‘임의로 조작하거나 변경’하는 것은 매우 어렵답니다. 왜냐하면, 참여자들이 들고 있는 ‘데이터’를 전부 조작하는 것은 거의 불가능하기 때문이에요.

공원에서 ‘사과’ 하나를 주고받는 이야기에서 시작된 이번 여정을 통해 여러분은 이미 ‘블록체인’이 무엇인지 그 실체에 다가서고 있어요.

블록체인은 ‘데이터’를 주고받는 것을 마치 공원에서 ‘사과’를 주고받는 것처럼 만들어주는 기술이에요. 블록체인에 기록된 ‘데이터’를 주고 받는 것은 마치 현실 세계에서 ‘사과’를 주고받는 것처럼 조작 및 변경 그리고 진위를 따지지 않아도 돼요.

제게 ‘블록체인에 기록된 데이터’를 주는 건, 제게 ‘사과’를 주는 것과 똑같답니다! ‘블록체인에 기록된 데이터’가 무엇일까요? 바로 ‘비트코인’이랍니다. 만약, 제게 비트코인을 주면 그건 제게 사과를 준 것과 같이 실제 무엇인가를 준 것과 같아요.

이제 ‘데이터’를 ‘실제 사과를 주고받는 것’처럼 주고받을 수 있는 시대가 블록체인에 의해서 시작된답니다. 물리적인 실체가 없는 ‘데이터’가 블록체인을 통해 마치 ‘물리적인 실체가 있는 물건’을 주고받는 것과 같아지는 시대가 오는 거예요!

여기서 질문하나 해볼까요? 블록체인은 참여자들이 ‘원본 데이터’를 보유하고 있다고 말해드렸죠.

그럼, 친구가 제게 비트코인을 보낸 경우 이 데이터는 ‘어떻게’ 블록체인에 기록될까요? 은행은 직접 모든 데이터를 기록하고, 관리해요. 그렇다면 비트코인의 블록체인은 모두가 보유한 원본 데이터에 ‘새로운 정보’를 어떻게 기록하는 걸까요?

수많은 참여자가 ‘원본 데이터’를 보유하고 있다고 해도, 새로운 정보가 ‘제대로 기록되지 않으면’ 문제가 발생할 거에요!

다음 시간에는 참여자들이 원본 데이터를 보유하고 있는 블록체인 시스템에서 어떻게 새로운 데이터가 제대로 기록될 수 있을까? 를 ‘비트코인’을 통해 설명하려 해요.

그럼, 4부에서 만나요!