비트코인 생성원리

마지막 업데이트: 2022년 3월 11일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
임백준

비트코인 채굴 원리 간단 요약

채굴: 비트코인 거래 정보들을 기록한 암호화된 블록 하나를 생성하는 행위. 정식 명칭은 작업 증명. 성공하면 보상으로 일정량의 비트코인을 받는데, 이런 과정이 광부의 작업을 연상시킨다 하여 채굴이라 부름.

연쇄적 암호화: 비트코인은 거래 정보가 기록된 블록들이 순차적으로 연결된 블록체인 시스템이다. 각 블록에는 기록된 거래 정보를 바탕으로 생성된 암호화된 고유 번호가 부여되어 있고, 특정 블록의 고유 번호는 다음 블록의 암호화에 영향을 준다. 따라서 특정 블록의 거래 정보를 위조하려면 이후에 이어지는 블록을 모두 조작해야 한다.

쪽수로 밀어붙여: 비트코인 시스템은 채굴에 참여한 모든 컴퓨터에 블록체인들을 백업한다. 그리고 거래 정보가 서로 다른 블록체인이 존재할 경우 과반수 이상의 기록과 일치하는 블록체인을 진본으로 인정한다. 따라서 거래 정보를 조작하려면 전 세계 컴퓨터에 복제된 블록체인들을 모조리 찾아서 해킹해야 하므로 사실상 불가능.

Q1: 비트코인 발행이 종료되면 채굴 보상도 사라지나?

예정된 2100만개 비트코인이 모두 발행되더라도 채굴 보상은 지급된다. 추가로 비트코인 생성원리 발행될 비트코인이 없더라도 거래 수수료가 있다.

Q2: 비트코인 채굴 비용은 항상 증가하나? 보상이 채굴 비용보다 작아지면 어떻게 되나? 그러면 비트코인 시스템은 멈추는 것인가?

채굴 비용은 항상 증가하지 않는다. 매 2016개의 블록마다 채굴 난이도는 조정되는데 증가할수도, 감소할수도 있다. 훗날 대형 마이너들이 채굴하는데 드는 비용보다 보상 금액이 더 작아진다면 그들은 채굴을 멈추겠지만, 그로 인해 채굴 난이도는 낮아질 것이고 그들보다 한단계 낮은 해싱파워를 보유한(예: GPU 마이너)들에게 유리한 환경이 조성될 것이다. 극단적인 시나리오이지만 GPU 마이너, CPU 마이너가 채굴을 포기해도 마이크로프로세서로도 채굴은 가능하다. 인터넷에 연결되어 있고, 하드디스크 용량만 충분히 크다면 어떤 프로세서를 탑재한 노드이든 마이닝은 가능하기 때문에, 적어도 보상 문제 때문에 비트코인 시스템이 멈춰버릴 일은 없다고 말할 수 있다.

Q3: 그렇다면 채굴 난이도는 왜 이렇게 높아진 것인가?

현재 채굴 경쟁이 심하기 때문이다. 오로지 평균 10분동안 전세계에서 단 한개의 마이너만 채굴을 할 수 있는데 그 마이너와 비슷한 해싱 파워를 보유하지 않으면 채굴 자체가 불가능하다. 전세계에서 가장 강력한 마이너의 70% 정도의 해싱 파워만 보유해도 마이닝이 성공할 확률은 0에 수렴한다. 따라서 모두가 최고의 스펙을 가지고 경쟁을 하고 있기 때문에 채굴 난이도 역시 계속 올라갔다.

비트코인 채굴 작업의 원리

임백준

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

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

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

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

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

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

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

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

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

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

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

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

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

    2014.05.12 2014.05.12 2014.05.12 2014.05.12

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

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

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.

임백준 IT컬럼니스트

한빛미디어에서 『폴리글랏 프로그래밍』(2014),『누워서 읽는 퍼즐북』(2010), 『프로그래밍은 상상이다』(2008), 『뉴욕의 프로그래머』(2007), 『소프트웨어산책』(2005), 『나는 프로그래머다』(2004), 『누워서 읽는 알고리즘』(2003), 『행복한 프로그래밍』(2003)을 출간했고, 로드북에서 『프로그래머 그 다음 이야기』(2011)를 출간했다. 삼성SDS, 루슨트 테크놀로지스, 도이치은행, 바클리스, 모건스탠리 등에서 근무했고 현재는 맨해튼에 있는 스타트업 회사에서 분산처리, 빅데이터, 머신러닝과 관계된 업무를 수행하고 있다.

