💡채굴 (Mining)
채굴이란 블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고, 보상으로 암호화폐를 얻는 것을 뜻하며 땅을 파서 광물 따위를 캐내는 행위에서 유래한 용어이다. 새로운 블록을 만드는 것이 바로 채굴의 핵심이며 특정 컴퓨터 연산 작업을 통해 만들어지게 된다. 비트코인의 경우, 10분에 한 번씩 일정량의 블록이 생성되는데 이 생성된 비트코인을 채굴에 참여한 작업자 중 해시퍼즐이라는 문제를 푼 작업자에게 지급하게 되며, 이 해시퍼즐은 특정한 조건을 갖춘 해시를 찾아내는 일련의 과정을 말한다. 블록체인 기반의 암호화폐에서 새로운 블록을 생성하고 그 대가로 암호화폐를 지급받는 노드들이 바로, 채굴자(Miner)이다.
✓ 채굴자가 하는 일
토큰 이코노미와 크립토 이코노미를 통하여 채굴하는 행위는 블록체인 네트워크를 유지하면서 개인에게는 이익을 줄 수 있다. 채굴자의 노드가 비트코인 네트워크에 접속하면, 비트코인 채굴자는 다음과 같이 몇 가지 작업을 수행한다.
- 네트워크 동기화 : 새 노드가 비트코인 네트워크에 합류하면, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드 한다.
- 트랜잭션 검증 : 새로운 트랜잭션을 수신한 노드는 반드시 해당 트랜잭션이 올바른 트랜잭션인지 검증하는 과정이 필요하다.
1) 원본 데이터를 자신의 개인키로 암호화를 진행하여 디지털 서명을 진행한다.
2) 원본 데이터와 디지털 서명된 데이터를 노드에 전파
3) 트랜잭션을 받은 노드는 해당 트랜잭션이 진짜인지에 대한 검증을 위해 트랜잭션을 송신한 노드의 공개키를 이용하여 난독화(암호화) 진행
4) 난독화된 거래 데이터와 원본 데이터를 비교하여 수정된 데이터가 있는지 데이터의 무결성을 검증
5) 수신받은 트랜잭션이 진짜 거래로 판단될 경우 블록체인에 해당 트랜잭션을 업데이트하고 블록체인 네트워크에 연결된 노드들에게 해당 트랜잭션을 다시 전파 - 블록 유효성 검사 : 채굴자와 풀 노드는 특정 규칙에 따라 수신한 블록을 평가하여 유효성 검사를 시작한다.
- 새로운 블록 생성 : 채굴자는 네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사한다.
- 작업 증명 (PoW) 수행 : 채굴 과정의 핵심으로 채굴자가 해시 퍼즐을 풀어 유효한 블록을 찾는다. 이때, 블록 헤더에 있는 논스를 사용하여 채굴자는 논스값을 바꿔가며 결과 해시값이 미리 결정된 목표값보다 작을 때까지 반복 계산한다.
✓ 블록 헤더에 있는 논스와 트랜잭션의 논스의 차이점
블록 헤더에 있는 논스는 입력값 중의 하나로 해서 계산되는 블록의 해시값이 특정 숫자보다 작아지게 하는 값으로 쓰인다. 이더리움에서 트랜잭션의 논스는 발신 주소의 속성이며, 발신 주소의 컨텍스트 안에서만 의미를 갖는다. 그러나 논스는 명시적으로 블록체인 계정 상태에 저장되지 않고 해당 주소에서 발생한 확인된 트랜잭션 건수를 세어서 동적으로 계산되는 값으로 쓰인다. - 보상수령 : 해시 퍼즐(PoW)의 해를 구한 노드는 즉시 결과를 브로드캐스팅하고, 다른 노드들은 그 결과를 검증하여 그 블록을 승인한다. 승인되면 채굴자는 비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다.
✓ 이더리움은 어떻게 채굴할까?
네트워크의 채굴 노드는 이더해시라는 독자적인 작업증명 알고리즘을 사용해 블록을 생성하고자 경쟁한다. 이더해시 알고리즘에 대한 입력은 논스라고 하는 임의로 생성된 숫자를 포함하는 블록 헤더이며 그 출력은 32바이트의 16진수이다. 논스를 수정하면 출력도 수정되는데 예측할 수 없는 방식으로 수정된다. 네트워크가 채굴된 블록을 수용하려면 블록 헤더에 대한 이더해시 출력이 네트워크 난이도보다 적어야 하며 또 다른 32바이트의 16진수가 채워질 대상으로 사용되며, 목표 난이도를 상회하는 블록을 브로드캐스트하는 모든 채굴자는 블록 보상을 받게 된다.
✓ 보상
해시 퍼즐의 해를 구한 노드는 즉시 결과를 브로드캐스팅하고, 다른 노드들은 그 결과를 검증하여 블록을 승인한다. 블록이 승인되면, 채굴자는 비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다. 비트코인의 작업증명 해를 구하는 시간으로 10분이 소요되도록 알고리즘이 형성되어 있기 때문에, 더 많은 채굴자가 등장하고 빨리 채굴할수록 채굴 난이도가 상승하게 되어 있다. 이 보상은 일정량을 지속해서 보상하는 것이 아니라 반감기로 인하여 2009년 초반에는 블록 하나를 생성할 때마다 50개의 비트코인을 보상으로 받을 수 있었지만, 2018년에는 12.5개의 비트코인을 블록 보상으로 받을 수 있는 등 시간이 지나면 블록 보상에도 변화가 생긴다. 이에 따라, 비트코인의 총 공급량은 2,100만개가 되면, 그에 따른 희소 가치가 부각될 것이다.
✓ 거래 수수료
거래 수수료란, 채굴자들이 특정 거래 기록들을 블록에 포함해서 블록체인에 추가할 수 있도록 제공되는 인센티브이다. 거래 수수료는 블록체인 네트워크와 관련하여 몇 가지 중요한 목적을 가지고 있다. 그 중 하나가 바로 트랜잭션을 승인하는 데 도움을 제공하거나 스팸 공격으로부터 네트워크를 보호하는 데 일조한 채굴자와 검증자에게 보상으로 지급하는 것이다. 거래 수수료는 대부분의 블록체인 시스템의 중요한 부분으로 자리매김해왔다. 대부분의 암호화폐는 두 가지 중요한 이유에서 트랜잭션 수수료를 사용한다.
1) 네트워크상의 스팸 공격을 줄이기 위해서 사용한다. 거래 수수료는 대슈모 스팸 공격과 이를 실행하는 데 무척 많은 비용이 들도록 한다.
2) 거래 수수료는 트랜잭션을 확인하고 유효성을 검증하는 사용자에게 인센티브를 제공한다. 이를 네트워크에 일조하는 행동에 대한 보상이아 이해할 수 있다.
대부분의 블록체인에서 트랜잭션 수수료는 합리적인 수준으로 저렴하지만, 네트워크 트래픽에 따라 비싸질 수도 있다. 얼마의 수수료를 지불하기로 결정하느냐에 따라 트랜잭션이 다음 블록에 추가되는 우선순위가 정해진다. 더 많은 수수료를 지불할수록 확인 과정이 더 빨라지게 된다.
✓ 해시율(Hashrate)
해시율은 기본적으로 초당 해시 계산 개수 비율을 나타낸다. 다른 표현으로는, 블록을 찾기 위해 비트코인 네트워크상의 채굴자들이 해시를 계산하는 속도이다. 비트코인 초기에 이 값은 개인의 CPU 자원이 사용되었기에 꽤 낮았다. 그러나, 전문 마이닝풀과 Application Specific Circuits (ASICS) 가 도입되면, 해시율은 기하급수적으로 증가했다. 이 결과 비트코인 난이도도 급격하게 증가했다. 아래 그래프는 초당 Terahashes 변화를 보여준다. 150m Terahashes/s는 15,000,000,000,000,000,000 개의 해시값이 초마다 계산됨을 의미한다.
✓ TPS (Transaction per Second)
실제로 이더리움, 비트코인을 전송해보면 몇 시간이 걸리기도 하고, 높은 수수료까지 지불해야 한다. 그래서 확장성 문제를 해결하고자 많은 프로젝트가 치열한 경쟁을 하고 있다. 이는 TPS 의 특징을 보면 알 수 있다. TPS란, 1초당 처리할 수 있는 트랜잭션의 개수를 의미하며 100만 TPS는 1초당 100만건의 트랜잭션을 처리할 수 있는 속도를 말한다. 원장이 분산화되고 참여 노드가 증가할 수록 TPS는 느려지고, 수수료는 증가하게 된다. 중앙화를 통해 TPS를 높일 수 있으나, 그 경우 블록체인의 원래 목적인 탈중앙화라는 가치가 훼손된다. 이런 역설을 블록체인의 트릴레마라고 한다.
'블록체인 > 블록체인이란?' 카테고리의 다른 글
채굴 시스템 ( CPU, GPU, FPGA, ASICs ) (0) | 2022.06.30 |
---|---|
블록체인 채굴 풀 (Mining Pool) (0) | 2022.06.29 |
이더리움 프루닝 (0) | 2022.06.29 |
비트코인에서의 프루닝 (0) | 2022.06.28 |
IPFS (InterPlanetary File System) (0) | 2022.06.28 |
댓글