요즘 블록체인에 관해 공부를 하면서 블록체인 뜻과 기술이 어떻게 구성되어 있는지 공부하고 있는데요. 블록체인은 16년도부터 이슈가 되어 나왔지만 아직도 인기있고 유망한 분야입니다.
또한 최근에는 미국 트럼프의 재선으로 인해 다시한번 비트코인이 상승세를 보이면서 블록체인이 무엇인지 다시 이슈가 되는 듯 하는데요.
저는 이쪽 전문가는 아니기 때문에 어렵게 설명하라고 해도 절대 못할 듯 하고요. 저처럼 초보의 관점에서 쉽게 블록체인의 뜻과 블록체인의 기술을 설명해볼게요. 제가 이해한 내용을 바탕으로 작성한 것임을 염두하고 읽어주세요. ㅎㅎ
블록체인이 나오게 된 이유
블록체인은 은행 등의 중앙화 된 시스템에 불신에 의해서 나오게 된 시스템입니다. 예를 들어 볼게요. 우리가 음식점에서 밥을 먹고 계산을 하려고 합니다. 사장님에게 카드를 주면 사장님은 카드를 기계에 긁습니다. 그러면 우리 카드 정보가 은행에 전송되고 은행은 우리의 카드가 도난 된 것은 아닌지 등을 확인 후 결제 승인을 내줍니다. 그러면 결제 승인이 나면서 영수증과 함께 사장님이 카드를 줍니다.
즉 은행이라고 하는 중앙화 시스템에 의해 우리의 거래가 일어나는 것입니다. 은행이 우리의 거래내역을 장부로 기록하고 관리하며 우리는 이를 기반으로 거래를 하는 것이죠.
하지만 만약 은행의 중앙 시스템이 해킹을 당하거나 직원 중 누군가 나쁜 마음을 갖고 이를 악용한다면..? 어떻게 될까요. 즉 은행이라는 한 곳에서 이렇게 모든 장부를 관리하면 위험할 수 있다는 개념에서 블록체인이 나오게 된 것입니다.
블록체인의 기본 개념은 이런 여러 거래에 대한 장부를 은행과 같은 한 곳에 중앙화 시키는 것이 아니라 이런 거래 내역을 여러 사람이 갖고 있도록 하는 탈중앙화된 시스템입니다. 따라서 어느 한 사람이 장부를 왜곡 시켜도 여러 사람들이 장부 거래 내역을 갖고 있기 때문에 전체를 왜곡 시키지 않는 한 장부를 바꾸거나 왜곡 시킬 수 없습니다.
전 세계에 이렇게 장부를 갖고서 증명하는 사람들이 분포되어 있기 때문에(‘노드’라고 합니다) 동시에 전세계 노드의 컴퓨터에 저장된 데이터를 왜곡시키긴 어렵습니다. 사실상 불가능하기 때문에 궁긍적으론 블록체인에 저장된 데이터는 변형할 수 없습니다.
블록체인 뜻
블록체인의 특징
그러면 다시한번 블록체인의 뜻에 대해서 알아보겠습니다. 블록체인이란 ‘블록+체인’의 합성어로 앞서 말한 여러 거래내역(트랜잭션 데이터)를 블록의 형태로 장부를 만듭니다. 이러한 블록을 체인으로 연결한 형태로 데이터를 보관하기 때문에 블록체인이라고 명명한 것입니다.
즉 블록체인은 블록체인 기술 위에 거래가 이루어지면 블록으로 거래 데이터가 생성되어 지고 이러한 블록형태의 거래내역들을 계속 연결시킵니다. 체인처럼 연결한다고 해서 블록체인이라고 하는 것이고요. 이러한 특성 때문에 모두가 거래 내역에 대한 정보를 알 수 있어 ‘투명성‘이 있으며 과거 정보를 변형할 수 없기 때문에 ‘불변성‘이 존재합니다. 또한 모두에게 장부가 공개되고 공유되기 때문에 ‘탈중앙화‘ 성격을 갖고 있습니다.
블록체인 검증, 노드
또한 블록체인은 탈중앙화된 시스템이기 때문에 이런 거래내역이 블록형태로 장부가 만들어지면 이게 은행과 같은 곳에 아니라 여러 검증인단(노드)에게 보내집니다. 그래서 노드들은 이 거래과 올바른 거래인지 확인 후 모든 노드들이 합의가 되면 이 거래가 승인되어집니다.
아래는 블록체인 검증인단인 노드들의 분포 현황입니다. 전 세계에 노드들이 분포되어 있기 때문에 노드 한명의 피씨가 꺼진다고 하여도 블록체인을 검증하는데 문제가 되지 않습니다. 즉, 탈중앙화된 시스템으로 장부가 전세계에 저장되어 있기 때문에 누구 하나 시스템이 마비 되더라도 대응할 수 있습니다. 이를 ‘가용성‘이라고 합니다.
블록체인 예시
예를 들어 A가 B에게 비트코인 10개를 준다고 하겠습니다. 그러면 이 내용을 블록체인으로 저장합니다. 그런데 갑자기 A가 B에게 비트코인 10개를 안주겠다고 합니다. 하지만 이미 여러 노드들에게 A가 B에게 비트코인 10개를 준다는 내용의 블록들이 저장되어 있기 때문에 나중에 딴 소리 해도 먹히지 않는 것이죠.
- 탈중앙화
- 투명성
- 불변성
블록체인 기술
해시함수
블록체인의 기술을 알려면 ‘해시 함수’를 알고 있어야 합니다. 해시함수는 일방향 함수인데요. 무슨 말이냐 하면 예를 들어 우리가 빨강색, 노란색을 섞으면 주황색이 됩니다. 하지만 만들어진 주황색을 보고 무슨색을 얼마만큼 섞어서 만들었냐고 하면 이를 알아내기란 불가능합니다.
다른 예로는 망고와 여러 야채를 갈아서 망고야채주스를 만들었다고 해봅시다. 그러면 망고야채주스를 만드는 건 쉽지만 거꾸로 망고야채주스를 보고 다시 원래의 망과와 들어간 야채를 다시 만드는 것은 불가능합니다.
해시함수는 이와 같은 것입니다. 한번 데이터가 들어가면 이를 해시함수를 통해 암호화 된 데이터로 변형됩니다. 따라서 블록체인 상에서 거래가 발생되면 블록이 추가되어 이를 해시함수를 통해 암화화 된 키가 발생됩니다. 따라서 과거 거래했던 내역들을 가지고 해시함수를 통해 암호화된 키를 갖게 되는 것이죠. 따라서 과거 거래 내역들을 변동시기란 불가능합니다.
즉 1거래내역 + 2거래내역 을 가지고 해시함수를 가지고 암호화키A가 생성됩니다. 이 후 3번째 거래가 추가되면 암호화키A+3거래내역이 추가되어 암호화키B가 생성되는 방식입니다. 따라서 최종적으로 마지막 암호화된 키만 있으면 그걸 가지고 노드들이 최종 검증을 한 후 승인이 되면 거래가 이루어지는 것입니다.
합의 알고리즘
블록체인의 핵심은 탈중앙화입니다. 즉 기존의 은행만 장부를 갖고 있으니 문제가 많다. 정작 장부를 봐야 할 개인에게 공유되지 않는 점을 비판하며 장부를 공개하고 기존에 은행이 신용 검증을 하던 것을 이제 여러 노드이 그 역할을 하게 됩니다.
기존에는 은행 한군데서 OK하면 끝났기 때문에 문제가 되지 않았지만 여러 노드들을 통해서 어떻게 OK를 이끌어 낼 것인지에 대한 고민이 필요한데요.
이때 나온 개념이 ‘합의 알고리즘’입니다. 즉, 여러 수십만명의 노드들은 블록체인 상에 발생된 블록(거래내역)을 갖고 있으며 새로운 거래가 발생할 때 마다 거래에 대한 검증을 합니다. 이 때 여러 노드들이 검증을 하기 때문에 여러사람이 맞다고 한 합의가 발생해야 하고 합의가 발생할 때 거래가 성사됩니다.
또한, 노드들은 이렇게 검증하기 위해 시간과 PC, 전력을 쓰기 때문에 검증할 때마다 블록리워드를 받게 되는데요. 현재 비트코인이 몇 천만원에 육박하기 때문에 1비트코인만 받아도 아주 부자가 되겠죠.
마치며
지금까지 비트코인의 뜻과 비트코인 기술에 대해서 소개해보았습니다. 나름대로 열심히 정리하였는데, 도움이 되셨을랑가요..ㅎㅎ
혹시 궁금하거나 잘못된 내용이 있다면 댓글달아주세요. ㅎㅎ 저도 블록체인 공부하는데 한참 걸렸네요. 이 글이 저와같은 초보 분들에게 도움이 되길 바랍니다.
[함께 읽으면 좋은 글들]
업비트에서 바이낸스로 코인 송금하는 방법(ft.폴리곤 전송하기)
바이낸스에서 메타마스크로 코인 보내기(ft.폴리곤 코인)
오픈씨에서 NFT 만들고 판매하는 방법(ft.폴리곤 코인 이용)