optimism

Younghwan Cha·2023년 5월 18일
0

coin

목록 보기
5/5
post-thumbnail

Optimism Rollup


Block Storage

모든 Optimism block 들은 Ethereum 에 존재하는 특별한 smart contract 인 Canonical Transaction Chain(CTC) 에 존재합니다. Optimism block 들은 이 CTC 내부 append-only list 에 존재하며, 이 append-only list 가 Optimism blockchain 을 구성하게 됩니다. CTC 에는 새로운 Ethereum transaction 이 기존의 block list 를 수정할 수 없음을 보장하는 코드가 포함되어 있습니다.
하지만, Ethereum blockchain 자체가 재조직(reorganized) 되거나 과거 Ethereum transaction 의 순서가 변경될 경우에 이러한 보장은 깨질 수 있습니다.
Optimism mainnet 은 50개 이하 block 의 Ethereum block reorganization 이 일어날 경우 reorganization 이 진행되지 않지만, Ethereum 에서 이 수치를 넘어선 reorganization 이 일어날 경우 Optimism 또한 reorganization 이 진행되게 됩니다.

Block Production

Optimism block 생성은 sequencer 라고 불리는 곳에서 담당하는데, 이곳에서는 다음과 같은 기능들을 수행합니다.

  • transaction 검증 및 상태 업데이트
  • l2 block 생성 및 실행
  • l1 으로 user transaction 발송

sequencer 에는 mempool 이 존재하지 않으며, transaction 들은 전달되는 즉시 accepted or rejected 됩니다.
user 가 transaction 을 sequencer 에 전송하면, sequencer 는 transaction 이 유효한지( 충분한 fee 를 지불했는지 ) 를 확인 한 후에 local state 에 pending block 으로 등록하게 됩니다. 이 pending block 들은 finalization 을 위해 Ethereum 에 주기적으로 batch 로 전달되게 됩니다. 이와 같은 일괄 처리 과정은 batch 내에 존재하는 모든 트랜잭션들의 고정 비용을 분산시킴으로써 전체 거래 수수료를 크게 절감합니다. 또한, sequencer 는 데이터 압축 과정을 통해서 Ethereum 에 publish 되는 데이터의 양을 최소화합니다.
sequencer 가 l2 chain write access 에서 우위를 차지하기 때문에, pending block 에 대한 상태가 정해지자 마자 어떤 state 가 finalized 될지에 대한 강력한 보장성을 점유할 수 있습니다. 이는 곧 l2 state 가 아주 빠른 속도와 높은 신뢰도를 보장 받을 수 있음을 의미합니다.

user 는 sequencer 를 스킵하고 Ethereum transaction 을 통해서 CTC 에 직접 transaction 을 전송 할 수도 있습니다.
이는 위에서 언급한 것과 같이 일괄 처리 과정을 거치지 않기 때문에 더 비싼 수수료를 지불해야하지만, sequencer 의 검열을 피할 수 있는 이점도 존재합니다.

Block Execution


Ethereum node 들은 Ethereum p2p network 에서 block 들을 다운로드 받는 반면에, Optimism node 들은 CTC contract 에 존재하는 append-only block list 로 부터 block 들을 다운로드 받습니다.
Optimism node 는 다음 두개의 주요 컴포넌트로 구성되어 있습니다

  • Ethereum data indexer ( DTL )
  • Optimism client software

Ethereum data indexer

data transport layer, DTL 로도 불리우는 Ethereum data indexer 는 CTC contract 에 published 된 block 들로부터
Optimism blockchain 을 재구성합니다. DTL은 새로운 Optimism block 이 published 됨을 알리는 CTC 에서 발생하는 이벤트를 검색합니다. 그런 다음 이러한 이벤트를 발생시킨 transaction 을 검사하여 published block 들을 표준 이더리움 블록 형식으로 재구성합니다.

Optimism client software

Optimism client software 는 순수 geth 와 거의 동일한 software 입니다.
Optimism client software 는 DTL 의 newly indexed block 들을 지속적으로 모니터링하는데, 새로운 block 이 indexed 될 경우
이를 다운로드 받은 후에 블록안의 transaction 들을 실행하게 됩니다.

profile
개발 기록

0개의 댓글