#블록체인
[본 글은 2022.05.13 본인 Medium에 게재된 글을 옮긴 것 입니다]
블록체인하면 뭐가 떠오르시나요? 비트코인? 메타버스? 디파이?
틀린 말은 아닙니다.
단지, 생각나시는 모든 서비스들은 ‘블록체인’이라는 생태계 위에서 실행되는 부산물들일 뿐입니다.
저 모든 것들을 가능하게해주는 ‘블록체인’은 과연 무엇일까요?
블록체인이란, 블록들을 연결한 체인입니다.
이상 글 읽어주셔서 감사합니다.
농담이었구요, 우선 블록체인의 사전적은 정의부터 보시죠.
블록체인이란, 네트워크에서 트랜잭션을 기록하고 자산을 추적하는 프로세스를 효율화하는 불변의 공유 원장
지나가는 할머니께 설명드린다면, 블록체인은 모든 거래가 기록된 ‘하나의 장부’를 모든 사람들이 나누어서 보관하는 네트워크입니다.
하나의 장부를 나누어 가지는게 뭐가 그리 대수라고 다들 그 난리야?
장부를 나누어 가지는 것이 대수인 이유는 바로 위변조가 불가능하기 때문입니다.
요즘 자주 나오는 얘기 중 하나가 바로 우리은행 횡령 사건이죠. 은행의 특징을 한 번 살펴볼까요?
은행은 우리가 피땀흘려 번 돈을 보관하고 이자를 주는 고마운(?) 기관입니다.
다만 누가, 얼마를 맡기는 등의 개인정보, 거래내역은 온전히 중앙집단인 은행이 관리하죠. 불투명합니다.
따라서 은행이 내부 관리를 소홀히 한다면 횡령 사건과 같이 돈을 맡긴 고객들이 오히려 막대한 손해를 볼 수도 있습니다.
이것이 바로 중앙화 시스템의 문제점입니다.
블록체인은 이러한 중앙화 시스템에서 벗어나, 탈중앙화를 토대로 모든 거래를 모든 사람들이 투명하게 감독하여 위변조와 같은 상황을 미연에 방지하자는 목적으로 개발되었습니다.
오케이. 사람들이 왜 블록체인이 좋다고 하는지는 알겠다 이거야. 근데 그걸 어떻게 현실화하는데?
자, 이제 블록체인이 대충 어떤 것인지는 아시겠죠?
그러면 이제 한 발짝 더 나아가 모든 사람들이 보관할 그 ‘하나의 장부’를 누가 만들지 고민해야 합니다.
이유는 악의적인 이용자가 장부를 조작하여 다른 사용자에게 뿌려 하나의 네트워크에 여러 개의 장부가 존재하는 상황이 벌어지면 안되기 때문입니다.
따라서, ‘은행’이라는 중앙기관이 없기 때문에 블록체인 상의 정직한 누군가가 장부를 만들어 나누어주어야 합니다.
장부는 누구나 만들 수 있어야 하지만 아무나 만들게 해서는 안된다
블록체인 개발자들은 장부를 만드는 행위를 ‘합의’라고 정의했습니다.
예를 들면, 블록체인 A 위에서 발생한 트랜잭션(거래)들을 하나의 장부에 기록하여 다른 사람들에게 뿌리기 위해 사람들은 ‘합의’라는 과정을 거치고, ‘합의’가 이루어지면 하나의 블록에 합의된 트랜잭션들을 모아담은 뒤 기존 블록들의 체인에 추가하는 것이죠. (장부=블록)
즉, 블록체인은 과거 거래내역이 담긴 블록들이 무한히 연결된 체인입니다.
(물론 기술적으로 블록내에 hash, nounce 등 다른 요소가 있지만 추후 설명)
아니 다 좋은데, 그럼 합의는 누가 하는데?
합의는 블록체인의 정체성을 담당할만큼 블록체인의 전부와 같다고 볼 수 있습니다.
블록체인은 합의고, 합의가 곧 블록체인이다. — doh kim
합의 방법에 따라 블록체인의 성패가 좌지우지되는 경우도 많습니다.
여태껏 많은 합의방법이 탄생했지만, 이 글에서는 가장 기본적인 비트코인과 이더리움2.0의 합의 방법 두 가지만 언급드리고자 합니다.
1. 작업증명방식 (Proof of Work, PoW)
비트코인, 채굴, 그래픽카드대란 등 들어보셨죠?
코인 1대장 비트코인이 선택한 합의 방식이 바로 작업증명방식(이하 ‘PoW’)입니다.
오직 노동만이 진실을 보장한다
Hash, Nounce, Difficulty 등 기술 복잡한 얘기 다 빼고
작업증명방식은 오랫동안 노동력을 투입한 사람이 새로운 장부를 만들 권리를 주는 방식입니다.
그 노동력은 바로 컴퓨터를 돌려 수학문제를 푸는 것이죠.
Source: Google Image
아니 블록체인은 아무나 참여할 수 있다면서 수학문제 풀어야 된다고?
걱정마세요. 비트코인상의 수학문제는 굉장히 간단하여 아래와 같다고 보시면 됩니다.
제가 마음 속에 하나의 단어를 생각하고 있는데요, 그 단어는 무엇일까요?
이 문제를 풀기위해 머리를 쓸 필요는 없습니다.
1부터 10^무한대까지 숫자를 대입하거나, 영한사전을 뒤져가면서 모든 단어를 대거나 아무튼 무지성으로 대입하는 방법 밖에 없어요.
이 말인 즉슨, 컴퓨터가 많을수록 마음 속의 단어를 맞출 확률이 높다는 것이죠.
여러분들이 많이 들어보신 ‘채굴’이라는 행위가 바로 컴퓨터를 통해서 수학문제를 푸는 행위입니다.
그래픽카드 가격이 오른 이유도 그래픽카드가 채굴에 효율적인 것이 발견되면서이고, 이제는 그래픽 카드를 넘어 ASIC이라는 채굴을 위한 맞춤형장비까지 개발된 상황입니다.
그렇다면 PoW의 장단점을 짚어보시죠.
장점이라면, 컴퓨터만 있다면 누구나 합의과정에 참여할 수 있다. 이는 곧 탈중앙화가 핵심인 블록체인의 근본과도 일치한다.
또한, 네트워크에서 악의적인 사용자의 해킹에 강력합니다.
현재 기준 비트코인 네트워크 해킹을 위해서는 네트워크 상의 모든 컴퓨터 파워의 51% 이상을 확보해야하는데, 이는 시간당 약 30억원이 들며, 언제 성공할지도 모릅니다. 차라리 이 시간에 채굴해서 돈 버는 것이 나은 구조이죠.
아쉽게도 단점도 있습니다.
컴퓨터로 수학문제를 풀어야 장부를 만들 수 있다고했죠? 그럼 컴퓨터 많은 사람이 장땡이네요?
네 맞습니다. 실제로 채굴하는 사람들이 힘을 합쳐서 회사도 차리고 할 정도로 채굴 Scene에서 중앙화가 이루어진 상황입니다. 비트코인을 개발한 Satoshi Nakamoto도 이정도까진 예상하기 힘들었을 거에요.
저 수많은 컴퓨터들이 단순한 수학문제를 풀기위해서 낭비되는거에요?
또 맞습니다. 실제로 비트코인 채굴에 사용되는 전력량이 이제는 한 국가의 일년치 전기 사용량과 맞먹을 정도의 수준이 되었습니다. 환경문제는 덤.
장부를 아무나 만들 수 있게 해주는 것이 옳을까? 환경/전력낭비 문제는 어쩔건데?
이러한 고민으로 탄생한 것이 바로 두번째 합의 방법인 지분증명방식입니다.
2. 지분증명방식 (Proof of Share, PoS)
지분증명방식은 컴퓨터고 나발이고 때려치우고, 네트워크 상에서 코인 많이 가지고 있는 사용자에게 장부를 만들 권리를 주는 방식입니다. (주식회사의 지분율과 비슷한 개념)
부자는 제 살 깎아 먹는 짓은 안 한다— doh kim
즉, 대기업 회장이 자기 회사 망하게할 짓은 안 할 것이라는 믿음인 것이죠.
일리가 있는 것이, 위변조가 가능하다는 소문이 돌면 동시에 그 네트워크는 망하게 되고, 코인의 가치는 0이 되기 때문입니다.
장점이라면, 작업증명방식의 채굴장에서 쓸 데 없이 전력낭비 안해도 된다는 점이 있습니다. 환경보호 측면에서 개이득인 것이죠.
단점이라면, 결국 지분율에 의해 장부가 관리되기 때문에 블록체인의 근간인 탈중앙화에서 멀어진다는 것이 겠네요.
이 복잡한 과정을 자발적으로 해주는 천사가 있다고?
세상에 미쳤다고 컴퓨터 수천대사고 전기세 몇백만원씩 내면서 채굴장을 돌리는 사람은 없을 것 입니다.
또한 내가 아무리 A 블록체인 코인이 많다고하더라도 공짜로 장부관리를 하지는 않을 것이고요.
따라서 블록체인은 사용자들이 ‘자발적’으로 합의를 통하여 ‘장부생성’(블록생성)을 하게끔 유인책이 필요합니다. 그것이 바로 코인인 것입니다.
네트워크상에서 수학문제 풀이에 성공하여 블록 생성 권한을 얻은 뒤, 거래내역을 담아 네트워크 사용자들에게 전달을 하면 거래수수료 + 비트코인 보상을 받게 되는 원리이지요.
다음번에는 조금 더 기술적으로 채굴이 어떻게 진행되고 블록은 어떤 구성으로 어떻게 만들어 지는지 살펴보도록 하겠습니다.
(Disclaimer: 위 작성된 모든 내용은 개인적인 의견이며, 사실과 다른 부분이 있을 수 있습니다. )