L2, rollup 관련 정리

jaewon·2024년 9월 16일

주제: #L2


메모:

L2는 블록체인의 확장성을 위한 방법 중 하나이다.
DB 앞에 캐시를 붙여 놓는 역할을 하여 hierarchy를 만든다.

확장성의 다른 방식으로는 sharding, vertical scailing(parameter 자체를 크게 만드는 것)

History of L2

State channel
Plasma, commit-chains
특징 :

계산 + 상태가 다른 체인에 존재
child chain의 operator는 untrusted되어도 된다.
L1의 스마트 컨트랙트가 L2 체인을 manage 한다.
L2 상태에 "commitments"(플라즈마 블록 헤더 해시 혹은 balance의 머클 루트)가 L1에서 주기적으로 일어난다.
proof of fraud가 L1에 제출되면 블록이 롤백 되고, 블록 creator는 페널티를 받는다
유저는 L2에 입 출금이 가능하며, 운영자(operator)가 실수를 하면, 스마트 컨트랙트를 통해 forced exit을 할 수 있다.

문제 :

block withholding problem
L2 블록이 만들어지지 않으면?
유저는 merkel proof(자산 소유 증거)를 제출하고 플라즈마 체인에서 자산 빼버릴 수 있음

data availability problem
commitment만 L1에서 available함
만약에 L1에 데이터만 저장해놓고, L2에서 어떤 트랜잭션 이었는지 밝히지 않으면 유효성 검증 어떻게? 이게 DA문제
full data가 해시를 제공해서 유저가 commitment를 verify하거나 challenge할 때 쓰이나

그래서 플라즈마는
자산의 주인이 필요함
DA의 게임이론 문제가 있음
full evm을 일반화 하는게 어려움

Rollups

하이브리드 L2 스케일링 메카니즘
computation은 L2에서, (compressed)per-transaction data는 L1에서

-> DA 문제 해결, L1의 합의 및 보안을 leverage해올 수 있음, 모두가 locally 롤업 오퍼레이션 수행가능(-> withdraw, verify, challnege 가능)

L2에서 fully general evm computation 가능, evm 돌릴 수 있음, l1에서 돌아가는 dapp들 L2에서 돌릴 수 있음(l2에서 직접 fully general evm computation 가능해서?)

그렇지만 스케일링은 L1의 데이터 bandwith에 따라 제한된다

Architecture of Rollup

L1에 있는 L2를 매니지 하는 컨트랙트는 다음 사항을 대체로 허용한다.

  • deposit, withdrawal
  • publish "assertions" of new state roots
  • 압축된 트랜잭션 데이터의 배치 publish -> correctness 검증 가능

operator(aka validator, aggregator, sequencer)가 tx를 batch한다

batch correctness guarntee

optimistic

압축된 tx data를 publish(as calldata)
7에서 14일간 fraud proof를 제출하는 사람들은 챌린지 가능함
-> 챌린지가 맞으면, state roots가 invalidated되고, publisher의 deposit이 slash됨

그럼 fraud proofs란?

Fraud Proofs

  • single round
    verifier L1 contract가 published txns을 최신 머클 루트에 앞서 replay해서 새로운 루트 만든다.
    cost expensive
  • multi round
    cost 절약,
    asserter와 challenger간의 상호작용 프로토콜

Compression in a batch

Zlib(optimism), Brotli(arbitrum) 알고리즘 사용

출처

profile
블록체인, 암호학

0개의 댓글