비트코인이라과 블록체인이라는 단어를 많이 들어보셨을텐데요.
사실 비트코인의 기반이 되는 것이 블록체인이라고 하는 기술인데요.
오늘은 이 블록체인이 대체 무엇인지 정리해 보도록 하겠습니다.
1. 블록체인?
블록체인은 모두에게 공유되는 분산 거래기록(장부)의 데이터베이스를 가르킵니다.
분산과 분산되지 않은 것은 무슨 차이가 있는 것일까요?
우리가 흔히 거래하는 시중은행을 기준으로 생각해 보도록 하겠습니다.
은행에서 거래를 하면, 은행의 중앙 컴퓨터(서버)에 모든 거래 내용이 들어가 있고,
그 기록을 기준으로 돈을 지급받거나 지불합니다.
만약 이 기록이 없어지면,
아주 큰 사고라고 할 수 있습니다.
예전에 은행 해킹사고가 있을 때,
큰 뉴스거리가 되고는 했었지요.
블록체인방식은 기존 은행의 방식과 다르게,
특정 컴퓨터에만 거래가 기록되지 않습니다.
거래기록이 분산되어 모두에게 공유되는 것이어서,
은행의 서버 역할이 애당초 없는 것이지요.
그런데 어떻게 서버가 없이 분산되어 공유되는 걸까요?
게다가 은행과 같은 중개자가 없음에도, 높은 신뢰도를 보증해 준다고 하는데 말이지요.
아래에서 이것이 어떻게 작동하는지 원리에 대해 알아보도록 하겠습니다.
2. 블록체인의 원리
이제 블록체인에 대해서 좀 더 깊게 들어가 봐야하는데요.
여기서 잠시만 삼천포로 빠져야 합니다.
블록체인의 중요한 암호화 방법중 하나인 해쉬에 대해서 알아야 하기 때문인데요.
2-1. 해쉬?
블록체인의 근간을 이루는 암호화 방법인데요.
조금 어려운 부분이긴 하지만,
간단히 정리해 보도록 하겠습니다.
해쉬함수를 사용하는 목적은, 값을 위조하기 어렵게 난독화(읽기 어렵게) 시키는데에 있습니다.
아무값이나 해쉬함수의 공식에 대입해 보면,
이해하기 어려운 바이너리 값이 나오게 되는데요.
이렇게 나온값을 해쉬라고 합니다.
이렇게 나온 해쉬값은 다시 원래 값으로 되돌릴 수 없다는 특징이 있는데요.
값의 경우의 수가 2의 256승이라는 엄청난 수로 되어있기 때문에,
하나하나 대조해 본다는 것 자체가 매우 어려운 일이기 때문입니다.
2-2. 분산회계장부와 디지털 서명
위에서 블록체인은 거래기록(장부)을 공유한다고 하였는데요.
그런데, 가짜로 기록을 보내버리면, 진위여부를 어떻게 가릴 수 있을까요?
거래를 할 때, 위조할 수 없는 디지털 서명을 추가함으로써 그것을 가능하게 하는 것 입니다.
여기서 전문용어를 하나더 알아야 하는데요.
바로 공개키와 비공개키 입니다.
단어 그자체에서 알 수 있듯이,
공개키는 모두에게 공개된 키이구요.
비공개키는 자신만 가지고 있는 비밀키입니다.
(공개키와 비공개키에 대한 더 구체적이고 기술적인 부분은 이글에서는 생략하겠습니다)
디지털 서명은 256개의 바이너리로 구성된 값인데요.
이중 하나의 값만 달라도 전혀 다른 서명이 되는 구조입니다.
생성될 수 있는 값의 경우의 수는 2의 256승이라는 엄청난 수로 되어있기 때문이지요.
디지털 서명값은 문서의 내용과 비밀키를 조합하는 함수로 만들어지는데요.
다른 사람이 서명값을 복사해도, 문서와 비밀키를 가지고 특정한 공식에 의해 생성된 서명값은,
다른 문서에 대해서는 사용할 수 없게 됩니다.
블록체인에서는 거래내역은 모두에게 사본이 전달되고,
구성원의 절반이상이 이것을 유효한 값인지 확인할 때,
유효하다고 판단하게 되는데요.
모두에게 공개된 공개키는 유효한 값인지 확인할 때 사용되어 집니다.
내용은 알 수 없지만, 진위여부를 확인할 때 사용하는 것이지요.
거래내역과, 디지털서명, 그리고 공개키를 가지고 공식에 집어넣어서,
이것이 비공개키를 이용한 것이라면 참을 아니면 거짓을 값으로 나오게 합니다.
이러한 방식으로 구성원 절반이상이 참이라고 판단한 값이 나오면,
그 값이 유효한 거래라고 판단하는 것이구요.
게다가 각 거래는 고유의 id를 가지게 되어서,
거래내용이 같다고 하더라도,
id가 달라서 서로 다른 디지털 서명을 해야하므로,
중복된 거래내역조차 존재하지 않게 되는 것입니다.
2-3. 블록의 유효성 확인
위에서 어떻게 하면 진위여부를 가린 거래내용을 공유받을 수 있을지에 대해서 정리해 보았습니다.
디지털 서명을 가짜로 만들어 내서, 진짜로 판단받을 수 있는 가능성은 거의 없다는 것도 알 수 있었구요.
하나의 블록에는 여러개의 거래가 순차적으로 기록이 되는데요.
그럼 여러개의 거래로 이루어진 블록이 유효한지의 확인은 어떻게 하면 될까요?
하나하나의 거래는 디지털 서명과 공개 및 비공개키를 이용해서 유효성을 확인했었는데 말이지요.
블록안에는 다양한 사람들의 거래가 기록되므로 특정인의 서명을 이용하기는 어렵습니다.
그래서, 블록에서는 특정한 값을 찾아서,
이 값을 거래의 마지막에 추가한 다음,
해쉬값으로 만들어 주는 방법을 취합니다.
이 때 사용한 특정한 값을 Proof of Work라고 하구요.
(거래에서의 디지털 서명의 역할을 하겠지요)
2-4. 블록 순서의 보장
블록체인은 각 블록이 연속적으로 이어져 있는 것인데요.
이 블록의 순서가 다르게 공유되면 않될텐데요.
어떻게 이것을 유지하는 것일까요?
각각의 블록은 자신보다 앞에 있는 블록의 해쉬값을 포함하게 구성해서
순서를 보장받도록 하는 것입니다.
2-5.블록의 구성요소
이제 하나의 블록이 어떻게 구성되어 있는지 알 수 있으실 텐데요.
블록체인을 구성하는 각각의 블록은
여러개의 거래와 Proof of Work라고 하는 해쉬값을 만들기 위한 특정한 값,
그리고 이전 블록의 해쉬값으로 구성되어 있습니다.
2-6. 블록 체인의 영구적 기록
만원이 있는 상태에서야 천원, 오천원을 이체할 수 있습니다.
이렇게 기존의 거래내역을 영구적으로 보존해야만,
돈이 0원인 사람이 5000만원을 지불한다하고,
무엇인가를 대가로 받게 되는 것과 같은 일을 막을 수 있는데요.
블록체인에서도 이러한 점을 알고,
거래내역을 영구적으로 보존하고 있습니다.
2009년에 첫번째 블록이 생성된 이래로,
비트코인의 거래내역은 블록체인안에 영구적으로 기록되어 집니다.
위에서 간단히 정리해 본,
블록체인의 원리는 나카모토 사토시가 쓴 논문에도 잘 정리되어 있는데요.
영어로 되어있기는 하지만, 관심있는 분들은 아래링크를 참조해 주세요.
https://bitcoin.org/bitcoin.pdf
3. 블록체인과 채굴
3-1. 블록 체인의 생성
2009-2012 |
50 BTC |
2012-2016 |
25 BTC |
2016.1 - 2020.2 |
12.5 BTC |
2020.2 - 2023.9 |
6.25 BTC |
https://tradeblock.com/bitcoin이나 blockexplorer.com 사이트에 방문해 보면 생성된 새로운 블록을 볼 수 있습니다.
그런데, 보상금액이 더이상 나오지 않으면 채굴자들이 모두 사라져 버릴까요?
그렇지는 않습니다.
채굴자들은 블록 보상외에도 거래 수수료를 챙길 수 있게 되어있습니다.
아래 이미지에서 거래내역을 보면,
첫번째는 보상금액에 대해서 나와있고,
두번째 거래내역부터는 fee 즉 수수료에 대해서 나와있습니다.
현재는 그렇게 큰 금액이 아닐수 있겠지만,
보상이 끝나는 2023년경에는 지금의 은행 수수료만큼의 수수료가 되지 않을까 합니다.
수수료는 꼭 지불해야하는 것은 아니지만, 수수료를 포함하게 되면,
채굴자들이 수수료가 포함된 거래를 먼저 블록에 포함시키려 하기 때문에,
아무래도 해당 블록이 생성되는 속도가 빨라지겠습니다.
비트코인은 약 2,400개까지만 하나의 블록에 포함될 수 있도록 하고 있는데요.
이것때문에 알트코인이라고 불리는 다른 코인으로부터 공격을 받기도 하고 있습니다.
5. 아직은 변동성이 높은 비트코인
비트코인 같은 암호화폐는 아직 대중화되기에는,
변동성이 높은 것이 사실입니다.
달러대비 가치가 하루에도 수십% 올라갔다가 내려가기도 하기 때문입니다.
6. 오픈소스
블록체인을 이용한 암호화코인들은 오픈소스여서 코드가 공개되어 있는데요.
코드가 공개가 되어있다면, 해킹될 가능성이 크지 않을까 걱정될수도 있겠으나,
비트코인이 안전한 이유가 알고리즘때문이므로 공개여부가 보안상의 문제가 되지는 않습니다.
현재 개발자들이 하는 것보다 더 좋은 방법이 있다면,
Github라는 오픈소스 커뮤니티를 통해,
제안을 할 수 있고, 그것이 채택될 수 있는 구조입니다.
비트코인 개발자들에 대해서 알 수 있는 사이트도 있는데요.
아래 사이트를 참조하면 현재 개발에 기여하고 있는 개발자들을 볼 수 있습니다.
7. 정리
비트코인의 근간을 이루고 있는 블록체인이라는 기술에 대해서 정리해 보았습니다.
탈중앙화를 표방하는 비트코인의 철학은 저에게 너무나도 멋져보였습니다.
자본주의 사회에서 국가나 단체가 컨트롤하는 것이 아닌,
모든 구성원들이 함께 지탱해나가고 유지해나가는 것이죠.
물론, Mining이라는 것이 비즈니스화 되어서,
거대 사업자들이 등장하였고 이들이 어느정도 영향을 끼칠 수 있게 되었지만,
비트코인 커뮤니티와 코어 개발자들이 건강하게 비트코인을 유지시킬 수 있을 것이라고 믿습니다.
'비트코인 그리고 암호화폐' 카테고리의 다른 글
비트코인 투자지표 사이트들 (1) | 2017.12.18 |
---|---|
비트코인 뉴스 및 커뮤니티 사이트 정리 (0) | 2017.11.27 |
비트랙스에서 피보나치 툴 사용하기 (0) | 2017.11.27 |