블록체인의 종류

블록체인은 크게 퍼블릭 블록체인, 프라이빗 블록체인, 컨소시움 블록체인 3가지로 분류할 수 있습니다.

  • 퍼블릭 블록체인(Public Blockchain): 비트코인, 이더리움과 같이 누구나 네트워크에 참여할 수 있는 블록체인
  • 프라이빗 블록체인(Private Blockchain): 하나의 기관에서 독자적으로 사용하는 블록체인
  • 컨소시움 블록체인(Consortium Blockchain): 여러 기관들이 컨소시움을 이뤄 구성하고 허가된 기관만 네트워크에 참여할 수 있는 블록체인.


현재 활발하게 거래되는 대다수의 블록체인은 퍼블릭 블록체인으로 블록체인 네트워크에 참여할 수 있고 트랜잭션 내역을 검증할 수 있습니다.

퍼블릭 블록체인 VS 프라이빗(컨소시움) 블록체인


퍼블릭 블록체인프라이빗(컨소시움) 블록체인
읽기 권한누구나허가된 기관
거래 검증 및 승인네트워크에 참여하면 거래 검증 및 승인승인된 기관 및 감독기관
트랜잭션 생성자누구나법적 책임을 지는 기관
합의 알고리즘부분 분기를 허용하는 작업증명(PoW)이나 지분증명(PoS) 알고리즘부분분기를 허용하지 않는 BFT계열의 합의 알고리즘
속도7~20 TPS1000 TPS 이상
권한 관리누구나통제된 인원
예시비트코인, 이더리움IBM Fabbric, LoopChain


퍼블릭 블록체인은 누구나 참여/운영할 수 있기 때문에 운영주체가 불분명하고 독자적인 화폐를 통해 금융활동을 하기 때문에 법적 구속력에 상대적으로 자유롭지만, 프라이빗(컨소시움) 블록체인은 운영주체가 명확하고 기존에 있던 금융거래를 하는 것이기 때문에 모든 금융 관련 법과 규제사항을 준수해야 합니다.

퍼블릭 블록체인은 읽기, 트랜잭션 생성을 누구나 할 수 있기 때문에 누구든지 모든 데이터를 확인할 수 있습니다. 그러나 기관 간 블록체인의 경우 누구나 트랜잭션을 생성할 수 있다면 금융사고가 일어났을때 책임 주체가 불분명해 질 수 있기 때문에 법적 책임을 가질 수 있는 기관만 트랜잭션을 생성해야 합니다. 또한 어플리케이션에 따라 개인의 금융정보가 담긴 데이터가 네트워크 상으로 오고 갈 수 있어 누구나 데이터를 확인 해선 안됩니다.

트랜잭션 검증 요구사항에도 차이가 있습니다. 퍼블릭 블록체인의 경우 트랜잭션 내역 모두에게 공개 되며 네트워크에 참여한 모든 노드가 트랜잭션을 검증합니다. 그러나 프라이빗(컨소시움) 블록체인에서 이해관계자가 아닌 모든 노드가 트랜잭션의 검증하는 것은 문제가 있을 수 있습니다.

