블록체인 개념과 블록체인 구조

블록체인의 정의


  • 분산 복제되어 저장된 장부이다.

  • 공개형 분산원장 네트워크를 목표로 한다.

    • 중앙기관 담당자가 아닌 참여자 모두가 원장을 볼 수 있다.
  • 신뢰를 가장 큰 목표로 한다.

  • 거래가 발생하면 모든 거래가 저장되는 메커니즘이다.

  • 스마트 컨트랙트 알고리즘에 의해 검증된 데이터만 블록체인 네트워크 상에 올린다.

  • 데이터 조작이 불가능하기 때문에 데이터를 신뢰할 수 있다.

  • 서로 속고 속이는 관계가 아닌 정상적인 거래를 할 수 있는 환경을 만들 수 있다.



블록체인이 나오게 된 계기


  • 암호학과 관련이 있다.

    • 암호화 기법의 발전 중에 비트코인이 출시되었다.
  • 중요한 문서를 중앙기관이 독점하고 있는 시스템이며, 중앙 데이터 센터가 무너지면 금융 정보와 같은 중요한 데이터 등이 모두 사라질 수 있다.

  • 리먼브라더스 파산 문제, 원유 부국 베네수엘라의 추락 등 경제 분야가 제대로 컨트롤되지 않아 디플레이션이 발생할 경우 내가 모은 자산의 가치가 하락할 수 있다.


  • 이전에는 금본위제가 있었지만 화폐에 대한 신뢰를 증명할 수 있는 수단이 필요해졌다.
    * 금본위제: 국가가 발행한 돈의 가치만큼 금을 가지고 있어야 한다는 개념

  • 거래 시에 제3자의 중개자가 필요함으로써 많은 수수료를 지불해야 하는 경우가 생길 수 있다. (ex. 해외 송금)



블록체인의 종류


한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



  • 가상화폐 이용 방식: 모든 참여자가 분산원장을 확인하여 데이터 변조에 대한 방지를 한다.

  • 비즈니스 목적 방식: 신뢰할만한 대표 노드를 세워 데이터 검증 작업을 한다.



  • Public: 누구나 네트워크에 참여하고 열람 가능하며, 참여하는 누구나 검증 및 승인이 가능하다. 누구나 트랜잭션을 생성하고 한번 정해진 법칙은 바꾸기가 어렵다. 또한, 블록 하나를 만드는데 걸리는 시간이 오래 걸리기 때문에 거래 처리 속도가 느리다. 하지만 해외 송금과 같은 금융거래에는 유용하다.

  • Private: 특정 기관에 제한하여 사용하도록 비공개형으로 만들어 놓은 네트워크이다. 허가된 기관만 열람이 가능하기 때문에 서로 간 신뢰를 더할 수 있고, 그룹 내에서 악용하고자 하는 경우를 대비해 법적 책임을 지는 기관만 참여하여 트랜잭션을 생성한다. 또한, 프라이빗 네트워크에서는 필요에 따라 의사결정을 통한 거버넌스 변경이 유연하게 이루어질 수 있다. 결과적으로 모든 것을 포괄하는 것이 아닌 특정 비즈니스를 위해 만들어진 네트워크이며, 퍼블릭과 달리 채굴을 하지 않아 거래 속도가 매우 빠르기도 하다.

  • Consortium: 특수한 목적을 가지고 여러 기관들이 연합을 이루어 참여한다. 또는 국가와 국가 간의 유통 과정에도 이 컨소시엄 네트워크가 이용될 수 있다.



블록체인의 장점


  • 거래 처리 시간이 일 단위에서 준 실시간으로 처리되어 시간이 절약된다.

  • 중개자의 오버헤드 및 비용이 절감된다.

    • 예시) 계약을 하는 경우 특정 기관 중개인이 있어야 하지만 블록체인은 필요없기 때문에 금액이 큰 경우 더욱 효과적이다.
  • 조작, 사기 및 사이버 범죄가 감소되는 등 다양한 위험 요소가 줄어든다.

  • 공유 프로세스 및 기록을 통해 신뢰를 확보할 수 있다.



블록체인 컴포넌트


  • Ledger

  • Smart Contract

  • Consensus Network

  • Membership

  • Events

  • Systems Management

  • Wallet

  • Systems Integration



블록체인 구조


  • 블록은 유용한 거래 정보의 묶음(데이터를 담는 저장소)이다.

  • 자료구조 상으로는 데이터베이스와 유사하지만 한번 작성되면 수정이나 삭제가 불가능하다.

  • 하나의 블록 헤더에는 해시값, 버전, 이전 블록 해시, 이진 암호, 생성시간, 난이도 설정, 임의의 값(Nonce) 등이 포함되어 있다.


  • 머클 트리: 어떤 거래를 하게 되면 거래 해시값이 두 개씩 페어 형태로 보관되는데, 자료 알고리즘에 의해 빠른 속도로 데이터를 찾는 과정이다. (자료구조의 일부)

  • 블록 해시: 블록에 대한 키 값 - 블록의 식별자 역할을 한다.

  • SHA-256: 해시 함수를 적용하여 계산되는 값이다.


  • 이전 블록 해시값, 거래 내역, Nonce 값을 해시 함수를 이용해 조합하여 해시값에 도달(채굴에서 정답에 도달하는 과정)하면 블록을 생성한다.



비즈니스를 위한 블록체인


한이음 ICT 멘토링 - 하이퍼레저 패브릭 강의 자료 일부



  • 신원관리: 기업에 참여하는 사람이 어떤 사람인지 확인하는 과정이 필요하다.

  • 트랜잭션의 기밀성: 블록에 포함되는 트랜잭션이 임의로 조작되서는 안 된다.

  • 재생 공격 대책 (리플레이 어택 방지): 과거의 트랜잭션을 복사해서 재전송하는 공격을 방지해야 한다.

  • 개인정보 보호: 트랜잭션 발행자를 익명화하여 개인정보를 보호해야 한다.

  • 액세스 제어: 인증된 사람만 제어할 수 있어야 한다.

  • PKI 인증서와 전자서명



블록체인 충돌 해소


  • 여러 사람이 채굴을 하는데 동시에 문제를 풀어 블록을 생성하는 경우 어떤 블록이 유효한 지, 어떤 블록을 인정해주어야 할 지에 대한 대안을 필요로 한다.

  • 블록이 추가되면 모든 블록에게 그 내용을 전파하여 동기화 작업을 진행해야 한다.

  • 분기 시 길이가 긴 블록에 체인을 연결하도록 한다.

    • 이전에는 이렇게 하는 경우 고아가 되는 블록이 생기기도 했는데 최근 들어서는 PoW 방식이 개선되어 고아 블록이 생기지 않고 있다.



블록체인 이중 지불 문제


거래가 성립되기 위해서는 시간이 필요한데 그 사이에 같은 돈을 가지고 서로 다른 사람에게 금액을 지불한 경우 트랜잭션 검증을 통해 부정 거래는 취소하도록 한다.

Author

Alec J

Posted on

2019-11-07

Updated on

2021-02-09

Licensed under