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

메인체인

해시넷
ghdrn221 (토론 | 기여)님의 2019년 9월 20일 (금) 17:53 판
이동: 둘러보기, 검색
체인 구조도 A, B, C로 이어지는 A가 메인체인 이 된다.
최초 블록(파란색)을 시작으로 검은색 블록들로 가장 길게 연결된 체인이 메인(main)체인이다. 빨간색은 메인체인으로부터 중간에 파생된 체인으로 고아(Orphan)체인이라고 부르며 이 체인은 보통 버려진다.

메인체인(main chain)은 제네시스 블록부터 가장 최근의 블록까지 연결되어 있는 체인이다. 최장체인 또는 주요체인이라고도 부르며 가장 많은 해시파워가 투입되는 체인에 그 다음 블록이 연결된다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크 를 유발한다. 동시 채굴이라는 용어는 정확히 같은 순간에 채굴에 성공했다는 개념이 아니며, 모든 노드들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 포크가 생겼다고 볼 수 있다.

개요

채굴노드에서 채굴에 성공된 블록이 인근노드로 전파가 시작되면 해당 블록을 전달받은 노드들은 그 블록의 유효성을 검사하여 유효한 경우 자신의 메인체인에 블록을 연결하여 블록체인의 길이를 연장시키고 다시 인근노드로 블록을 전달하게 된다. 이과정이 순차적으로 이루어져 전체 블록체인에 동일한 블록이 추가되게 되는데, 동시에 두개의 유효한 블록이 생성되어 전파되는 경우에는 일시적으로 블록체인이 두개의 브렌치로 분기가 발생할수 있지만, 블록체인의 분기가 발생하게 되더라도 바로 다음블록의 생성시점에 하나의 메인체인으로 수렴이 이루어지게 된다.[1]

특징

메인체인은 가장 긴 체인 이라고 불린다. 하지만 정확한 기준은 누적 난이도가 제일 높은 체인(the most cumulative PoW)이며, 대게 가장 긴 체인일 수록 누적 난이도가 높기에 흔히 긴 체인 이라고 표현한다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크(Fork)를 유발한다. 동시 채굴 이라는 용어는 정확히 같은 순간에 채굴을 성공한다는 개념이 아니며, 모든 노드들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 포크가 생겼다고 볼 수 있다.[2]

사이드체인은 두 블록체인간의 양방향 연결(Two-way peg)을 활용한 방법이고, 거래 결과를 확인해야 하는 곳을 메인체인이라 한다면, 코인을 동결(Lock) 상태로 만들고 그 액수만큼 보증금증명(Deposit Proof)을 생성해 차일드체인(Child Chain)에서 코인을 발행한다. 이후 거래된 차일드체인의 코인을 소각하고 인출금증명(Withdraw Proof)을 생성한 뒤 메인체인의 코인 동결을 해제(Unlock)하는 방식으로 처리한다. 사이드체인의 양방향 연결은 보안을 저해하지 않고 선형적으로 확장(scaling) 가능한 방법 이며, 이를 활용한 이더리움 샤딩 구조의 사례를 들어 메인체인은 풀노드로 온전히 검증되고 차일드체인은 이용자를 통해 온전히 검증되고 메인체인을 통해 보호된다. 플라즈마는 메인체인에서 네이티브 화폐 처리, 차일드체인에서 스마트컨트랙트 실행을 하는 아이디어로 비트코인스크립트를 통해 구현될 수 있는데, 이는 메인체인의 확장성 제약을 해소하고 메인체인의 보안성과 탈중앙성을 보호하며 차일드체인에 부가적인 보안성을 제공한다.[3]

  1. 고아블록 : 고아거래와 같이 네트워크 속도차이로 인하여 이전 블록을 찾을 수 없는 블록이 발생하며 이를 고아블록(orphan block)이라고 한다.
  2. 브랜치블록 : 블록체인은 단 하나의 체인으로 이루어져 있지 않다. 네트워크 전파의 속도 차이로 인해 메인체인의 다른 경우를 고려하여 서브체인을 보유하고 있다.
  3. 하드포크 : 하드포크란 모든 채굴자와 사용자가 반드시 업데이트를 필수적으로 즌행해야 하는 포크를 의미한다. 대표적인 예시로 비트코인캐시의 난이도 조절과 블록 사이즈 8MB 확장 등이 있다. 다수의 노드들의 반발로 새로운 암호화폐를 만든 케이스로는 비트코인에서 비트코인캐시의 탄생, 이더리움에서 이더리움 클래식의 탄생, 비트코인캐시에서 비트코인에스브이의 탄생 등이 있다.
  4. 소프트포크 : 소프트포크는 사용자의 경우 업데이트를 진행하지 않아도 호환이 가능하지만, 채굴자들의 업데이트를 진행해야 적용이 되는 포크이다. 이에 대표적인 예시로 세그윗(Segwit)이 있다.[2]
  • 블록의 분기