비트코인 생성원리

비트코인 채굴

비트코인 (BTC)에 대한 이해가 생기면서 나오는 말이 "마이닝(mining)입니다. 마이닝은 한국어로 "채굴"이라 하며 일반적으로는 석유 나 금등의 광물을 발굴하는 활동을 말합니다. 그러나 최근 마이닝이라고 하면 가장 먼저 비트코인을 연상하고 있습니다. 광물이 아닌 데이터의 비트코인 채굴을 마이닝이라고 할까요? 그 구조에 대해 알아보겠습니다.

가상화폐 (암호 자산)의 마이닝 이란?

마이닝은 다양한 암호화 자산 (가상화폐)의 거래에서 이루어지고 있습니다만, 여기에서는 대표적인 암호화 자산 (가상화폐) 비트코인 (BTC)로부터 지급돼 빈다. 또한 "마이닝"은 가상화폐의 거래 내역을 기록하여 블록을 생성하는데, 그 대가로 암호화폐를 얻는 것이며, 광산에서 채굴이나 채광하는 것과 비슷하므로 "마이닝"이라고 불립니다.

거래를 승인하여 진행하는 작업 이란?

비트 코이(BTC)은 전 세계적으로 매일 거래되고 있고, 그 금액은 수백억에서 수천억까지 방대한 거래량으로 진행되고 있습니다. 이러한 거래는 블록체인 기술로 관리되어 전 세계 사람들이 안심하고 비트코인(BTC)을 거래할 수 있도록 되어있습니다. 즉, 원과 달러, 유로 등 법정 통화는 각국의 중앙 은행에 의해 관리되고 있는데 반해, 비트코인(BTC)은 "블록 체인 기술로 관리되고 있다"는 점이 일반 법정 통화와는 크게 다른 점이라고 볼 수 있습니다.

그렇다면 블록 체인 기술이란 무엇이며, 어떻게 비트 코인(BTC) 거래를 관리하고 있는 것일까요?

블록체인은 비트코인(BTC)의 개별 데이터를 "거래"라고 하며, 각각의 트랜잭션을 정리한 "블록"을 만듭니다. 그리고 블록에는 "언제", "누가(어떤 주소)"에서 "어느 정도 양의 비트코인(BTC)을 거래했는지" 등 중요한 정보가 기록되어 있고, 그 거래 정보를 제삼자가 체크하고 승인하는 것입니다.

즉, "거래 승인 작업"이 마이닝입니다.

비트코인

마이닝은 누가 하고 있을까요?

비트코인(BTC) 마이닝을 운영하는 사람은 "마이너(Miner)"라고 하며, 이들은 전 세계에 포진되어 있습니다.

마이닝의 송금 거래를 승인하면 수수료 등의 보상이 지급되며, 비트코인(BTC)의 보상 금액은 정해져 있으며, 현재는 하나의 블록마다 12.5 BTC가 지급됩니다.

비트코인(BTC)의 경우 평균적으로 약 10분마다 그 상이에 행해진 송금 거래를 정리해 체크하여 승인하므로, 만약 1 BTC가 70만원 이라면 10분에는 8,750만원, 1BTC가 100만 원이라면 10분에 12,500원이라는 고액을 보상받을 수 있습니다.

비트코인(BTC) 광산에서 얻을 수 있는 보상은 이처럼 매우 매력적이며, 그로 인해 전 세계의 마이너가 마이닝에 참여하여 경쟁하고 있습니다.

마이닝의 구조는?

비트코인(BTC)에 대해 대략적으로 설명했지만, 그 구조를 좀 더 자세히 살펴봅시다.

마이닝에서 중요한 것은 새로운 블록을 생성하는데 필요한 수치를 컴퓨터의 계산 능력을 활용하여 누구보다 빨리 찾아내는 것입니다. 그리고 "언제", "누가", "얼마나 많은 양의 비트코인(BTC)을 거래했는지" 등 중요한 거래 데이터를 조작하거나 함부로 변경할 수 없도록 암호화로 블록 하여 기록하게 됩니다.

그렇다면 어떠한 방법으로 거래 데이터를 조작할 수 없도록 할 수 있는 걸까요?

