비트코인 사용원리

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

블록 (Block)

비트코인은 어떤 원리로 만들어지고 어디에 사용되나요?

비트코인은 공개키(public key)를 가진 공개된 암호화된 정보이며, 공개된 공개키와 공개되지 않은 비공개키(private key)의 매칭으로 거래자격을 획득합니다. 즉 특정 비트코인블록에 관한 비공개키를 가진 사람만이 특정 비트코인블록을 소유하고 거래할 수 있습니다.

답변 신고

이 답변은 콘텐츠 관리 정책 위반으로 비공개되었습니다.

금융회사의 개입 없이 온라인상에서 개인과 개인이 직접 돈을 주고받을 수 있도록 암호화된 가상자산으로, 2009년 개발되었다. 컴퓨터 프로그램으로 수학문제를 풀어 직접 비트코인을 채굴하거나, 채굴된 비트코인을 거래하는 시장에서 구입할 수 있다.

비트코인은 컴퓨터에서 정보의 기본 단위인 비트(bit)와 동전(coin)의 합성어로, 2009년 1월 사토시 나카모토라는 필명의 프로그래머가 개발한 가상자산이다. 비트코인을 만드는 과정은 광산업에 빗대어 '마이닝(mining, 캔다)'이라고 하며 이러한 방식으로 비트코인을 만드는 사람을 '마이너(miner)', 즉 광부라고 부른다. 비트코인은 컴퓨터 프로그램으로 수학문제를 풀어 직접 비트코인을 채굴하거나, 채굴된 비트코인을 거래하는 시장에서 구입할 수 있다 채굴(Mining)은 블록체인이라고 불리는 비트코인의 공공원장에 거래 기록을 추가하는 과정으로, 모든 거래의 정확성을 확인하고 네트워크상에 있는 모든 참여자들이 해당 원장을 열람할 수 있도록 하려는 목적으로 이뤄진다.

독일은 2013년 비트코인을 지급결제 수단으로 인정하였고, 일본 역시 2017년 5월 자금결제법 개정으로 비트코인을 지급결제 수단으로 인정하였다. 반면 한국에서는 전자금융거래법으로 인해 가상자산인 공식적인 지급결제 수단으로 인정받지 못하고 있다.

작동 원리

보안 소스 또는 당사 홈 페이지에서 Icynote 콜드 지갑을 구매하고 모든 보안 상세한 항목을 확인하십시오. 안드로이드 또는 애플 스토어에서 Icynote 앱을 다운 받으십시오. Icynote QR 코드를 스캔하고 체크 코드를 입력하십시오. 앱이 이 화폐의 정확함을 알리면 이 지갑의 이름을 지정하고 비트코인 충전을 시작하십시오.

2. Icynote 콜드 지갑에서 비트코인 충전하기

보안 소스에서 비트코인을 구매하고 Icynote 주소로 보내십시오. 실수가 없는 것을 확인한 후에 그것을 위해서 QR 코드를 사용할 수 있습니다. 비트코인을 콜드 지갑으로 보낸 후에 그것을 스캔하여 가치를 확인할 수 있습니다. 통화를 선택하십시오 (달러, 유로 등). 그 콜드 지갑의 이름을 지정하고 비트코인 충전을 시작하십시오.

3. Icynote 비트코인을 보내거나 그것을 다른 콜드 지갑으로 보내기

Icynote를 현금으로 사용하는 모든 상품으로 교환할 수 있습니다. 호텔 예약을 지불하거나 딜러로부터 테슬라 차량을 구매할 수 있습니다. 홀로그램을 긁어 내고 내장된 개인 키를 사용하여 코인을 다른 콜드 지갑으로 전송할 수 있습니다.

4. Icynote를 콜드 지갑으로 저장

Icynotes는 섭씨 -40~+60°C (40°~140°F)까지 견딜 수 있습니다. 권장되지는 않지만, Icynotes는 전체 세탁기의 사이클을 견딜 수 있습니다. Icynotes가 주머니에 있으면 옷을 세탁하지 마십시오. 잉크는 보호되며 비트코인을 정상 온도의 건조한 장소에 20 년 동안 보관할 수 있습니다.

[블록체인에 대하여] (2) 암호화폐와 비트코인 작동원리

블록체인 전문 리서치 스타트업 ‘피넥터’ 팀이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.

암호화폐 (Crypto-currency)

초기의 블록체인 기술은 비트코인(Bitcoin), 라이트코인(Litecoin), 피어코인(Peercoin), 도기코인(Dogecoin) 등의 이체와 화폐의 기능을 수행하는 전자화폐에 적용됐다. 마치 법정화폐(Fiat cur-rency)처럼 투자나 온라인/POS 이체, 가치의 저장 수단 등으로써 이용되었는데 다만 규제, 감독, 법제화 등과 관련된 공인성은 가지고 있지 않았다.

이렇게 암호화폐는 판매자와 구매자가 필요로 하는 근본적인 부분들(연결, 환전, 지급)을 충족시켜 주었기에, 빠른 속도로 인기를 얻게 되었고 전 세계의 수많은 다양한 채널들을 통해 사용되기 시작했다. 물론 아직 전체 거래 시장규모에 비하면 매우 작은 수준이며 이러한 화폐들이 얼마나 많은 이체 건수를 처리할 수 있는지에 대해서도 의문이 제기되고 있는 것이 사실이나, 이러한 암호화폐가 가져올 시장 혁신이나 법제화 가능성, 집단지성(collective knowledge)을 통한 활용도 확장 등의 가능성은 분명히 제고되어야 할 부분이다. 지급 관련 서비스 사업자들(PSPs)은 이 분야의 기능적, 기술적, 법적 변화상을 면밀히 지켜보고 이러한 화폐가 어떻게 응용되어가고 있는지를 이해할 필요가 있을 것이다.

암호화폐에 대해서는 관할에 따라 각기 다른 법리적 해석이 적용되고 있지만, 그 맥은 동일하다. 암호화폐는 법정화폐의 자격을 취득할 수 없으며, 기존 법정화폐와 같은 법적 보호나 법적 권리를 보장받을 수 없다는 것이다. 암호화폐가 근시일 안에 실제로 일상에서 통용되기는 쉽지 않을 것이다.

암호화폐 – 비트코인(Bitcoin)

비트코인은 2009년에 ‘사토시 나카모토(예명)’로 알려진 개인 또는 다수의 개발자를 통해 탄생됐다. 비트코인은 P2P네트워크, 해시, 암호화, POW(작업증명) 등의 기술을 다차원적으로 종합하여 만든 프로그램이며, 기존의 가상화폐들과는 달리 암호화 기술(cryptography)와 해시를 이용한 POW(작업증명)방식을 이용하였다는 점에서 암호화폐(cryptocurrency)로 불리고 있다.

이러한 암호화폐 발행 및 거래 프로그램을 ‘비트코인’ 또는 ‘비트코인 코어’라고 부르며, 이 프로그램 안에서 통용되는 암호화폐 또한 ‘비트코인’이라고 칭한다. 비트코인은 특정한 발행 또는 관리 주체 없이 운영되는데, 참여하는 사용자들이 주체적으로 화폐를 발행하고 이체내역을 관리하게 된다. 중앙화된 주체에서 주도적으로 관리하는 것이 아니라 P2P로 운영되기 때문에 계좌동결, 강제인도, 강제신원공개 및 서비스 정지 등이 불가능하다.

비트코인의 작동원리 (Bitcoin Mechanism)

채굴 (Mining)

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

POW로 통칭하는 ‘작업증명’은 기본적으로 특정한 난이도의 작업을 수행했음을 증명하는 기법이며, 해당 작업의 어려움은 난이도에 맞게 설정되어 있어야 하지만 그 작업이 완료되었음을 확인하는 것은 쉬워야 한다. 여러 가지 방법이 작업증명에 사용될 수 있는데, 비트코인의 경우 위에 언급된 ‘Hashcash’방식을 통해 작업증명을 한다.

조폐 (Mintage)

블록은 위에서 설명된 채굴 작업을 통해 발행되며, 매 발행 시마다 비트코인 프로그램 자체(coinbase)에서 ‘블록발행보상’을 채굴자에게 지급하는 방식으로 신규 화폐를 발행(조폐)하게 된다. ‘블록발행보상’은 2016년 기준으로 25 비트코인이며, 매 ‘21만 블록(약 4년)’을 기준으로 발행량이 절반으로 줄어든다. 2009년 1월 첫 발행 시에는 50 비트코인씩 발행이 되었으나 약 4년 뒤인 2013년 말부터는 25비트코인으로 발행량이 줄었으며, 역시 4년 뒤 2016년 7월 10일에는 12.5 비트코인으로 매 4년마다 계속 반으로 줄어든다. 이렇게 발행되는 비트코인의 총량이 2,100만개에 이르면 비트코인의 신규 발행은 종료된다. (*더 정확하게는 20999999.9769개인데, 블록당 최소 보상량이 0.00000001비트코인(=1사토시)이기 때문이다.

1


블록 (Block)

블록은 위에서 설명된 채굴행위를 통해 매 10분을 주기로 발행된다. 블록은 일종의 데이터 패킷으로 몇 가지 정보를 담고 있다. 가장 중요한 것으로 참여자들이 화폐를 거래한 ‘거래내역’, 그리고 이전 블록의 해시값, 난이도, 논스(nonce) 등이 포함된다. 매 블록은 바로 전 블록의 해시값을 담고 있으며, 이렇게 이어진 블록들은 시간 순으로 발생한 이체 내역들을 담고 있는 하나의 ‘블록체인(blockchain)’을 이룬다. 각 블록은 최대 1MB의 크기까지 확장될 수 있으며, 헤더 80바이트, 기타 17바이트 등을 제외하고 총 1,048,479바이트 가량이 이체내역 저장을 위해 사용될 수 있다.

블록은 헤더(header)와 바디(body)로 나뉜다. 헤더는 다음의 6가지로 이루어져 있으며 1) 현재 비트코인 프로그램의 버전, 2) 이전 블록을 해싱한 해시값, 3) 현재 블록의 거래내역들을 모두 해싱한 해시값, 4) 현재 블록의 타임스템프, 5) 난이도(해시 목표값), 6) 논스값 – 바디는 해당 블록 안에 기재된 모든 이체내역을 담는다.

2


난이도 (Difficulty)

블록의 생성 주기는 네트워크 전파 속도 및 보안성 등을 이유로 사토시에 의해 ‘10분’으로 채택되었다. 그러나 위 ‘채굴’ 부분에서 언급된 바와 같이, 블록 생성은 곧 특정한 목표값을 해싱 작업으로 찾아내는 것인데 그렇다면 해싱 작업 속도만 빠르다면 10분이 아니라 1분 안에도 목표값을 찾아낼 수 있을 것이다. 그렇다면 충분한 컴퓨팅 파워만 있다면 1초안에도 블록을 생성하는 것이 가능할 것이다. 이것을 막기 위해 도입된 것이 ‘난이도’의 개념이다. 비트코인이 채택한 작업증명(POW: Proof of Work) 방식은 ‘Hashcash’ 방식이다.

Hashcash 방식의 요소는 네 가지로, ‘목표’, ‘작업방식’, ‘난이도 조정방법’, ‘난이도 조정시점’이 있다. ‘목표’는 2016개의 블록을 생성하는데에 2주(2016블록*10분=2주)가 소요되야 한다는 것이며, ‘작업방식’은 해싱을 통한 목표값 찾기, 그리고 ‘난이도 조정방법’은 목표치를 초과/미달하는 부분만큼 ‘목표값(target value)’의 난이도가 변경되는 것이다. 이 난이도 조정은 매 2016번째 블록마다 이루어진다.

만일 2016개의 블록을 생성하는데 2주가 아닌 1주일이 걸렸다면, 목표에 도달키 위한 필요 작업의 50%만 이루어진 것이므로, 목표에 도달치 못한 것이다. 따라서 난이도를 2배로 증가시켜서, 기존 1주일의 두 배인 2주가 걸리게 조정하고 목표를 충족시킨다.

이체 확인 (Confirmation)

이용자가 이체를 하면 이를 채굴자가 자신의 블록에 넣어서 발행하게 되는데, 이 순간 해당 이체내역의 ‘이체확인(confirmation)’은 1이 된다. 그리고 해당 블록의 해시를 이용한 다음의 블록이 발행되면, 해당 이체내역의 이체 확인은 2가 되는 식이다.

비트코인 프로그램은 각 이체가 총 6번(60분)의 이체확인을 받아야 재이체(사용)가 가능하도록 설계되어 있는데, 이것을 일반적인 POS과정(*슈퍼에서 껌을 사기 위해 이체하고 1시간을 기다릴 수는 없는 일이다)에 그대로 도입하는 것은 불가능할 것이다. 따라서 각 사업자는 자신이 리스크를 지고 필요에 따라 1~2이체확인 또는 단순히 TxID를 통한 이체신청내역 사실 확인만으로도 이체 확인을 해주는 ‘제로컨펌(zero-confirmation)’까지 다양하게 조정하여 사용하고 있다. (일반적인 가상화폐 거래소의 경우 한 번의 이체내역 확인(=1블록 컨펌) 만으로도 이를 인정해주고 있다.)

3

이체 발생 과정 (Transaction Process)

이체가 발생하고 확정되어 가는 과정을 다음과 같이 정리할 수 있다.

1) 한 이용자가 개인키를 사용하여 이체 거래 A를 신청한다.
2) 이체 거래 A에 해당하는 해시값이 발행된다. (TxID) – 이를 통해 이체내역은 즉시 확인할 수 있다.
3) 이체 거래 A 내역을 채굴자가 자신의 이체 풀에 넣어 보관한다.
4) 채굴자가 목표값 해싱에 성공하여 블록 생성 권한을 얻게 되면 새 블록에 이체신청내역을 ‘우선순위’부터 차례로 담아 발행한다. 우선순위 안에 들지 못하는 거래 건은 영원히 확인받지 못하는 경우도 생긴다.
5) 이체 거래 A 내역을 담은 블록이 네트워크에 전파된다.
6) 이체 거래 A가 1회 확인 받는다.
7) 네트워크를 통해 해당 블록을 전파(다운)받은 다음의 채굴자가 블록 생성 권한을 얻고 다음 블록을생성하게 된다.
8) 이체 거래 A를 담은 블록의 ‘다음 블록’이 네트워크에 전파된다.
9) 이체 거래 A가 2회 확인 받는다.
10) 위의 과정이 끝없이 반복된다.

위의 과정은 이체 신청과 이체 확인의 과정을 설명하고 있으며, 누군가 A주소의 비트코인을 B주소로 이체하기 위해 이체 거래를 신청하고 자신의 ‘개인키(private key)’로 서명해 네트워크에 전파하면 ‘이체 신청(Transaction)’이 끝난다. 이를 채굴자가 전파받아 자신이 발행하는 블록에 산입하여 넣고 이를 전파하면 ‘이체 확인(Confirmation)’이 된다. 마지막으로 비트코인을 이체받는 주체가 이체 내역을 승인하면 그것이 ‘이체 확정(Settlement)’이 된다.

4

거래소는 1~2회 이체 확인만으로 이체 거래를 확정해주기도 한다. POS의 경우 0~1회, 고액의 이체건의 경우 10회 등 거래 확정의 엄격성을 달리 적용한다. 일부 거래소는 암호화폐를 탈취한 해커가 요청한 이체 거래를 영원히 확정하지 않는 식으로 해커가 빼앗은 비트코인을 동결하기도 한다. 이렇게 이체는 ‘이체 신청(Transaction)’, ‘이체 확인(Confirmation)’, ‘이체 확정(Settlement)’의 세 단계를 거치게 된다.

비트코인의 존재(Bitcoin Ontology)

사실 비트코인 프로그램에 비트코인의 실체적 개념은 존재하지 않는다. 그 어느 경우에도 비트코인이라는 것이 A의 계좌에서 B의 계좌로 ‘이동’하는 경우는 없으며, 단순히 해당 계좌들의 숫자를 증액하거나 감액하는 원장 정리 개념만이 존재할 뿐이다. 그러한 원장 정리 내용은 모두에게 동일하게 공유된다. 따라서 각자가 가진 원장 모두가 원본이 된다는 무신뢰 거래(trustless settlement)가 비트코인 원장의 핵심개념이다. 각자가 가진 원장이 원본이기 때문에, 다른 누구에게 확인을 받을 필요나 다른 독립된 기관에 신뢰성을 의존할 필요가 없다. 이것을 구현하기 위해서 위에 언급되는 다양한 기법들이 사용되었다고 이해하면 된다. 블록체인 등장 이전에는 이것이 해결하기 어려운 문제로 남아 있었다.

해싱과 논스(Hash and Nonce)

해싱은 데이터(존재하는 모든 데이터에 적용 가능)를 무작위의 정해진 길이의 문자열로 치환시키는 것이다. 일례로 비트코인의 해싱 기법인 ‘SHA256^2’는 블록을 그 내용이나 크기에 상관없이 언제나 32바이트 즉 64자리 길이의 결과값으로 치환한다.

해싱의 또 다른 특징은 같은 데이타를 해싱할 경우 같은 해시값을 얻는다는 것이다. 하지만 목표값을 찾으려면 해싱 작업을 반복해야한다. 따라서 블록의 내용을 임의로 바꿔야한다. 이체내용 등을 임의로 바꿔서는 안 되니, 블록에 포함된 논스값을 수정해 나올 결과값을 다르게 만든다. 블록 헤더 안에 논스가 있는 이유가 바로 여기 쓰기 위해서다. 채굴자는 블록 헤더의 논스값을 0에서부터 1씩 반복해서 늘려가며 해시값을 얻는다.

비트코인의 보안성 (Bitcoin Security)

화폐 거래원장을 공격한다는 말은 해당 장부의 내역을 조작한다는 뜻이다. 블록체인에 기록된 내역을변조한다는 말은 조작한 블록을 만들어 네트워크에 전파하는 데 성공한다는 얘기다. 이는 현실적으로불가능하다. 모든 블록은 바로 전 블록의 해시값을 기준으로 생성된다. 해시값으로 앞 뒤 블록이 연결돼있어 블록체인이라 부른다. 만일 현재 총 10개의 블록이 있고 공격자가 9번째 블록을 변조하려 한다고 가정해보자. 공격자는 변조된 9번째 블록을 네트워크에 전파하지만 네트워크는 이미 10번째 블록을 가지고 있기 때문에 공격자가 보내는 9번째 블록을 받지 않을 것이다.

결국 변조된 9번째 블록을 이미 10개의 블록을 가진 네트워크가 받아들이게 하려면 해당 9번째 블록의 비트코인 사용원리 해시값을 이용하여 11번째 블록까지 생성하고 네트워크에 전파해야 한다. 그러나 변조된 블록을 기준으로 11번째 블록까지 만들었을 때는 네트워크상 다른 채굴자가 이미 11번째 혹은 12번째 블록을 만들고 있다. 결국, 네트워크가 변조된 블록을 받아들이게 만들려면 이보다 비트코인 사용원리 더 빨리 블록을 만들어 전파해야한다. 그러러면 기존 네트워크보다 더 많은 컴퓨팅 파워(hashrate)를 동원해야 한다.

2016년 8월 현재 비트코인 네트워크에 투입되는 컴퓨팅 파워는 1958만3587.6 페타플롭스(PetaFLOPS)다. 세계에서 가장 빠른 슈퍼 컴퓨터인 중국 턴헤 2호(Tianhe-2)의 계산력이 33.8페타플롭스임을 고려하면 비트코인 네트워크의 컴퓨팅 파워는 사실상 동원하기 힘든 규모다. 이런 까닭에 비트코인 블록체인을 해킹하는 일은 불가능하다고 봐도 무방하다.

알트코인 (Altcoin)

대체암호화폐(Alternative cryptocurrency)라고도 불리는 알트코인(Altcoins)은 일종의 경쟁화폐다. 첫 암호 화폐인 비트코인의 문제점을 해결해 이를 대체하려는 많은 개발자가 알트코인을 만들고 나섰다. 실용적인 이유도 있다. 비트코인 네트워크에는 이미 많은 자본이 투입됐다. 많은 이해관계가 얽힌 비트코인 네트워크에는 실험적인 시도를 하기 어렵다. 이 때문에 많은 개발자가 비트코인 대신 기술적 실험을 해 볼 만한 장으로 알트코인을 만들기 시작했다.

단순히 비트코인의 통화발행 구조 또는 합의 알고리즘을 변경하는 수준에서, 기존에 없던 새로운 기능까지 추가하는 수많은 코인이 나타났다. 비트코인에 투자된 자금과 새로운 투자금도 알트코인 시장으로 유입됐다. 알트코인 시장 규모는 2016년 8월 당시 2.5조 원 정도였다. 비트코인까지 포함하면 암호 화폐 시장 규모는 12조 원이 넘는다. 현재 거래소에서 거래되는 알트코인은 700개가량이다.

라이트코인 (Litecoin)

라이트코인은 구글 출신 중국계 미국인 개발자 찰스 리(Charles Lee)가 만들어 2011년 말 공개했다.라이트코인은 비트코인의 구조를 바꾸는 수준의 실험적 알트코인이다. 코인 생성 주기를 10분에서 2.5분으로 줄였다. SHA-256 알고리즘을 Scrypt로 바꿔 ASIC(주문형 반도체) 채굴기를 동원한 해싱 작업에 제동을 걸었다. 최종 통화 발행량도 비트코인보다 4배 이상 많은 8,400만개로 늘렸다.

대시 (Dash)

다크코인(Darkcoin)에서 이름을 바꾼 대시는 비트코인에는 없던 새로운 기능을 추가한 알트코인이다. 대시가 추가한 기능은 다음과 같다.

1. 익명 거래(Anonymous transaction):
비트코인의 모든 이체내역은 어느 누구나 확인할 수 있도록공개돼 있다. 문제는 이러한 공개성이 화폐의 본질적 요소중 하나인 ‘가치동일성(Fungibility)’을 훼손한다는 점이다. 가치 동일성이란 내가 가진 돈의 가치가 다른 사람이 가진 돈의 가치와 같아야 한다는 것을 의미한다. 비트코인은 모든 이체내역이 기록되니 사람들이 불법적으로 쓰인 사실이 확인된 비트코인의 소유를 꺼리게 된다. 이 때문에 액면가가 같은 비트코인이라도 서로 가치가 달라지는 문제가 생긴다. 대시는 마스터노드 (Masternode)라는 새로운 형태의 노드를 구성해 코인을 서로 믹싱해 거래기록을 감춘다.

2. 실시간 이체 확인(Instant transaction):
비트코인 네트워크에서 일어난 거래는 10분에 한 번씩생성되는 블록과 함께 이체가 확인된다. 이 과정을 확인(confirmaton)이라고 부른다. 확인 작업이 여러 차례 거듭돼야 거래가 안전하게 처리됐다고 볼 수 있다. 대시는 10분 이상 걸리는 컨펌 과정을 1초 이내로 줄여 실시간으로 거래가 가능하게 한다.

이 밖에도 많은 알트코인이 새로운 기능을 추가하며 비트코인의 경쟁자로 도전하고 있다. 하지만 아직 비트코인이 지닌 네트워크 효과(network effect)를 뛰어넘을 만한 알트코인은 등장하지 않았다.

5


암호화폐의 장단점

6

은행 및 공공서비스 적용 및 확장

비트코인이나 알트코인의 블록체인은 그 자체로 가치가 있으나, 현재 그대로 은행이나 공공기관에 적용하여 사용하기에는 무리가 있다.

익명성 – 은행거래에서는 익명성을 사용할 수 없으며, 거래가 비가역적이라는 부분도 치명적이다. 모든 계좌는 계좌주의 신원을 밝히도록 되어 있고, 은행에서는 대포통장을 발급하는 부분 등도 문제가 된다. 이러한 익명성 문제를 해결해야 한다. 또한 이체 사고 발생 시 강제로 이체를 동결하거나 법정인도 명령 등에 따르기 위해 강제인도 등을 해야 할 경우가 생기는데, 이체의 비가역성(irreversibility)은 치명적 결함이 된다.

투명성 – 이체내역과 계좌의 투명성도 문제가 된다. 이런 정보는 고객 개인정보이므로 은행이 독자적으로 관리해야 한다. 고객들이 서로 잔고와 이체내역을 확인하는 것뿐만 아니라 경쟁 은행 간의 고객정보를 서로 공개하는 것은 현재 규제와 금융 통념상 불가능하다.

합의구조 – 채굴자들이 해시 경쟁을 벌이는 현행 POW방식의 거래확정 방식도 의미가 없어진다. 다량의 전기를 소비하는 방식이 아니라 더 효율적이고 의미 있는 다른 작업증명 방식을 찾아야 할 것이다.

접속권한 – 현재 비트코인은 퍼블릭 블록체인으로, 누구든지 네트워크망에 접속하여 이체를 발생시키고 확정할 수 있는데 이는 기관의 입장에서 치명적인 결함이다. 정해진 참여자에게만 개인키를 발급하거나 단계적 접속 권한 설정 등을 통해 참여자의 선택적 진입과 권한 수준 설정을 위한 모델을 설계해야할 것이다.

확장성 – 높은 처리 속도와 처리량이 매우 중요하다. 현재 금융권에서는 초 당 수천 번이 넘는 이체를 처리하는 경우가 허다한데, 이러한 거래량과 속도를 비트코인 블록체인에서 처리하는 것은 불가능하다.비트코인 사용원리 비트코인 사용원리

The Science Times

비트코인이 해킹에 취약하다는 주장이 끊임없이 제기되고 있다. 이는 비트코인이 주목을 받으면서, 비트코인 관련 해킹이 종종 발생하기 때문이다. 1비트코인 가격은 2011년 상반기에 겨우 1달러를 넘기는 수준이었다. 그런데 비트코인이 여러 나라에서 사용되면서, 6년 만에 가치가 2,700배나 올랐다. 올해 7월 기준으로 1비트코인 당 가격은 2,700달러 선을 유지했다. 비트코인 가치가 높다 보니, 해커들의 표적이 되는 것이다.

비트코인의 대표적인 해킹 사건으로는 마운트 곡스 (Mt.Gox) 파산이 있다. 마운트 곡스는 비트코인 거래와 지갑을 운영하는 곳으로, 2014년 전까지 세계에서 가장 큰 비트코인 거래소 기관이었다. 비트코인 가장 큰 거래소였던 마운트 곡스가 2014년 2월 28일에 갑자기 파산을 신청하게 된다. 사유는, 보유 중인 85만 개의 비트코인이 도난당했기 때문이다. 당시 가치로는 4억 5천만 달러 (한화로 약 5천 3백억 원) 이나 되는 금액이 도난당한 것이다. 참고로 올해 7월 기준으로 가치를 환산하면 무려 23억 달러 (약 2.5조 원)이나 된다.

비트코인 해킹은 국내에도 여러 차례 발생했었다. 올해 4월 국내 비트코인 거래소 ‘야피존’은 3,831비트코인이 도난당했다. 해킹 당시 기준으로 피해액은 55억 원이었고, 7월 기준으로는 약 115억 원이다.

비트코인은 전 세계적으로 널리 사용되는 가상화폐이다. ⓒ Flickr

비트코인은 전 세계적으로 널리 사용되는 가상화폐이다. ⓒ Flickr

전 세계적으로 비트코인 관련 해킹이 많이 발생하다 보니, 비트코인의 운영 시스템에 대한 보안 취약성 우려가 끊임없이 제기되고 있다. 그러나 보안 전문가 입장에서 비트코인은 보안에 전혀 취약하지 않다. 오히려 비트코인을 운영하는 시스템의 경우, 보안 수준이 높다. 비트코인에 대한 해킹 우려는, 비트코인 운영원리에 대해서 잘 모르기 때문이라고 할 수 있다.

그렇다고 비트코인이 해킹에 100% 안전하다는 뜻은 아니다. 비트코인도 보안 취약점이 존재하는데, 비트코인 시스템 자체가 보안에 취약한 것이 아니라는 뜻이다. 다시 말해 비트코인 해킹은 개인의 보안인식 부족에서 발생한 것이라고 할 수 있다.

그렇다면 비트코인은 어떤 원리로 운영되고 있기에 해킹에 안전하다고 할 수 있는 것일까? 그리고 비트코인 해킹에 대비하기 위해서는 개인은 어떠한 노력을 기울이는 것일까? 이번 기사에서는 보안 관점에서의 비트코인 운영원리를 알아보고, 개인적인 보안 조치 방안에 대해서 살펴보겠다.

비트코인은 블록체인 네트워크를 기반으로 하고 있다. ⓒ flickr

비트코인은 블록체인 네트워크를 기반으로 하고 있다. ⓒ flickr

비트코인 운용 원리

비트코인 해킹 취약점을 알아내기 위해서는, 보안 요구사항 충족 기준의 관점에서 비트코인을 살펴봐야 한다. 그런데 우선은 비트코인 운용 원리를 알아야지, 보안 요구사항의 충족 여부를 알 수 있다. 우선 비트코인 운용 원리에 대해서 알아보자.

비트코인은 블록체인 방식으로 거래와 소유를 증명하고 있다. 블록체인은 분산형 원장 기술로서, 모든 참여자가 발생한 비트코인 사용원리 모든 정보를 인증하는 방식이다. 중앙기관이 인증하는 방식과 다르다. 다시 말해 비트코인의 경우 모든 참여자가 거래와 소유에 대한 내용을 기록함으로써, 이를 증명한다.

블록체인은 본인을 공개키와 사설키로 인증한다. 사설키는 본인을 인증하는 고유 정보이며, 공개키는 임시 비트코인 사용원리 계좌로 생각하면 이해가 쉽다. 비트코인 거래를 할 때는 공개키 (Public Key)와 개인키 (Private Key)를 이용한다. 참고로 공개키는 사설키에 의해서 생성된다.

A가 B에게 비트코인을 송금한다고 가정해보자. B는 A가 본인에게 송금할 수 있도록, 개인키를 이용해 공개키를 생성한다. 그리고 이를 A에게 전달한다. A는 B가 보내온 공개키로 B에게 비트코인을 송금한다. 송금 시에 공개키는 ‘SHA 256 (Secure Hash Algorithm 256)’에 의해서 암호화된다. 그런 다음 BASE58Check를 이용해 특정 문자로 변환된다. B의 사설키를 가지고 있는 소유주만이 본인임을 인증해서 이를 풀어서 해당 비트코인을 받을 수 있다.

