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

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

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 4명의 중간 판 59개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[파일:고아블록.PNG|썸네일|300픽셀|'''체인 구조도''' A, B, C로 이어지는 A가 메인체인 이 된다.]]
+
[[파일:고아블록.PNG|썸네일|300픽셀|'''체인 구조도'''<br> (A, B, C로 이어지는 A가 메인체인이 된다.)]]
[[파일:블록체인 구조도.png|썸네일|400픽셀|최초 블록(파란색)을 시작으로 검은색 블록들로 가장 길게 연결된 체인이 메인(main)체인이다. 빨간색은 메인체인으로부터 중간에 파생된 체인으로 고아(Orphan)체인이라고 부르며 이 체인은 보통 버려진다.]]
+
[[파일:블록체인 구조도.png|썸네일|400픽셀|검은색 블록들로 가장 길게 연결된 체인이 '''메인(main)체인'''이다. <br>빨간색은 중간에 파생된 체인으로 '''고아(Orphan)체인'''이라고 부르며,<br> 이 체인은 보통 버려진다.]]
  
'''메인체인'''<!--메인 체인-->(main chain)은 [[제네시스 블록]]부터 가장 최근의 [[블록]]까지 연결되어 있는 [[체인]]이다. '''최장체인''' 또는 '''주요체인'''이라고도 부르며 가장 많은 [[해시파워]]가 투입되는 [[체인]]에 그 다음 [[블록]]이 연결된다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크 를 유발한다. [[동시 채굴]]이라는 용어는 정확히 같은 순간에 채굴에 성공했다는 개념이 아니며, 모든 [[노드]]들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 [[포크]]가 생겼다고 볼 수 있다.  
+
'''메인체인'''<!--메인 체인-->(main chain)은 [[제네시스 블록]]부터 가장 최근의 블록까지 연결되어 있는 체인이다. '''최장체인''' 또는 '''주요체인'''이라고도 부르며 가장 많은 [[해시파워]]가 투입되는 체인에 그 다음 블록이 연결된다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크 를 유발한다. [[동시 채굴]]이라는 용어는 정확히 같은 순간에 채굴에 성공했다는 개념이 아니며, 모든 노드들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 [[포크]]가 생겼다고 볼 수 있다.  
  
==개요==
+
== 개요 ==
흔이 메인 체인은 가장 긴 체인 이라고 언급을 한다. 하지만 정확한 기준은 누적 난이도가 제일 높은 체인이며 대게 가장 긴 체인일 수록 누적 난이도가 높기에 흔히 긴 체인이라고 표현한다. 네트워크 전파속도 차이로 인해서 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크를 유발한다. 동시채굴 이라는 용어는 정확히 같은 순간에 채굴을 성공한다는 개념이 아니며, 모든 노드들에게 블록이 전파되기전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 포크가 생겼다고 볼 수 있다.<ref name="메인 체인">손동하, 〈[https://brunch.co.kr/@dongha-sohn/11 Bitcoin#8 : 메인 체인]〉, 《개인 블로그》, 2019-04-10</ref>
+
[[채굴노드]]에서 채굴에 성공된 블록이 인근노드로 전파가 시작되면 해당 블록을 전달받은 노드들은 그 블록의 유효성을 검사하여 유효한 경우 자신의 메인체인에 블록을 연결하여 [[블록체인]]의 길이를 연장시키고 다시 인근노드로 블록을 전달하게 된다. 이 과정이 순차적으로 이루어져 전체 블록체인에 동일한 블록이 추가된다. 동시에 두 개의 유효한 블록이 생성되어 전파되는 경우 일시적으로 블록체인이 두 개의 브랜치로 분기가 발생할 수 있지만, 블록체인의 분기가 발생하더라도 다음 블록의 생성 시점에 하나의 메인체인으로 수렴이 이루어지게 된다.<ref>니르바나, 〈[https://ihpark92.tistory.com/17 블록체인의 분기]〉, 《티스토리》 </ref>
  
==특징==
+
[[제네시스 블록]](genesis block)은 블록체인 네트워크의 시작을 상징하는 첫 번째 블록으로, 첫 번째 블록이 생성된 이후 다음 블록이 지속해서 연결되고, 블록이 생성된 순서는 [[높이]]로 표현하며, 0번 블록은 네트워크가 최초에 시작될 때 만들어진 제네시스블록 인데, 이 제네시스블록부터 가장 최근의 블록까지 연결된 체인이다.<ref>〈[https://www.okcoinkr.com/ 블록체인 기본용어]〉, 《오케이코인》 </ref>
===엉클블록===
+
 
이더리움의 경우 현재 합의 알고리즘인 [[작업증명]](PoW; Proof of Work) 방식으로 [[블록]]을 계속해서 생성한다. 만약 서로 다른 채굴자가 동시에 블록을 생성하는 경우, 더 어려운 난이도와 큰 Nonce 값을 가진 블록은 블록체인에 연결되고, 다른 하나는 버려지게 된다. 이 때, 버려지는 블록을 [[엉클블록]](uncle block)이라고 한다.
+
== 특징 ==
===고아블록===
+
메인체인은 가장 긴 체인이라고 불린다. 하지만 정확한 기준은 누적 난이도가 제일 높은 체인이며, 대개 가장 긴 체인일수록 누적 난이도가 높아 흔히 긴 체인이라고 표현한다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전 같은 블록을 채굴하는 경우가 종종 발생하며 이는 [[포크]](분기)를 유발한다. 동시 채굴이라는 용어는 정확히 같은 순간에 채굴에 성공한다는 개념이 아니며, 모든 노드들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 포크가 생겼다고 볼 수 있다.<ref name="메인 체인">손동하, 〈[https://brunch.co.kr/@dongha-sohn/11 메인체인]〉, 《브런치》, 2019-08-10 </ref>
고아거래와 같이 네트워크 속도차이로 인하여 이전 블록을 찾을 수 없는 블록이 발생하며 이를 [[고아블록]](orphan block)이라고 한다.
+
 
===브랜치블록===
+
[[사이드 체인]]은 두 블록체인간의 [[양방향 연결]](투 웨이 페그; Two-way peg)을 활용한 방법이고, 거래 결과를 확인해야 하는 곳을 메인체인이라 한다면, 코인을 동결상태로 만들고 그 액수만큼 [[보증금 증명]]을 생성해 [[차일드 체인]]에서 코인을 발행한다. 이후 거래된 차일드체인의 코인을 소각하고 [[인출금 증명]]을 생성한 뒤 메인체인의 코인 동결을 해제하는 방식으로 처리한다. 사이드체인의 양방향 연결은 보안을 저해하지 않고 선형적으로 확장 가능한 방법이며, 이를 활용한 [[이더리움]] 샤딩 구조의 사례를 들어 메인체인은 풀노드로 온전히 검증되고 차일드체인은 이용자를 통해 온전히 검증되고 메인체인을 통해 보호된다. 플라즈마는 메인체인에서 [[네이티브 화폐]] 처리, 차일드체인에서 스마트 컨트랙트 실행을 하는 아이디어로 비트코인 스크립트를 통해 구현될 수 있는데, 이는 메인체인의 확장성 제약을 해소하고 메인체인의 보안성과 탈중앙성을 보호하며 차일드 체인에 부가적인 보안성을 제공한다.<ref>특별취재팀, 〈[https://www.zdnet.co.kr/view/?no=20180917172959 비트코인골드 설립자 "블록체인 원리는 생존"]〉, 《지디넷코리아》, 2018-09-17 </ref>
블록체인은 단 하나의 [[체인]]으로 이루어져 있지 않다. 네트워크 전파의 속도 차이로 인해 메인체인의 다른 경우를 고려하여 [[서브체인]]을 보유하고 있다.
+
 
===하드포크===
+
사토시 논문에서 메인체인은 발생한 사건들의 순서를 증명하는 동시에 그 사건들이 최대 규모의 컴퓨팅 파워 풀을 통해 입증되었음을 나타낸다. 다수의 컴퓨팅 파워가 네트워크에 대한 공격 의도가 없는 노드들에 의해 제어되는 한 이 노드들은 길이가 가장 긴 체인을 생성하여 공격자들을 물리칠 것이고, 네트워크는 최소한의 구조를 갖춰야 하는데, 각 노드에서 발생하는 메시지는 네트워크 안에서 최대한 공유된다. 노드들은 네트워크에서 자유롭게 참여하고 떠나기를 반복할 수 있으며, 부재중에 발생한 일에 대한 증거로 최장 길이를 유지하는 [[작업증명]](PoW) 체인인 메인체인을 채택한다.<ref>윌리엄 무가야, 〈[http://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS1093149183 비즈니스 블록체인 #2, 블록체인이란 무엇인가? (1/2)]〉, 《한빛미디어》, 2017-05-10 </ref>
[[하드포크]]란 모든 채굴자와 사용자가 반드시 업데이트를 필수적으로 즌행해야 하는 [[포크]]를 의미한다. 대표적인 예시로 [[비트코인캐시]]의 난이도 조절과 블록 사이즈 8MB 확장 등이 있다.  다수의 노드들의 반발로 새로운 암호화폐를 만든 케이스로는 [[비트코인]]에서 [[비트코인캐시]]의 탄생, [[이더리움]]에서 [[이더리움 클래식]]의 탄생, [[비트코인캐시]]에서 [[비트코인에스브이]]의 탄생 등이 있다.
+
 
===소프트포크===
+
;고아 블록
[[소프트포크]]는 사용자의 경우 업데이트를 진행하지 않아도 호환이 가능하지만, 채굴자들의 업데이트를 진행해야 적용이 되는 포크이다. 이에 대표적인 예시로 [[세그윗]](Segwit)이 있다.<ref name="메인 체인"></ref>
+
고아거래와 같이 네트워크 속도 차이로 인하여 이전 블록을 찾을 수 없는 블록이 발생하며 이를 고아블록(orphan block)이라고 한다.
 +
;브랜치 블록
 +
블록체인은 단 하나의 체인으로 이루어져 있지 않다. 네트워크 전파의 속도 차이로 인해 메인체인의 다른 경우를 고려하여 [[서브체인]]을 보유하고 있다.
 +
;하드포크
 +
하드 포크란 모든 채굴자와 사용자가 반드시 업데이트를 필수적으로 진행해야 하는 [[포크]]를 의미한다. 대표적인 예시로 [[비트코인캐시]]의 [[채굴 난이도]] 조절과 블록 사이즈 8MB 확장 등이 있다.  다수의 노드들의 반발로 새로운 암호화폐를 만든 케이스로는 비트코인에서 [[비트코인캐시]]의 탄생, 이더리움에서 [[이더리움 클래식]]의 탄생, 비트코인캐시에서 [[비트코인에스브이]]의 탄생 등이 있다.
 +
;소프트 포크
 +
소프트 포크는 사용자의 경우 업데이트를 진행하지 않아도 호환할 수 있지만, 채굴자들의 업데이트를 진행해야 적용이 되는 포크이다. 이에 대표적인 예시로 [[세그윗]](Segwit)이 있다.<ref name="메인 체인"></ref>
 +
 
 +
;블록의 분기
 +
각 노드는 독자적으로 블록을 만들 수 있는데, 여러 노드가 비슷한 시기에 블록을 만들어서 제출 할 수 있어 노드가 분기될 것이다. 이 중 하나의 블록체인을 정식 블록체인으로 승인하고, 다른 중복된 블록체인은 버려야 할 것이다. 비트코인은 가장 빠르게 성장한 블록체인을 메인체인으로 인정한다. 어떤 노드가 블록을 제출했다고 가정해 보면, 채굴자들은 가능한 한 빠르게 이전 블록으로부터 새로운 블록을 만들어야 자신 소유의 블록을 만들 확률이 높아져 이기적인 목적하에, 가장 성공할만한 블록을 찾게 될 것인데, 가장 성공할만한 블록이란 가장 빠르게 제출된 블록이 된다. 만약 충분한 수의 노드와 컴퓨팅 파워를 보유하고 있다면, 자신의 블록이 메인 체인이 포함되도록 조작 할 수 있어 이 문제는 네트워크의 규모로 해결 할 수 있지만, 초반 규모가 충분하지 않을 때, 체인의 조작을 어떻게 막을지에 대한 설계도 필요하다.<ref>조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about </ref>
 +
 
 +
;트랜잭션 처리기법
 +
블록체인 성능을 올리는 연구, 개발들은 다양한 분야에서 진행 중이다. [[합의 알고리즘]]은 가장 대표적인 연구 분야 중 하나로서, [[작업증명]](PoW), [[지분증명]](PoS), [[위임지분증명]](DPoS), [[프랙티컬 비잔틴 장애 허용]](PBFT) 등은 많이 알려져 있는 합의 알고리즘인데, 이들은 모든 거래정보를 블록체인 내부에 저장하기 때문에 [[온체인 트랜잭션]]으로도 불린다. 반대로, 블록체인 내부가 아닌 외부의 성능을 개선하는 [[오프체인 트랜잭션]] 연구도 진행 중이다. 비트코인 처리량을 늘리기 위한 [[라이트닝 네트워크]], 이더리움 거래처리를 위한 플라즈마, [[라이덴 네트워크]](Raiden Network) 등이 널리 알려져 있으며, 이들의 특징은 암호화폐 거래를 위해 대표 거래자인으로 예를 들어, 엘리스(Alice)와 밥(Bob) 사이의 일정 금액을 비트코인과 같은 메인체인에서 동결시키고, 당사자 간 세부거래들은 별도의 체인 혹은 채널에서 거래한 뒤, 최종 결과만을 다시 메인체인에 기록한다. 이는 메인체인에서 거래 시 발생하는 수수료 및 합의지연 시간을 최소화하며, 오프체인에서 별도의 거래처리를 수행하는 방식으로서 거래처리 성능을 향상할 수 있지만, [[암호화폐]]와 같이 동결시킬 자산이 있어야 하며, 거래당사자 간 세부거래가 발생해야만 한다는 점 등으로 암호화폐거래소 등 특정 분야에만 적용이 가능한 제약을 갖고 있다.<ref>이규상, 〈[https://www.samsungsds.com/global/ko/support/insights/1207669_2284.html 블록체인 거래속도 이대로 충분할까요?]〉, 《삼성SDS》, 2019-05-21 </ref>
 +
 
 +
트랜잭션에 따라 의도적으로 분기(포크; fork)를 허용함으로써, 유의미한 관계를 갖는 트랜잭션들로 이루어진 개별적인 블록체인 구성이 가능함을 의미한다. 예를 들어, 문서를 기준으로 할 경우에는, 각 문서의 최초 생성은 기존 블록체인과 동일한 선형적인 메인체인에 기록되지만, 이미 메인체인에 기록된 특정 문서에 대하여 발생한 변경 등의 추가 트랜잭션은 메인체인이 아니라 메인체인 상의 해당 블록을 제네시스 블록으로 하는 또 다른 블록체인인 [[서브체인]]상에 기록된다.<ref name="채용">블록체인 기반의 채용 정보제공
 +
시스템 구축방안 검토 PDF - http://a.to/198bx7j </ref>
 +
 
 +
[[파일:엑스블록의 다중해시 연결구조.PNG|썸네일|400픽셀|'''엑스블록의 다중해시 연결구조''']]
 +
 
 +
;엑스 트랜잭션
 +
엑스 트랜잭션이란, [[엑스블록]](X.Block)을 생성하기 위한 트랜잭션이다. 엑스 트랜잭션 처리를 위한 수수료는 일반 트랜잭션 처리 수수료와는 차별되나, 그에 대한 결정은 어디까지나 블록 생성 및 검증자의 재량으로 위임되며, 불필요한 엑스블록 및 서브체인 생성으로 이어지는 엑스 트랜잭션의 과다한 발생을 막아 전체 블록체인의 효율성을 높이기 위해서 일반 트랜잭션의 수수료보다 높은 수수료가 정책 되어 엑스 트랜잭션의 처리 수수료는 메인체인의 자산으로 지불된다. 메인체인은 선형적인 블록 연결 구조로 구성된 상위 블록체인으로 복수의 서브체인을 가질 수 있고, 다른 상위 메인체인의 서브체인일 수 있다. 서브체인은 메인체인의 특정 블록을 제네시스 블록으로 하여 구성된 독립적인 블록체인, 서브체인은 또 다른 하위 서브체인의 메인체인이 될 수 있다.<ref name="채용"></ref>
 +
 
 +
;엑스블록
 +
엑스블록의 [[다중 해시]] 연결구조로 엑스블록은 일반 블록과 달리 복수의 해시 연결 구조를 가지는데, 즉 바로 이전 블록과의 해시 연결과 동시에 이전 엑스블록과의 연결이다. 이러한 다중의 연결 구조를 갖는 이유는 [[엑스 블록체인]](X.Blockchain)이 전자문서를 포함한 모든 전자적 데이터의 무결성을 보다 효율적으로 보장한다.
 +
 
 +
 
 +
만일 엑스블록체인에서 메인체인상의 자산 거래가 아닌 데이터의 무결성 검증만을 목적으로 하는 클라이언트라면 일반 블록은 유지할 필요 없이 엑스블록들로만 구성된 메인체인 일부와 특정 서브체인을 유지하는 것만으로, 해당 서브 체인에 포함되는 모든 데이터의 검증에 필요한 블록체인을 구성할 수 있게 된다. 엑스블록으로만 구성된 메인체인의 일부는 그 자체로 단일한 블록 연결을 해야 하며, 이러한 이유로 엑스블록은 일반 블록과의 연결 이외에 바로 직전의 엑스블록과의 연결 구조를 추가로 가지게 된다.<ref name="채용"></ref>
 +
 
 +
== 활용 ==
 +
===이더리움===
 +
[[파일:이더리움 글자.png |썸네일|300픽셀|'''이더리움'''(Ethereum)]]
 +
[[이더리움 플라스마]]의 주된 아이디어는 메인 체인과 가능한 한 여유롭게 통신하고 상호작용하는 사이드 체인의 기초를 구축하는 것으로, 이러한 기초 작업은 블록체인 트리로 작동하도록 설계되고 있으며, [[블록체인 트리]]는 메인 체인 위에 수많은 작은 체인들이 생성될 수 있도록 계층적으로 배열되어 있다. 이처럼 작은 체인들을 [[플라스마 체인]] 혹은 [[차일드 체인]]이라 한다. 플라스마 구조는 [[스마트 콘트랙트]]와 [[머클 트리]]를 사용하여, 기본적으로 [[페어런트]] 이더리움 블록체인의 작은 복사본인 무한한 숫자의 차일드 체인을 만들 수 있게 하는데, 각 차일드 체인 위에 더 많은 체인이 만들어질 수 있고, 이는 트리(tree)와 같은 구조를 이룬다. 기본적으로 각 [[플라스마 차일드 체인]]은 서로 다른 요구를 충족시키는 단일 방식으로 설계될 수 있는 맞춤형 스마트 콘트랙트이다. 이는 체인들이 공존할 수 있으며, 독립적으로 작동할 수 있음을 의미하고, 결과적으로, 플라스마는 기업과 회사가 자신들의 구체적인 상황과 필요에 따라 다양한 방법으로 확장성 해결책을 마련할 수 있게 할 것이다. 그러므로 플라스마가 이더리움 네트워크에서 성공적으로 개발되고 구현된다면 차일드 체인이 특정 목적-메인 체인의 목표와 반드시 연관될 필요는 없음을 위해 구별된 방식으로 작동하도록 설계될 것이기에 메인 체인은 덜 붐비게 될 것이고, 그 결과 차일드 체인은 메인체인의 전반적인 작업 부담을 덜게 될 것이다. 플라스마는 기본적으로 트리처럼 생긴 구조를 가진 수많은 작은 체인들을 만들어 이더리움 네트워크의 전반적인 성능을 향상하고자 하는 [[오프체인]] 해결책으로 이러한 체인들은 메인체인의 작업 부담을 완화시킬 것이고, 이로 인해 초당 더 많은 트랜잭션들을 처리할 수 있다.<ref name="빠이">〈[https://www.binance.vision/ko/blockchain/what-is-ethereum-plasma 이더리움 플라스마란?]〉, 《바이낸스 아카데미》, 2019-09-17 </ref>
 +
 
 +
;부정행위 방지
 +
차일드 체인과 [[루트체인]](root chaini)의 통신은 부정행위를 방지함으로 보안을 유지하며, 루트체인은 네트워크를 안전하게 유지하고 악의적인 행위자들을 처벌할 책임을 갖고 있는데, 각 차일드체인에는 다양한 [[합의 알고리즘]] 위에 구축될 수 있는, 유효한 블록을 검증하고 특정한 부정행위 방지를 구현하는, 자체 메커니즘이 있다. 가장 일반적인 것은 [[작업증명]](PoW), [[지분증명]](PoS), 그리고 [[권위증명]](PoA)으로, 부정행위 방지는 악성 행위들이 이뤄질 때, 사용자가 부정직한 노드를 보고할 수 있게 하고, 자신들의 자금을 보호하며, 거래를 종료하면, 메인체인과의 상호 작용을 포함 시킬 수 있게 되며, 부정행위 방지는 플라스마 차일드체인이 자신의 [[페어런트 체인]]이나 루트체인에 이의를 제기하는 메커니즘으로 사용된다.<ref name="빠이"></ref>
 +
 
 +
;엉클블록
 +
이더리움의 경우 현재 합의 알고리즘인 [[작업증명]](PoW; Proof of Work) 방식으로 블록을 계속해서 생성한다. 만약 서로 다른 채굴자가 동시에 블록을 생성하는 경우, 더 어려운 [[채굴 난이도]]와 큰 [[논스]] 값을 가진 블록은 블록체인에 연결되고, 다른 하나는 버려지게 된다. 이때, 버려지는 블록을 [[엉클블록]](uncle block)이라고 한다. {{자세히|이더리움}}
 +
 
 +
=== 비트코인===
 +
[[파일:비트코인 글자.png|썸네일|300픽셀|'''비트코인'''(bitcoin)]]
 +
비트코인 자산 이동의 전반적인 흐름은 메인체인에서 사이드 체인으로 1비트코인을 보내기 위해서는 여러 가지 과정을 거치는데 아직까지 사이드 체인의 계좌는 메인체인에서 유효한 계좌가 아니기 때문에 사이드체인에 있는 계좌로 바로 보내줄 수는 없다. 그 대신 메인체인은 1비트코인을 동결(페그; peg)하여 사이드체인에서는 메인체인이 동결한 자산과 동일한 가치를 지니는 자산이 발행되어 유통된다. 사이드체인에서 다시 메인체인으로 자산을 보내고 싶다면 사이드체인에서 발행했던 1비트코인은 동결되고 메인체인에 묶여있던 1비트코인은 다시 풀리게 된다.
 +
 
 +
 
 +
: [[파일:성실.PNG|썸네일|400픽셀|'''비트코인 자산 이동 흐름''']]
 +
 
 +
자세히 어떤 일이 일어나는지 시간 순서대로 다음과 같다.
 +
 
 +
# 메인체인에서 확인 시간 동안 락(lock)이 걸린 트랜잭션을 만들고, 확인 시간의 목적은 [[도스]](DoS) 공격을 하는 사람의 유인을 줄이기 위해 딜레이를 주기 위함으로 [[디도스]](DDoS) 공격을 막기 위해 홈페이지에서 일정 시간 동안 임시페이지를 띄우는 것과 원리가 유사하다.
 +
# 메인체인에서 만든 트랜잭션의 락이 풀렸다면 이제 사이드체인에서 해당 트랜잭션을 [[SPV]]를 이용해 유효성을 검증하면 SPV로 트랜잭션을 검증했다 하더라도 확인 시간 동안 해당 트랜잭션을 유효하며, 재편성이 일어날 가능성이 있기 때문이다.
 +
# 다시 사이드 체인에서 메인체인으로 자산을 보내려면 똑같은 과정을 거친다. 위의 그림에서는 [[사이드 체인]]에서 메인체인으로 보낼 때 첫 번째 시도에서 리올그(Reorg)가 일어난 상황을 가정하고 있다. 특정 노드가 트랜잭션이 리올그된 체인에 담겨있는 것을 확인하면 메인체인에 개편된 증거를 제시할 수 있다. 메인체인은 이를 쉽게 확인 가능할 것이며 SPV가 가능하기 때문에 해당 트랜잭션을 유효하지 않은 트랜잭션으로 판단할 수 있다. 또한 개편증거를 하는 사람에게 보상을 줘서 해당 행동을 할 유인을 만들 수 있다.
 +
# 마지막으로 다시 사이드 체인에서 트랜잭션을 발생시키고 이번에는 확인 시간과 컨테스트 기간 둘 다 통과하여 자산이 메인체인으로 넘어간다.
 +
 
 +
사이드 체인이 만약 메인체인의 자산을 일부 보관하는 용도로 쓰인다면 메인체인보다 경제 규모가 작을 가능성이 높아 비유하자면 메인체인은 미국 같은 선진국이고 사이드 체인은 개발도상국으로 표현할 수 있다. 이 경우, 사이드체인에서 거래가 활발하게 일어나지 않는다면 메인체인 쪽으로 자산이 쏠릴 가능성(뱅크런)이 있다.<ref>Youngtaek (Robbie) OH, 〈[http://a.to/19xx6qH 블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview]〉, 《미디엄》, 2018-04-12 </ref>  {{자세히|비트코인}}
 +
 
 +
===이오스===
 +
[[파일:이오스 글자.png|썸네일|300픽셀|'''이오스'''(EOS)]]
 +
 
 +
 
 +
[[이오스]](EOS) 메인 체인은 세계 최초의 통치 가능한 블록체인으로, 많은 의미가 있지만, 최초로 헌법과 분쟁 조정 방안이 적용된 [[블록체인]]이다. 이오스의 첫 메인넷이었던 [[이오스아이오]](eos.io)를 개발한 블록원의 [[댄 라리머]](Dan Larimer) 최고기술책임자(CTO)는 스팀잇 재직 당시에도 스팀에 적용할 헌법을 준비했다. 이오스에선 처음으로 이를 적용하여, 하드포크로 흔히 이야기하는 커뮤니티의 분열을 피하기 위해서는 헌법이 필요한데, 커뮤니티의 힘을 약하게 만드는 하드포크는 1%의 표로도 어뷰징이 가능하므로 다수결 원칙의 취약성 때문에 발생한다. 이오스 메인체인의 헌법은 이를 초월하는 단계에 자리한다. 헌법은 커뮤니티가 공유하는 가치를 명시하고, 커뮤니티는 그 가치를 지키는 방향에서 발전 사항을 합의한다. 따라서 이오스 메인체인에는 커뮤니티 분열을 뜻하는 하드포크가 존재하지 않으며, 헌법과 더불어 이오스 메인 체인에서는 분쟁 조정이 가능하고, 댄 라리머는 코드가 법이 아니라, 코드의 의도가 법이라고 말한다. 버그 없는 코드와 소프트웨어는 존재하지 않기에 블록체인에서 구동되는 스마트 컨트랙트에도 버그가 있을 수밖에 없어, 소프트웨어를 넘어서 조직 구성과 운영의 새로운 수단으로 블록체인을 사용하기 위해서는 다양한 분쟁 상황을 조정할 수 있어야만 해서, 댄 라리머는 이를 위해 [[리카르디안 컨트랙트]](Ricardian contract)를 스마트 컨트랙트와 함께 작성하도록 했다.
 +
 
 +
통치 가능한 블록체인이기 때문에 이를 토대로 사업을 전개할 수 있다는 점, 이오스아이오 소프트웨어의 강력한 성능과 사업에 영향을 줄 위험을 거버넌스 측면에서 배제할 수 있다는 것이 기업가에겐 큰 장점이다. 또한, 온전히 블록체인을 통해 모든 조직 활동이 이뤄지려면 앞으로 거쳐야 하는 관문이 매우 많으며 그 채택 속도도 예측할 수 없어서 모험적인 기업가가 개척해야만 한다. 동시에 기업 활동은 매우 현실적이다. 예를 들어 여러 기업가가 모여서 블록체인에서 구동되는 탈중앙화 자율 조직을 구성해 운영한다면 해당 블록체인이 하드포크로 커뮤니티가 분열될 경우, 외부에서 발생한 이유로 조직의 명운이 갈리게 되고 그 조직이 현실 세계의 법인과 거래한다면 모종의 이유로 그 거래가 중간에 깨어지고 피해가 발생할 경우 분쟁을 조정할 수 있어야 한다. 이오스 메인체인은 이를 위한 블록체인 [[거버넌스]]를 만들고 있다. 보이스를 사용하기 위해서는 [[고객 신원확인]](KYC)를 거쳐야 하기 때문에 보이스 계정을 이오스 메인 체인에 새로이 깔리는 신원인증 레이어로 바라보고 그 계정만 대상으로 토큰 발행을 고려한다면 어려움의 해결 방안을 찾을 수 있다.<ref>펀디는 사랑, 〈[http://cointalk.co.kr/bbs/board.php?bo_table=beginner&wr_id=16115 이오스 메인 체인 론칭 1년… 거버넌스 실험의 교훈 – 上]〉, 《코인토크》, 2019-06-19 </ref> {{자세히|이오스}}
  
 
==비교==
 
==비교==
 +
 +
'''<비트코인과 이더리움 메인체인 비교>'''<ref>〈[https://brownbears.tistory.com/394 이더리움 블록과 블록체인]〉, 《티스토리》, 2018-08-17</ref>
 +
 
{| border="1"
 
{| border="1"
 
|-
 
|-
26번째 줄: 90번째 줄:
 
| 이더리움
 
| 이더리움
 
|-
 
|-
| 블록해시
+
| [[블록해시]]
 
| hash
 
| hash
 
| state_root  
 
| state_root  
 
|-
 
|-
| 이전 블록해시
+
| [[이전블록해시]]
 
| prev_lbock
 
| prev_lbock
 
| parent_hash  
 
| parent_hash  
 
|-
 
|-
| 거래 관련된 루트해시  
+
| 거래 관련된<br> [[루트해시]]
 
| mrkl_root  
 
| mrkl_root  
 
| TRIEHASH(transaction_list)  
 
| TRIEHASH(transaction_list)  
41번째 줄: 105번째 줄:
 
TRIEHASH(stack_trace)  
 
TRIEHASH(stack_trace)  
 
|-
 
|-
| 난이도
+
| [[채굴 난이도]]
 
| bit
 
| bit
 
| difficulty  
 
| difficulty  
 
|-
 
|-
| 타임스템프
+
| [[타임스탬프]]
 
| time  
 
| time  
 
| timestamp  
 
| timestamp  
 
|-
 
|-
| 넌스
+
| [[논스]]
 
| nonce  
 
| nonce  
 
| nonce  
 
| nonce  
62번째 줄: 126번째 줄:
 
coinbase address (채굴주소)
 
coinbase address (채굴주소)
 
...등등
 
...등등
|}<ref>〈[https://brownbears.tistory.com/394 이더리움 블록과 블록체인]〉, 《티스토리》, 2018-08-17</ref>
+
|}
 +
 
 +
 
 +
;<DTPS 비교>
 +
비트코인, 이더리움에 확장성 기술을 추가했을 때는 다음과 같다.
 +
비트코인 = <math>(0.8 * 7) + (0.8 * 300) = 245 DTPS</math>
 +
              = [메인체인] + [라이트닝 네트워크]
 +
이더리움 = <math>(0.7 * 15) + (0.7 * 65,000) + (0.7 * 400) + (0.3 * 10) = 45,000 DTPS</math>
 +
              = [메인체인] + [플라즈마] + [스테이트 채널] + [컨소시엄]
 +
이더리움의 경우, 플라즈마 트랜잭션 결과만 메인체인에 전달해 처리 속도를 향상시키는 알고리즘 등의 확장성 기술이 추가되면 비자 카드에 버금가는 45,000 DTPS도 가능할 것으로 예상된다.<ref> Coinness, 〈[https://kr.coinness.com/articles/42536 좋은 블록체인의 기준은 무엇일까?]〉, 《코인니스》, 2019-07-08 </ref>
  
{{각주}}  
+
{{각주}}
  
 
==참고자료==
 
==참고자료==
 +
* 조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about
 
* 〈[https://www.okcoinkr.com/ 블록체인 기본용어]〉, 《오케이코인》
 
* 〈[https://www.okcoinkr.com/ 블록체인 기본용어]〉, 《오케이코인》
 
* 〈[https://sucoin.kr/bbs/board.php?bo_table=2200&wr_id=6543&page=351 블록체인]〉, 《슈코인》
 
* 〈[https://sucoin.kr/bbs/board.php?bo_table=2200&wr_id=6543&page=351 블록체인]〉, 《슈코인》
 
* 손동하, 〈[https://brunch.co.kr/@dongha-sohn/11 Bitcoin#8 : 메인 체인]〉, 《개인 블로그》, 2019-04-10
 
* 손동하, 〈[https://brunch.co.kr/@dongha-sohn/11 Bitcoin#8 : 메인 체인]〉, 《개인 블로그》, 2019-04-10
〈[https://brownbears.tistory.com/394 이더리움 블록과 블록체인]〉, 《티스토리》, 2018-08-17</ref>
+
* 〈[https://brownbears.tistory.com/394 이더리움 블록과 블록체인]〉, 《티스토리》, 2018-08-17</ref>
 +
* 〈[https://www.binance.vision/ko/blockchain/what-is-ethereum-plasma 이더리움 플라스마란?]〉, 《바이낸스 아카데미》, 2019-09-17
 +
*  [[조원규]], 〈[https://kr.coinness.com/articles/42536 좋은 블록체인의 기준은 무엇일까?]〉, 《코인니스》, 2019-07-08
 +
* 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
 +
* 펀디는 사랑, 〈[http://cointalk.co.kr/bbs/board.php?bo_table=beginner&wr_id=16115 이오스 메인 체인 론칭 1년… 거버넌스 실험의 교훈 – 上]〉, 《코인토크》, 2019-06-19
 +
* 니르바나, 〈[https://ihpark92.tistory.com/17 블록체인의 분기]〉, 《티스토리》
 +
* 특별취재팀, 〈[https://www.zdnet.co.kr/view/?no=20180917172959 비트코인골드 설립자 "블록체인 원리는 생존"]〉, 《지디넷코리아》, 2018-09-17
 +
* 윌리엄 무가야, 〈[http://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS1093149183 비즈니스 블록체인 #2, 블록체인이란 무엇인가? (1/2)]〉, 《한빛미디어》, 2017-05-10
  
 
==같이 보기==
 
==같이 보기==
 
* [[체인]]
 
* [[체인]]
 
* [[제네시스 블록]]
 
* [[제네시스 블록]]
 +
* [[사이드체인]]
  
{{블록체인 기술|토막글}}
+
{{블록체인 기술|검토 필요}}

2022년 3월 17일 (목) 08:42 기준 최신판

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

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

개요[편집]

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

제네시스 블록(genesis block)은 블록체인 네트워크의 시작을 상징하는 첫 번째 블록으로, 첫 번째 블록이 생성된 이후 다음 블록이 지속해서 연결되고, 블록이 생성된 순서는 높이로 표현하며, 0번 블록은 네트워크가 최초에 시작될 때 만들어진 제네시스블록 인데, 이 제네시스블록부터 가장 최근의 블록까지 연결된 체인이다.[2]

특징[편집]

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

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

사토시 논문에서 메인체인은 발생한 사건들의 순서를 증명하는 동시에 그 사건들이 최대 규모의 컴퓨팅 파워 풀을 통해 입증되었음을 나타낸다. 다수의 컴퓨팅 파워가 네트워크에 대한 공격 의도가 없는 노드들에 의해 제어되는 한 이 노드들은 길이가 가장 긴 체인을 생성하여 공격자들을 물리칠 것이고, 네트워크는 최소한의 구조를 갖춰야 하는데, 각 노드에서 발생하는 메시지는 네트워크 안에서 최대한 공유된다. 노드들은 네트워크에서 자유롭게 참여하고 떠나기를 반복할 수 있으며, 부재중에 발생한 일에 대한 증거로 최장 길이를 유지하는 작업증명(PoW) 체인인 메인체인을 채택한다.[5]

고아 블록

고아거래와 같이 네트워크 속도 차이로 인하여 이전 블록을 찾을 수 없는 블록이 발생하며 이를 고아블록(orphan block)이라고 한다.

브랜치 블록

블록체인은 단 하나의 체인으로 이루어져 있지 않다. 네트워크 전파의 속도 차이로 인해 메인체인의 다른 경우를 고려하여 서브체인을 보유하고 있다.

하드포크

하드 포크란 모든 채굴자와 사용자가 반드시 업데이트를 필수적으로 진행해야 하는 포크를 의미한다. 대표적인 예시로 비트코인캐시채굴 난이도 조절과 블록 사이즈 8MB 확장 등이 있다. 다수의 노드들의 반발로 새로운 암호화폐를 만든 케이스로는 비트코인에서 비트코인캐시의 탄생, 이더리움에서 이더리움 클래식의 탄생, 비트코인캐시에서 비트코인에스브이의 탄생 등이 있다.

소프트 포크

소프트 포크는 사용자의 경우 업데이트를 진행하지 않아도 호환할 수 있지만, 채굴자들의 업데이트를 진행해야 적용이 되는 포크이다. 이에 대표적인 예시로 세그윗(Segwit)이 있다.[3]

블록의 분기

각 노드는 독자적으로 블록을 만들 수 있는데, 여러 노드가 비슷한 시기에 블록을 만들어서 제출 할 수 있어 노드가 분기될 것이다. 이 중 하나의 블록체인을 정식 블록체인으로 승인하고, 다른 중복된 블록체인은 버려야 할 것이다. 비트코인은 가장 빠르게 성장한 블록체인을 메인체인으로 인정한다. 어떤 노드가 블록을 제출했다고 가정해 보면, 채굴자들은 가능한 한 빠르게 이전 블록으로부터 새로운 블록을 만들어야 자신 소유의 블록을 만들 확률이 높아져 이기적인 목적하에, 가장 성공할만한 블록을 찾게 될 것인데, 가장 성공할만한 블록이란 가장 빠르게 제출된 블록이 된다. 만약 충분한 수의 노드와 컴퓨팅 파워를 보유하고 있다면, 자신의 블록이 메인 체인이 포함되도록 조작 할 수 있어 이 문제는 네트워크의 규모로 해결 할 수 있지만, 초반 규모가 충분하지 않을 때, 체인의 조작을 어떻게 막을지에 대한 설계도 필요하다.[6]

트랜잭션 처리기법

블록체인 성능을 올리는 연구, 개발들은 다양한 분야에서 진행 중이다. 합의 알고리즘은 가장 대표적인 연구 분야 중 하나로서, 작업증명(PoW), 지분증명(PoS), 위임지분증명(DPoS), 프랙티컬 비잔틴 장애 허용(PBFT) 등은 많이 알려져 있는 합의 알고리즘인데, 이들은 모든 거래정보를 블록체인 내부에 저장하기 때문에 온체인 트랜잭션으로도 불린다. 반대로, 블록체인 내부가 아닌 외부의 성능을 개선하는 오프체인 트랜잭션 연구도 진행 중이다. 비트코인 처리량을 늘리기 위한 라이트닝 네트워크, 이더리움 거래처리를 위한 플라즈마, 라이덴 네트워크(Raiden Network) 등이 널리 알려져 있으며, 이들의 특징은 암호화폐 거래를 위해 대표 거래자인으로 예를 들어, 엘리스(Alice)와 밥(Bob) 사이의 일정 금액을 비트코인과 같은 메인체인에서 동결시키고, 당사자 간 세부거래들은 별도의 체인 혹은 채널에서 거래한 뒤, 최종 결과만을 다시 메인체인에 기록한다. 이는 메인체인에서 거래 시 발생하는 수수료 및 합의지연 시간을 최소화하며, 오프체인에서 별도의 거래처리를 수행하는 방식으로서 거래처리 성능을 향상할 수 있지만, 암호화폐와 같이 동결시킬 자산이 있어야 하며, 거래당사자 간 세부거래가 발생해야만 한다는 점 등으로 암호화폐거래소 등 특정 분야에만 적용이 가능한 제약을 갖고 있다.[7]

트랜잭션에 따라 의도적으로 분기(포크; fork)를 허용함으로써, 유의미한 관계를 갖는 트랜잭션들로 이루어진 개별적인 블록체인 구성이 가능함을 의미한다. 예를 들어, 문서를 기준으로 할 경우에는, 각 문서의 최초 생성은 기존 블록체인과 동일한 선형적인 메인체인에 기록되지만, 이미 메인체인에 기록된 특정 문서에 대하여 발생한 변경 등의 추가 트랜잭션은 메인체인이 아니라 메인체인 상의 해당 블록을 제네시스 블록으로 하는 또 다른 블록체인인 서브체인상에 기록된다.[8]

엑스블록의 다중해시 연결구조
엑스 트랜잭션

엑스 트랜잭션이란, 엑스블록(X.Block)을 생성하기 위한 트랜잭션이다. 엑스 트랜잭션 처리를 위한 수수료는 일반 트랜잭션 처리 수수료와는 차별되나, 그에 대한 결정은 어디까지나 블록 생성 및 검증자의 재량으로 위임되며, 불필요한 엑스블록 및 서브체인 생성으로 이어지는 엑스 트랜잭션의 과다한 발생을 막아 전체 블록체인의 효율성을 높이기 위해서 일반 트랜잭션의 수수료보다 높은 수수료가 정책 되어 엑스 트랜잭션의 처리 수수료는 메인체인의 자산으로 지불된다. 메인체인은 선형적인 블록 연결 구조로 구성된 상위 블록체인으로 복수의 서브체인을 가질 수 있고, 다른 상위 메인체인의 서브체인일 수 있다. 서브체인은 메인체인의 특정 블록을 제네시스 블록으로 하여 구성된 독립적인 블록체인, 서브체인은 또 다른 하위 서브체인의 메인체인이 될 수 있다.[8]

엑스블록

엑스블록의 다중 해시 연결구조로 엑스블록은 일반 블록과 달리 복수의 해시 연결 구조를 가지는데, 즉 바로 이전 블록과의 해시 연결과 동시에 이전 엑스블록과의 연결이다. 이러한 다중의 연결 구조를 갖는 이유는 엑스 블록체인(X.Blockchain)이 전자문서를 포함한 모든 전자적 데이터의 무결성을 보다 효율적으로 보장한다.


만일 엑스블록체인에서 메인체인상의 자산 거래가 아닌 데이터의 무결성 검증만을 목적으로 하는 클라이언트라면 일반 블록은 유지할 필요 없이 엑스블록들로만 구성된 메인체인 일부와 특정 서브체인을 유지하는 것만으로, 해당 서브 체인에 포함되는 모든 데이터의 검증에 필요한 블록체인을 구성할 수 있게 된다. 엑스블록으로만 구성된 메인체인의 일부는 그 자체로 단일한 블록 연결을 해야 하며, 이러한 이유로 엑스블록은 일반 블록과의 연결 이외에 바로 직전의 엑스블록과의 연결 구조를 추가로 가지게 된다.[8]

활용[편집]

이더리움[편집]

이더리움(Ethereum)

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

부정행위 방지

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

엉클블록

이더리움의 경우 현재 합의 알고리즘인 작업증명(PoW; Proof of Work) 방식으로 블록을 계속해서 생성한다. 만약 서로 다른 채굴자가 동시에 블록을 생성하는 경우, 더 어려운 채굴 난이도와 큰 논스 값을 가진 블록은 블록체인에 연결되고, 다른 하나는 버려지게 된다. 이때, 버려지는 블록을 엉클블록(uncle block)이라고 한다. 가기.png 이더리움에 대해 자세히 보기

비트코인[편집]

비트코인(bitcoin)

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


비트코인 자산 이동 흐름

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

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

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

이오스[편집]

이오스(EOS)


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

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

비교[편집]

<비트코인과 이더리움 메인체인 비교>[12]

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

각주[편집]

  1. 니르바나, 〈블록체인의 분기〉, 《티스토리》
  2. 블록체인 기본용어〉, 《오케이코인》
  3. 3.0 3.1 손동하, 〈메인체인〉, 《브런치》, 2019-08-10
  4. 특별취재팀, 〈비트코인골드 설립자 "블록체인 원리는 생존"〉, 《지디넷코리아》, 2018-09-17
  5. 윌리엄 무가야, 〈비즈니스 블록체인 #2, 블록체인이란 무엇인가? (1/2)〉, 《한빛미디어》, 2017-05-10
  6. 조앤 공식 홈페이지 - https://www.joinc.co.kr/w/man/12/blockChain/about
  7. 이규상, 〈블록체인 거래속도 이대로 충분할까요?〉, 《삼성SDS》, 2019-05-21
  8. 8.0 8.1 8.2 블록체인 기반의 채용 정보제공 시스템 구축방안 검토 PDF - http://a.to/198bx7j
  9. 9.0 9.1 이더리움 플라스마란?〉, 《바이낸스 아카데미》, 2019-09-17
  10. Youngtaek (Robbie) OH, 〈블록체인 확장성 솔루션 시리즈 3–1 :: Interchain Overview〉, 《미디엄》, 2018-04-12
  11. 펀디는 사랑, 〈이오스 메인 체인 론칭 1년… 거버넌스 실험의 교훈 – 上〉, 《코인토크》, 2019-06-19
  12. 이더리움 블록과 블록체인〉, 《티스토리》, 2018-08-17
  13. Coinness, 〈좋은 블록체인의 기준은 무엇일까?〉, 《코인니스》, 2019-07-08

참고자료[편집]

같이 보기[편집]


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