블록체인 기술에 사용되고 있는 방법은 검색의 속도와 데이터 비교 처리의 고속화 등에도 사용되고 있습니다. 즉 '한쪽의 해시 함수(컴퓨터 암호화 기술의 일종, hash function)'에 해시 함수에 데이터를 입력하면 그 값이나 길이가 다른 "해시"가 생성됩니다. 이 해시의 값은 매우 복잡하고, 입력되는 데이터가 한 글자라도 다르면 전형 달른 값을 나타내고, 또한 한 번 해시된 데이터는 돌이킬 수 없다는 독특한 성질이 있습니다.

따라서 새로운 블록을 생성한 마이너는 "언제", "누가", "얼마나 많은 양의 비트코인(BTC)을 거래했는지"라는 중요한 거래 데어티러를 해시하여 생성된 해시의 값을 블록에 기록합니다. 그리고 모든 해시의 값이 기입되면 트래잭션(거래)가 종료됩니다. 또한 실제 마이닝은 "대량 계산기 자원"이 필요하고, 조작하는 행동을 해서는 안되며, 정직하게 마이닝하는 것이 스스로에게 경제적이므로 조작이 일어나지 않는 구조로 되어있는 것입니다.

마이닝 보상을 받으려면?

마이닝 보상은 새로운 블록을 생성한 마이너 밖에는 받을 수 없습니다. 따라서 마이닝 보상을 받기 위해서는 전 세계의 부와의 경쟁을 이기고, 마이닝 작업을 가장 빨리 완료해야 합니다.

그러나 블록의 생성에 필요한 수치를 찾는 작업에는 많은 계산이 필요하며, 이는 확률이 낮은 복권을 백만 번 긁는 것과 같습니다. 그래서 세계의 마이너는 고성능 전용 하드웨어를 대량으로 준비하여 마이닝을 실시하고 있습니다. 또한 전용 하드웨어를 대량으로 가동하기 위한 전력이나 전용 하드웨어를 냉각하기 위한 전력이나 전용 하드웨어를 냉각하기 위한 설비, 비상용 백업 전원 등 다양한 시설을 준비하여 마이닝에 참여하고 있습니다. 마이너에서 전기 요금이 저렴한 중국이나 기온이 낮은 아이슬란드 등 북유럽 국가에서는 대규모로 사업을 전개하는 기업들도 있어, 그 규모 등에서 "마이닝 공장" 등으로 표현될 정도입니다.

문과생이 설명하는 비트코인 원리

오늘은 비트코인에 대한 내용을 가져왔는데요. 잘 정리되어 있고 이해하기 쉬운 컨텐츠는 찾기 어렵더라구요. 이미 여기저기서 접했지만 비트코인을 잘 비트코인 생성원리 이해가 되지 않는 분들을 위해 쉽게 쓰려고 노력했습니다.

이 글을 쓰기 위해서 참고한 영상은 처음 비트코인을 접했을 때 여러 영상들을 보았지만 가장 함축적이고 가장 이해하기 쉬웠던 영상이기 때문에 참고하였습니다. 처음에는 단순 번역으로 써나가기 시작했는데 쓰다보니 아예 다른 내용이 되어 참고영상이라고 올렸습니다.

자, 그럼 쉽고! 빠르고! 정확하게! 비트코인에 대해서 알아봅시다!

비트코인의 특징 1: 중앙정부의 통제의 부재

비트코인은 우리가 사용하는 돈들과는 다릅니다. 정부에서 찍어내는 게 아니에요. 우리나라 돈인 원화는 우리나라 정부에서 그 가치를 보장해줍니다. 미화는 미국정부가 그 가치를 보장해주죠. 한 마디로 비트코인에서는 화폐의 가치를 보장해주는 정부가 없어지는 것입니다.

보통 우리가 사용하는 직접 만질 수 있는 종이화폐는 정부에서 얼마나 만들어낼지를 결정하고 그리고 그 돈이 어디로 흘러나가고 있는지를 은행을 통해서 알 수가 있습니다. 우리가 송금할 때, 은행을 통해서 돈을 보내죠. 그리고 이 돈을 보냈다는 것을 증명하고 보증해주는 의미로 은행은 그 댓가를 가져갑니다. 돈을 보증해준다는 이유로 수수료를 가져가는 것입니다.