각 노드는 독자적으로 블럭을 만들 수 있는데, 여러 노드가 비슷한 시기에 블럭을 만들어서 제출 할 수 있어 노드가 분기 될 것이다. 이 중 하나의 블럭체인을 정식 블럭체인으로 승인하고, 다른 증복된 블럭체인은 버려야 할 것이다. 비트코인은 가장 빠르게 성정한 블럭체인을 메인 체인으로 인정한다. 어떤 노드가 블럭을 제출했다고 가정해 보면, 채굴자들은 가능한 빠르게 이전블럭으로 부터 새로운 블럭을 만들어야 자신 소유의 블럭을 만들 확률이 높아져 이기적인 목적하에, 가장 성공 할만한 블럭을 찾게 될 것인데, 가장 성공 할만한 블럭이란 가장 빠르게 제출된 블럭이 된다. 만약 충분한 수의 노드와 컴퓨팅 파워를 보유하고 있다면, 자신의 블럭이 메인 체인이 포함되도록 조작 할 수 있어 이 문제는 네트워크의 규모로 해결 할 수 있지만, 초반 규모가 충분하지 않을 때, 체인의 조작을 어떻게 막을지에 대한 설계도 필요 하다.[4]
  • 트랜잭션 처리기법
블록체인 성능을 올리는 연구, 개발들은 다양한 분야에서 진행 중이다. 합의 알고리즘은 가장 대표적인 연구 분야 중 하나로써, 작업증명(PoW), 지분증명(PoS), 위임지분증명(DPoS), 프랙티컬 비잔틴 장애 허용(PBFT) 등은 많이 알려져 있는 합의 알고리즘인데, 이들은 모든 거래정보를 블록체인 내부에 저장하기 때문에 온체인(On-Chain) 트랜잭션 으로도 불린다. 반대로, 블록체인 내부가 아닌 외부의 성능을 개선하는 오프체인(Off-Chain) 트랜잭션 연구도 진행 중이다. 비트코인 처리량을 늘리기 위한 라이트닝 네트워크(Lighting Network), 이더리움 거래처리를 위한 플리즈마, 라이덴 네트워크(Plasma, Raiden Network) 등이 널리 알려져 있으며, 이들의 특징은 가상화폐 거래를 위해 대표거래자인으로 예를 들어, 엘리스(Alice)와 밥(Bob) 사이의 일정 금액을 비트코인과 같은 메인 체인에서 동결시키고, 당사자 간 세부거래들은 별도의 체인 혹은 채널에서 거래한 뒤, 최종 결과만을 다시 메인 체인에 기록한다. 이는 메인 체인에서 거래 시 발생하는 수수료 및 합의지연 시간을 최소화하며, 오프체인에서 별도의 거래처리를 수행하는 방식으로서 거래처리 성능을 향상시킬 수 있지만, 가상화폐와 같이 동결시킬 자산이 있어야 하며, 거래당사자 간 세부거래가 발생해야만 한다는 점 등으로 가상화폐거래소 등 특정 분야에만 적용이 가능한 제약을 갖고 있다.[5]

활용

이더리움

이더리움(Ethereum)

