ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블록체인 확장성에 대한 문제 와 Rollup
    block Chain/ETC 2022. 9. 3. 18:11
    test

    The Blockchain Trilemma

    이 개념은 블록체인의 3가지 요소인 확장성, 보안성, 탈중앙성 을 모두 최대로 만족하기 어렵다.

    따라서 3가지 요소중 하나를 포기하여 나머지 요소를 얻어야 한다.

     

    시간이 지날수록 블록체인 네트워크 활동에 엄청난 수요가 생겼고

    이로인해 가스 요금으로 인한 비용이 많이 발생한다.(확장성 문제)

    또한

    확장성에 대한 여러 문제중 가장 거론되는 문제는 거래 처리속도에 대한 문제이다.

     

    이더리움 기준 평균 15개 정도의 거래를 처리할수있으며

    비자 같은경우는 45000건의 처리가 가능한것에 비해 굉장히 부족한 처리 속도를 가지고있다.

     

    지금의 블록체인의 디자인은 네트워크 전체 속도가 개별 노드의 처리속도 보다 높아질수없으며

    개별 노드가 한번에 더 많은 일을 처리하여 속도를 올릴수있어도 이는 탈중앙화를 일부 포기하게된다.

     

    이처럼 블록체인에는 어떠한 요소를 포기해야하는 문제점이 있고

    Security, Decentralization 은 이더리움의 특징을 그대로 가져가고

    Scalability 를 해결하기위한 솔루션중 대표적으로 Sharding, Side Chain, Layer2 가 존재한다.

     

    Off Chain 과 Layer2

    Layer 2

    Layer1 기본 적으로 생각할수있는 블록체인의 구조로 모든 거래가 처리되는 표준 합의 레이어이다.

    이러한 layer 의 개념은 이더리움 고유의 개념이 아니며 다른 블록체인에서 광범위 하게 사용된다.

     

    Layer2 는 Layer 위에 구축된 또 다른 Layer 이다.

    Layer1 을 변경할 필요가 없이 기존에 사용하던 요소를 이용하여 자신 위에 또다른 Layer 을 구축할 수 있다.

    Off Chain

    오프체인은 블록체인(on chain) 밖에서일어나는 모든 행위를 뜻하는 개념으로 public block chain 에서 코인 코래시 발생되는 수수료와 낮은 성능을 극복하기위해 외부 네트워크 에서 거래를 처리하고 최종 결과를 온 체인에 적용하는 기법이다.

     

    즉 기존의 하나의 블록체인에서 모든 트랜젝션을 처리하는 방식에서

    블록체인 위에 다른 블록체인을 올려 블록체인 의 처리 능력을 높이는게 아닌 더 의미있는 작업을 골라서 처리하는 것으로

    의미있는 작업을 수행하는 체인을 On Chain, 그 외의 연산 처리를 하는 체인을 Off Chain으로 불린다

     

    Off Chain 에는 많은 종류가 있는데 이들의 공통점으로

    Main Chain(On Chain) 에 보증금의 형태로 걸어둔 상태로

    Off Chain에서 트랜젝션을 수행하여 트랜젝션 이 완료가되면 Main Chain 에 반영하며 보증금을 돌려받는다.

     

    또한 위와같이 거래를 위한 것만 아니라 데이터를 백업 및 다른용도로 사용하기위해 RDB를 사용하는경우도

    이를 Off Chain 으로 분류된다.

    State/Payment Channel

    두 사용자 만이 사용할수있는 채널을 열어서 오프체인 역활을 수행한다.

    그후 최종 결과를 메인 체인에 반영한다.

     

    메인 체인 을 사용하는 사용자인 A 와 B 가 서로 3판2선승제 의 게임을 진행하며 승자에게는 1ETH 를 받는다는 예를 보면

    이 둘이 게임을 하는것을 메인 체인에서 수행하며 모든 노드가 두 명의 게임을 처리할필요가없다.

    속도가 오래걸리는것도 있지만 게임 한판할때마다 가스비를 소모해야할것이다.

    그렇게에 오프 체인에서 게임을 진행하고 결과를 메인 체인에게 알려주는것으로 이를 해결한다.

    과정

    1. 메인 체인은 게임 에 대해, 보상에 관한 스마트 컨트렉트를 작성한다.
    2. A 와 B 는 매 게임에서 서로의 서명이 담긴 트렌젝션을 교환한다. 이때 트렌젝션에는 해당 상태에대한 순서를 알수있는 nonce값이 포함된다.
    3. A 와 B 의 게임이 끝이났다. 초반에는 A 가 유리하다가 마지막에 B 에게 역전 패 를 당했다.
    4. 게임이 끝났기에 B 는 자신이 게임에서 승리했다는 사실을 메인 체인에 알려 보상을 받기를 기다린다.
    5. 하지만 A 는 자신이 패배했다는 사실을 숨기고 초반에 자신이 유리했던 상태의 트렌젝션을 메인 체인에게 보내서 자신이 승리했다고 거짓말을 시도한다.
    6. 메인 체인은 둘의 트렌젝션 안의 nonce를 확인하여 가장 최신의 nonce 를 가진 B 의 승리로 인정한다.
    7. 이처럼 누군가가 거짓으로 메인 체인에 트렌젝션을 전달할수있기때문에 메인 체인은 조정 기간 을 가진다.

     

    Side Chain

    속도가 빠른 합의 방식을 가지고있는 블록체인 네트워크를 구성하여 오프체인을 수행한다.

    그후 최종 결과를 메인 체인에 반영한다.

    하지만 이더리움 자체 보안에 의존하는것이 아닌 자체 합의 모델을 가지고있기때문에

    레이어2솔류션 보다 안전하지 못하다.

    Child Chain

    속도가 빠른 하나의 체인을 생성하는 사이드 체인과 다르게

    분산/병렬 처리가 가능한 하위 체인을들 많이 생성한다.

    그후 최종 합산 결과를 메인 체인에 반영한다.

    인터 체인

    인터체인은 서로다른 메인넷을 이어 커다란 블록체인 넷을 만드는 프로젝트로

    사이드 체인과 달리 서로다른 블록체인을 연결한다는 특징이있다.

    예로 비트코인을 이더리움 네트워크에서 사용할수있도록하는것으로

    비트코인을 이더리움으로 토큰일 바꿔주는 개념이다

     

    Rollup

    Rollup 은 이더리움의 보안에 완전히 의존하며 범용 확장 솔루션을 만들어

    다른 솔루션들의 장점을 최대한 활용하는것을 목표로 한다.

    따라서 보안을 희생하지않으면서 변경사항이 거의 없이 이더리움에 있는 기능을 활용하여

    확장시킬수있는 솔류션이다.

    기본적으로 트랜젝션을 실행하고 데이터를 가져와 압축하고 메인체인으로 올리기에

    이름이 롤업이다.

    Rollup 에는 ZK Rollups 과 Optimistic Pollups 이 있다.

    Optimistic Pollups 은 사기 증명을 사용하고

    ZK Rollups 은 유효성 증명을 사용한다.

    Optimistic Rollups

    Optimistic Rollups 은 데이터를 Layer1 에 개시하고 데이터가 정확하다는 가정을 하기에

    Optimistic(낙관적인) 이라는 이름이 붙었다.

     

    Optimistic Rollups 은

    EVM-OOMPATIBLE VM 이라는 OVM 머신을 실행시켜

    구성하기에 용이하다.

     

    만약 악의적인 사용자가있을때

    Optimistic 은 게시된 데이터가 유효하다면 아무런 추가적인 작업을 할필요가없다.

     

    하지만 잘못된 거래일경우 시스템은 이를 식별하고 올바른상태로 복구 및 악의적인 사용자에게 불이익을 주어야만한다.

    이를 위해 사기 증명을 확인, 감지, 이러한 거래를 제출하지못하도록 유도할수있는 분쟁 해결 시스템을 구현해야한다.

    일반적으로 트렌젝션을 제출하는 사용자는 보증금을 제공해야한다.

     

    그리고 네트워크의 다른 사용자는 잘못된 거래를 발견한경우 사기에 대한 증거를 제출할수있다.

    사기 증거가 제출된 시스템은 분쟁 해결을 하기위해

    먼저 의심스러운 트랜젝션을 메인 체인에서 다시 실행해본다.

     

    실제로 사기였음이 입증이 된다면 거래를 제출한 사용자의 보증금을 삭감하는것으로 불이익을 준다.

    또한 사기 증거를 제출한 사용자가 악의 적일 수도있으니

    사기 증거를 제출하는 사용자 또한 보증금을 제공하는것으로 이를 해결한다.

    ZK rollup

    영지식(zero-knowledge) 을 사용하기에 ZK Rollup 이라 불린다.

     

    ZK Rollup 은 Optimistic Pollups 보다 빠르고 효율 적이지만

    기존에 사용하던 방식에서 Layer2 로 마이그레이션하기 쉽지 않다.

     

    기존 사이드 체인에서 자신의 자산을 빼기위해서는 exit game 을 통해 자신을 빼야하는데

    이를 정상적으로 수행하기위해서는 자신이 보유한 유효 자산임을 증명해야한다.

     

    이를 위해 사용자는 충분한 데이터를 보유해야하는데 이는 비효율 적이며 긴 첼린지 기간으로 원하는 시기에 자산을 뺄수없다는 큰 문제가있다. 이러한 문제를 해결하는것이 zk-rollup이다.

     

    ZK Rollup 은 Optimistic Rollup 처럼 분쟁 해결 시스템이 필요가없다.

    영지식 증명을 통해

    On Chain 으로 제출되는 트렌젝션에는 ZK_SNARK 증거가 포함되여 전달되며

    이 증거를 통해 잘못된 처리는 즉시 판단 가능하게된다.

    Optimistic 와 ZK 차이

    Optimistic Rollups

    • 분쟁 해결을 위해 사기 증거를 제출할수있는 충분한 시간을 줘야한다. 따라서 거래에 대한 시간이 오래걸린다.
    • 거래에 대한 시간을 줄이기 위한 프로젝트도 있으며 대신 수수료가 부가된다.
    • EVM 의 호환성으로 범용 어플리케이션으로 확장하기 쉽다

    ZK Rollup

    • 분쟁 해결을 할 필요가없다. 즉 거래에 대한 지연이 없다.
    • 기술적 복잡성으로 인해 범용 어플리케이션으로 확장하기가 어렵다
    • 확장 하기 어렵다는 문제를 해결하기 위한 EVM 호한 프로젝트로 ZKSync 가 있다.
    • 많은 계산이 필요하므로 ZK 증명을 수행하는 노드는 컴퓨팅 파워가 높은 시스템이여야 한다

    기존의 이더리움은 초당 약 15~45개의 트렌젝션을 처리할수있었지만 Rollup 을 통해 초당 1000~4000개 의 트랜잭션 으로 확장 할수있으며

    이더리움2 가 여러 샤드를 생성하여 가능한 데이터 공간을 늘리기 때문에 Rollup 과 함께하면

    결과적으로 초당 100,000 트랜잭션 까지 늘릴수있다.