사토시 나카모토가 비트코인을 만든 이유가 바로 여기에 있어요. 원화든 미화든 정부를 믿을 수 없다! 그래서 정부나 은행이 없는 화폐를 만들겠다!라는 마음으로 비트코인을 만든 것이죠.

그럼 여기서 의문점이 생기죠. 그렇다면 비트코인은 어떻게 정부나 은행의 보증없이 돈의 가치를 가지는 것일까요? 정부나 은행을 대신하는 것은 바로 컴퓨터 기술이죠. 그러면 그 기술이 무엇인지 한 번 알아볼까요?

비트코인 특징 2: P2P방식의 거래내역

비트코인은 가상화폐이며 사람과 사람을 연결해주는 P2P네트워크 방식으로 돈을 주고 비트코인 생성원리 받을 수가 있습니다. P2P를 통해서 음악, 이미지, 영상을 주고받아 보셨을 거에요. 그런데 여기서 다른 점은 음악, 이미지, 영상이 아닌 화폐를 주고받는 것이죠.

그럼 화폐를 그냥 복사해서 보내는 것일까요? 아니요. 비트코인은 복사해서 사용할 수가 없습니다. 암호화되어 있거든요. Crypto라는 말은 암호라는 뜻을 가지고 있습니다. 그래서 우리는 비트코인을 Cryptocurrency, 즉, 암호화폐라고 부르는 것입니다.

비트코인 특징 3: 탈중앙화 된 장부

블록체인은 한 번 거래했을 때마다 그 거래에 대한 기록을 남겨요. 예를 들어 A가 1000원을 B에게 보냈다 이런 식으로요. 이러한 기록은 블록체인 안에서 거래를 하는 모든 사람들의 장부에 기록이 됩니다.

그렇다면, 이제 비트코인은 전세계적으로 일어나는 거래를 기록하는 장부라는 개념이 잡힐 거에요. 그리고 이 거래기록을 하나의 블록체인이라고 생각하면 됩니다.

모두가 같은 장부의 내용을 가지고 있다라는 이 개념을 사람들은 탈중앙화되어 있다고 말합니다. 은행과 같은 중앙 한 곳에서 장부를 가지고 있는 것이 아니라 여러 군데에서! 모두가! 가지고 있기 때문에 탈중앙화되어 있다고 말하는 비트코인 생성원리 거에요.

고스톱으로 이해하는 탈중앙화 된 장부의 원리

그럼 이제 어떻게 모든 사람들이 장부를 가질 수 있게 되는 지를 고스톱을 예를 들어볼게요. 여러명의 사람들과 고스톱을 치고 있다고 해봅시다. 하지만 사람들이 다 지갑을 못가져왔네요. 그래서 각자 공책을 꺼내서 누가 이겨서 얼마를 갖고가게 되는 지, 누가 얼마를 잃게 되는 지를 모두가 적기로 한 거에요. 왜 모두 적냐구요?

만약에 사기꾼같은 지랄맞은 삼촌이 공책에다 자기가 100만원 벌었다고 뙇!!하고 써놓으면 어떡하냐구요. 그래서! 모두가! 공평하게 공책에 적기로 한겁니다. 그리고나서 재밌는 고스톱 게임이 끝나면, 무엇을 적었는 지를 같이 확인해봅니다.

그런데 여기서 갑자기 삼촌이 내가 100만원 벌었소!라고 썼으면 모든 친척들이 노발대발하며 일어나서 머리 끄잡아땡기겠죠? 여기서 중요한 사실은 사기로 공책에 다른 내용을 쓰면 걸린다는 거에요. 그리고 공책에 적은 각각의 페이지는 하나의 블록이 되는 거에요. 그리고 공책에 모든 페이지들이 연결되어 있는 것처럼 이 블록들이 쭉 체인처럼 연결이 되겠죠! 그래서 블록체인이라고 부르는 것입니다.

비트코인 특징 4: 투명성

수천명의 많은 사람들이 전세계적으로 동시다발적으로 거래가 이루어지고 있는데 그 모든 거래내역을 각각 가져야 하는데, 어떻게 그 순서를 맞출 수 있을까요?

아까 전에 말했던 고스톱을 다시 예로 들어봅시다. 고스톱을 치고 있는 판은 P2P네트워크이고, 거기에는 돈을 주고 받는 사람들이 있습니다. 또한 그 장부를 따로 기록하는 자원봉사자들이 있다고 해봅시다. 그러니까 돈을 주고받을 때마다 장부를 기록하는 자원봉사자들은 자신이 기록해 준 정보를 테이블에 있는 모든 사람들에게 알려줘야 합니다. 그래야 모든 사람들이 그 정보를 기록해서 가지고 있을 수 있으니까요.

