검수요청.png검수요청.png

체인 (기술)

해시넷
shoot008 (토론 | 기여)님의 2019년 8월 6일 (화) 13:37 판 (탱글)
이동: 둘러보기, 검색

체인(chain)이란 해시를 이용하여 하나의 블록을 다음 블록으로 시간 순서에 따라 연결한 것을 말한다. 이처럼 다수의 블록들이 체인 모양으로 연결된 것을 블록체인(blockchain)이라고 한다. 체인은 연결 리스트(linked list)와 유사한 자료구조를 가지고 있다. 연결 리스트에서는 이전 노드와 다음 노드를 연결하기 위해 포인터를 사용하는데, 체인에서는 포인터 대신 해시(hash)를 사용한다.

개요

체인(Chain)이란 이전 블록의 해시(hash)가 다음 블록의 한 구성요소가 되는 방식으로서 여러 블록이 마치 체인처럼 서로 연결된 것을 하나의 블록을 다음 블록과 이어주기 위해 해시를 이용하여 체인 구조를 만들 수 있다. 다수의 트랜잭션을 블록으로 묶은 후 시간 순서에 따라 체인으로 엮은 것을 블록체인(blockchain)이라고 한다. 데이터베이스를 구성하는 여러 노드들이 시간 순서에 맞게 일렬로 늘어서서 체인으로 연결된 모양을 가지고 있다. 기존 연결 리스트 자료구조에서는 이전 노드의 주소와 다음 노드의 주소를 표시한 포인터를 별도로 가지고 있었으나, 블록체인의 경우에는 해시 자체가 각 노드를 연결하는 주소의 역할을 한다.

체인알고리즘과 종류

체인 알고리즘이란 다수의 거래기록을 암호화하여 체인처럼 연결함으로써 위변조를 방지하고 탈중앙 분산 저장 방식으로 데이터를 관리하는 알고리즘이다.

체인의 종류에는 블록체인, 사이드체인, 더블체인, 인터체인, 라이트닝 네트워크, 플라즈마, 플라즈마 캐시, 탱글, 차일드체인, 해시그래프, 퓨어체인 등이 있다.

사이드체인

사이드체인이란 메인체인 옆에 다른 블록체인을 사이드로 연결하는 기술이다. 이때 사이드체인의 노드들은 메인체인 노드에 추가되는 방식이다. 네트워크에 참여하는 노드가 많아질수록 보안성과 무결성이 강해진다. 그렇기 때문에 51% 공격으로부터 위험을 방지할 수 있다. 사이드체인은 서로 다른 블록체인에서 암호화폐를 거래할 수 있으며 퍼블릭 블록체인프라이빗 블록체인 간의 연결도 가능하다. 하지만, 사이드로 연결되는 체인은 메인체인에게 많은 부분 의존해야하는 것이 단점이다.[1]

대표적인 코인 : 비트코인(BTC), 이오스(EOS)

인터체인

인터체인이란 서로 다른 블록체인을 연결해주는 기술이다. 블록끼리 연결되어 사용하는 암호화폐를 공유하여 다른 블록에서도 사용 할 수 있게 된다. 같은 체인을 공유하는 블록체인들은 서로 데이터를 공유하고 조회도 할 수 있어서 편리한 확장성을 제공해준다. 지금도 수많은 프로젝트들과 암호화폐들이 생겨나고 있기 때문에 독자적인 네트워크를 구성하는 암호화폐간의 연결은 앞으로도 중요해질 것으로 예상된다.[1]

대표적인 코인 : 코스모스(COSMOS), 아이콘(ICON)

플라즈마

