이타인클럽

블락체인에서의 거래 생성

블락체인 뜻과 거래 생성
토픽 이타인클럽 > Blockchain > Blockchain 기술 개요
토픽 내용을 시작하기 전에 먼저 다음과 같이 마음속으로 속삭여 보시라고 말씀드리고 싶네요.
"나는 내용이 아무리 어렵게 쓰여 있어도 아주 쉽게 받아 들일 수 있다!"
방금 학습에 있어서 매우 중요한 것을 알려드렸습니다. 어떤 것을 접하더라도 할 수 있다는 믿음이 있다면 그 학습 능력은 놀랄만치 올라간다는 것을요.

이번 토픽에서는 앞 토픽에서 나온 용어들을 이용해서 블락체인이 어떻게 동작하는지 그 흐름을 짚어 보려고 합니다.

위키피디아에서 '블록체인'이라고 검색하면 아래와 같이 정의가 나옵니다.

블록체인(blockchain)은 공공 거래 장부이며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다. 잘 알려진 블록체인의 응용사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영된다. 비트코인을 비롯한 대부분의 암호화폐들이 블록체인 기술 형태에 기반하고 있다.

정말 쉽게 설명하기 어렵습니다. 위 정의를 좀 더 쉽게 요약해 보겠습니다. 

'이타인'이 '유니세프'에 코인을 보내는데 중앙 관리자 없이도 해킹 위험없고 안전하게 송금할 수 있는 전자 장부 시스템을 블락체인이라고 합니다.

아 쉽게 하려도 해도 아직 어려운 것 같습니다. 일단 블락체인은 전자 장부이고, 모든 사람들이 동일한 장부의 복사본을 가지고 있는 것으로 생각하시면 되겠습니다. 한가지 헷갈릴 수 있는 점은 블락체인은 분산 장부라고도 불리우는데, 장부의 데이터가 여기 저기 나누어져 저장되는게 아니라 모두가 원본과 동일한 복사본을 가지고 있는 것입니다. 블락체인의 정의는 아직 만족하지 않지만 이대로 정의하고 넘어가야 겠습니다. 은행을 통해 돈을 송금하는 것과 블락체인을 이용하여 송금하는 것 두 가지 모두 결과적으로 '이타인' 지갑에서 송금한 돈이 빠져나가서 '유니세프' 지갑에 들어가게 됩니다. 과정의 큰 차이점이라면 블락체인은 어떤 은행없이도 거래가 이루어 진다는 것입니다. 은행을 거치지 않으니 수수료를 낼 필요가 없고(블락체인 네트워크 사용 수수료는 내야 함), 송금하는데 걸리는 시간이 짧다는 것입니다. 더욱 놀라운 것은 블락체인은 '송금'만을 위한 것이 아닙니다. 블락체인은 그 어떤 거래도 안전하고 싸게 할 수 있습니다. 부동산 계약 같은 거 말이죠. 앞으론 부동산 중계업같은 건 거의 사라질 것입니다.

 블락체인은  전자장부이고, 모든 사람이 동일한 장부의 복사본을 가진 시스템입니다.

 

그럼 이제 블락체인이 동작하는 흐름을 아래 그림으로 짚어보겠습니다. 아래 그림에는 이전 토픽에 나타난 용어들이 많이 빠져 있으므로, 이전 토픽의 그림도 같이 보시면 좋습니다. 주요 용어들을 굵게 이탤릭으로 표시했습니다.

스크린샷 2017-03-13 오후 2.43.49

[거래 흐름, 출처]

그림을 보면 블락체인 네트워크는 여러 개의 노드(Node)들로 구성되어 있습니다. 노드는 간단히 하면 개인 PC라고 볼 수 있습니다. P2P처럼 개인들의 PC가 인터넷을 통해 연결되어 있는 상황입니다. 

 

1. 클라이언트 A가 B에게 10만원을 송금하려 합니다.

각 노드는 블락체인 네트워크상에서 구별될 수 있는 고유의 주소(Address)가 있습니다. 그렇지 않다면 B를 특정할 수 없으니 송금이 불가능 할 것입니다. 이타인의 비트코인 주소는 이렇게 생겼습니다. 실제 사용되는 주소입니다.

1PeDHyKCMpD9hGsKgEp7L55iveJGr46QhH
 

복잡한 숫자와 문자의 무작위한 나열로 만들어진 주소입니다. 주소가 겹칠지 모른다는 걱정을 하실 수 있는데, 주소 생성 조합의 셀 수 없을 만큼 가능해서 걱정할 필요가 없습니다. 이렇다보니 거래에 동일한 주소를 사용하지 않고 거래마다 다른 주소를 생성해서 사용하기도 합니다. 또는 여러 주소를 만들어 놓고 지갑(Wallet)에 보관해 놓고 사용하기도 합니다.

고유의 복잡하게 생긴 주소를 이용하여 송금합니다.

 

위 1번과 같이 A가 B에게 얼마를 보내는지에 대한 정보를 암호화(Encryption)한 데이터가 거래(Transaction)입니다.

 

2. A의 비밀키로 서명하고 블락체인 네트워크에 전송합니다.

생성한 거래에 대해서 송신자의 비밀키 또는 개인키(Private Key)로 서명한다는 것은 계좌이체할 때 공인인증서의 암호를 입력하는 것과는 개념이 다릅니다. 즉 여기서 말하는 비밀키는 우리가 일반적으로 사용하는 '암호(Password)'와는 다른 개념입니다. 위에서 얘기하는 비밀키, 정확히는 개인키로 서명한다는 얘기는 '디지털 서명(Digital Signature)'의 의미입니다. 개인키와 관련된 내용은 다음 토픽에서 알아볼 것인데요, 디지털 서명을 간략히 설명하면 이렇습니다. 

디지털 서명은 A가 B에게 송금하려고 생성한 거래는 A가 생성한 것이 맞다는 것을 보증하기 위한 것입니다.

다음 토픽에서 설명될 개인키, 공개키, 주소 등의 관계를 알면 왜 디지털 서명의 개념이 잡히실 것입니다. 

블락체인은 디지털 서명 방식으로 보낸 사람을 확인합니다.

 

이번 토픽의 홈워크는 기존의 은행 인증서 방식의 거래에 대해 좋은 점이나 불편한 점을 댓글에 남기는 것입니다. 

블락체인 기반 블로그 Steemit에 Vote가 10개 이상되면 다음 타픽 진행하겠습니다.(희망사항)

Steemit 바로가기

https://steemit.com/blockchain/@etainclub/blockchain-4

 

댓글

댓글 본문
  1. 안39
    은행 인증서 방식의 문제점
    1. 복잡
    2. 해킹이 걱정됨
  2. 이타인
    고맙습니다!!
    대화보기
    • HyeonBeom Bak
      감사합니다!!
    • 이타인
      가볍게 봐주세요~
      고맙습니다~
      대화보기
      • 동모동모
        2주 정도만에 다시 왔네요 ㅠ
        매일매일 챙겨봐야하는데.. 쉽지 않네요~
        좋은 강의 잘 보고 있습니다. 고맙습니다. ^^
      • 이타인
        거래가 발생하면 그 거래내역들이 모여서 블락이 채굴에 의해서 만들어집니다.
        블락이 만들어지면 네트워크의 모든 노드의 블락체인 데이터가 방금 생성된 블락 내용을 이어 붙입니다.
        결국 모든 노드들이 동일한 블락 데이터를 가지게 되는 것이죠.

        고맙습니다~
        대화보기
        • jbim
          안녕하세요.좋은글 잘읽었습니다. 이해하기 쉽게 써주셔서 도움이 많이됩니다. 흐름을 그림으로 올려주셨는데요. 질문이 있습니다. A와B의 거래가 발생하면 모든 노드에 거래내역이 저장되는 블럭이 생기는 것인가요?
        • 이타인
          어서오세요. 도움이 된다니 저도 좋네요~ 고맙습니다
          대화보기
          • yoniverse
            블록체인을 알아가는데 큰 도움이 됩니다. 감사합니다.