본문 바로가기

보안 이야기

비트코인 채굴 원리와 방법


저번 보안이야기에서 소개한 <비트코인과 보안> 잘 읽어보셨나요?


일반 화폐와 달리 만질 수도 없고

중앙 정부의 개입 없이 개인간 거래할 수 있는 독특한 화폐 인데요

화폐 발행이 되는 원리도 일반 화폐와는 조금 다르답니다!


금 캐는 과정과 비슷하기 때문에 채굴(mining) 이라고 하는데

어떤 원리로 이뤄지고 어떻게 채굴할 수 있는지 알려드리겠습니다~


평소 관심이 있었다면 오늘 포스트 꼭! 읽고

도전해보세요^^




비트코인 채굴 원리

 

 

일반적으로 금융거래 시 은행, 신용카드회사 등의 금융기관이 중개하여 거래가 이뤄지는데

비트코인은 이러한 중개기관 없이 안전한 거래가 이뤄지도록

모든 거래내역을 장부에 기록하여 모든 사용자들이 공유할 수 있는 방식을 선택했습니다. 


비트코인 시스템은 전체 거래내용을 10분 단위로 모아 장부에 기록하는데

거래내용은 암호화 되어있기 때문에 누군가 암호를 풀어 장부에 기록해야 합니다. 


암호는 수많은 계산과 검토가 필요한 어렵고 번거로운 일이기 때문에

암호를 풀어 장부에 기록하는 권리와 그 대가인 신규 발행된 비트코인을 한 사람에게 주는데요

이 과정은 마치 광부가 광산에서 곡괭이질을 거듭한 끝에 금을 캐내는 것과 비슷하다고 하여

채굴(mining) 이라고 합니다. 


사용자들은 컴퓨터를 통해 비트코인을 얻기 위해 경쟁하면서 수학문제를 풀어야 하는데요

시간이 지나면 지날수록 암호의 난이도는 높아지고 발행량도 점점 줄어들게 됩니다. 

이는 화폐 가치하락(인플레이션)을 방지하기 위함이라고 합니다. 


비트코인은 앞으로 2040년이 되면 총 2,100만 비트코인을 끝으로 발행이 끝나며

이후에는 유통 시 발생되는 수수료를 이용하여 지급하도록 되어있습니다. 




비트코인 채굴 방법

 

 

▲ 비트코인 지갑 만들기 

비트코인 채굴 전 비트코인을 저장할 전자지갑을 만들어야 합니다. 

비트코인 지갑은 외국 뿐만 아니라 국내에서도 지원하는데요

원하시는 사이트에 방문 후 만드시면 됩니다. 


▲ 채굴 풀 가입하기

텅 빈 지갑을 채우기 위해 본격적으로 채굴 작업에 나서야 하는데요

비트코인 암호를 풀기 위해선 일반 PC 1대 기준으로 5년의 시간을 투자해야 풀 수 있습니다. 


이런 고민을 다같이 해결하기 위해 채굴 풀(mining pool)이 생겼습니다. 

본인 컴퓨터의 계산 성능 일부를 암호 해독 과정에 보태고

채굴이 완료되면 기여한 만큼 비트코인을 나눠 받는데요

컴퓨터의 성능이 좋을수록 더 많은 비트코인을 받을 수 있습니다. 


채굴 풀도 많이 나타났기 때문에 원하는 채굴 풀에 가입 후 

프로그램을 다운 받아 자기 계정에 연동합니다. 


▲ 채굴하기

채굴 프로그램 실행 후 시작 버튼만 누르면 끝입니다. 

계산은 컴퓨터가 알아서 하는데 다만 PC 전원이 꺼지지 않도록 잘 설정해주시기 바랍니다. 




비트코인 채굴 시 주의사항

 

 

 CPU 사용량이 급격히 늘어나며 100%를 유지하는 시간이 길어지기도 합니다. 

CPU가 과열되지 않도록 모니터링 해야 합니다. 


▲ 컴퓨터를 24시간 풀가동 해야 하므로 전기세 지출이 늘어날 수 있습니다. 

감안하여 채굴하시기 바랍니다.


 외국거래소 사용 시 여권만료일을 확인해야 합니다. 

만료일자가 지난 여권으로 인증 시 출금정지가 될 수 있습니다. 




[참고] 비트코인 암호화 원리

 



그렇다면 비트코인의 거래내역은 어떻게 암호화가 될까요?

참고가 될 수 있는 비트코인 암호화 원리를 알려드리겠습니다. 


비트코인은 주로 공개열쇠방식을 사용합니다. 


▲ 공개열쇠방식

공개열쇠방식은 보내고자 하는 정보를 암호화 할 때

암호화하는 열쇠와 복호 하는 열쇠가 서로 대칭이 아니라는 특징이 있습니다. 


즉, 정보를 보내는 쪽의 암호화 열쇠와 받는 쪽의 복호 열쇠가 다르기 때문에

암호화 열쇠를 공개하여도 암호화된 정보가 무엇인지 알기는 매우 어렵습니다. 


송신자가 정보 a를 공개열쇠방식으로 수신자에게 보낼 경우를 예로 들어보겠습니다. 


먼저 정보를 받을 수신자는 어떤 두 소수(1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수)의 곱 4067351을 이용하여 송신자에게 정보를 암호화해서 보내달라고 요청한다. 

그러면 송신자는 공개된 암호화 열쇠 4067351을 이용하여 정보 a를 b로 암호화하여 수신자에게 보낸다. 

이 때 송신자는 공개된 수 4067351만을 이용하여 a를 b로 암호화한다. 

수신자는 4067351의 두 소인수(어떤 정수를 소수만의 곱으로 나타낼 때의 각 인수)를 이용하여 받은 암호문 b를 a로 

복호한다. 

암호화된 정보가 송신자로부터 수신자로 전달되는 사이에 공격자가 암호 b를 탈취하더라도 4067351이 어떤 두 소수의 곱으로 이루어져 있는지 알 수 없기 때문에 b를 a로 바꿀 수 없다. 


공개열쇠방식은 두 소수(1과 그 수 자신 이외의 자연수로는 똑 떨어지게 나눌 수 없는 자연수)

p, g가 주어졌을 때, 그 두 소수의 곱m(=pg)은 쉽게 구할 수 있지만

어떤 두 소수의 곱 m이 주어졌을 때 m이 

어떤 두 소수의 곱인지 알기 어렵다는 것에서 착안한 방법입니다. 


즉, 공개열쇠방식은 누구나 한쪽 방향으로 쉽게 들어갈 수 있어도

특정한 사용자 이외에는 되돌아올 수 없는 이른바 덫문과 같은 장치가 마련되어 있기 때문에

비트코인을 주고 받을 때 사용됩니다.