플라즈마는 코인 생태계 중 이더리움(Ethereum)에서 가장 중요하게 해결해야 했던 처리능력(Scale)과 확장성 문제를 해결하기 위해 나왔다. 예전에 대부분의 ICO가 이더리움으로 진행되었고, 그에 따라서 송금이 몰려 네트워크가 먹통이 되거나, 디앱(DApp) 사용자 증가로 인해 많은 문제들이 번번하게 발생하고 있었다. 플라즈마는 차일드체인을 이용하여 이런 문제점을 해결하고자 했다. 차일드체인에서 거래들을 취합한 후, 중개자를 통해 메인체인인 이더리움 네트워크에 반영하는 방식이다. 이때 차일드체인을 쓰기 때문에 차일드체인 자체에 문제가 생기더라도 메인체인인 이더리움 네트워크에는 문제가 생기지 않는다. 플라즈마는 퍼블릭 블록체인인 이더리움 체인 위에 올려진 스마트 컨트랙트이며 이는 개인의 룰과 어플리케이션의 실행을 가능하도록 한다. 이것은 플라즈마 컨트랙트(Plasma Contract)라고 한다. 플라즈마는 별도의 체인을 만들고 검증에 필요한 최소한의 데이터만 이더리움의 메인 블록체인에 동기화한다.

  • 이더리움 블록 사이즈를 줄일 수 있다.
  • 보다 빠른 속도로 디앱을 구동할 수 있다.
  • 가스(Gas) 소모를 최소화할 수 있다.

하지만 플라즈마에 담긴 블록을 사용자들이 모두 다운받아 유효성을 검사해야 하는 단점이 있지만, 비탈릭 부테린(Vitalik Buterin)은 플라즈마 내에서 생성된 '플라즈마 코인'의 이동경로만을 추적하게 만들어서 필요한 거래에 대해서만 확인 절차를 거치는 방법을 제시했다.[2]

대표적인 코인 : 오미세고(OMG), 코스모스(COSMOS)

샤딩

샤딩(Sharding)이란 확장성 문제를 해결하기 위한 방법이다. 원래 이더리움 블록체인에서는 기존 n개의 블록을 바탕으로 새로운 블록의 유효성을 검사한다. 이 때, 모든 노드에 기존의 블록들을 다 저장하게 하는것은 엄청난 시간 낭비이다. 따라서 이더리움 샤딩에서는 메인체인이 처리해야 할 블록을 쪼개어 샤드라고 불리는 오프체인에 할당한다. 각 오프체인은 주어진 조각블록에 대해 유효성 검사를 한다. 이후 서로간의 연결을 통해서 결과를 합치게 된다. 또한 메인체인과 다시 연결을 하여 기존 블록체인에 온전한 블록을 연결한다. 메인체인에 집중된 계산량을 분배함으로써 트랙잭션 처리속도 면에서 굉장한 이점을 얻을 수 있다. CPU가 하던 일을 GPU를 통해 병렬 처리를 하여 속도의 이점을 얻는다.[3]

대표적인 코인 : 쿼크체인(QuarkChain), 질리카(Zilliqa)

라이트닝 네트워크

라이트닝 네트워크확장성 문제를 해결하기 위한 방법이다. 비트코인은 초당 3~7건의 거래를 한다. 이는 초당 약 200건의 거래를 처리하는 페이팔(PayPal), 약 2,000건의 거래를 처리하는 비자(VISA)와 대조하면 현저하게 느린 속도이다. 라이트닝 네트워크는 블록의 크기를 키우는게 아닌, 블록체인의 바깥에서 결제 채널을 따로 만들어서 낮은 수수료로 다량의 소액거래를 처리할 수 있게 하는 오프체인 스케일링(Off-Chain Scaling)이다. 블록체인 바깥에 결제 채널을 만든다는 것은 거래의 내용을 빠르게 기록하기 위한 거래기록소를 따로 만든다는 말이다. 이 때의 거래기록소를 결제채널이라고 부르는데, 이 결제채널은 거래 당사자들의 '공개키'가 있으면 형성이 가능하다.

  1. 'Funding Transaction'을 형성하는데 이 거래기록을 생성하는데 이 'Funding Transaction'은 거래 당사자 간 거래 내용이고 블록체인에 직접 기록되는 내용이다.
  2. 'Commitment Transaction'을 형성하는데 이 거래기록은 블록체인 내부에 저장되지 않은 상태로 기록이 진행된다.
  3. 생성된 Commitment Transaction 기록에 대하여 서명이 완료가 되면 이 기록은 Funding Transaction에 기록될 수 있는 상태가 되는 것이다.
  4. 생선된 Funding Transaction에 Commitment Transaction 기록이 들어오고 이 Funding Transaction 또한 서명이 완료되면 결제채널 형성이 완료된 것이다.
  5. 이렇게 기록된 Funding Transaction은 블록체인 상에 통보되어 기록이 된다.

결국 Commitment Transaction이 다량의 거래를 빠르게 처리할 수 있다는게 핵심이며, 이것은 거래 당사자들의 잔고를 블록체인 바깥에서 기록하고 있으며 당사자들이 원할 때 언제든지 블록체인에 기록할 수 있기 때문에 빠른 처리가 가능하다는 것이다.[4]

레이든 네트워크

레이든 네트워크(Raiden Network)는 비트코인, 라이트코인에서 사용하는 라이트닝 네트워크(Lightning Network)와 유사한 프로젝트이다. 결제 채널을 열고 닫는 과정 사이의 중간 거래를 블록체인에 기록하지 않는 방법(Off-chain)을 통해 블록체인 기록을 최소화하고, 수수료를 절약하는 구조이다.

  • 블록 거래를 기다리지 않아, 승인을 빠르게 진행할 수 있다.
  • 채널을 열고 닫을 때에만 수수료를 지불하기 때문에 중간 과정의 거래는 수수료가 필요 없다.

예를 들어, A와 B가 레이든 네트워크를 통해 거래를 한다고 하면, 우선 A와 B를 연결하는 별도의 채널을 연다. 이 거래는 블록체인에 기록되는 거래이므로 수수료(Gas)가 발생하는 거래이다. 열린 채널 사이에서 A와 B가 무수히 많은 거래를 하더라도 블록체인에 기록되지 않는 오프체인 거래이므로 수수료는 발생하지 않는다. A와 B사이의 채널을 닫고 실제 송금을 수행한다. 이 거래는 블록체인에 기록되는 거래이므로 수수료가 발생한다. 위 예시는 A와 B사이의 거래일 뿐이지만 B와 C사이의 채널, C와 A사이의 채널 등이 거미줄 처럼 얽히면 상호간 채널을 닫는 횟수를 최소화할 수 있어 파급효과가 더 커지는 구조이다.[5]

탱글

탱글이란 기존 블록체인의 한계를 극복하고자 블록 자체를 없애고, 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해 주는 방식으로 작동하는 알고리즘이다. 사물인터넷 시대를 맞이하여 기계와 기계가(M2M) 인터넷을 통해 서로의 정보를 주고받는 프로젝트인 아이오타(IOTA)에 사용된 알고리즘이다. 비트코인의 경우 거래 기록들을 인증하고, 처리하고, 블록과 블록체인으로 옮기는 '채굴자'가 있지만, 아이오타의 탱글에서는 탱글 네트워크에서 거래하는 사람들이 직접 거래를 하고 탱글에 업데이트한다. 탱글 네트워크에서는 거래를 하고 거래를 인증 받기 전에 "두개의 인증되지 않은, 다른 사람들의 이전의 거래 기록들"을 인증한 후에 거래를 인증받을 수 있다.

  1. A가 B에게 코인을 10개 보낸다.
  2. A는 아직 탱글의 네트워크에 올라가지 않은 인증되지 않은 다른 사람들의 거래 기록들 2개를 인증해주고 탱글 네트워크에 업데이트한다.
  3. "A가 B에게 10개를 보냄" 이라는 거래를 다른 유저가 입증해주고 탱글 네트워크에 인증된 거래 기록을 추가한다.

즉, 다른 이들에게 인증을 받아야 하기 때문에 사기를 당하기는 어렵다.[6]

각주

  1. 1.0 1.1 와이키키브로, 〈사이드체인과 인터체인에 대해서 알아보자.Araboza〉, 《네이버 카페》, 2019-04-26
  2. 와이키키브로, 〈플라즈마에 대해서 알아보자.Araboza〉, 《네이버 카페》, 2019-05-31
  3. 와이키키브로, 〈샤딩에 대해서 알아보자.Araboza〉, 《네이버 카페》, 2019-05-31
  4. 와이키키브로, 〈라이트닝 네트워크에 대해서 알아보자.Araboza〉, 《네이버 카페》, 2019-05-30
  5. 와이키키브로, 〈[misskiwi, https://cryptokiwi.kr/currency?id=eth&category=2&content_id=227 플라즈마(Plasma), 라이덴(Raiden) 그리고 샤딩(Sharding)]〉, 《CRYPTOKIWI》, 2018-02-13
  6. 와이키키브로, 〈탱글에 대해서 알아보자.Araboza〉, 《네이버 카페》, 2019-05-29

참고자료

같이 보기


  검수요청.png검수요청.png 이 체인 (기술) 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.