자원봉사자들이 모든 사람들에게 알리고, 장부에 기록해야하는 것은 계좌 번호, 너가 보내는 사람의 계좌번호, 그리고 얼마의 돈을 보낼것인지를 알려줘야 해요. 그러면 이 내용을 알릴 때마다 새로운 블록 하나가 기존에 있던 다른 블록 뒤에 더해질거에요.

이렇게 보면 모두가 장부를 가지고 있는게 은행이라는 한 곳에서 거래기록을 남기는 것보다 보안성 면에서 훨씬 낫겠죠? 만약에 은행이 해킹이라도 당하면 어떡해요? 모든 기록이 다 날라가는 거잖아요.

비트코인의 특징 5: 보안성

아니, 근데 그러면 모두가 내 정보를 알게되는건가요? 그게 어떻게 더 보안이 높다는 거에요? 내 거래내역 정보가 투명하게 되어있다면 그 정보를 이용할 수도 있잖아요. 그런데 왜 비트코인이 안전하다고 하는거에요?

비트코인은 암호화폐이므로 높은 보안성을 가집니다. 왜냐하면 키라는 게 있거든요. 키라는 건 어떠한 정보를 참이다 거짓이다를 판별해주는 수학적으로 보증해주역할을 해요. 우리의 정보는 암호화되어 있고 이것을 열 수 있게 해주는 것이 바로 키의 역할이에요.

비트코인의 P2P네트워크에서 계정을 만들면, 그 계정의 지갑은 두 개의 키를 갖고 되요. 바로 프라이빗 키와 퍼블릭 키가 있죠.

프라이빗 키는 나만이 가지고 있는 키 입니다. 반대로 퍼블릭 키는 모든 사람들이 가지고 있는 키에요. 프라이빗 키로는 내 비트코인 생성원리 정보를 나만이 볼 수 있는 역할을 합니다. 그리고 퍼블릭 키는 프라이빗 키가 진짜인지 아닌지를 증명해주는 역할을 합니다.

만약에 내 신용카드 정보가 있다면 이 정보를 볼 수 있는 건 나뿐인데, 프라이빗 키를 이용해 서명을 하면 오직 나만이 이 정보를 볼 수가 있는거에요. 다른 사람 그 어떤 누구도 나의 프라이빗 키를 복제할 수 없습니다. 그렇다면 내가 가지고 있는 프라이빗 키가 진짜냐 아니냐하는 것은 모두가 가지고 있는 퍼블릭 키를 비트코인 생성원리 통해 서명을 확인하는 것입니다.

다시 말해서, 퍼블릭 키가 작동한다는 것은 나의 프라이빗 키가 진짜라는 것을 증명해주는 것이고 이 프라이빗 키를 통해서오직 나만이 볼 수 있는 정보를 볼 수 있게 됨으로 나라는 것을 증명할 수 있겠죠.이것을 통해서 누군가가 나인척을 하며 내 돈을 빼돌리지 못하겠죠.

비트코인 특징 6: 이중지출문제의 해결

만약에 어떤 사람이 돈 1000만원을 가지고 있었고 그 1000만원을 두 번썼다고 가정해봅시다. 은행의 경우라면 각각의 두 번의 거래에 대해서 처음에 쓴 1000만원은 맞는 거래이지만, 두번째로 쓴 1000만원에 대해서는 승인해주지 않을거에요. 만약에 승인해준다면, 나는 총 2000만원을 쓴게 되잖아요. 만약에 은행이 바보처럼 계속 승인만 해준다면, 우리는 돈을 펑펑써도 괜찮아요. 이것을 이중지출 문제라고 부릅니다.

하지만 비트코인의 네트워크에서의 지갑은 자동적으로 그 전의 거래를 찾아 돈을 쓸 충분한 비트코인이 있는지를 확인해 줍니다. 하지만 여기에는 시간차로 생길 수 있는 문제가 있는데요, 그 이유는 수많은 전세계의 많은 사람들이 블록체인의 정보를 갖고있기 때문입니다. 만약에 인터넷 환경이 안좋아져서 네트워크에 정보를 보내는데 시간이 걸린다면 모두가 같은 정보를 ‘순차적으로’ 가질 수 없겠죠.

