비트코인 채굴 작업의 원리

2018.01.23 14:21

졸리운_곰 조회 수:109

비트코인 채굴 작업의 원리

 

월스트리트는 모든 것을 거래한다. 주식, 채권, 금처럼 눈에 보이는 것만이 아니라 날씨나 신용처럼 눈에 보이지 않는 것까지 거래한다. 이익을 남길 수 있다면 태양의 흑점까지 거래할 사람들이다. 이런 사람들의 눈에 비트코인처럼 떠들썩한 물건이 보이지 않을리 없다.

주류 사회에서는 인정하지 않지만 월스트리트에서는 비트코인을 거래하는 펀드 매니저들이 조금씩 생겨나는 양상이다. 비트코인을 담은 포트폴리오가 S&P 500 지수를 능가했다는 입소문이 돌기 시작하면 비트코인의 입지는 단숨에 달라질 가능성도 있다.

하지만 펀드 매니저들이 비트코인을 거래한다는 것과 그것이 화폐로서 인정을 받는다는 것은 별개의 문제다. 쑹홍빙의 '화폐전쟁'이 생생하게 묘사하고 있듯이 화폐란 기본적으로 권력관계이기 때문이다. 기술이 아니다. 비트코인에 냉담한 주류 국가들의 태도를 고려하면 월가에서 거래되는 비트코인은 화폐가 아니라 석유, 사탕수수, 곡물과 같은 일종의 상품(commodity)으로 취급될 가능성이 높다.

재미있는 것은 주변에 있는 친구들 중에서 나에게 비트코인이 채굴되는 원리에 대해서 묻는 사람이 여럿 있다는 점이다. 비트코인 채굴과정이 컴퓨터가 암호를 푸는 과정으로 이루어져 있다는 이야기를 듣고 ‘프로그래머’ 친구는 혹시 자세한 내용을 알지 않을까 생각했을 것이다.

프로그래머라면 간단한 암호원리와 ‘해시함수’에 친숙하기 때문에 비트코인 채굴과정이 구체적으로 어떤 작업으로 이루어져 있는지 이해하는 것이 어렵지 않다. 하지만 프로그래밍에 익숙하지 않은 사람에게는 암호학이나 해시함수를 몰라도 이해할 수 있는 비유가 필요하다.

이렇게 생각하면 좋을 것이다. 주머니 안에 1부터 1000까지 숫자가 적힌 공이 들어있다. 눈을 감고 공 하나를 꺼내서 번호를 확인한다. 확인한 공은 다시 주머니에 넣고 흔들어서 섞는다. 이 때 꺼낸 공에 적힌 숫자가 50보다 크면 같은 작업을 반복하고 50보다 작으면 ‘빙고!’ 비트코인 하나를 획득하게 된다. 공을 꺼내고, 확인하고, 넣는 작업을 빠르게 반복하면 50보다 작은 수가 적힌 공을 꺼낼 가능성이, 즉 비트코인을 획득하게 될 가능성이 더 높아진다. 비트코인 채굴작업에 최적화된 하드웨어와 소프트웨어가 제작되는 이유다.

너무 많은 사람들이 작업에 참여하거나 성능이 좋은 하드웨어가 등장해서 비트코인이 당첨되는 속도가 빨라지면 '50보다 작은 수'라는 규칙에서 50을 20으로 낮추면 당첨자가 나오는 속도를 조절할 수 있다. 꺼낸 공에 적힌 수가 20보다 작아야 비트코인에 당첨된 것으로 인정하는 것이다. 비트코인이 인플레이션을 조절하는 방법은 이러한 규칙의 조절에 기반을 두고 있다.

실제 비트코인 채굴과정에서는 SHA-256이라는 해시함수가 사용된다. 어떤 숫자나 텍스트를 입력하면 256비트로 이루어진 2진수 값을 출력하는 함수다. 비밀번호나 중요한 내용을 암호화하기 위해서 사용되는 함수로 현존하는 방법 중에서 가장 강력한 것의 하나로 인정받고 있다.