이더리움(Ethereum) 플라스마의 주된 아이디어는 메인 체인과 가능한 한 여유롭게 통신하고 상호작용하는 사이드 체인의 기초를 구축하는 것으로, 이러한 기초 작업은 블록체인 트리로 작동하도록 설계되고 있으며, 블록체인 트리는 메인 체인 위에 수 많은 작은 체인들이 생성될 수 있도록 계층적으로 배열되어 있다. 이처럼 작은 체인들을 플라스마 체인 혹은 차일드 체인(child chains)이라 한다. 플라스마 구조는 스마트 콘트랙트(smart contracts)와 머클 트리(Merkle trees)를 사용하여, 기본적으로 페어런트(parent) 이더리움 블록체인의 작은 복사본인 무한한 숫자의 차일드(child) 체인을 만들 수 있게 하는데, 각 차일드 체인 위에 더 많은 체인들이 만들어질 수 있고, 이는 트리(tree)와 같은 구조를 이룬다. 기본적으로 각 플라스마 차일드 체인은 서로 다른 요구를 충족시키는 단일 방식으로 설계될 수 있는 맞춤형 스마트 콘트랙트이다. 이는 체인들이 공존할 수 있으며, 독립적으로 작동할 수 있음을 의미하고, 결과적으로, 플라스마는 기업과 회사가 자신들의 구체적인 상황과 필요에 따라 다양한 방법으로 확장성 해결책을 마련할 수 있게 할 것이다. 그러므로, 플라스마가 이더리움 네트워크에서 성공적으로 개발되고 구현된다면, 차일드 체인이 특정 목적-메인 체인의 목표와 반드시 연관될 필요는 없음을 위해 구별된 방식으로 작동하도록 설계될 것이기에, 메인 체인은 덜 붐비게 될 것이고, 그 결과 차일드 체인은 메인 체인의 전반적인 작업 부담을 덜게 될 것이다. 플라스마는 기본적으로, 트리처럼 생긴 구조를 가진 수많은 작은 체인들을 만들어, 이더리움 네트워크의 전반적인 성능을 향상시키고자 하는 오프체인(off-chain) 해결책으로 이러한 체인들은 메인 체인의 작업 부담을 완화시킬 것이고, 이로 인해 초당 더 많은 트랜잭션들을 처리할 수 있다.[6]

  • 부정행위 방지
차일드 체인과 루트 체인(root chaini)의 통신은 부정 행위를 방지함으로 보안을 유지하며, 루트 체인은 네트워크를 안전하게 유지하고 악의적인 행위자들을 처벌할 책임을 갖고 있는데, 각 차일드 체인에는 다양한 합의 알고리즘 위에 구축될 수 있는, 유효한 블록을 검증하고 특정한 부정 행위 방지를 구현하는, 자체 메커니즘이 있다. 가장 일반적인 것은 작업 증명, 지분 증명, 그리고 권위 증명으로, 부정 행위 방지는 악성 행위들이 이뤄질 때, 사용자가 부정직한 노드를 보고할 수 있게 하고, 자신들의 자금을 보호하며, 거래를 종료하면, 메인 체인과의 상호 작용을 포함 시킬 수 있게 되며, 부정 행위 방지는 플라스마 차일드 체인이 자신의 페어런트 체인이나 루트 체인에 이의를 제기하는 메커니즘으로 사용된다.[6]
  • 엉클블록
이더리움의 경우 현재 합의 알고리즘인 작업증명(PoW; Proof of Work) 방식으로 블록을 계속해서 생성한다. 만약 서로 다른 채굴자가 동시에 블록을 생성하는 경우, 더 어려운 난이도와 큰 논스(Nonce) 값을 가진 블록은 블록체인에 연결되고, 다른 하나는 버려지게 된다. 이 때, 버려지는 블록을 엉클블록(uncle block)이라고 한다.

비트코인

비트코인(bitcoin)
비트코인(Bitcoin)자산 이동의 전반적인 흐름은 메인체인에서 사이드체인으로 1 BTC를 보내기 위해서는 여러가지 과정을 거치는데, 아직까지 사이드체인의 계좌는 메인체인에서 유효한 계좌가 아니기 때문에 사이드체인에 있는 계좌로 바로 보내줄 수는 없다. 그 대신 메인체인은 1 BTC를 동결(peg)하여, 사이드체인에서는 메인체인이 동결한 자산과 동일한 가치를 지니는 자산이 발행되어 유통되고, 사이드체인에서 다시 메인체인으로 자산을 보내고 싶다면, 사이드체인에서 발행했던 1 BTC는 동결되고 메인체인에 묶여있던 1BTC는 다시 풀리게 된다.
성실.PNG

자세히 어떤 일이 일어나는지 시간 순서대로 다음과 같다.

  1. 메인체인에서 확인시간동안 락(lock)이 걸린 트랜잭션을 만들고, 확인시간의 목적은, 도스(DoS) 공격을 하는 사람의 유인을 줄이기 위해 딜레이를 주기 위함으로, 디도스(DDoS)공격을 막기 위해 홈페이지에서 일정 시간동안 임시페이지를 띄우는 것과 원리가 유사하다.
  2. 메인체인에서 만든 트랜잭션의 락이 풀렸다면 이제 사이드체인에서 해당 트랜잭션을 SPV를 이용해 유효성을 검증하면, SPV로 트랜잭션을 검증했다 하더라도 확인시간동안 해당 트랜잭션을 유효하며, 재편성이 일어날 가능성이 있기 때문이다.
  3. 다시 사이드체인에서 메인체인으로 자산을 보내려면 똑같은 과정을 거친다. 위의 그림에서는 사이드체인에서 메인체인으로 보낼 때 첫번째 시도에서 Reorg가 일어난 상황을 가정하고 있다. 특정 노드가 트랜잭션이 Reorg된 체인에 담겨있는 것을 확인하면, 메인체인에 개편된 증거를 제시할 수 있다. 메인체인은 이를 쉽게 확인 가능할 것이며 SPV가 가능하기 때문에 해당 트랜잭션을 유효하지 않은 트랜잭션으로 판단할 수 있다. 또한 개편증거를 하는 사람에게 보상을 줘서 해당 행동을 할 유인을 만들 수 있다.
  4. 마지막으로 다시 사이드체인에서 트랜잭션을 발생시키고 이번에는 확인시간과 컨테스트 기간(contest period) 둘 다 통과하여 자산이 메인체인으로 넘어간다.

사이드체인이 만약 메인체인의 자산을 일부 보관하는 용도로 쓰인다면, 메인체인보다 경제 규모가 작을 가능성이 높아 비유를 하자면, 메인체인은 미국 같은 선진국이고 사이드체인은 개발도상국으로, 그럴 경우 사이드체인에서 거래가 활발하게 일어나지 않는다면 메인체인 쪽으로 자산이 쏠릴 가능성(뱅크런)이 있다.[7]

이오스

이오스(EOS)

이오스(EOS) 메인 체인은 세계 최초의 통치 가능한 블록체인으로, 많은 의미가 있지만, 최초로 헌법과 분쟁 조정 방안이 적용된 블록체인이다. 이오스의 첫 메인넷이었던 이오스아이오(eos.io)를 개발한 블록원의 댄 라리머(Dan Larimer) 최고기술책임자(CTO)는 스팀잇 재직 당시에도 스팀에 적용할 헌법을 준비했다. 이오스에선 처음으로 이를 적용하여, 하드포크로 흔히 이야기하는 커뮤니티의 분열을 피하기 위해서는 헌법이 필요한데, 커뮤니티의 힘을 약하게 만드는 하드포크는 1%의 표로도 어뷰징이 가능하기 때문에 다수결 원칙(Majority rule)의 취약성 때문에 발생한다. 이오스 메인 체인의 헌법은 이를 초월하는 단계(Layer)에 자리한다. 헌법은 커뮤니티가 공유하는 가치를 명시하고, 커뮤니티는 그 가치를 지키는 방향에서 발전 사항을 합의한다. 따라서 이오스 메인 체인에는 커뮤니티 분열을 뜻하는 하드포크가 존재하지 않으며, 헌법과 더불어 이오스 메인 체인에서는 분쟁 조정이 가능하고, 라리머는 코드가 법(The code is law)이 아니라, 코드의 의도가 법(The intent of code is law)이라고 말한다. 버그 없는 코드와 소프트웨어는 존재하지 않기에 블록체인에서 구동되는 스마트 컨트랙트에도 버그가 있을 수밖에 없어, 소프트웨어를 넘어서 조직 구성과 운영의 새로운 수단으로 블록체인을 사용하기 위해서는 다양한 분쟁 상황을 조정할 수 있어야만 해서, 댄 라리머는 이를 위해 리카르디안 컨트랙트(Ricardian contract)를 스마트 컨트랙트와 함께 작성하도록 했다.

통치 가능한 블록체인이기 때문에 기업가는 이를 토대로 사업을 전개할 수 있고, 이오스아이오 소프트웨어의 강력한 성능도 기업가가 취할 장점이지만, 사업에 영향을 줄 리스크를 거버넌스 측면에서 배제할 수 있다는 것도 큰 장점으로, 온전히 블록체인을 통해 모든 조직 활동이 이뤄지려면 앞으로 거쳐야 하는 관문이 매우 많으며, 그 채택 속도도 예측할 수 없어서, 모험적인 기업가가 개척해야만 한다. 동시에 기업 활동은 매우 현실적인데, 예를 들어, 여러 기업가가 모여서 블록체인에서 구동되는 탈중앙화 자율 조직을 구성해 운영한다면, 해당 블록체인이 하드포크로 커뮤니티가 분열될 경우 외부에서 발생한 이유로 조직의 명운이 갈리게 되고, 그 조직이 현실 세계의 법인과 거래한다면, 모종의 이유로 그 거래가 중간에 깨어지고 피해가 발생할 경우 분쟁을 조정할 수 있어야 한다. 이오스 메인체인은 이를 위한 블록체인 거버넌스를 만들고 있다.[8] 가기.png 이오스에 대해 자세히 보기

비교

비트코인과 이더리움의 메인체인을 비교하면 다음과 같다.[9]

비트코인 이더리움
블록해시 hash state_root
이전 블록해시 prev_lbock parent_hash
거래 관련된 루트해시 mrkl_root TRIEHASH(transaction_list)

TRIEHASH(uncle_list)

TRIEHASH(stack_trace)

난이도 bit difficulty
타임스탬프 time timestamp
넌스 nonce nonce
그외 데이터 size

ver n_tx

extra_data

numbber

coinbase address (채굴주소) ...등등

  • DTPS 비교
비트코인, 이더리움에 확장성 기술을 추가했을 때는 다음과 같다.
비트코인 = 
             = [메인체인] + [라이트닝 네트워크]

이더리움 = 
             = [메인체인] + [플라즈마] + [스테이트 채널] + [컨소시엄]
이더리움의 경우 플라즈마 트랜잭션 결과만 메인체인에 전달해 처리 속도를 향상시키는 알고리즘 등의 확장성 기술이 추가되면 비자 카드에 버금가는 45,000 DTPS도 가능할 것으로 예상된다.[10]

각주

  1. 니르바나, 〈블록체인의 분기〉, 《티스토리》
  2. 2.0 2.1 손동하, 〈메인체인〉, 《브런치》, 2019-08-10
  3. 특별취재팀, 〈비트코인골드 설립자 "블록체인 원리는 생존"〉, 《지디넷코리아》, 2018-09-17
  4. 조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about
  5. 이규상, 〈블록체인 거래속도 이대로 충분할까요?〉, 《삼성SDS》, 2019-05-21
  6. 6.0 6.1 이더리움 플라스마란?〉, 《바이낸스 아카데미》, 2019-09-17
  7. Youngtaek (Robbie) OH, 〈블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview〉, 《미디엄》, 2018-04-12
  8. 펀디는 사랑, 〈이오스 메인 체인 론칭 1년… 거버넌스 실험의 교훈 – 上〉, 《코인토크》, 2019-06-19
  9. 이더리움 블록과 블록체인〉, 《티스토리》, 2018-08-17
  10. Coinness, 〈좋은 블록체인의 기준은 무엇일까?〉, 《코인니스》, 2019-07-08

참고자료

같이 보기


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