보안 요구사항 관점에서 살펴본 비트코인

비트코인 운용 원리에 대해서 살펴봤다. 그렇다면 이러한 운용원리가 보안 요구사항을 어떻게 충족시키는 것일까?

일반적으로 충족해야 할 보안 요구사항은 크게 5가지이다. 첫째 무결성이다. 이는 위변조에 대한 보안수준을 평가한다. 비트코인의 경우 무결성을 점검해야 할 부분이 두 곳이 있다. 비트코인을 거래할 때 중간에서 정보가 위변조되지 않았는지와, 거래 후의 기록된 정보가 위변조되지 않았는지 여부이다. 앞서 언급했듯이 비트코인을 거래할 때 SHA 256 암호화를 사용한다. 이는 해커에 의해서 네트워크 통신이 가로채더라도 정보 위변조를 어렵게 한다. SHA 256으로 암호화된 값을 해킹하기 위해서는, 해커는 이론상으로 2에 256승만큼을 연산해야지 풀 수 있다.

비트코인 거래 기록 또한 위변조 위험으로부터 안전하다. 비트코인은 블록체인 방식을 이용하고 있다. 블록체인 거래 기록에 대한 정보가 충돌이 있을 때는 다수결의 원칙을 따른다. 그러므로 거래 기록을 위변조하기 위해서는, 전체 사용자의 과반수 정보를 해킹하거나 사용자의 50%를 초과하는 컴퓨팅 파워를 이용해야 한다. 이는 현실적으로 불가능하다.

둘째 기밀성이다. 기밀성은 거래 관련 기밀정보가 유출됐는지를 측정한다. 비트코인의 거래 시에 정보는 SHA-256으로 보호된다. 그러므로 비트코인에서 중요한 개인키의 노출 위험이 없다.

셋째 부인방지이다. 정보의 송수신을 부인하는 것을 방지하는지에 대한 사항이다. 비트코인의 거래는 블록체인 방식으로 모두 기록된다. 그러므로 부인방지가 일어나기 힘든 구조이다.

넷째 가용성이다. 가용성은 서비스 분산공격인 ‘디도스 (DDoS)’와 관련이 있다. 다시 말해 사용자가 서비스에 접근에 부인당하는 피해를 막는지를 묻는 사항이다. 비트코인은 중앙센터가 없다. 그러므로 시스템 전체가 디도스 공격을 받을 일은 없다.

마지막으로 접근제어이다. 접근제어는 인증되지 않은 사용자가 시스템 접근 시 막는 경우를 말한다. 비트코인 접근제어에서 가장 중요한 것은 ‘개인키’ 이다. 개인키만 있으면 보유하고 있는 비트코인을 마음대로 사용할 수 있기 때문이다. 따라서 개인키 보안은 중요하다.

애석하게도 비트코인은 개인키 안전 관리를 위해서 별도의 보안 기능을 제공하지 않는다. 다시 말해 비트코인의 접근제어 부분이 취약하다. 앞서 언급한 해킹 사례 역시 접근제어 취약으로 인해서 일어났다고 할 수 있다.

개인키 관리가 비트코인 안전의 핵심

이론상으로 보안에 취약하지 않은 시스템은 없다. 비트코인도 마찬가지이다. 이론상으로는 5가지 보안 요구사항에서 취약점 모두 존재한다. 그러나 접근제어를 제외한 나머지 4가지의 경우 실질적으로 해킹이 어렵다. 그러므로 비트코인은 4가지 요구사항을 만족한다고 볼 수 있으므로, 보안수준이 높다고 할 수 있다.

다만 비트코인은 접근제어, 특히 개인키라는 보안 취약경로가 있다. 이 부분만 잘 관리한다면 비트코인을 안전하게 사용할 수 있다. 그렇다면 개인키는 어떻게 관리해야 할까?

사전예방과 피해 최소화로 나눠서 생각할 수 있다. 사전예방 방법으로는 개인키를 항시 안전한 컴퓨터 환경에서 사용해야 한다. 그러기 위해서는 사용할 기기에 백신을 실행시켜서, 항시 악성코드 감염 여부를 점검해야 한다.

피해 최소화 방법으로는 개인키를 여러 개 만들어 관리하는 것이다. 개인키를 여러 개 생성할 수 있다. 개인키를 여러 개 만들어서 여러 기기에 사설키를 보관하면, 나눈 만큼 개인키 하나에 보관하고 있는 비트코인 개수가 줄어들기 때문이다.


0 개 댓글

답장을 남겨주세요