[개념 정리] 온 체인(Onchain), 오프 체인(Offchain)이 무엇인가?

in #kr-dev7 years ago (edited)

iron_modolee

안녕하세요. 개발자 모도리입니다. 드디어 미루고 미루던 글쓰기를 다시 시작합니다. 지난 4월부터 마음 맞는 분들과 블록체인 스터디를 진행하고 있는데, 스터디에서 얻는게 많아서 공유해 드리고자 합니다.
앞으로 올라올 컨텐츠들을 크게 세 종류가 될 것 같아요.

  • 퍼오는 좋은 컨텐츠
  • 블록체인 개념 정리 컨텐츠
  • 이더리움 스마트 컨트랙트 개발 컨텐츠

오늘 공유해 드릴 내용은 블록체인 개념 정리입니다!

블록체인 이야기를 하다보면 종종 듣는 이야기가 온체인 트랜잭션이 어떻고, 오프체인 트랜잭션이 어떻고 하는 이야기를 들을셨을 겁니다. 그리고 사이드 체인, 차일드 체인, 인터 체인... 무슨 체인들이 이렇게 많은지 도저히 정리가 안되어서 이것들을 머리 속에 한방에 정리할 수 있는 방법이 없을까 하다가 그림을 그리는게 가장 좋은 방법 같아서 그림을 그려 봤습니다.

그 전에 우선 블록체인 네트워크에서의 트랜잭션 종류에 대해서 알아보겠습니다.

트랜잭션 종류

온 체인 트랜잭션(On-chain Transaction)

말 그대로 체인 위에 발생하는 트랜잭션입니다. 그런데 여기에서의 체인은 메인(단일) 블록체인 네트워크를 의미합니다.

  • 예 : 비트코인, 이더리움 등의 자체 네트워크를 구성하고 있는 블록체인 내에서 발생하여 블록에 기록되는 트랜잭션들입니다.

오프 체인 트랜잭션(Off-chain Transaction)

온 체인 트랜잭션의 정의를 이해하셨다면, 오프체인은 그냥 쉽게 이해 하실 수 있습니다. 그냥 메인 블록체인이 아닌 곳에서 발생하는 트랜잭션인 것입니다.

  • 예 : 이더리움 네트워크의 입장에서는 비트코인 네트워크에서 주고 받는 트랜잭션은 오프체인 트랜잭션인 것입니다. 반대로 비트코인 네트워크의 입장에서는 이더리움 네트워크에서의 트랜잭션이 오프체인 트랜잭션이 되겠죠.

왜 오프 체인 트랜잭션을 사용하는가?

그냥 온 체인 트랜잭션만 사용하면 될 것 같은데 왜 굳이 오프 체인 트랜잭션을 사용하려고 할까요??

온 체인 트랜잭션의 문제점을 보완하기 위해서 사용

속도

트랜잭션이 발생한 후 해당 트랜잭션이 블록체인 네트워크에 전파되어 확정되는데까지는 꽤 오랜 시간이 걸립니다. 그래서 빠른 처리가 필요한 서비스는 온체인에서 처리하지 못하고 오프체인에서 처리를 해야만 하는 경우가 생깁니다.

프라이버시

블록체인에 올라가는 트랜잭션의 모든 내역은 공개 장부를 통해서 모든 사람들에게 공개 됩니다. 그런데 공개를 원치 않는 개인정보 등이 담겨 있는 트랜잭션을 발생시켜야 된다면, 그때 오프체인으로 처리를 합니다.

비용/확장성

트랜잭션 검증 시 채굴자에게 지불해야되는 비용이 발생하며, 초당 처리할 수 있는 트랜잭션의 수(TPS)가 너무 적습니다. 그래서 빈번이 일어나는 소액결제와 같은 서비스를 현재 온체인에서 수행하게 된다면 송금액보다 수수료를 더 많이 지불해야 될 수 있습니다.

오프 체인 트랜잭션 처리 방법

아래 방법들의 공통점은 모두 메인 체인에 보증금과 같은 형태로 Lock을 걸어두고, 오프체인 트랜잭션을 수행한 후 모든 트랜잭션이 완료되면 내역을 정산해서 메인 체인에 반영하며, 보증금을 돌려받는 방식입니다.

상태/지불 채널(State/Payment Channel)

두 사용자 만이 사용할 수 있는 채널을 열어서 오프체인 트랜잭션을 수행합니다. 그리고 최종 결과에 해당하는 트랜잭션을 메인 체인의 트랜잭션으로 만들어서 반영합니다.

사이드 체인 (Sidechains)

TPS가 높은 합의 방식(예: DPos)을 채택하는 블록체인 네트워크를 구성해서 오프체인 트랜잭션을 빠르게 수행하고, 최종 결과 값을 메인 체인에 반영합니다.

차일드 체인 (Childchains)

사이드 체인은 속도가 빠른 하나의 체인을 이용했다면, 차일드 체인을 분산/병렬 처리가 가능한 하위 체인들을 많이 생성합니다. 분산해서 빠르게 처리한 후 최종 합산 결과만 메인 체인에 반영합니다.

신용 기반의 솔루션 (Credit-Based Solutions)

이 부분은 크게 신경쓰고 있는 부분이 아니라서 간단히 나열만 하겠습니다.

  • Trusted Third Parties
  • Auditing
  • Proving Fraud

그림으로 정리

초안 ( 손그림)

offchain_transactions_proto

완성본

offchain_transactions

보너스

인터체인이란?

서로 다른 블록체인 메인 네트워크를 이어서 모두가 이어진 커다란 블록체인 네트워크를 만들고자 진행 중인 프로젝트들. 인트라넷을 이어서 인터넷을 만들것도 비슷하다고 생각하시면 될 것 같네요.
조금 다르게 생각하면 자신의 네트워크를 메인 네트워크로 사용하고 나머지 블록체인 네트워크들을 사이드 체인 처럼 사용한다고 볼 수도 있습니다.

  • 예 : COSMOS, ICON, AION

interchain

각각의 용어에 대한 설명이 부족한 감이 있는데, 예시로 적어 드린 솔루션을 참고 하시면 조금 더 이해가 쉬우실 겁니다. 아직 저도 각각의 대한 자세한 내용은 살펴보고 있는 중이라서 이 정도 밖에 설명을 드리지 못하는 점 죄송합니다.

내용 보시다가 잘못 된 점 있으면 지적 부탁드리겠습니다!

해당 내용은 제가 스팀잇 포스팅 전에 깃허브에 미리 작성해 놓은 글을 바탕으로 작성했습니다.
https://github.com/modolee/blockchain/wiki/Transactions

Sort:  

감사합니다 체인종류가 많아서 개념정리가 안되었는데 덕분에 조금 정리가 되네요

블록체인 프로젝트의 이해가 굉장히 뛰어나신것 같습니다!

도움이 되셨다니 다행이네요^^
제 나름의 생각을 정리한거라서 고수분들이 보시면 지적할 부분이 많이 있으실거에요~ㅋ 그냥 개념적으로 이해하는데 도움이 됐으면 해서 만들어봤습니다. 블록체인 프로젝트를 많이 이해하고 있다고 말씀 드리기엔 아직은 제가 많이 부족합니다. ^^

와우 너무 쉽게 정리해주셨네요. 시간많이걸리셨겠어요 ㅠㅠ
좋은내용 공유해주셔서 감사합니다.

너무 대충 만든거 아닌가 생각했는데, 쉽게 잘 이해하셨다니 다행이네요! ^^

와..... 가장 깔끔하게 폭 넓은 개념을 가장 정확하고 알기쉽게 정리해주신거같아요! 풀보팅하고 리포스팅해요! ㅎㅎ 정말 좋은 글 감사합니다!

도움이 되셨다니 뿌듯하네요~! 앞으로도 좋은 컨텐츠 만들어서 올려볼게요. 풀보팅, 리포스팅 감사합니다! ^^

이해가 안가서 힘들었는데 너무 잘 설명해주시네요ㅠ!!