퍼블릭 블록체인의 한계

  1. 퍼블릭 블록체인은 노드 별로 권한을 다르게 하는 것이 불가능하고 감독기관은 모든 데이터를 검증해야 되고 나머지 기관들은 자신에 관련된 데이터를 검증하는 등의 역할을 할 수 없습니다. 또한 엔진 수정이 어렵기 때문에 엔진에서 제공해야만 가능한 기능들을 추가하는게 매우 어렵습니다.
  2. 퍼블릭 블록체인은 참여가 자유롭습니다. 즉 인증 안된 참여자도 악의적인 목적을 가진 해커도 퍼블릭 블록체인에 접근할 수 있습니다. 악의적인 네트워크 참여자의 공격에 방어하면서 세계 각지에 있는 모든 노드들이 같은 데이터를 공유해야합니다. 퍼블릭 블록체인은 이런 요구사항을 만족 시켜야 하기 때문에 성능면에서 많은 것을 포기하였습니다.
  3. 퍼블릭 블록체인은 기본적으로 누구나 블록 후보를 만들어 제출하고 분산합의를 통해 하나의 블록을 선정하여 신뢰할 수 있는 블록으로 인정받는 구조입니다. 따라서 인터넷 상에서 블록을 공유해야하는 시간이 있고 너무 많은 블록이 동시에 만들어 지면 하나의 블록을 선택하기 어렵기 때문에 블록 생성시간에 제한을 두고 있습니다. 비트코인의 경우 약 10분 마다 하나의 블록을 생성하고 이더리움의 경우 약 12초 마다 하나의 블록을 생성합니다. 네트워크에 공유되는 시간을 고려했을때 이더리움에서 내가 보낸 트랜잭션 결과를 확인하려면 약 1~2분 정도 기다려야 합니다. R3에 제출한 이더리움 보고서에 따르면 현 이더리움의 TPS(Transaction Per Second)는 약 10tps이고 비트코인의 경우 약 7tps입니다. 즉각적인 처리가 필요한 금융권 서비스에는 그대로 적용하기에는 불가능한 수준입니다.
  4. 퍼블릭 블록체인에서 채택하고 있는 분산합의 알고리즘으로 작업증명(Proof of Work, PoW)이나 지분증명(Proof of Stake, PoS)을 사용하려면 내부 화폐가 필요합니다. 퍼블릭 블록체인에서의 분산합의 목표는 결국 거래 내역을 검증하여 신뢰할 수 있는 블록을 만들 수 있는 노드를 선택하는 것이고 이러한 수고를 하는 댓가가 필요하기 때문입니다. 이것이 채굴(mining)이라고 알려진 과정이 이러한 과정입니다. 작업 증명의 경우는 쓸모없는 컴퓨팅 파워를 많이 사용하는 친환경이지 않은 문제도 있습니다.
  5. 퍼블릭 블록체인에서 사용하는 알고리즘들은 나중에 블록 생성 후 블록이 확정되기 때문에 허용되는 시간 내에 네트워크 분기가 생길 수 있어 항상 확실한 데이터를 보장해야 하는 금융권에는 올바르지 않습니다. 때문에 프라이빗(컨소시움) 블록체인들은 Byzantine Fault Tolerance(BFT)계열의 분산합의 알고리즘을 사용하여 네트워크 분기를 허용하지 않습니다.

사이드체인

사이드 체인은 기존 비트코인 블록체인을 확장하기 위해서 나온 개념입니다. 기존 비트코인 블록체인은 비트코인만 거래할 수 있을 뿐 다른 용도로 사용하기에는 한계가 있었습니다. 사이드 체인은 블록체인에 저장되는 데이터가 조작 불가능하다는 것에 초점을 맞추고 비트코인 외의 다양한 거래를 수행하고 그 거래에 대한 증거 데이터를 블록체인에 저장하는 방식으로 거래를 수행하였습니다.

사이드체인 구조


가장 유명한 사이드체인인 Colored Coin은 트랜잭션에 구분되는 데이터를 집어넣어 다양한 자산을 거래하게 하였습니다. 나스닥에서는 주식거래를 위해 Colored Coin을 이용하려는 시도를 했지만 좋은 성과는 가지지 못하고 Colored Coin을 개발한 스타트업과 새로운 프라이빗 블록체인을 만드는 것으로 방향을 변경하였습니다.

비트코인은 인센티브 기반으로 운영되는 블록체인입니다. 컴퓨팅 파워를 이용해 해시 퍼즐을 푼 사람에게 인센티브가 주어지면서 해당 블록이 승인되고 복제됩니다. 현재 비트코인이 잘 운영되는 이유는 비트코인 네트워크를 독점하려면 51%이상의 컴퓨팅 파워를 가져야 하는데 51%를 점유한다고 해도 크게 경제적인 이득을 보기 어렵습니다. 그 이유는 특정 거래를 블록에 넣고 빼고 정도만 가능합니다. 또한, 누군가가 51% 이상을 점유했다는 불안감에 비트코인 가격이 내려가면 해당 업체는 마이닝 수익이 줄어듭니다.

그러나 만약 주식이 비트코인 위에서 거래된다면 경제적인 이득을 크게 볼 수 있습니다. 주식은 어떤 거래가 이뤄지는지에 따라 시시각각 가격이 변동합니다. 51%이상의 컴퓨터 파워를 독점해 특정 거래를 통과시키지 않고 자신의 거래만 승인하는 방식으로 시장에 영향을 미칠 수 있습니다. 예전에 특정 마이닝 풀이 70%이상의 컴퓨팅 파워를 가졌던 적이 있던 비트코인 네트워크 위에서 다른 금융 상품을 거래한다는 것은 매우 위험할 수 있습니다.

또한 기존 비트코인 블록체인의 운영 주체가 불분명 하다는 것 또한 문제가 될 수 있습니다. 내가 보낸 트랜잭션을 블록 안에 넣는 것은 블록 생성 노드의 마음이기 때문에 내 거래가 언제 승인될지는 알 수 없습니다. 실제 비트코인 블록체인에서 한 달 넘게 거래가 승인 되지 않는 경우도 있습니다. 그리고 퍼블릭 블록체인 위에서 돌아갈 경우 감사기관 검증을 받기도 힘들고 시스템에 문제가 생길 경우 책임 주체가 불분명 하다는 단점이 있습니다.



튜링 완전이란?

튜링 완전(turing complete)이란 어떤 프로그래밍 언어나 추상 머신이 튜링 머신과 동일한 계산 능력을 가진다는 의미이며 튜링 머신으로 풀 수 있는 문제, 즉 계산적인 문제를 그 프로그래밍 언어나 추상 머신으로 풀 수 있다는 의미입니다.

튜링이란?

수학자 앨런 튜링이 1936년에 제시한 개념으로 계산하는 기계의 일반적인 개념을 설명하기 위한 가상의 기계이며 오토마타의 일종이다. 튜링은 이 개념을 automatic에서 따온 a-machine이라고 불렀는데 튜링 사후에 창시자의 이름을 따 튜링 머신이라고 부르게 되었다.

라고 나무위키에서 정의되어 있습니다.

튜링 머신 장치

테이프(Tape) : 일정한 크기의 셀(Cell)로 나뉘어 있는 종이 테이프. 각 셀에는 기호가 기록되어 있으며 길이는 무한히 늘어날 수 있음

헤드(Head) : 종이 테이프의 특정 한 셀을 읽을 수 있는 헤드. 이동이 가능하다. 또는 헤드는 고정되어 있고 테이프가 이동

상태 기록기(State register) : 현재 튜링 머신의 상태를 기록하고 있는 장치

  • 개시 상태(Start state) : 상태 기록기가 초기화된 상태를 의미

  • 종료 상태(Halt state) : 수행이 종료된 상태

행동표(Action table, transition table of instructions) : 특정 상태에서 특정 기호를 읽었을 때 해야 할 행동을 지시

  • 기호를 지우거나 고쳐 씀

  • 헤드를 오른쪽, 왼쪽으로 한 칸 움직이거나 그 자리에 머뭄

  • 상태를 변경한다. 같은 상태에 머무를 수도 있음



튜링머신에 대해 복잡한 문서가 있는데 컴퓨터는 보편 튜링 머신 이론에 바탕을 두고 있습니다. 간단하게 컴퓨터 = 튜링머신 이라고 이해하는게 빠릅니다(약간의 차이가 존재). 따라서 튜링 머신은 컴퓨터를 흉내낼 수 있습니다. 컴퓨터의 작업을 이론적으로 모델링할 때 튜링 머신을 활용합니다.

물론 약간의 차이점이 있는데 튜링 머신은 아무 위치나 원할 때 접근할 수 없습니다. 이진탐색(binary search)와  같은 알고리즘의 시간복잡도는 임의 접근이 가능하다면 O(logN) 시간이 걸리지만 튜링 머신에서는 O(N)의 시간이 걸립니다.

현실의 모든 컴퓨터 또한 튜링 완전하지 않은데, 그 이유는 기억장치가 유한하기 때문입니다. '만일 기억장치가 무한하다면 이 컴퓨터는 튜링 완전하다'라고 생각할 수도 있는데 이것을 느슨한 튜링 완전성(Loose Turing Completeness)이라고 합니다. 대부분의 컴퓨터는 느슨하게 튜링 완전합니다. 그렇기 때문에 어떤 컴퓨터가 할 수 있는 모든 일은 아주 충분한 시간과 메모리만 주어진다면 다른 어떤 간단한 컴퓨터로도 할 수 있습니다.


요약

  • 튜링은 계산하는 기계를 만든 사람의 이름을 따옴
  • 튜링완전하다는 것은 튜링머신과 동일한 계산능력을 지녔다는 의미
  • 복잡하게 더 이해할 필요성을 못느낌


스마트 컨트랙트란?

스마트 컨트랙트(Smart Contracts)는 중개자없이 P2P로 쉽고 편리하게 계약을 체결하고 수정할 수 있는 기술입니다. 사실 새롭게 정의된 용어는 아닙니다. 예를 들어, 자판기에 1000원을 넣고 마시고 싶은 음료수 버튼을 누르면 자판기가 자동으로 음료수와 잔돈(거스름돈이 존재할 경우)을 뱉어줍니다. 이와 같은 행동을 스마트 컨트랙트라 부릅니다. 여기서 문제는 돈을 넣었는데 자판기가 이를 인식하지 못하거나 돈을 넣지 않고 자판기를 흔드니 돈이 나오는 것과 같은 경우입니다. 이는 자판기의 신뢰성에 금이가는 문제이기 때문에 이를 방지하기 위해 주변에 기술자 또는 주인이 상주하여 확인해야합니다. 즉, 기존의 프로세스들도 스마트 컨트랙트라 부를 수 있는 계약을 하곤 있지만, 신뢰성 유지를 위해 여러 보조장치가 필요하고 이러한 보조장치를 유지하기 위한 비용이 들어갑니다.

블록체인과 스마트 컨트랙트

 블록체인은 디지털 데이터를 신뢰할 수 있게 만들어 주는 기술입니다. (http://brownbears.tistory.com/365?category=281929 - 블록체인이란?) 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하고 있습니다. 블록체인은 각 블록들을 공유함으로써 데이터의 변조가 거의 불가능합니다. 한 마디로 블록체인은 스마트 컨트랙트를 구현할 수 있는 최상의 환경인 셈입니다. 

예시

스마트 컨트랙트의 예시는 현재 활발히 진행중인 이더리움 기반의 ICO를 생각할 수 있습니다. 

예를 들어, A라는 코인이 ICO를 진행해 '1이더리움을 주면 300A를 드립니다.' 라고 모집을 했다고 가정합니다. 이와 같이 계약서를 작성하고 이더리움을 받고자 하는 주소를 알려줍니다. 이때 계약서는 A코인에서 제공하는 주소입니다. 단순하게 이더리움을 받는 주소가 아닌 컨트랙트 주소로 계약서의 역할까지 수행하게 됩니다. 

https://etherscan.io/address/0x4957295167dfa9aec2ca40c377d0f8cc4732c7af#code 에서 확인해보면, Contract라 붙어있는 주소가 컨트랙트 주소입니다. (일반주소는 Contract가 붙어있지 않습니다!) 위 주소를 들어가보면 아래에 코드가 존재하는데 대개 코드에는 몇몇 특정 사람이 독점하는 것을 막기 위해 일정 수수료를 초과하면 거절되도록 하는 코딩이 되어 있습니다. 

 

한계점

이러한 계약서는 예시처럼 간단한 것도 있지만, 복잡한 계약서도 존재합니다. 어떻게 사용하냐에 따라 현실의 계약서를 대체할 수도 있습니다. 그러나 현실에서 사용할 때는 문제점이 존재합니다. 만약 개인간 거래에 스마트 컨트랙트를 도입했다고 가정합니다. A라는 사람이 '갤럭시 S8을 10만원에 팝니다.' 라는 계약서를 올리고 B라는 사람이 갤럭시S8을 사기위해 10만원을 입금했다면 A는 갤럭시 S8을 배송시켜줘야 합니다. 그러나 A가 갤럭시 S8을 배송시키지 않고 신문지 더미만 들은 상자를 배송한다고 해도 이를 막을 수 없습니다. (이런 문제는 지금도 존재하지만..)

또한 위 예시에서 이더리움 기반의 ico에 많은 사람들이 몰리면 부하가 커져 상당히 느려지게 됩니다. 


리플과 같이 최초 발행 이후 추가발행이 불가능한 암호화폐도 있지만 대부분은 채굴방식을 통해 추가발행이 진행됩니다. 채굴방식은 대표적으로 POW, POS, DPOS가 있습니다. 

한마디로 어떤 방식으로 채굴을 해서 보상을 받을것인지에 대한 약속 이라고 보면 됩니다. 명칭은 채굴 증명방식합의 프로토콜합의 메카니즘 등 여러 용어로 부르기도 합니다.

POW (Proof of Work)

대표코인: 비트코인, 라이트코인, 제트캐시, 모네로 등

작업증명으로 부르기도 하며 해시연산을 처리하는 하드웨어(GPU, ASIC채굴기) 등을 사용해서 증명하는 방식입니다. 간단하게 말해 하드웨어 장비를 사용해 코인을 채굴하는 것입니다. 

자세하게..

IT전공자가 아니라면 아래의 내용은 어려울 수도 있습니다. 위의 간단한 설명으로도 충분하니 넘어가도 상관없습니다.

PoW의 방식은 노가다라고도 볼 수 있습니다. 해시함수에서 나온 출력값을 채굴자들이 하드웨어 장비 (GPU, CPU와 같은 컴퓨팅 파워)를 통해 결과를 도출하는 것입니다. 여기서 해시는 단방향 암호화 기술이므로 결과값을 가지고 역으로 입력값을 찾아낼 수가 없습니다 (한마디로 복호화가 불가능). 따라서 무차별 대입으로 출력값과 똑같은 결과가 나올때까지 실행하는 방법밖에 없습니다. 이렇게 초당 해시를 처리하는 것을 해시레이트(h/s)라 부르기도 합니다.

이러한 방식으로 문제를 해결하면 가장 빨리 채굴된 블록만 인정을 받고 나머지는 버려지게 되기 때문에 이중지불 문제가 해결되게 됩니다.


여기서 의문점은 거대 자본가가 슈퍼컴퓨터를 구입하여 연산을 돌린다면 분산된 장부작성 방식이 아닌 중앙집권적 방식이 되지 않을까 할 수 있습니다.

첫 번째로 과반수의 해시파워를 가진 컴퓨터를 구매하는 건 엄청나게 많은 돈이 들어갑니다. 만약 천문학적인 돈을 투자하여 구매했다 하더라도, 거래가 위조되고 부당한 장부라고 느낀다면 해당 블록체인의 가치가 급락할 것이기 때문에 정당한 방식으로 네트워크를 운영하는 것이 훨씬 큰 이득입니다.

장점

  • 최소 가격대 형성이 확실하게 정해져 있음
  • 강력한 보안성
  • 서비스 남용을 쉽게 방지

단점

  • 채굴난이도가 높아지면서 연산에 필요한 고사양 장비가 많이 필요하고, 과도한 전력소모로 인한 에너지 낭비가 커짐
  • 채굴난이도가 높아지면서 개인 채굴자는 채굴을 할 수 없는 수준까지 옴
  • 지속적으로 해시파워를 유지해야함
  • 채굴하는 업자끼리의 단합 문제

POS (Proof of Stake)

대표코인: 퀀텀, 네오, 스트라티스

지분증명이라 부르기도 하며 채굴기 없이 본인이 소유한 코인의 지분으로 채굴되는 방식입니다. 위 POW의 단점을 극복하기위해 등장하였습니다.

자세하게..

IT전공자가 아니라면 아래의 내용은 어려울 수도 있습니다. 위의 간단한 설명으로도 충분하니 넘어가도 상관없습니다.

validator가 현재 보유하고 있는 자산(stake) 양에 비례하여 블록을 생성할 권한을 더 많이 부여되는 방식입니다. 마치 이자와 같은 방식으로 코인이 지급되며, 일정 수 이상의 코인을 보관하고 있는 지갑을 블록체인 네트워크에 연결시켜놓기만 하면 보상을 받을 수 있습니다. 

블록 생성자와 지분 생성자의 이해관계를 일치시킴으로써 블록을 나쁜 의도로 생성할 동기부여를 없애며, 잘못 생성할 경우 패널티를 부여합니다. 이더리움은 PoW에서 PoS로 컨센서스 알고리즘(코인을 보유한 지분율에 따라 새롭게 생성하는 코인을 분배받는 방식)을 변경하려 하고 있습니다. 

만약 fork가 일어나 체인이 갈라지더라도 더 많은 자산(검증)을 보유하는 체인이 살아남고 나머지는 버려지게 되는 것이 (이건 POW와 동일) PoS 합의 메커니즘의 운영방식입니다.


이러한 설명으로는 컴퓨팅파워 없이 이자를 받게 되니 좋을 것 같지만 코인을 보유하고 있는 사람 누구나가 DB를 업데이트 할 수 있게 되는 방식은 위험하다고 볼 수 있습니다. 해당 코인 지분이 많은 사람이 악의적인 공격을 가하게 된다면 해당 블록체인은 위험할 수 밖에 없기 때문입니다.

예를 들어, 퀀텀의 51% 지분을 갖고 있는 A라는 사람이 데이터 업데이트의 권한을 쥐고 흔들 수 있다고 볼 수 있습니다. 따라서 맘에 안드는 사람 B의 자산을 A가 악의적으로 기록을 삭제하여 0원으로 만들 수도 있기 때문입니다.


기존 PoW 방식은 블록체인의 정당성을 확인할 수 있지만 채굴노드의 경우 하드웨어를 직접적으로 갖춰야 하고 에너지 소모가 굉장히 클뿐더러 대량의 채굴기를 돌리는 경우 지리적으로도 넓은 평지를 가지고 있어야 가능하다 왜냐하면 채굴기 자체에서 발생하는 열과 소음이 상당하기 때문이다. 

  • PoW에서 51%의 해시파워를 가지는 비용 = 약 2500억원
  • PoS에서 전 세계 자산의 51% = 약 25조원

이렇게 100배 가량의 차이가 나기 때문에 PoS방식이 중앙집권화가 더 어렵고 코인을 가진 누구나 네트워크에 허가없이 참여하기 때문에 오히려 분산화가 더 잘된다고 볼 수 있습니다. 

장점

  • 해시파워가 많이 필요하지 않아 경제적이며 친환경적
  • 블록 생산자의 탈중앙화로 안정성 확보
  • 블록을 생성하기 위해서는 지분을 담보로 잡아야 하기 때문에 덤핑 방지

단점

  • 모두 이자를 받으려고 코인을 묶어놓기 때문에 시중 코인의 유통량 감소로 이어질 수 있음
  • 검증이 되지 않았기 때문에 보안성이 강한지 확신할 수 없음
  • 코인을 많이 보유한 사람이 권력을 지게되는 구조 (부익부 빈익빈)

DPOS (Delegated Proof-of-Stake)

대표코인: 스팀, 이오스, 아크, 라이즈

위임지분증명이라 부르기도 하며 말그대로 위임된 POS입니다. POS가 자산을 가진 사람들이 전부 참여할 수 있는 방식이라면 DPOS는 특정 인원에게만 POS를 할 수 있도록 권한을 위임하는 것입니다. 즉 특정인 몇 명만이 블록을 생성하여 증명할 수 있습니다.

자세하게..

IT전공자가 아니라면 아래의 내용은 어려울 수도 있습니다. 위의 간단한 설명으로도 충분하니 넘어가도 상관없습니다.

DPoS 네트워크는 구성하는 모든 노드들의 투표 결과로 정한 상위 노드에게 권한을 위임하여 일종의 대표자가 되는 것입니다. PoS의 경우, 일정 지분을 소유한 모든 노드에게 블록 생성 권한이 주어지기에 오랜 시간이 필요하지만 DPoS의 경우, 투표 결과로 정한 상위 노드 라는 비교적 적은 숫자로 인해 합의 시간과 비용을 줄일 수 있습니다. 합의시간과 비용이 줄어든다는 것은 전송처리가 굉장히 빠르다는 것과 밀접한 관련이 있습니다.

DPoS는 PoS와 달리 소규모 참여자에게는 꿀단지 입니다. PoS는 참여하기 위해 최소 코인을 (말이 최소지 어마어마한 돈) 가지고 있고 블록생성을 위해 24시간 네트워크를 유지하며 하드포크마다 알고리즘 업데이트를 할 필요가 없습니다. 소규모 참여자는 권한을 위임하고 위임한 상위노드로부터 이자를 받거나 송금 수수료를 감면받을 수 있습니다.


상위 노드로서 뽑힌 사용자는 PoS에서와 같이 블록생성을 진행할 수 있습니다. 상위노드로 뽑히는 기준은 본인을 투표한 구성원의 코인 총 합 순위로 매기는 것이 보통의 방법입니다.

장점

  • 소규모 참여자도 이득을 볼 수 있음
  • 송금속도가 빠름

단점

  • 상위 노드만 블록생성에 참여하기 때문에 탈중앙화가 맞는지 애매함
  • 상위 노드만 블록생성에 참여하기 때문에 보안이 취약함
  • 코인 보유량이 적어도 상위 노드로 뽑힐 수 있음

마치며

이외에도 POI, Zero-Knowledge Proof 등등 여러 채굴방식이 존재하긴 하는데 저 3개가 가장 대표라 생각되어 정리했습니다.

블록체인(block chain)이란?

블록체인은 관리 대상 데이터를 블록이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구도 임의로 수정될 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술입니다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었습니다. 잘 알려진 블록체인의 응용 사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있습니다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영되고 비트코인을 비롯한 대부분의 암호화폐들이 블록체인 기술 형태에 기반하고 있습니다.

출처: 위키백과

다시말해 블록체인은 데이터 분산 처리 기술입니다. 네트워크에 참여하는 모든 사용자가 모든 거래내역 등의 데이터를 분산하여 저장하는 기술을 뜻합니다. 이렇게 저장된 데이터를 블록이라 칭하며 여러 블록들을 시간의 순서대로 묶는 형태를 가져 블록체인이라 불리게 됩니다. 이 모든 사용자가 거래내역을 보유하고 있어 거래 내역을 확인할 때는 모든 사용자가 보유한 장부를 대조하고 확인해야 합니다. 이러한 이유로 블록체인은 공공거래장부, 분산거래장부 로 불리기도 합니다.


기존 거래와 블록체인의 차이점

출처: SW 중심사회

기존의 거래방식은 중앙기관 즉, 은행에서 모든 거래 내역을 저장하고 있습니다. 개인 간 거래사실을 저장하여 증명 해야 하기 때문입니다. 

블록체인은 은행과 다르게 해당 네트워크에 참여한 인원이 거래내역을 나눠서 저장하게 됩니다. 만약 한 네트워크에 100명이 참여하고 있다면 개인간 거래 내역을 100개의 블록을 생성해 100명 모두에게 전송한 뒤 저장을 합니다. 후에 거래내역을 확인할 때는 블록으로 나눠 저장한 데이터들을 연결해 확인합니다.

블록체인 특장점

위에서 말한것 처럼 블록체인은 분산저장을 한다는 점이 특징입니다. 기존 거래방식에서는 데이터를 위,변조 하기 위해선 중앙서버를 공격하면 됐습니다. 그러나 블록체인의 경우 여러 명이 동일한 데이터를 저장하기 때문에 위, 변조가 어렵습니다. 블록체인 네트워크를 위, 변조하기 위해서는 참여자의 거래 데이터를 모두 공격해야 하기 때문에 사실상 해킹이 불가능하다고 여겨집니다. 

블록체인은 중앙 관리자가 필요없습니다. 중앙기관이나 관리자 없어도 다수가 데이터를 저장, 증명할 수 있기 때문에 탈중앙이 가능합니다. 

블록체인 네트워크 구성

블록체인 네트워크 구성요소는 블록체인 노드와 블록체인 클라이언트입니다.


  • 노드 : 트랜잭션 내역 보관, 트랜잭션 승인, 분산합의
  • 클라이언트 : 트랜잭션 생성, 거래 내역 확인 (비트코인의 경우 지갑)

블록체인의 노드는 일반적인 서비스의 백엔드(Backend) 역할을 하고 블록체인 클라이언트는 클라이언트 역할을 합니다. 클라이언트가 새로운 트랜잭션을 발생시키면 노드들은 트랜잭션을 분산합의 과정을 통해 공유하고 트랜잭션을 실행하죠. 클라이언트는 트랜잭션의 결과를 확인할 수 있습니다.

블록체인 노드는 두 가지 종류의 데이터베이스를 가지고 있습니다. 올바른 트랜잭션을 모두 보관하는 블록체인 트랜잭션 보관 데이터베이스와 저장된 트랜잭션을 어플리케이션에 적용한 어플리케이션 데이터베이스를 가지고 있습니다.


블록체인 트랜잭션 내역 DB

노드가 가지고 있는 두 가지 DB 중 트랜잭션 목록을 보관하는 DB는 블록체인(Block-chain)이라는 특이한 구조로 되어 있습니다. 이 DB의 특이한 구조가 이제는 전체를 대표하는 명칭이 되었습니다. 트랜잭션 내역 DB는 블록체인이라는 이름처럼 블록이 연결된 구조로 되어 있습니다. 각 블록은 순서가 정해진 트랜잭션 리스트가 있고 각 블록들은 시간의 순서대로 연결되어 있죠(순서가 기재되어 있습니다). 블록체인 자료구조를 이용하면 모든 트랜잭션의 순서를 확정 지을 수 있습니다.

블록체인, 비트코인

비트코인과 같은 암호화폐가 등장한 것도 위에서 설명한 블록체인의 특장점 덕분입니다. 비트코인을 원하는 사람들이 직접 채굴을 통해 발행할 수 있습니다. 일각에서는 블록체인이 중앙기관과 은행을 대체할 것이라는 전망을 보여주기도 하지만 제 생각은 어려울 것으로 보입니다.


암호화폐에서는 이중지불방지를 위해 아래와 같은 다양한 시간표시 방법들을 사용합니다. 이중지불이란 100만원의 잔고에서 돈을 100만원 출금을 한 뒤, 잔고가 0원으로 갱신되기 전 재빨리 100만원을 또 출금하는 시간차 공격을 말합니다.

  1. 작업증명 (POW : proof-of-work)
  2. 지분증명 (POS : proof-of-stake)
  3. 위임지분증명 (DPOS: delegated proof-of-stake)

대표적으로 위와 같은 방법으로 이중지불 문제를 해결하고 있습니다.


암호화폐 간략한 개발과정

비트코인을 시작으로 성능개선, 익멱성, 저장기능과 스마트 컨트랙트 기능 등 다양한 기능들이 개발되었습니다.

+ Random Posts