닫기

코인정보 읽기

읽기

#7 - 채굴(마이닝)이란 무엇인가? (2/N) [3]

작성자:     작성일시: 작성일2018-02-14 13:21:39    조회: 7,742회    댓글: 3
 

블록체인 기술에서 '채굴'이 어떤 의미이고 왜 필요한지에 대하여 개념정리를 해봤습니다.
'채굴' 보상은 아래와 같은 시나리오에서 발생합니다.

  1. 어떤 거래가 발생하고 이 거래내역을 검증함으로써 '보상'이 발생된다.
  2. 일정 거래내역을 묶어서 관리하는 '블록'을 생성하는 댓가로 '보상'이 발생된다.

채굴에 대한 설명을 하기 앞서 우리가 배운 내용을 정리해보겠습니다. (이 정리가 오늘 배울 개념과도 연결됩니다!)

  1. 블록 체인을 구성하는 '블록'의 정보는 크게 헤더정보와 바디정보로 구성되어있습니다.
  2. 블록 바디에는 다수의 거래정보가 포함되어 있습니다.
  3. 블록 헤더 정보 중 머클루트는 블록 바디에 저장된 거래 내용을 머클트리한 결과 값입니다.
  4. 블록 헤더에 있는 6가지 정보를 해싱알고리즘을 통해 블록해시 값을 출력할 수 있습니다.
    (위의 내용은 포스팅 3~5편 내용을 순차적으로 정리한 내용입니다. 혹시 모르는 부분이 있다면 읽어보시면 많은 도움이 될 것이라고 생각됩니다.)


'채굴'과 관련된 용어와 이해야되는 부분이 너무 어렵고, 방대했기 때문에 어디서부터 어떻게 설명을할지 많은 고민이 있었습니다. 우선은 간략하게 개념 위주로 설명을 하고 심도 있게 다시 설명해야 하는 부분은 파트를 나누어서 따로 설명하기로 결정 하였습니다. (혹시 잘못된 부분을 말씀해주시면 언제든지 받아들이고 수정하겠습니다!)



'새로운 블록 생성'


새로운 블록을 생성하고 전파한 댓가의 '보상'으로 비트코인을 지급받는 방식을 '채굴'이라고 설명해드렸습니다. 그리고 '새로운 블록'을 생성한다는 것은'수학문제를 푸는 행위'와 같다고 설명해드렸습니다. 설명에 앞서 수학문제를 푸는 풀이과정을 이해하기 위해서는 반드시 해시함수에 대한 개념을 알고 있어야합니다.



'수학 문제란?'



도대체 어떤 수학문제를 푸는것일까요? 우선은 쉽게 이해할 수 있도록 설명하겠습니다.


비트코인 시스템에서는 채굴자들에게 정보가 일부 비어있는 '미완성 블록'을 제공합니다. 이때 비어있는 정보가 'nonce'정보입니다. 채굴자는 '미완성 블록'을 이용하여 비어있는 nonce 정보를 하나씩 변경하면서 수학문제의 답을 찾아야합니다.


수학문제의 답을 찾게되면 '완성된 블록'이 되고 '완성된 블록'을 생성해내면 '보상'을 받기위한 1단계 성립이 됩니다. (답을 찾으면 채굴이 끝난게 아닙니다! 우선은 수학 문제를 풀어내면 '채굴'이 된다고만 생각하세요!)


새로운 블록 즉 '완성된 블록'이 되기 위한 조건은 임이의 'nonce' 정보를 입력하여 출력된 '블록해시' 결과값이 난이도(target)보다 작을 경우 '완성된 블록'이 될 수 있습니다!


 


7_1.png

 


이러한 개념을 한마디로 정리하기가 어렵기 때문에 많은 사람들이 쉽게 수학문제를 풀고 문제를 푼 댓가의 보상으로 비트코인을 준다고 설명한 것 같습니다. 하지만 이렇게만 정리하고 넘어가면 안되겠죠? 자세히 살펴봐야합니다!


우선 이해를 돕기 위해 'nonce'에 임이의 결과 값을 넣어서 '블록해시'를 만드는 과정을 한번 살펴보겠습니다.