예를 들어, A라는 사람의 장부기록에는 1. A가 500원을 썼다. 2. Z가 1000원을 썼다. 이런 순서이지만, Z에게는 1. Z가 1000원을 썼다. 2. A가 500원을 썼다. 라는 순서가 될 수 있다는 것입니다. 그래서 모든 사람들은 같은 내용의 블록을 가지게 되겠지만, 조금씩 다른 순서의 블록들을 가지게 될거에요. 그렇다면 블록은 어떤 과정을 거쳐서 생겨나는 것일까요?

비트코인의 특징7: 해시함수의 값 구하기 = 채굴

새로운 블록을 생성하려면 쉽게 말해 수학문제를 푸는 것이다라고 생각하면 됩니다. 그리고 이 수학문제는 해시함수문제를 푸는 것입니다. 체인에 또 다른 블록을 붙이기 위해서 사람들은 해시함수문제의 답을 다른 사람들과의 경쟁에서 제일 먼저 찾아야합니다.

해시함수에는 다양한 사이즈를 갖고있는 인풋과 고정된 사이즈의 아웃풋이 있습니다. 사람들은 정해진 숫자(아웃풋)에 다양한 숫자를 넣어보면서(인풋), 맞는 답을 찾으면 되는 것입니다. 인풋은 다양한 숫자의 값을 넣어줄 수 있다는 뜻이고 아웃풋은 이미 정해져있는 특정한 숫자입니다.

해시함수 문제는 인풋을 모두 더해서 10이라는 아웃풋을 만들어라는 식으로 예를 들 수 있어요. 간단한 이 쉬운문제에서도 10을 만들 수 있는 방법은 굉장히 많죠. 인풋값이 1–2–3–4라는 것을 알아내기 위해서는 맞을 때까지 많은 숫자를 넣는 수밖에 없어요. 숫자를 더해서 10을 만들 수 있는 방법은 무궁무진하니까요.

해시가 암호화폐에 정말 잘 어울리는 이유는 인풋이 정해져있으면 아웃풋은 찾기가 쉽지만 반대로 아웃풋이 정해져 있고 인풋을 찾아야 하는 것은 정말 어렵기 때문에 암호화폐에 딱 어울린다고 할 수 있어요. 수를 합쳐서 만들 수 있는 인풋의 값은 가능성은 무궁무진하고 그 중에서 문제에서 정한 값을 찾기란 정말 힘드니까요.

여태까지 말한 해시 문제는 SHA256이라고도 합니다. Secure Hash Algorithm이 줄임말이며, 미국 국방부에서 고안해낸 방법입니다.

컴퓨터로 SHA256 해시 문제를 풀려면 평균적으로 10분 정도가 걸립니다. 10분이나 걸린다는 말은 문제를 맞추기 전까지 수천 수만개의 오답을 거친다는 뜻인데요, 아까 말했듯이 해시 문제를 먼저 푸는 사람이 다음 블록을 차지할 수 있어요.

여러명의 사람들이 다음 블록이 되기위에 동시에 경쟁한다면, 네트워크는 가장 길고 믿을 수 있는 체인을 선택합니다. 경쟁에서 탈락된 블록들은 다시 나중에 체인에 붙을 수 있도록 원래의 자리로 다시 돌아갑니다.

그런데 도대체 아까 고스톱 예에서 말했던 자원봉사자들은 왜 비싼 값을 지불하며 SHA256을 풀 수 있는 컴퓨터를 살까요? 거기다 비싼 전기료도 나올텐데 말이에요. 왜 다음 블록이 되려고 그렇게 안간힘을 쓸까요? 그 비트코인 생성원리 이유는 비트코인의 시스템에는 그들이 보상을 받을 수 있도록 설계해 놓았기 때문에 블록체인에 하나의 블록을 더할때마다 12개 반의 비트코인을 받을 수 있기 때문입니다.

사실 여태까지 말했던 블록체인에 블록을 더 해주는 이 자원봉사자들은 사실 따로 부르는 이름이 있습니다. 바로, 채굴자입니다. 채굴자라고 부르는 이유는 블록체인을 새로 추가할 때마다 해시문제를 푸는 것이 마치 금을 캐는 듯하여 붙여진 이름입니다.