이러한 해시함수의 특징은 입력에서 출력으로 가는 과정은 순식간이지만, 출력된 내용으로부터 입력된 내용을 거꾸로 유추하는 것은 거의 불가능하다는 점이다. 그리고 동일한 입력에 대해서는 언제나 동일한 값을 출력한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

누군가 컴퓨터를 실행해서 비트코인 채굴작업을 시작하면, 비트코인 공식사이트는 일정한 텍스트, 즉 SHA-256 해시함수에 입력될 내용을 전달해준다. 그러면 채굴작업을 수행하는 컴퓨터는 전달된 내용을 해시함수에 넣고 실행한다. 이때 출력된 값이 공식적으로 정해져 있는 값보다 작으면 ‘빙고!’ 비트코인을 획득한 것이다.

하지만 비트코인 공식사이트에서 해시함수에 넣기만 하면 비트코인이 당첨되는 값을 보내줄 리가 없다. 그리고 그 값을 그대로 이용하면 언제나 동일한 결과만 출력될 것이다. 그래서 채굴작업을 수행하는 컴퓨터에서는 해시함수를 실행하기 전에 공식사이트에서 보내준 텍스트에 임의의 텍스트를 추가한다. 출력되는 값을 다르게 만들기 위해서 함수에 입력되는 값을 바꾸어 보는 것이다. 이러한 임의의 텍스트를 영어로 nonce라고 부른다.

이렇게 해시함수를 실행하는 과정을 앞의 예에서 보았던 “주머니에 손을 넣어서 공을 꺼내는 행위”라고 생각하면 좋을 것이다. 정말로 운이 좋다면 단 한 번에 원하는 값을 얻을 수도 있겠지만 그렇게 될 확률은 매우 적다. 결국 비트코인 채굴작업은 이러한 임의의 텍스트, 즉 nonce의 값을 이리저리 바꾸어보면서 정해진 값보다 작은 해시 값을 얻을 때까지 함수를 실행하는 과정을 의미한다. 원하는 값을 얻게 되었을 때 사용한 ‘nonce’가 비트코인을 얻기 위해서 필요한 ‘정답’에 해당한다.

이런 과정은 어려운 수학문제를 풀기 위해서 공식이나 원리를 사용하는 것이 아니라 1부터 1,000,000까지의 수를 일일이 대입해 보는 것과 비슷하다. 무한히 반복되는 단순노동의 끝판왕이다. 사용되는 전력과 컴퓨팅 파워를 고려해보면 인류에게 그다지 유용한 일을 수행하는 것은 아니다.

눈에 보이는 텍스트나 숫자를 의미를 알 수 없는 이진수로 바꾸는 해시함수 이야기를 하다 보니 세월호 참사가 생각난다. 수많은 사람의 목숨을 담보로 저질러진 해경과 청해진과 언딘과 정부와 언론의 의문스러운 행동들은 마치 해시함수로 꼭꼭 감춘 암호처럼 보인다. 하지만 암호는 풀리기 위해서 존재한다. 희생자 가족과 함께 슬퍼하고 분노하는 평범한 사람들이 십시일반으로 채굴작업에 뛰어들어서 암호를 모두 풀어낼 것이라고 확신한다.

막상 암호를 풀고 나서 보면 원래 텍스트에 담긴 내용이 대단한 것이 아닐 수도 있다. 혹은 끔찍한 내용이 담겨있을 수도 있다. 지금 그것은 중요하지 않다. 하지만 암호는 반드시 풀려야 한다. nonce가 없으면 비트코인을 생성할 수 없듯이 암호가 풀리지 않으면 억울하게 죽어간 아이들을 보낼 수 없기 때문이다.

 

[출처] http://www.zdnet.co.kr/column/column_view.asp?artice_id=20140512084912

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED