본문 바로가기
etc/Youtube review

[노마드 코더] 개발자가 설명해주는 비트코인 채굴 방법 (ft 시뮬레이터)

by injeolmialmond 2021. 7. 28.

https://www.youtube.com/watch?v=ElGBP90XZWE&t=149s 

- 어떤 데이터가 블록체인에 추가될 수 있는가?

암호화폐 블록체인에 있어서 등록되는 데이터는 거래내역에 관한 것임. '누가', '누구에게', '얼마를', '언제'가 기록되는 것. 블록체인에 추가되는 데이터에는 거짓이 있으면 안되며, 진실만이 적혀야 함. -> '작업증명'이 필요함

 

-작업증명(proof of work): 암호화폐(크립토커런시)들이 사기꾼이나 악용사례로부터 블록체인을 보호하는 방법

 

-채굴자: 블록체인에 들어오는 데이터를 확인하는 사람. 데이터를 받아서 블록으로 만든 뒤 블록체인에 보내는 역할을 하는 사람. decentralized 된 구조 덕분에 누구나 채굴자가 될 수 있음.

이러한 작업증명을 하면 돈을 받게 됨 (transfer fee): 검증 작업을 활성화시킬 수 있음!

 

- 그런데 블록체인에 블록을 올리는 것이 굉장히 어려움. 전체 네트워크가 아는 질문을 채굴자에게 물어봄. 대답을 해야지만 블록을 추가할 수 있음. 수수료를 두 번 받는 것 (질문에 대한 답을 찾아서 + 검증 작업을 해서) 비트코인 등 암호화폐가 만들어지는 시점은 이같은 과정을 통해서 '블록이 체인에 추가될 때'임. 

 

- 비트코인은 생산량이 2100만개로 한정되어있음. 원래 한번 블록이 추가될 때마다 50개를 받았는데, 4년 주기의 반감기를 거치다보니 현재는 50 % 2 % 2 % 2 = 6.25개를 받게 됨.

 

채굴자들이 대답해야 하는 질문이 뭐길래 이렇게 어려운 걸까?!

PoW (proof of work) 사이트에 들어가서 이해해보도록 하자

https://mining-simulator.netlify.app/

 

Mining Proof of Concept

 

mining-simulator.netlify.app

 

- Block의 Data는 채굴자가 바꿀 수 없는 내용 (앞서 배웠듯). 네트워크가 채굴자에게 물어보는 질문과 연결됨

nonce 밑의 숫자는 질문의 난이도. 만약 n이라고 치자.

그렇다면 질문은 : "'Nonce'에 넣어야 하는 값이 뭐야할까? 그 해시는 n개의 0으로 시작해야 해!"

 

- nonce: 한번만 쓰인 숫자, 채굴자가 바꿀 수 있는 유일한 것. 데이터와 해시 모두 바꿀 수 없음. 

- 저 질문은 그냥 숫자 바꾸기 질문임. 그래서 엄청 다양한 값을 시도해보아야 함.. 노가다를 해야 함.

-> 그렇기 때문에 블록 생성이 어려운 것임! 하지만 답을 검증하는 과정은 굉장히 간단함. 그냥 그 답을 해시 함수에 넣었을 때 원하는 게 나오는지만 보면 되니까.

 

- 비트코인은 매 10분마다 블록을 새롭게 생성함. 블록이 너무 빨리 생성이 되면 난이도를 높이기도 하고..

 

- 아무튼 암호화폐 채굴의 핵심은 작업증명, 작업증명의 핵심은 네트워크가 원하는 질문의 답을 찾아 논스를 바꾸는 것!

 

(사실 실제 비트코인에서의 난이도는 0의 개수가 아니라 'bits'라는 개념.. 나중에 배울 것임)

 

-> 그렇다면 왜 그래픽카드?! 게임에만 쓰이는 거 아니었어?!

그래픽카드가 답을 찾는 데 필요한 연산을 아주 빠르게 해줌.

댓글