본문 바로가기

책, 영화

블록체인 펼쳐보기 - 채굴 - 블록만들기




“즉 블록헤더의 해시값에 의해 연결된 블록이 많을수록 신뢰도가 커진다. 이 블록을 체인에서 없애도 다른 블록을 넣으려면 이 블록 위에 쌓여서 지지하고 있는 모든 블록의 신뢰도보다 더 큰 신뢰도를 갖는 체인을 만들어야 한다”


나의 블록 뒤에 체인처럼 연결된 블록의 수 많은 신뢰도가 쌓이는 구조. 그 모든것을 뒤집을 만큼 더 큰 신뢰도를 확보해야 변조가 가능하다. 


“노드는 비트코인 프로그램을 설치하여 전체 블록체인을 저장하고 있는 컴퓨터이며..”


만들어진 모든 블록은 노드들에 전파되어 저장이 된다. 노드는 비트코인 프로그램을 설치한 프로그램이라는 소리. 내 컴퓨터에도 설치하면 노드가 된다는 소리일까?


“직접 연결됐다는 것은 상대방의 인터넷 주소를 알고 있다는 뜻이다. 보통 10개 미만의 주소만 알아도 된다”


수천대의 노드가 연결되기 위해서는 p2p 방식이니까, 내가 직접적으로 알고 있는 노드가 몇개만 되어도 결국 모두 연결되는 구조다 그것도 아주 짧은 시간안에 전파되는 구조. 페이스북에서 멘션이 퍼져나가는 속도를 봐도 알수가 있다...


“놀랍게도 새로 블록이 만들어졌을때 그 블록은 보통 1분 내에 이 연결을 따라 전 세계로 퍼진다”


모두에게 퍼질때까지 1분이면 된다는 이야기.


“각 노드에는 비트코인이 나온 후 이루어진 모든 거래 기록이 저장된다”


모든 노드는 데이터의 복사본을 갖고 있다는 이야기인데, 데이터가 점점 커지면 어떻게 될까?


“그런데 노드는 이렇게 새 블록을 받아서 검증하고 전파하는 것 외에 직접 새 블록을 만들수도 있다. 이것이 채굴이다”


노드들은 검증, 전파 역할외에 생성 즉 채굴이라는 작업도 한다. 보통은 채굴을 하기 위해서 노드로서 일을 시작하겠지...


“블록 페이로드의 첫 번째 거래는 코인베이스 거래다. 이 블록을 채굴한 사람에게 채굴보상금을 주는 거래를 제일 먼저 기록한다.”


블록을 하나 만들면 그에 대한 보상으로 비트코인을 받게 되니까, 첫번째 거래 기록은 채굴한 노드에게 지급되는 내역이 된다. 


“채굴은 10분에 한번씩 열리는 달리기 경주와 비슷하다. 상금은 경주에서 1등한 우승자에게만 준다. 전 세계 채굴 노드중에 새 블록의 난스를 찾아내어 전파시킨 노드 하나에게 상금을 전액 지급하는 방식이다”


가장 먼저 찾아내어서 가장 먼저 전파를 시킨 노드에게 일정갯수의 코인을 지급한다. 비슷한 시키에 채굴하면 충돌이 일어나기도 할텐데, 그때 어떻게 처리하는지는 뒤에 나오겠지...


“비트코인에서는 2016개의 블록이 쌓일때마다 난이도를 조정한다. 2016개의 블록은 대략 2주 정도면 채굴된다. 따라서 2주에 한 번씩 난이도 조정이 일어난다고 보면 된다”


말 그대로다...


“평균 10분이 유지되고 있으면 2016 블록은 2주만에 채굴될 것이다. 따라서 대략 2주에 한번 꼴로 난이도를 조정한다”


평균적으로 10분에 한번씩 블록이 채굴된다고 한다. 운좋으면 뭐 1초만에 될수도 있을거고.. 평균이니까....


Only I can change me life, no one can do it for me. – Carol Burnett