맨위로 가기
  • 공유 공유
  • 댓글 댓글
[이지 인사이트] 비트코인의 꽃 작업증명 Powered by Ludium
코인이지

2024.05.14 17:38:00

지난 시간에 비잔틴 장군 문제를 다뤄봤어. 비잔틴 장군 문제에서 충신이 2/3이상이면, 배신자를 색출해낼 수 있다고 했지? 이걸 네트워크라고 생각해보면, 전체 컴퓨터의 2/3 가 올바른 행동을 하면, 배신자 해커의 나쁜 행동을 막을 수 있다는 뜻이야. 그런데 비잔틴 장군 문제에서는 장군의 수가 제한적이잖아. 그리고 아무나 자기 마음대로 장군이 되는 게 아니라, 왕이 임명해야 장군이 되고, 또 왕이 파면하면 쫓겨나는 거야. 모든 사람들이 자유롭게 네트워크 안에 들어오고 나가는 걸 지향하는 비트코인과는 다르지. 그래서 비트코인은 작업증명이라는 비트코인만의 독특한 운영 규칙을 만들었어.

대체 블록체인이 뭐야?

출처: 자체제작

블록체인은 분산원장 기술이라고도 불러. A가 1비트코인을 B에게 보냈다, B는 다시 0.5비트코인을 C에게 보냈다, 이런 모든 거래 내역을 기록한 장부를 모든 사람이 최신 동기화해서 가지고 있는 거야. 그러니까 어느 누구 하나가 ‘내 지갑에 100비트코인이 전송됐다’고 거짓말을 해도, 다른 증인이 컨펌해주지 않으면 아무도 믿지 않는 것이지. 지난 시간에 비트코인의 전자서명에 대해 알아봤어. 전자서명이 이뤄지면, 비트코인을 주고 받은 두 사람 사이에는 거래가 증명된 것이지. 이제 다른 증인들이 우리 둘 사이의 비트코인 거래 내역을 확인해줘야 나머지 모든 사람들의 거래 장부에 최신 동기화를 할 수 있어.

이렇게 거래 장부를 최신 동기화 하기 위해서 비트코인은 작업증명을 합의 알고리즘으로 사용하고 있어. 합의 알고리즘이란 두 사람 사이의 비트코인 거래 내역을 다른 사람들이 확인하는 규칙을 뜻해. 비트코인의 작업증명은 PoW(Proof of Work)라는 약자로 많이 불러. 반대로 이더리움은 PoS(Proof of Stake)라 부르는 지분증명 합의 알고리즘을 채택하고 있어.

출처: 자체제작

A와 B사이에 비트코인을 주고 받는 거래가 이루어졌으면 그걸 다른 증인들에게 알려야겠지. 이런 트랜잭션을 모아서 하나의 블록으로 만들고, 그 블록을 다 같이 공유하는 최신 동기화된 장부에 붙여넣게 돼. 블록체인을 검색하면 위와 같이 블록이 쇠사슬로 연결된 이미지를 많이 볼 수 있어. 이렇게 트랜잭션을 모은 블록을 올리고, 그 다음 최신 트랜잭션을 모은 블록을 또 이어 붙여서 모두가 똑같은 블록 목걸이를 공유하는 게 바로 블록체인이야. 줄줄이 연결된 블록의 합이 곧 최신 동기화된 장부이고.

가십 프로토콜(gossip protocol)

출처: 자체제작

그럼 이 거래내역이 담긴 블록을 어떻게 전파시켜서 다른 사람들에게 컨펌을 받아야 할까? 비트코인은 가십 프로토콜이라는 방식으로 블록을 다른 사람들에게 전파해. 가십이라는 말에서 눈치 챘겠지만, 가십 거리를 소문 내듯이 무작위로 블록을 전파시킨다는 뜻이야. 이제부터 비트코인의 참여자를 노드(Node)라고 표현할게. 이렇게 무작위로 블록을 전파하면, 한 노드가 여러 블록을 중복으로 받을 수도 있어서 비효율적이긴 해. 위 이미지에서 Node1은 여러 블록을 받는데, Node2는 블록을 받지 않는 상황과 같지. 그래도 중간에 블록 전파가 끊길 일이 없어서 안정적이야. 만약 Node1 → Node2 → Node3… 순서대로 블록을 전파한다면, 중간에 Node2 → Node3으로 보낼 때 사고가 생겨 블록 전파가 한 번만 끊겨도 전체 블록체인 네트워크가 다운되어 버려.

작업증명

출처: 자체제작

그럼 이 트랜잭션을 담은 블록은 누가 만들까? 비트코인은 개방형 네트워크이기 때문에 누구든 자유롭게 블록을 만들 수 있어야 해. A가 B에게 1비트코인을 보냈다는 트랜잭션을 어떤 노드든 자유롭게 블록에 기록해서 올릴 수 있어야 한다는 거야. 그런데 블록체인에서 새로 생성된 블록은 모든 노드에게 전파되어서 다 같이 최신 내역으로 동기화를 시켜야 해. 하지만 블록이 모든 노드에 전파되기도 전에 여기저기서 마구잡이로 블록을 만들어버리면 네트워크에 블록이 난무하겠지. 하나의 거래 내역으로 동기화를 시킬 수 없는 거야. 그래서 비트코인에서는 블록이 전체 약 90%의 노드에 전파되기 전까지는 다른 블록을 만들지 못하도록 했어. 그러니까 하나의 블록이 생성되어 거의 모든 노드에 퍼지고 나면, 그 다음에야 다른 노드가 새로운 블록을 생성할 수 있다는 뜻이야.

새로운 블록을 만드는 노드를 결정하는 방식이 작업증명이야. 컴퓨터로 수학 문제를 풀기 위해 무작위의 논스(nonce)값을 계속 대입해서 문제를 맞히는 노드가 새 블록을 만들 수 있어. 마치 슬롯머신을 무한반복해서 결국 당첨이 되는 것과 같지. 이건 어려운 문제를 푸는 게 아니라, 아이폰의 비밀번호 복구하는 프로그램처럼 ‘000000, 000001,…’ 순서로 계속 눌러보는 것과 같아. 계산 작업을 더 많이, 더 열심히 한 노드가 채택될 확률이 높다는 의미에서 작업증명이야. 당연히 이 작업은 컴퓨터로 연산해야 하기 때문에 전기를 쓸 수밖에 없어. 비트코인은 전력 소모가 너무 심하다는 게 바로 이런 이유야.

비트코인 채굴기

출처: https://commons.wikimedia.org/wiki/File:Icarus_Bitcoin_Mining_rig.jpg

열심히 전기료를 내가면서 컴퓨터로 수학 문제를 풀고 새로운 블록을 만들 권리를 얻었어. 그러면 새 블록을 만든 노드는 비트코인을 보상으로 받아. 모두 이 보상을 받으려고 열심히 컴퓨터를 돌리는 것이지. 이걸 마치 금광에서 금을 캐내는 것과 같다고 해서 ‘채굴(mining)’이라고 불러.

비트코인은 해킹이 사실상 불가능하다는 게 바로 이 때문이야. 전체 노드의 51%, 그러니까 채굴하는 컴퓨터의 51%를 내 편으로 만들면, 내 마음대로 ‘내 지갑에 100만 비트코인을 보낸다’ 같은 거짓 트랜잭션을 만들고 컨펌할 수 있어. 그런데 채굴에 필요한 컴퓨터에 전기료까지 이 모든 걸 감당하기에 돈이 너무 많이 들지. 또 누군가 51%의 노드를 정복해서 시스템을 마음대로 해버리면, 사람들이 더 이상 비트코인을 사용하지 않아 가격이 뚝 떨어져 버리겠지. 성실하게 수학 문제를 푸는 작업을 열심히 하면 비트코인을 보상으로도 받을 수 있는데 굳이 해킹을 할 이유도 없겠지?

출처: 루디움(https://ludium.world),
디애셋 프로(
https://contents.premium.naver.com/digitalasset/digitalassetpro)
Editor:
:
Koo (
@koorypto)

크립토가 세상을 바꿀 수 있다고 믿는 낭만파

Blynn(@0xBlynn)

전통금융과 크립토 이슈에 관심이 있어 이에 기여하고 싶은 사람.

 

📍더 알아보기 : https://t.me/coiniseasy

📍코인이지 앱 : 

IOS- https://apps.apple.com/us/app/coineasy/id6463145391

Andoid - https://play.google.com/store/apps/details?id=com.coineasy.coineasy

댓글 4

0/1000

다사랑

2024.05.21 17:11:11

감사합니다.

답글달기

0

0
0

이전 답글 더보기

Slowpoke82

2024.05.18 09:47:00

잘 봤습니다

답글달기

0

0
0

이전 답글 더보기

SSdc

2024.05.15 10:37:08

감사합니다

답글달기

1

0
0

이전 답글 더보기

코인이지

2024.05.15 13:08:03

감사합니다

답글달기

0

0
0

이전 답글 더보기

1