모든 비트코인은 채굴자들을 보상하기 위해 존재하는 것입니다. 또한 블록에 새울 때마다 코인을 받는 것이 아니라 장부에 새로운 거래내역을 올릴 때에도 작은 보상을 받게 됩니다.

210,000블럭 때마다 코인을 받게 수는 반으로 점점 줄게 되어있습니다. 가장 처음 시작할 때 받은 50개의 보상이 25개가 되고 12개 반이 되고 비트코인 생성원리 이제는 몇 년 이내에는 6개만을 받게 되고 그 이후로도 계속 줄어들겠죠.

마지막 비트코인은 2140년도 쯤에 채굴된다고 합니다. 점점 줄어드는 비트코인의 마치 금이 지구에서 캐내져 없어지는 이러한 아이디어는 비트코인이 시간이 지날수록 비트코인의 공급을 줄어들게 하여 가치를 올라가도록 한 것입니다.

비트코인 생성원리

새로운 유저로서 당신은 기술적인 이해없이도 비트코인 사용을 시작할 수 있습니다 . 우선은 비트코인 지갑을 당신의 컴퓨터나 모바일기기에 설치하고 첫 비트코인 주소를 만듭니다 . 물론 필요하면 얼마든지 많은 주소들을 만들 수 있습니다 . 친구들에게 주소를 알려주면 , 서로 비트코인을 주고받을 수 있게 됩니다 . 간단히 말하면 이메일이 작동하는 방식과 유사합니다 . 다만 비트코인 주소는 하나의 거래마다 단 한번만 사용되어야 합니다 .

노드 (Node) 와 블록체인 (Blockchain)

비트코인의 모든 블록정보와 거래내역은 모든 사람들에게 공개돼지고 , 이 때 필요한 것이 정보를 모으는 것과 이를 통합하는 것인데 , 전자를 노드라 할 수 있고 , 후자를 블록체인이라 할 수 있다 .

오픈소스 ( 무상으로 공개된 코드 ) 인 비트코인 프로토콜은 원래 " 사토시 나카모토 " 라고 하는 익명의 개인 또는 단체가 개발하여 2009 년에 공개되었습니다 . 따라서 비트코인 소프트웨어는 중앙집중적인 통제를 받지 않는 일단의 엔지니어들이 개선 및 관리해왔습니다 . 컴퓨터에서 비트코인 소프트웨어를 사용하는 사람은 누구나 이 네트워크의 참여자가 됩니다 .

분산화된 시스템

소프트웨어로서 비트코인은 비트코인이라는 가상 화폐를 생성하거나 가상 화폐를 다른 사람과 주고받을 수 있는 기능을 제공하는 프로그램이다 . 비트코인은 Napster 나 BitTorrent 처럼 PC 에서 사용하는 P2P 소프트웨어다 . 비트코인이란 가상 화폐는 이 P2P 기반의 ' 비트코인 프로그램 ' 을 통해 통용되는 디지털 화폐 혹은 사이버 머니라고 보면 되겠다 .

채굴 (Mining)

비트코인은 사용자들에 의해 직접 발행이 되는데 , 이를 통상적으로 채굴이라고 부른다 . 이를 기술적으로 끊임없는 해싱 작업을 통한 ‘ 목표값 (target value)’ 이상의 해시 (hash) 값 찾기 ( 작업증명 , POW:Proof of Work) 로 정의할 수 있다 . 채굴에 참여하는 모든 사용자가 목표값을 찾기 위한 경쟁을 벌이며 , 특정한 사용자가 목표값에 해당하는 해시값을 찾는데 성공하면 , ‘ 블록 ’ 을 발행하게 된다 . 이들은 블록을 발행하고 이를 네트워크에 전파하면서 동시에 블록 발행 보상인 ‘ 비트코인 ’ 과 해당 블록 안에 포함된 ‘ 이체 수수료 ’ 를 받게 된다 . ‘ 비트코인 지급 ’ 이라는 경제적 보상이 채굴자들이 해싱작업에 참여하는 동기가 된다 . 채굴은 근본적으로 끊임없는 해싱작업이며 , 많은 컴퓨팅 파워를 가지고 있을수록 빠른 속도의 해싱이 가능하다 . 즉 , 컴퓨팅 파워를 많이 투입할수록 다른 경쟁자들보다 비트코인을 많이 받게 되는 구조이다 .


0 개 댓글

답장을 남겨주세요