OP Stack 배우기 — 14개 단계 중 5단계.
지금까지 OP Stack 체인이 Ethereum과 어떤 관계인지 알아보았습니다. 이 페이지에서는
스택의 개념적 계층과 이를 채우는 소프트웨어 모듈, 즉 다음 단계에서 배포할
구성 요소를 소개합니다. 다 읽은 후에는
자체 L2 rollup testnet 만들기로 이어서 진행하십시오.
이 페이지에서 설명하는 모든 모듈이 이미 프로덕션 상태로 존재하는 것은 아닙니다. 그러한 모듈은 “개발 중” 또는 “제안됨”으로 명시적으로 표시되어 있습니다.
계층
데이터 가용성
Data Availability Layer는 OP Stack 기반 체인의 원시 입력이 게시되는 위치를 정의합니다. OP Stack 체인은 하나의 Data Availability 모듈을 사용하여 입력 데이터를 가져올 수 있습니다. OP Stack 체인은 Data Availability Layer로부터 도출되므로, 사용하는 Data Availability 모듈은 시스템의 보안 모델에 큰 영향을 미칩니다. 예를 들어, 특정 데이터를 Data Availability Layer에서 더 이상 가져올 수 없게 되면 체인을 동기화하지 못할 수 있습니다.Ethereum DA
Ethereum DA는 현재 OP Stack에서 가장 널리 사용되는 Data Availability 모듈입니다. Ethereum DA 모듈을 사용하면 Ethereum 블록체인에서 접근 가능한 모든 정보로부터 소스 데이터를 도출할 수 있습니다. 여기에는 Ethereum calldata, 이벤트, 4844 데이터 blob이 포함됩니다.시퀀싱
Sequencing Layer는 OP Stack 체인의 사용자 트랜잭션이 수집되어 사용 중인 Data Availability Layer 모듈에 게시되는 방식을 결정합니다. OP Stack의 기본 Rollup 구성에서는 일반적으로 하나의 전용 Sequencer가 시퀀싱을 처리합니다. Derivation Layer에 정의된 규칙은 일반적으로 Sequencer가 특정 기간 이상 트랜잭션을 보류하지 못하도록 제한합니다. 향후 시퀀싱은 모듈화되어, 체인이 현재 Sequencer를 제어하는 메커니즘을 쉽게 선택하고 변경할 수 있게 될 것입니다.단일 sequencer
OP Stack의 기본 Sequencer 모듈은 Single Sequencer 모듈로, 전용 행위자에게 Sequencer 역할을 수행할 권한이 부여됩니다. Single Sequencer 모듈에서는 거버넌스 메커니즘이 특정 시점에 누가 Sequencer 역할을 수행할 수 있는지 결정할 수 있습니다.다중 sequencer
Single Sequencer 모듈을 간단히 수정한 것이 Multiple Sequencer 모듈로, 특정 시점의 Sequencer가 사전에 정의된 행위자 집합에서 선택됩니다. 개별 OP Stack 기반 체인은 가능한 Sequencer 집합을 정의하는 정확한 메커니즘과 그 집합에서 Sequencer를 선택하는 메커니즘을 결정할 수 있습니다.Derivation
Derivation Layer는 Data Availability Layer의 원시 데이터가 처리되어, 표준 Ethereum Engine API를 통해 Execution Layer로 전송되는 처리된 입력을 형성하는 방식을 정의합니다. Derivation Layer는 원시 입력 데이터를 파싱할 때 Execution Layer가 정의하는 현재 시스템 상태를 참고할 수도 있습니다. Derivation Layer는 다양한 데이터 소스로부터 Engine API 입력을 도출하도록 수정할 수 있습니다. Derivation Layer는 모든 원시 입력 데이터를 파싱하는 방법을 알아야 하므로 일반적으로 Data Availability Layer와 밀접하게 연결되어 있습니다.Rollup
Rollup 모듈은 Ethereum 블록 데이터, Sequencer 트랜잭션 batch, Deposited 트랜잭션 이벤트 등으로부터 Engine API 입력을 도출합니다.Indexer
Indexer 모듈은 Derivation Layer 모듈로, Ethereum DA와 같은 Data Availability Layer 모듈상의 특정 스마트 컨트랙트에 트랜잭션이 전송되거나, 해당 컨트랙트가 이벤트를 발생시키거나, 해당 컨트랙트의 스토리지가 수정될 때 Engine API 입력을 도출합니다.Execution
Execution Layer는 OP Stack 시스템 내 상태의 구조를 정의하고, 이 상태를 변경하는 상태 전환 함수를 정의합니다. 상태 전환은 Engine API를 통해 Derivation Layer로부터 입력을 받을 때 트리거됩니다. Execution Layer 추상화는 EVM 수정이나 완전히 다른 기반 VM의 사용 가능성을 열어 줍니다.EVM
EVM은 Ethereum Virtual Machine과 동일한 상태 표현 및 상태 전환 함수를 사용하는 Execution Layer 모듈입니다. OP Stack의 Ethereum Rollup 구성에서 사용하는 EVM 모듈은 EVM을 약간 수정한 버전으로, Ethereum에서 시작된 L2 트랜잭션에 대한 지원을 추가하고, Ethereum에 트랜잭션을 게시하는 비용을 반영하기 위해 각 트랜잭션에 L1 Data Fee를 추가로 부과합니다.Settlement layer
Settlement Layer는 외부 블록체인상의 메커니즘으로, 해당 외부 제3자 체인(다른 OP Stack 체인 포함)에서 OP Stack 체인(대상)의 상태에 대한 **뷰(view)**를 수립합니다. 각 대상 체인에 대해 하나 이상의 외부 체인에 하나 이상의 Settlement 메커니즘이 존재할 수 있습니다. Settlement Layer 메커니즘은 읽기 전용이며, 제3자 체인이 대상 OP Stack 체인의 상태를 기반으로 자신의 상태에 영향을 줄 수 있는 결정을 내릴 수 있게 합니다. “Settlement Layer”라는 용어는 Settlement Layer 메커니즘이 블록체인에서 ETH와 토큰의 출금을 처리하는 데 자주 사용된다는 사실에서 유래했습니다. 이러한 종류의 출금 시스템은 먼저 대상 블록체인의 상태를 제3자 체인에 증명한 다음, 그 상태를 기반으로 출금을 처리합니다. 본질적으로 Settlement Layer는 제3자 체인이 대상 체인의 상태를 신뢰할 수 있게 해 줄 뿐입니다. 트랜잭션이 해당 Data Availability 계층에 게시되고 최종 확정되면, 그 트랜잭션은 OP Stack 체인에서도 최종 확정됩니다. 기반 Data Availability 계층이 무너지지 않는 한, 해당 트랜잭션은 더 이상 수정되거나 제거될 수 없습니다. Settlement Layer는 트랜잭션의 결과를 검증할 수 있어야 하므로 아직 Settlement Layer에서 받아들여지지 않았을 수 있지만, 트랜잭션 자체는 이미 변경 불가능합니다.증명(attestation) 기반 결함 증명
대체됨. OP Mainnet은 2024년 6월 10일 결함 증명(fault proof)이 활성화되기 전까지
이 방식으로 정산했습니다. Settlement Layer는 교체 지점이며, 이 모듈은 OP Stack이
교체한 모듈이므로 여기에 설명합니다.