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

"메인체인"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(비트코인)
16번째 줄: 16번째 줄:
 
* '''블록의 분기'''
 
* '''블록의 분기'''
 
: 각 노드는 독자적으로 블럭을 만들 수 있는데, 여러 노드가 비슷한 시기에 블럭을 만들어서 제출 할 수 있어 노드가 분기 될 것이다. 이 중 하나의 블럭체인을 정식 블럭체인으로 승인하고, 다른 증복된 블럭체인은 버려야 할 것이다. 비트코인은 가장 빠르게 성정한 블럭체인을 메인 체인으로 인정한다. 어떤 노드가 블럭을 제출했다고 가정해 보면, 채굴자들은 가능한 빠르게 이전블럭으로 부터 새로운 블럭을 만들어야 자신 소유의 블럭을 만들 확률이 높아져 이기적인 목적하에, 가장 성공 할만한 블럭을 찾게 될 것인데, 가장 성공 할만한 블럭이란 가장 빠르게 제출된 블럭이 된다. 만약 충분한 수의 노드와 컴퓨팅 파워를 보유하고 있다면, 자신의 블럭이 메인 체인이 포함되도록 조작 할 수 있어 이 문제는 네트워크의 규모로 해결 할 수 있지만, 초반 규모가 충분하지 않을 때, 체인의 조작을 어떻게 막을지에 대한 설계도 필요 하다.<ref>조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about </ref>
 
: 각 노드는 독자적으로 블럭을 만들 수 있는데, 여러 노드가 비슷한 시기에 블럭을 만들어서 제출 할 수 있어 노드가 분기 될 것이다. 이 중 하나의 블럭체인을 정식 블럭체인으로 승인하고, 다른 증복된 블럭체인은 버려야 할 것이다. 비트코인은 가장 빠르게 성정한 블럭체인을 메인 체인으로 인정한다. 어떤 노드가 블럭을 제출했다고 가정해 보면, 채굴자들은 가능한 빠르게 이전블럭으로 부터 새로운 블럭을 만들어야 자신 소유의 블럭을 만들 확률이 높아져 이기적인 목적하에, 가장 성공 할만한 블럭을 찾게 될 것인데, 가장 성공 할만한 블럭이란 가장 빠르게 제출된 블럭이 된다. 만약 충분한 수의 노드와 컴퓨팅 파워를 보유하고 있다면, 자신의 블럭이 메인 체인이 포함되도록 조작 할 수 있어 이 문제는 네트워크의 규모로 해결 할 수 있지만, 초반 규모가 충분하지 않을 때, 체인의 조작을 어떻게 막을지에 대한 설계도 필요 하다.<ref>조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about </ref>
 +
 +
* '''트랜잭션 처리기법'''
 +
: 블록체인 성능을 올리는 연구, 개발들은 다양한 분야에서 진행 중이다. 합의 알고리즘은 가장 대표적인 연구 분야 중 하나로써, 작업증명(PoW), 지분증명(PoS), 위임지분증명(DPoS), 프랙티컬 비잔틴 장애 허용(PBFT) 등은 많이 알려져 있는 합의 알고리즘인데, 이들은 모든 거래정보를 블록체인 내부에 저장하기 때문에 온체인(On-Chain) 트랜잭션 으로도 불린다. 반대로, 블록체인 내부가 아닌 외부의 성능을 개선하는 오프체인(Off-Chain) 트랜잭션 연구도 진행 중이다. 비트코인 처리량을 늘리기 위한 라이트닝 네트워크(Lighting Network), 이더리움 거래처리를 위한 플리즈마, 라이덴 네트워크(Plasma, Raiden Network) 등이 널리 알려져 있으며, 이들의 특징은 가상화폐 거래를 위해 대표거래자인으로 예를 들어, 엘리스(Alice)와 밥(Bob) 사이의 일정 금액을 비트코인과 같은 메인 체인에서 동결시키고, 당사자 간 세부거래들은 별도의 체인 혹은 채널에서 거래한 뒤, 최종 결과만을 다시 메인 체인에 기록한다. 이는 메인 체인에서 거래 시 발생하는 수수료 및 합의지연 시간을 최소화하며, 오프체인에서 별도의 거래처리를 수행하는 방식으로서 거래처리 성능을 향상시킬 수 있지만, 가상화폐와 같이 동결시킬 자산이 있어야 하며, 거래당사자 간 세부거래가 발생해야만 한다는 점 등으로 가상화폐거래소 등 특정 분야에만 적용이 가능한 제약을 갖고 있다.<ref>이규상, 〈[https://www.samsungsds.com/global/ko/support/insights/1207669_2284.html 블록체인 거래속도 이대로 충분할까요?]〉, 《삼성SDS》, 2019-05-21 </ref>
  
 
== 활용 ==
 
== 활용 ==
107번째 줄: 110번째 줄:
 
*  Coinness, 〈[https://kr.coinness.com/articles/42536 좋은 블록체인의 기준은 무엇일까?]〉, 《코인니스》, 2019-07-08
 
*  Coinness, 〈[https://kr.coinness.com/articles/42536 좋은 블록체인의 기준은 무엇일까?]〉, 《코인니스》, 2019-07-08
 
* Youngtaek (Robbie) OH, 〈[http://a.to/19xx6qH 블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview]〉, 《미디엄》, 2018-04-12
 
* Youngtaek (Robbie) OH, 〈[http://a.to/19xx6qH 블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview]〉, 《미디엄》, 2018-04-12
 +
* 이규상, 〈[https://www.samsungsds.com/global/ko/support/insights/1207669_2284.html 블록체인 거래속도 이대로 충분할까요?]〉, 《삼성SDS》, 2019-05-21
  
 
==같이 보기==
 
==같이 보기==

2019년 9월 20일 (금) 16:57 판

체인 구조도 A, B, C로 이어지는 A가 메인체인 이 된다.
최초 블록(파란색)을 시작으로 검은색 블록들로 가장 길게 연결된 체인이 메인(main)체인이다. 빨간색은 메인체인으로부터 중간에 파생된 체인으로 고아(Orphan)체인이라고 부르며 이 체인은 보통 버려진다.

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

개요

특징

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

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

활용

이더리움

이더리움(Ethereum)

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

  • 부정행위 방지
차일드 체인과 루트 체인(root chaini)의 통신은 부정 행위를 방지함으로 보안을 유지하며, 루트 체인은 네트워크를 안전하게 유지하고 악의적인 행위자들을 처벌할 책임을 갖고 있는데, 각 차일드 체인에는 다양한 합의 알고리즘 위에 구축될 수 있는, 유효한 블록을 검증하고 특정한 부정 행위 방지를 구현하는, 자체 메커니즘이 있다. 가장 일반적인 것은 작업 증명, 지분 증명, 그리고 권위 증명으로, 부정 행위 방지는 악성 행위들이 이뤄질 때, 사용자가 부정직한 노드를 보고할 수 있게 하고, 자신들의 자금을 보호하며, 거래를 종료하면, 메인 체인과의 상호 작용을 포함 시킬 수 있게 되며, 부정 행위 방지는 플라스마 차일드 체인이 자신의 페어런트 체인이나 루트 체인에 이의를 제기하는 메커니즘으로 사용된다.[4]
  • 엉클블록
이더리움의 경우 현재 합의 알고리즘인 작업증명(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) 둘 다 통과하여 자산이 메인체인으로 넘어간다.

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

비교

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

비트코인 이더리움
블록해시 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도 가능할 것으로 예상된다.[7]

각주

  1. 1.0 1.1 손동하, 〈메인체인〉, 《브런치》, 2019-08-10
  2. 조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about
  3. 이규상, 〈블록체인 거래속도 이대로 충분할까요?〉, 《삼성SDS》, 2019-05-21
  4. 4.0 4.1 이더리움 플라스마란?〉, 《바이낸스 아카데미》, 2019-09-17
  5. Youngtaek (Robbie) OH, 〈블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview〉, 《미디엄》, 2018-04-12
  6. 이더리움 블록과 블록체인〉, 《티스토리》, 2018-08-17
  7. Coinness, 〈좋은 블록체인의 기준은 무엇일까?〉, 《코인니스》, 2019-07-08

참고자료

같이 보기


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