'미완성 블록'을 만들기 위해 실제 '완성된 블록'인 1번 블록의 정보를 활용해보겠습니다. 그렇기 위해서는 1번 블록이 어떻게 생겼는지 살펴봐야겠죠? 자세한 데이터를 얻기 위해 아래의 링크를통해 1번 블록의 구조를 Json형태로 받아보겠습니다. (https://blockchain.info/block-height/1?format=json)


전달 받은 데이터는 아래와 같습니다. (데이터가 너무 복잡하다고 전혀 어려워 하실 필요없습니다. 자세히 설명해 드리겠습니다 우선은 모르겠으면 구조만 보시고 넘어가세요!)


{ "blocks" : [

{
"hash":"00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",
"ver":1,
"prev_block":"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
"mrkl_root":"0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
"time":1231469665,
"bits":486604799,
"fee":0,
"nonce":2573394689,
"n_tx":1,
"size":215,
"block_index":14850,
"main_chain":true,
"height":1,
"tx":[

{
"lock_time":0,
"ver":1,
"size":134,
"inputs":[
{
"sequence":4294967295,
"witness":"",
"script":"04ffff001d0104"
}
],
"weight":536,
"time":1231469665,
"tx_index":14854,
"vin_sz":1,
"hash":"0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098",
"vout_sz":1,
"relayed_by":"0.0.0.0",
"out":[
{
"spent":false,
"tx_index":14854,
"type":0,
"addr":"12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX",
"value":5000000000,
"n":0,
"script":"410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac"
}
]
}]
}

]}



위의 데이터를 토대로 nonce 정보가 비어있는 '미완성 블록'은 아래의 그림과 같습니다.


 


7_2.png

 


'블록해시' 결과 값을 구하는 공식은 5편에서 설명드렸기 때문에 생략하고 '미완성 블록'의 nonce 정보에 임이의 결과 값을 대입하는 예제 코드를 작성해보겠습니다. (예제는 0부터4까지 nonce의 값을 1씩 증가시키고 블록해시의 결과값을 출력하였습니다.)


 


7_3.png

 


'미완성 블록' 이라는 표현을 썻지만 어떤분은 '잠겨있는 블록'이라는 표현을 쓰기도 했습니다. 어쨋든 새로운 블록의 모든 구성 요소는 'nonce'의 정보를 제외하고 알 수 있습니다. 새롭게 만들 블록에 'nonce'의 값을 대입하여 target보다 작은 결과의 '블록해시'값을 찾는게 채굴자가 풀어야될 수학문제입니다. 우선 위의 예제 코드 결과를 보겠습니다.


 


7_4.png

 


2편에서 이야기 했던 해시함수에 대해서 기억하시나요? 해시함수는 출력값을 토대로 입력값을 유추할 수 없습니다. 그 이유는 입력된 값의 일부만 변경되어도 전혀 다른 출력값이 나오는 눈사태 효과때문입니다. 즉 target보다 작은 '블록해시'정보를 찾기 위해서 어떤 'nonce'의 값이 필요한지 그 누구도 알 수 없다는 의미입니다.

target 보다 작은 '블록해시'를 구하기 위해서는 nonce정보를 0으로 대입한 후 '블록해시'값을 출력하고 target과 비교합니다. 답이 아니면 다시 1씩 증가시켜 target보다 작은 결과 값이 나올때까지 반복해서 찾을 수 밖에 없습니다. 즉 수학문제를 푸는 과정은 생각보다 단순합니다. nonce를 0부터 대입하여 target보다 작은 블록해시 결과 값이 도출될때까지 무한정 증가시키는겁니다! 그렇기 때문에 이러한 과정을 빠르게 연산할 수 있는 GPU를 활용한 채굴 나아가 asis라는 채굴 전용 칩이 등장하게 된것입니다.


자 어느정도 이해가 되셨나요? 심플하게 다시 정리를 해보자면..


  1. '채굴'은 일종의 보상의 개념이다.
  2. 보상을 받기 위해서는 '미완성 블록'을 '완성된 블록'으로 변환시키는 수학문제를 풀어야 한다.
  3. 수학문제의 정답이 되기 위한 조건은 '블록해시'정보가 'target'정보 보다 작아야 한다.
  4. 해시함수의 특징으로 인해 'target'보다 작은 '블록해시'를 만들어내기 위한 'nonce'의 값은 절대 유추할 수 없다.
  5. 'nonce'의 값을 유추할 수 없기 때문에 'nonce'의 정보를 0부터 1씩 증가하여 답이 맞는지 확인하는 단순 반복작업이 필요하다.


그렇다면 이제 난이도(target)의 값은 무엇이고 왜 필요한지에 대한 의문점이 생깁니다.

다음 포스팅에서는 난이도(target) 값을 어떻게 구하는지 그리고 실제 채굴되는 연산과정의 예제 코드를 PHP로 작성해보겠습니다.

 

[출처] https://steemit.com/kr/@yahweh87/7-2-n

  추천 1   비추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 밴드로 보내기

댓글목록

작성자:     작성일시:

감사합니다.
그런데 너무 어렵군요. 그러니 해결하면 한개의 비트코인을 받는 것 이겠지요?

작성자:     작성일시:

정말 이해하기 쉽게 설명해주셔서 감사합니다.
그런데 난이도(target)에 대한 개념설명이 안나와있는데 추가적인 설명을 요청드려도 될까요?
흐릿한 개념은 알고 있는데 작성자분이 워낙 설명을 잘해주셔서 ..

 

전체: 3,595개 (1/103페이지)
코인정보 목록
제목 글쓴이 조회 추천 비추천 날짜
  [필독] 불법홍보글 / 회원간 분란 발생 시 엄중하게 처리하겠습니다. (수정) [15] 4572 10 0 11-28
  ICO List 게시판이 신설되었습니다. [1] 2891 0 1 03-12
지금 디시온 토큰 프리세일 중이랍니다 new 471 0 0 11-17
두나무가 투자한 알트코인 정보 공유합니다. 2326 0 0 11-16
베네핏 소식 공유합니다! 2458 0 0 11-16
떠오르는 거래소코인 넥시 완전정복!! 3466 0 0 11-16
비트 하락을 버틴 이오스블랙 / 비트코인 급락 이유 ? 3344 0 0 11-16
다이스 파괴왕 liketerryfox 이야기 3924 0 0 11-15
KEEP!T 블록체인 뉴스: 11/14 –비트코인캐시 하드포크를 둘러싼 해쉬전쟁, 테라X카카오 클레이튼 3913 0 0 11-15
[이오스 이야기] EOS 툴킷(ToolKit) 사용방법 살펴보기 #3. 블록스닷아이오(Bloks.io) 4편… 3909 0 0 11-15
[2018-11-14] 코인시장 동향 (시총:$206,343,626,364) 3914 0 0 11-15
비트젠거래소 인터캐시 사전가입이벤트 4597 0 0 11-15
매년 12억명의 여행자에게 60조원의 EBCoin 이 주어지는 그날을 위한 프로젝트 4867 0 0 11-15
몬펙스 ( MONFEX ) 거래소 에어드랍 $100 5214 0 0 11-14
[Trebit] 11월 08일 암호화폐/블록체인 시장 뉴스 5418 0 0 11-14
베네핏(Benepit)에서 에어드랍 진행중 5485 0 0 11-14
사이버마일스 코인 최신정보 [1] 5490 0 0 11-14
마일유니티(Mile Unity)_MILE이 “BitForex”에 상장됩니다. [1] 5566 0 0 11-14
메가비트 거래소 코인 MEGA코인 무료 에어드랍 정보 공유 드립니다. 6450 0 0 11-13
해외거래소(bing) 신규가입 에어드랍 정보 6921 0 0 11-13
플러그 원화상장+바이백 확정! 6975 0 0 11-13
[UPXIDE] 비트코인캐시 하드포크 지원 및 입출금 일시 중단 안내 [1] 7140 0 0 11-13
美中무역분쟁의 경제적 영향 8255 0 0 11-12
카르다노, 제트캐시, 스텔라, 코인베이스 상장전 상승 시작, 스텔라 최대 27% 상승 [2] 8315 1 0 11-12
[2018-11-11] 코인시장 동향 (시총:$211,679,462,375) 8271 0 0 11-12
블록체인 전자 계약 플랫폼 FirmaChain 1차 프리세일 안내 8294 0 0 11-12
비트코인에 스마트컨트랙트 더하는 RSK 후오비 상장 [1] 8298 0 0 11-12
일렉트로니움(ETN) KYC 승인 데드라인 8333 0 0 11-12
업비트 BTC 마켓 코인 추가 오픈 (ZIL, NPXS, OST, MOC) 12311 0 0 11-09
업비트 언브레이커블코인(UNB) 출금 지원 및 출금 관련 안내 (출금 지원 개시) 12444 0 0 11-09
※※하이콘(HYCON), 마켓 랭킹 77위! 달성※※ [1] 12496 0 0 11-09
비트렉스(Bittrex) 거래소에 SPC 거래가 상장되었습니다. 12138 0 0 11-09
바이낸스, 자체 암호화폐 평가기관 만들었다 11953 0 0 11-09
블록체인 - 의식 세계에 가져온변화 12219 0 0 11-08
EOS의 자원 전략과 이에 대한 이해가 필요한 이유 11873 0 0 11-08