비트코인 채굴 원리 쉬운 설명 끝판왕

비트코인 작동 원리 궁금해서 설명글 여러개 봤는데 다들 뭔가 아쉬웠다. 그래서 비트코인 채굴 원리 즉 블록체인 생성 원리를 나같은 문송 범인도 쉽게 이해할 수 있도록 최대한 쉽게 설명해보려고 한다. 거품 꺼져가는 마당에 뒷북 느낌도 있지만, 거래소 거품과 관계없이 암호 화폐와 블록체인 기술은 앞으로도 유망할테니.

아무튼, 비트코인 채굴 핵심 원리는 '연쇄적 암호화, 쪽수로 밀어붙여' 이렇게 두 가지로 보면 된다. 지금부터 이것들을 최대한 쉽게 설명하겠다. 기술 용어 사용은 자제할텐데, 나오더라도 그냥 그런게 있나보다 하고 넘어가도 된다.

모든 금융 시스템이 그렇듯, 비트코인 시스템도 거래 내역을 데이터 베이스에 기록한다. 비트코인 시스템의 데이터 베이스는 순차적으로 연결된 블록들로 이루어져있다. 하나의 블록에 50건의 거래가 기록된다고 한다면, 첫 번째 블록인 A 블록에는 1~50번 거래가 기록되겠지. B 블록에는 51~100번 거래가 기록될테고.

비트코인 시스템은 각각의 블록마다 해쉬(Hash)라는 암호하된 고유 번호를 부여한다. 해쉬값은 SHA-256 함수로 생성한다. 이 함수는 일종의 암호 생성기라고 보면 되는데, 이 함수에 입력값을 넣으면 그것에 해당하는 256 글자로 된 암호를 생성한다. 이 암호가 너무 복잡해서 생성된 암호 값을 가지고 거꾸로 입력값을 도출할 수는 없다.

그럼 A 블록 해쉬값은 어떻게 구하느냐? A 블록에 기록된 정보, 즉 A 블록에 기록된 모든 거래 정보에 몇 가지 정보를 더하여, SHA-256 함수에 입력값으로 넣어서 구한다. 몇 가지 정보중 하나가 바로 직전 거래들이 기록된 바로 전 블록의 해쉬 값이다. 이처럼 블록들이 해쉬값을 기준으로 순차적으로 연결되는 구조라 블록체인이라 부른다. 해쉬값으로 암호화된 하나의 블록을 생성하는 행위를 작업 증명 또는 채굴이라 한다. 채굴에 성공한 참여자에게 보상으로 비트코인을 준다.


51~100번 거래가 기록된 B 블록의 해쉬값은 B 블록에 기록된 50건의 거래 정보와 직전 블록인 A 블록 해쉬값을 조합하여 도출한 데이터를 SHA-256 함수에 입력하여 구한다. 따라서 특정 블록의 암호화가 이후 연결되는 다른 블록들의 암호화에도 영향을 준다. 이것이 바로 첫번째 원리인 '연쇄적 암호화'.

만일 누군가 A 블록을 해킹하여 거래 정보를 변경하면, 거래 정보를 입력하여 생성한 A 블록의 해쉬 값도 바뀐다. 해쉬 값이 바뀌면 A 블록의 해쉬값을 저장하고 있던 B 블록은 해킹으로 조작된 A 블록을 유효한 데이터로 인정하지 않는다. B 블록에 저장된 A 블록의 해쉬값을 바꾸면 B 블록의 해쉬값도 바뀐다. 따라서 비트코인 시스템의 거래 정보를 위조하려면 해당 블록과 이후에 이어지는 모든 블록들을 전부 조작해야 한다. 이러한 성질 덕분에 블록체인은 보안성이 뛰어나다.

비트코인 시스템은 블록체인들을 체굴에 참여한 여러 컴퓨터에 백업한다. 그래서 비트코인 시스템이 분산화된 거래 원장이라 일컫는다. 비트코인 시스템은 과반수가 넘는 체인의 기록과 일치하는 블록체인 기록만 진본으로 인정하기 때문에, 체굴에 참여한 전 세계의 모든 컴퓨터들에 복제되어 있는 체인들을 일일히 찾아서 싹 다 바꿔야 한다.

이런 짓도 하려면 할 수는 있지만, 이렇게 해서 얻는 이득보다 비용이 훨씬 크다. 이것이 바로 두 번째 원리 '쪽수로 밀어붙여'. 정식 명칭은 비잔틴 장군 문제 해결인데, 간단히 말하면 거래 정보가 서로 다른 블록체인이 존재할 경우 사본 개수가 많은 쪽을 진본으로 인정하는 것이다. 이러한 성질 덕분에 별도의 중앙 통제 시스템 없이도 강력한 보안성을 가진다.

지금까지 비트코인 채굴과 블록체인 생성 원리를 설명했다. 말했듯이 최대한 쉽게 설명하려고 노력했다. 보다 정확한 설명을 원한다면 이 글로는 부족할 것이니 따로 찾아보시길. 위 설명 조차 어렵게 느껴진다면 일단 '연쇄적 암호화, 쪽수로 밀어붙여' 이 두 가지만 기억하시라. 그리고 이것 저것 보고 듣다 보면 결국 이해가 될 것이다.

댓글 없음: