Blockchain 기술

블락 전파

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

지금까지 트랜잭션의 생성, 디지털 서명, 채굴, 블락 생성, 블락체인 분기까지 살펴봤습니다.  다시 아래 거래 흐름 그림으로 돌아와 보죠.

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

[거래 흐름, 출처]

전체 흐름을 다시 한 번 짚어 보겠습니다. 제일 먼저 트랜잭션에 생성(1)되었고, 이 트랜잭션의 송신자의 개인키로 디지털 서명을 하고(2) 이것을 블락체인 네트워크 노드들에게 전파합니다(3). 그 다음 채굴 노드에 의해서 트랜잭션들을 모아서 채굴을 통해서 블락을 생성하고(4), 생성된 블락을 자신의 블락체인에 이어 붙입니다(5). 그리고, 이 블락을 네트워크의 다른 노드로 전파하여 다른 노드들도 동일한 블락체인을 구성하도록 합니다(6). 그 결과 블락체인 네트워크 상의 모든 노드들은 동일한 블락체인을 가지게 됩니다(7). 이러한 과정을 통해 전세계 노드들이 동일한 거래 장부(Ledger)를 가지게 됩니다. 이것이 바로 블락체인 장부인 것입니다. 블락 생성은 의도적으로 10분 마다 하게 되어 있지만 거래는 수초면 전세계 노드들에게 전파됩니다.

거래는 단 수초면 전세계 노드들에게 전파됩니다.

 

여기서 각 단계의 부연 설명을 해보겠습니다. 디지털 서명이 끝난 거래는 주변 노드들에게 전파된 후, 각 노드들은 거래 검증을 하게 됩니다. 일반 은행의 인터넷 뱅킹을 이용할 때와 유사하게 송신자의 잔액, 수신자의 계좌번호 등을 검사하듯이, 블락체인의 거래 검증에서는 거래의 형식이 맞는지, 거래에 사용된 코인이 유효한지 등을 검사합니다. 이 단계를 거래의 검증의 단계므로, 아직 블락이 생성되기 전입니다. 블락이 생성되려면, 비트코인 기준으로 10분 정도가 소요됩니다. 커피샵가서 커피 한잔 사먹고 10분을 기다려 결제 승인이 나길 기다릴 사람은 없을 것입니다. 따라서 소액 결제의 경우는 거래가 네트워크 노드들에 의해 검증된 후면 결제 처리하면 될 것입니다. 비트코인은 실제 이와 같은 방식으로 소액결제를 처리하고 있습니다. 만약 거래 금액이 크다면 안전을 위해서 블락이 생성 된 후, 더 안전하게는 6개의 블락이 쌓인 후 결제가 되도록 합니다.

소액 결제는 거래의 검증 후 정상 거래로 취급됩니다.

 

Nonce를 가장 빨리 찾아낸 채굴한 노드는, 즉 블락을 생성한 노드는 자신이 가지고 있는 블락체인에 방금 생성된 블락을 이어 붙입니다. 그 다음 이웃 노드들에게 새로 생긴 블락을 전송합니다. 이렇게 되면 블락은 수 초내에 전세계 노드들에게 전파됩니다. 블락을 수신한 노들은 자신이 보유한 블락체인에 해당 블락을 추가하게 되어, 전세계 모든 노드들이 동일한 블락체인 장부를 갖게 됩니다. 각 노드들이 하나의 블락체인 장부를 가지고 있지만 공유의 형태가 아니라 복사의 형태입니다. 따라서 특정 노드의 장부가 변질되어도 수 많은 원본 장부들이 존재하므로, 장부의 안전성이 확보되는 것입니다. 

venterblockchainchart5.png[블락체인 장부 예시, 출처]

블락체인 장부는 공유가 아닌 복사의 형태로 존재합니다.

 

그런데 채굴에 성공하지 못한 노들들이 작업하던 트랜잭션들은 어떻게 되는 것일까요? 다시 채굴 가능 상태가 되어 채굴 노드가 채굴하길 기다리게 됩니다. 어떤 채굴 집단은 트랜잭션 처리를 빨리 해준다며 웃돈을 받기도 합니다. 웃돈을 받고도 고객의 거래를 특별히 우선순위로 채굴해 주는 서비스도 생겨난 것입니다. 검색해보니 이런 서비스가 불가능하다는 얘기도 나오는데, 일정부분 가능한 것처럼 나오네요. 무료로 트랜잭션 처리 속도를 빨리하는 서비스가 있으니 참고하세요.  

 

이번 토픽의 홈워크는 블락체인 장부에 화폐이외에 무엇이 기록될 수 있는지 댓글로 남기는 것입니다. 

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

Steemit 바로가기

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

댓글

댓글 본문
  1. 이타인
    거래의 타당성은 블락은 수신받은 모든 노드가 블락 내용에 대해 기본적인 체크를 한다고 보시면 됩니다.

    형식
    • 구문, 합법적 필드값, 값의 범위
    • 거래 유효성
    • 거래의 입력이 Unspent TX Output (UTXO) 인가
    • 즉 사용하려는 코인이 유효한가
    • 입력값 ≥ 출력값 확인
    • 코인베이스 거래 확인
    • 코인베이스 출력을 사용하려면 최소 100블록 싸이클 후에 사용 가능 - 블록 분기 문제 대처

    보다 자세한 정보는 아래 링크의 40 페이지를 참고하세요.
    https://www.slideshare.net......762
    대화보기
    • 신창엽
      1. A가 B에게 송금
      2. 해당 거래 정보가 담긴 'Block' 생성
      3. 네트워크 내 모든 참여자에게 블록 전송
      4. 모든 참여자가 해당 거래의 타당성 확인
      5. 승인된 블록을 기존 '블록체인'에 연결
      6. 실제 송금 완료

      많은 자료들이 위의 프로세스에 따라 블록체인에 블록이 추가되는것으로 묘사하고 있습니다.

      마이너가 생성한 블록이 체인에 연결되면 그 블록을 모든 노드에 전파하는것까지는 이해하였습니다.

      4번의 과정에 해당하는 거래의 타당성은 어떻게 이루어 지나요?
      이에 대한 언급을 찾을 수 없어 이렇게 질문드립니다!
      좋은 자료 만들어주셔서 항상 감사드립니다.