brunch

You can make anything
by writing

C.S.Lewis

Blockchain과 Bit coin

사실 블록체인에 대해서 관심이 많았던 1인이기에 블록체인이 곧 비트코인과 연결되는 현 상황이 안타깝습니다.


그래서 이번엔 블록체인의 기술의 진 면목을 누구라도 알아주길 바라며, 블록체인과 코인에 대해서 알아보도록 하겠습니다.



블록체인 기술을 이해하기 앞서 우리가 일반적인 금융 거래를 알 필요가 있습니다.


우리가 일반적으로 A와 B 사이의 거래가 이루어지는 상황을 가정해 봅시다.


A 가 B에게 송금을 할 때는 신뢰성 있는 제삼자 또는 중개인이 필요합니다.


이 역할을 은행등의 금융 기관이 담당하고 있으며, 은행은 둘의 거래는 중앙 장부에 기록하고 보관합니다.


만약 누군가가 중앙 장부를 조작할 수 있게 된다면 엄청난 일이 발생하고 말 것입니다.


중앙 집중 형 방식은 이런 위험에 노출되어 있다고 볼 수 있습니다.


이러한 상황을 막고자 P2P(Peer to Peer) 거래 방식이 대안으로 나타나게 되었습니다.


우리가 앞으로 알아보게 될 블록체인 기술의 기본 콘셉트인데요.


이전 같은 상황에서 P2P 방식은 A와 B의 거래 후 거래 내역이 거래 당사자의 각 장부에 기록이 됩니다.

그리고 거래에 직접 참여하지 않았다 하더라도 이 시스템에 참여한 사람들의 장부에도 기록이 됩니다.


그렇기 때문에 장부 조작을 하기 위해서는 중앙 집중 형 보다 더 많은 노력이 필요하겠죠?


중앙 집중형은 하나의 장부만 조작하면 되겠지만, P2P의 경우는 시스템 참여자의 장부를 모두 조작해야 하니까요.


이때 장부에 기록되는 내용들을 블록이라고 부릅니다.

그리고 이게 서로 엮여 있기에 체인, 그래서 블록체인이라고 부르는 것입니다.


이 블록들은 특수한 방법에 의해 만들어집니다.

그리고 블록끼리는 맞물려 있기에 하나의 블록에 변화가 생기면 이후 블록들의 값도 모두 변경해 줘야 합니다.


그렇기 때문에 정보를 변조하기가 어려워지는 것이죠.


무슨 이야기 인지 사례를 봅시다.

누군가가 B의 장부중 3번째 블록의 내용을 변경(9 -> 20)했다고 가정해 보겠습니다.


이 블록들은 내부적으로 이전 블록의 값을 더한 숫자로 시작해 1씩 증가하는 규칙을 가지고 있는데, 3번째 블록의 변화로 인해 4번째, 5번째 블록 에도 변화를 주어야 합니다.


하지만 이 장부는 본인만 가지고 있는 것이 아니기에 다른 유저들의 블록도 마찬가지로 변경해 줘야 합니다.


당장은 옆에 있는 User A의 블록들이 되겠네요!


이제 User A의 블록들도 마찬가지로 변화를 줄 차례인데, 그 사이에 다른 유저들 간의 거래가 발생하여 추가 블록이 생성되었습니다.


그럼 이제 변경해야 할 블록은 6개, 아니 A에 추가된 블록은 B 에도 추가되기 때문에 9개의 블록을 수정해야겠군요.


시스템의 사용자가 많아지고, 거래가 활발해진다면 블록의 변경은 거의 불가능에 가깝게 됩니다.


1명의 해커가 결코 여러 명의 사용자를 이겨낼 수 없다.

이게 바로 블록체인의 보안 형태입니다.


그럼 코인은 무엇인가요?

이런 블록체인에 떼려야 뗄 수 없는 개념이 바로 코인이라는 개념이죠!


앞에서 살펴본 블록체인과 코인은 도대체 어떤 개념이냐?


우선 앞에서 살펴본 블록이 어떻게 생성되는 것 인지를 먼저 알아야 합니다.

블록에는 개별 거래에 관련된 내용들이 저장되어 있습니다.

사실 그림에서 표현된 것보다 훨씬 많은 정보가 담겨 있지요.

그런데 이 내용은 해시라는 형태로 저장되어 있습니다.


HASH?

해시는 특정한 데이터를 상징하는 고정된 길이의 데이터로 변환하는 행위를 의미합니다.


그리고 이를 수행하는 함수를 해시함수(Hash Function)라고 부릅니다.


해시 값은 1글자를 넣던 3만 자를 넣던 32자리 16진수의 수로 표현 됩니다.(128 비트)


이러한 이유로 결괏값을 통해 입력 값을 추론할 수 없고, 이를 비가역이라고 말합니다.


그래서 이 암호화를 푸는 방법은 토씨하나 틀리지 않고 원본의 내용을 그대로 입력하는 방법밖에는 없습니다.


그래서 이 암호를 푸는 행위는 맞을 때까지 마구잡이로 넣는다고 해서, 무차별 대입이라고 부릅니다.


정리해 보자면 다음과 같습니다.

블록의 해시 암호를 풀어서 장부의 내용을 열고

현재 거래내역과 이전 블록의 일부 값을 넣고

다시 해시 암호화 하여 저장한다.


문제는 이 해시 암호를 풀어내는 과정이 시간도 걸리고 전력과 내 CPU 또는 GPU를 많이 사용한다는 점입니다.


특히나 PC의 성능이 떨어지는 유저 입장에서는 엄두도 나지 않겠죠.


그래서 이를 다른 컴퓨팅 자원이 좋은 사용자에게 부탁을 하게 됩니다.


하지만 누가 자기 자원 써 가면서 문제를 풀어줄까요?

아마도 거의 없지 않을까요?


그래서 이에 대한 보상으로 코인을 주는 것입니다.

그리고 이 문제를 풀어주는 행위를 마이닝, 채굴이라고 표현하는 것이고요!


블록체인 시스템에 따라 다르지만, 보통은 동시에 이 문제를 풀어서 제출하고 가장 먼저 푼 사람의 답을 나중에 제출한 사람들과의 답과 맞춰 봅니다.


그리고 보상으로 코인을 받는 거죠, 물론 이들 간에도 거래가 생긴 것이므로 이역시도 같은 과정에 의해 블록이 생성되게 됩니다.


블록체인과 코인에 대해서 알아보았습니다.

어때요? 블록체인도 꽤나 매력적인 기술이죠?


그의 부산물인 코인에만 집중되고 있는 현실이 조금은 안타깝지만, 언젠가는 블록체인 자체도 순수하게 빛을 볼 날이 있을 거라 생각합니다.

매거진의 이전글 AI 는 어떻게 학습하는 걸까요?
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari