쉽게 설명하는 블록체인, 비트코인 거래의 원리와 과정 - 1

in #kr7 years ago (edited)

비트코인vs화폐.jpg

현재 포스팅을 하고 있는 시점을 기준으로 해서 비트코인의 가치는 하락했다가 횡보를 하고 있는 상황.

이 현상을 보고 드는 생각과 많은 이견들이 있겠지만 크게 보면 실제 비트코인이라는 화폐가 실물도 아닌 허상에 사람들이 혹해서 꼈던 거품이 빠지는 자연스러운 현상인가? 아니면 잠시 겪는 안정화 과정인가? 이 두가지로 나뉘어 대립되고 있다고 볼 수 있다.

그런데, 원론적인 것으로 들어가 비트코인이 어떤 방식으로 거래되는 것인지 왜 가치가 있는지 정확히 알고 거래를 하는 사람이 얼마나 있을까하고 되물을 필요가 있다.

그래서 블록체인이다, 채굴이다, 분산화다, 가상화폐다하지만 거래가 일어나는 방식을 잘 모르는 사람들을 위해 두루뭉술한 내용이 아닌 진짜 정확한 거래방식과 흐름을 최대한 쉽고 간단하게 알아보고 과연 비트코인이 거품인지 미래의 통용될 진보적 화폐시스템인지 직접 판단을 해보자.

아래 거래의 과정을 한번 보자.

  1. Bob이 Alice에게 1BTC를 주는 거래가 발생했다고 가정하자.
    bobalice1btc.jpg
    이것은 1BTC를 전송한다는 '의사표시'만 한 것이지 아직 실제로 가치가 이동하진 않았다. 또한 비트코인 거래는 거래를 생성하는 사람과 거래 서명을 하는 사람이 같을 필요는 없다.(이게 무슨 말인지는 아래 그림을 보고 이해하자.) 이 점에 있어서는 수표 거래와 비슷하다고 생각하면 된다.
    [cf. 비트코인 거래와 수표거래의 다른 점을 꼽자면 비트코인 거래는 온라인 오프라인 모두 거래가 가능함. 또한 수표는 '특정 계좌'에서 돈을 지불하지만 비트코인은 '이전에 발생한 거래(UTXO)'를 가지고 지불에 이용한다.]
    거래와서명방식.jpg
    (CEO와 비서로 설정한 것은 가장 쉽게 예를 들기 위함임)
  2. 위의 두 과정중 어느쪽으로든 거래가 생성되면, 누가 거래를 생성했든 자금원의 소유자(위 그림의 경우 Bob)가 해당거래의 서명을 해야한다. 서명이 완료되면 거래가 유효화 되고 돈의 송금에 필요한 모든 정보가 담긴다.
    거래정보전송.jpg
  3. 이 거래정보는 비트코인 네트워크에 전송되어야 하는데 이 얘기는 수많은 비트코인 노드들중 하나에 이 거래데이터가 도달해야 한다는 이야기이다. 이때 정보를 전송하는 사람과 노드 상호간에는 '신뢰'라는 것이 필요가 없다.
    이말인 즉슨, 기존 신용카드 거래는 민감정보를 포함하기 때문에 중앙화 기관이 관리하는 암호화된 네트워크에서만 거래 전송이 가능해서 이는 중앙화 기관에 대한 절대적 신뢰가 필요하다. 반면 비트코인 거래정보는 개인키나 인증서를 포함하지 않아 어떤 네트워크, 어떤 방식으로든(wifi, 블루투스, NFC, 바코드 등, 이 때문에 우주에서도 비트코인 거래가 가능함) 하나의 노드에만 전송만 되면 된다. 그렇기 때문에 누구라도 기관에 가입이나 신뢰없이 쉽게 거래를 생성하고 실행을 할 수 있다.
    노드들.jpg
  4. 거래정보가 하나의 노드에 도달하면 이 노드는 비트코인 네트워크 상에 있는 모든 노드에게 이 거래정보를 '전파'해야 한다. 비트코인 네트워크는 P2P를 기반으로 하기 때문에 모든 노드는 동등한 지위를 가지고 있고 정보 하나를 수천개의 노드에 전파하는데 불과 몇 초도 걸리지 않는다. 이렇게 각각의 노드들이 거래를 유효화하고 각자가 정보 전송의 시발점이 되는 역할을 하기 때문에 공격자는 어느 곳을 공격할지 알 수 없게 되어 보안이 더욱 강화되는 조건을 갖추게 되는 것이다.
    노드들1.jpg
  5. 이렇게 전파되는 과정에서 채굴을 하고있는 노드에 의해 검증된 후 이 거래정보가 영구적으로 블록에 기록되고 이때가 돼야 비로소 Bob이 Alice에게 1BTC를 전송했다고 할 수 있는 것이다.

이때 이 거래내역은 과반수의 해시파워가 검증을 했기 때문에 이미 올라간 기록을 다시 바꾸기도 불가능하다. (중앙화된 서버는 합의 없이 분산화 장부보다 비교적 훨씬 쉽게 기록 변조 가능)

왜냐면 다시 그 내역을 위변조 하려는 51%의 해시파워가 있어야하고 51% 해시파워가 있다 하더라도 10분에 하나씩 계속해서 생성되는 기존에 합의되고 있는 블록생성 속도보다 위조한 블록을 더 빠르게 연산하고 합의를 봐야하는데 이것이 불가능하기 때문.

거래입력값출력값.jpg

위 과정에서 쭉 설명했던 비트코인 거래과정은 '입력값(input)'이라고 불리는 '전송될 내용'과 '출력값(output)'이라고 불리는 '그 내용의 목적지(비트코인 지갑)'까지 가치의 전송을 인코딩하는 데이터 구조인데 다음 포스팅에서 더 자세히 다루도록 하겠다.

최대한 쉽게 설명하려고 하지만 모르시는 분들을 위해 언제든지 어떤 내용이든 댓글로 질문을 받습니다. 질문의 내용이 길 경우는 jsralphh@gmail.com으로 보내주시면 감사하겠습니다.

Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

좋은 내용 감사합니다. 이해하기 쉽게 설명해주셨네요^^

안녕하세요 쉽게 설명하는 블록체인 게시자 jsralph입니다.
계정 비밀번호 분실로 인하여 새로 포스팅을 하게 되었습니다ㅜㅜ
http://steemit.com/@easyblockchain 에서 더 많고 다양한 자료 포스팅하고 있으니 많이 찾아주세요~

감사합니다.그래도 알듯 말듯 하네요. 결국 모른다는 말이지만요..ㅎㅎ