• 검색 결과가 없습니다.

비트코인의 취득과 거래

문서에서 저작자표시 (페이지 40-48)

3.1. 비트코인 취득

비트코인은 2,100만 개라는 한정된 양만 존재하는데, 이를 취득하 는 방법은 크게 세 가지가 있다. 첫 번째는 비트코인을 마이닝하는 것인데, 마이너는 고도의 수학적 암호를 푸는 계산 과정을 마쳐야 비트코인을 얻을 수 있다. 이러한 수학적 암호를 풀기 위해서는 초 21) 국내 비트코인 가맹점 현황 <부록3> 참조

당 7,000조 가량의 해시를 계산하여야 한다. 두 번째는 타인이 마이 닝한 비트코인을 법정화폐로 구매하는 것이다. 이 방법은 마이닝을 위해 소요되는 많은 시간을 고려할 때 가장 손쉽게 얻는 방법이다.

세 번째는 물건을 판매하면서 그 대금으로 비트코인을 받는 것이다.

현재 비트코인을 현금 대신 받는 상점들이 이렇게 비트코인을 얻는 다.[10]

3.2. 비트코인 거래

비트코인은 암호화 화폐(cryptocurrency)로서의 특징을 갖고, 개인 키와 공개키의 암호화 방식을 비롯하여 디지털 서명 등을 통하여 생 성되고 거래되고 있다. 비트코인은 계좌 대신에 전자지갑을 이용하 며 이러한 전자지갑을 소지한 자들끼리 비트코인을 주고받는 방식 으로 거래가 이뤄진다. 이렇게 비트코인은 정보가 화폐를 대행하는 네트워크상에서 다뤄지고 있고, 비트코인 애플리케이션을 설치해야 만 비트코인을 거래할 수 있다.

비트코인을 거래하기 위해서는 각자 주소 역할을 하는 공개키와 거래를 위해 필요한 자신의 암호인 개인키를 가지고 있어야 한다.

아래 <그림 7>에서 보는 바와 같이, 비트코인을 이전하는 자는 상 대방의 공개키 또는 자신의 개인키로 암호화를 하여, 이를 수령하는 사람은 각각 자신의 개인키 또는 이전하는 자의 공개키를 가지고 수신한 정보를 해독하여 비트코인을 취득하게 된다.

<그림 7> P2P 방식의 거래 메커니즘[16]

3.3. P2P 방식의 거래 메커니즘

비트코인 이용자는 자신이 가지고 있는 한 쌍의 키 값을 비트코 인 전자지갑에 저장하여 이용한다. 만약 키 값이 저장된 파일이 삭 제되거나 없어지면 그 키 값으로 거래된 비트코인을 찾지 못하게 된다. 비트코인 지갑 어플리케이션 대부분은 지갑 소유주가 보유한 키로 잠겨 있는(지출이 예상되는) ‘소비되지 않은 거래 출력값 (unspent transaction output)' 에 대한 소용량의 데이터베이스를 보 유하고 있다.22) 이때 키 값은 개인 신상과 관련된 정보를 포함하고 있지 않아 비트코인 이용자는 익명성을 보장받는다.

비트코인 구매자는 주소 역할을 하는 자신의 공개키를 비트코인 판매자에게 보내야 한다. 비트코인 판매자는 모든 거래이력이 포함 되어 있는 해시와 비트코인 구매자의 공개키에 자신의 비밀키를 이 용하여 디지털 서명을 한다. 그러면 비트코인은 비트코인 판매자의 22) 비트코인의 소유권은 디지털 키, 비트코인 주소, 디지털 서명 등을 통해

성립하게 된다.[22]

전자지갑에서 구매자의 전자지갑으로 이동되고 거래는 완료된다. 비 트코인 내부에 있는 해시에는 최근 거래이력을 포함한 거래대상 비 트코인의 모든 거래이력이 저장되어 있다.23) 또한 비트코인 네트워 크에서 발생한 모든 비트코인 거래는 블록체인(block chain)에 기록 되고 이는 모든 비트코인 이용자에게 공개된다.

즉 송금되는 비트코인의 금액(입력값) 각각에 대한 소유권을 소유 주의 디지털 서명을 통해 증명하는 과정이 거래에 포함되며 누구든 지 독립적으로 거래를 검증할 수 있다. 즉, 비트코인 용어로 ‘소비 (spending)'라 함은 이전 거래에서 송금되었던 돈이 비트코인 주소 에 의해 확인된 새로운 소유주에게로 전송되는 거래에 서명을 함으 로써 이루어지는 작업을 말한다.24)

3.4. 비트코인 디지털 서명

이처럼 비트코인은 디지털 서명을 통하여 거래가 이루어지기 때문 에 사토시 나카모토는 비트코인을 연속적인 디지털 서명(digital

23) 처음에는 거래가 ‘미승인(Unconfirmed)' 이라고 나올 것이다. 이는 해당 거래가 네트워크에 전송은 되었지만 블록체인이라는 비트코인 거래 장부 에는 아직 포함되지 않았음을 의미한다. 거래가 블록체인에 포함되기 위 해서는 마이너가 ’마이닝‘을 해야 한다. 새로운 블록이 약 10분 만에 형 성되면 블록 내에 있는 거래내역들은 네트워크상에서 ’확인(confirmed)' 의 형태로 승인될 것이고, 그 후 소비가 가능해진다. 거래는 발생하자마 자 모두가 볼 수 있지만 새롭게 마이닝된 블록에 포함되는 경우에만 모 두가 ‘신뢰’한다.[22]

24) 거래를 통해 거래 입력값에서 거래 출력값으로 가치가 이동한다. 입력값 은 비트코인의 가치가 발생하는 지점으로, 주로 이전 거래의 출력값이다.

거래 출력값은 키를 이용해서 새로운 소유주에게 비트코인의 가치를 넘 겨준다. 예상지출(encumbrance)이라고 불리는 목적지 키는 향후 거래에 서 돈을 사용하기 위해 필요한 서명을 만들 때 사용된다. 한 거래에서 나온 출력값은 새로운 거래에서 입력값으로 사용될 수 있다. 이와 같은 소유권 사슬을 생성함으로써 가치가 비트코인 주소들 간을 이동하게 된 다.[22]

signature)으로 정의하였다. 비트코인은 디지털 비트로 되어있기 때 문에 복사나 위변조되어 이중사용(double spending)될 수 있는 리스 크가 존재한다. 이중사용이란 동일한 거래기록을 입력값으로 하여 서로 다른 거래를 요청하는 행위이다. 비트코인은 이중사용을 막기 위하여 타임스탬프(time stamp)를 이용한다.

<그림 8> 타임스탬프 서버에 의한 거래기록[16]

타임스탬프는 거래시점에 비트코인이 존재하고 있으며, 마지막 거 래 이후에 비트코인의 거래정보를 저장한 블록체인이 변경되지 않 았다는 것을 확인해주는 메커니즘이다. 비트코인 거래시스템은 타임 스탬프를 이용하여 블록체인의 비트코인과 관련된 모든 거래이력을 확인하고 문제가 없는 경우에만 비트코인 거래를 승인한다. 거래가 승인되면 해시는 거래정보가 담긴 블록체인과 타임스탬프의 확인 내역을 저장한다. 비트코인의 거래시스템은 타임스탬프를 통한 확인 메커니즘에 문제가 없어야 거래를 승인하기 때문에 이중사용을 예 방할 수 있다. 타임스탬프의 확인에 소요되는 시간은 수분에서 수 십분 정도이다.[3]

<그림 9> 비트코인 디지털 서명[8]

① Alice는 Bob에게 1BTC를 보내기 위한 거래 전문과 해시값을 생성한 후 Alice의 개인키를 이용하여 전자서명을 함.

② 거래 전문과 전자서명된 전문의 해시값을 Bob에게 전송.

③ Bob은 거래 전문 정보로 해시값을 만들고, 전자서명된 해시값 을 Alice의 공개키로 복호화 한 후, 생성된 해시값과 비교하여 무결성을 검증함.

3.5. 비트코인 소유권 증명

비트코인은 디지털서명을 활용하여 실제 공개주소의 소유주가 해 당 주소로부터 자금을 이체하는 거래를 요청한 것인지 확인한다.

공개주소에 나타난 비트코인 잔액은 해당 주소를 목적지로 지정한 과거 거래기록의 합으로 표시되는데 이들을 입력값(input)으로 사용 하여 출금(output)을 요청하고 거래기록(암호화된 메시지)을 네트워 크 참가자들에게 전파한다.

암호화된 거래기록은 마이너가 실소유주 여부를 확인하는 데 사

용되며 수취인의 경우 자신의 비밀키를 입력하여 이체된 비트코인 을 사용 가능하다.

예를 들면, 아래 표에서 ① 지급인의 주소 1은 합이 4BTC인 4개 의 과거 거래기록을 보유하고 있으며 주소 2에 3.5BTC를 이

<그림 10> 비트코인 거래 기록[16]

체를 한다. ② 지급인은 비트코인 이체 시 거래기록에 디지털 서명 을 첨부하는데 디지털 서명은 거래기록마다 다른 값으로 암호화된 다. 디지털 서명은 자신의 비밀키와 거래기록을 아래와 같이 특정한 함수에 입력하여 생성하게 된다.

비밀키 거래기록  디지털 서명

③ 네트워크 참가자들은 지급인의 디지털 서명 거래기록 공개주소 를 아래와 같이 특정한 함수에 입력하면 실소유주 여부를 확인할 수 있게 된다.

 디지털 서명 거래기록 공개주소  참 또는 거짓

3.6. 비트코인 이중사용 방지

전자서명은 비트코인이 실제 소유주에 의해 사용되었는지에 대해 서만 확인할 뿐 해당 비트코인이 이중사용 되었는지는 확인할 수

없다. 비트코인 시스템은 복수의 블록체인이 존재할 경우 더 긴 블 록체인을 유효한 것으로 인정하기 때문에 이중사용을 성공시키기 위해 <그림 11>과 같이 이용자는 기존의 블록체인보다 더 긴 블록 체인을 만들어야 한다.

<그림 11> 블록체인과 이중사용(double spending)[8]

따라서 해커가 비트코인을 이중사용하기 위해서는 다른 모든 마 이너보다 빠른 속도로 마이닝에 성공하여야 한다. 비트코인 시스템 은 복수의 블록체인이 존재할 경우 더 긴 블록체인을 유효한 것으 로 인정하기 때문에 이중사용을 성공시키기 위해 해커는 기존의 블 록체인보다 더 긴 블록체인을 만들 필요가 있다.

그러나 기존의 블록체인보다 더 긴 블록체인을 만들기 위해서는 네트워크의 모든 컴퓨터를 합한 것보다 더 많은 컴퓨터 연산능력이 필요하므로 이중사용은 사실상 어려움이 따른다.

이와 같이 네트워크 참가자에게 상당한 양의 컴퓨터 연산능력을 필요로 하는 작업을 요구함으로써 네트워크에 대한 악의적인 공격

을 억제하는 방법을 작업증명(proof of work) 이라고 한다.

타임스탬프(거래 각각에 실시간 거래시간이 기록된 것)를 가지고 거래의 정당성(최초 거래임을 입증)을 검증하는 작업증명(proof of work) 과정은 아래와 같다.

① 블록 해시 결과 0비트들을 갖도록 하는 해시값을 찾을 때까지 블록에 임시값(nonce)을 증가시킴.

② 한번 작업증명 조건에 도달하게 되면 그 블록은 다시 과정을 번복하지 않는 한 고정됨.

③ 그 다음 블록들이 체인을 형성함으로써 하나의 블록을 변경하 기 위해서는 그 블록을 포함한 다음 모든 블록들에 대한 작업 증명 과정을 다시 수행해야 함.

문서에서 저작자표시 (페이지 40-48)