devops

아비트럼의 Arbos, Aggregator, Sequencer, Validator 본문

DevOps/Chain

아비트럼의 Arbos, Aggregator, Sequencer, Validator

vata500 2023. 4. 11. 21:30
반응형

[Arbos]

nitro 노드는 아래와 같은 세가지 layer로 구성된다.

https://developer.arbitrum.io/inside-arbitrum-nitro/

  • base layer : evm contract 실행과 state를 구성하는 데이터 구조를 유지 관리하는 core 역할을 담당한다. nitro에선 필요한 hook를 추가하기 위해 몇가지 수정을 거쳐 이 코드를 라이브러리로 컴파일한다.
  • middle layer : arbos로써, sequencer의 batch와 압축 및 해석, layer 1 가스비용 계산과 요금 징수 등 레이어 2의 추가 기능을 제공하는 custom s/w. 크로스체인 브릿지 기능을 지원한다.
  • top layer : geth 에서 가져온 노드 소프트웨어로 구성된다. client로부터 접속과 RPC request를 처리하고 Ethernet 호환을 위한 노드를 작동시키는 기능을 담당한다.

[Full node, Aggregator]

아비트럼의 풀노드는 이더리움의 풀노드와 비슷한 역할을 함. 체인의 state를 알고 있고, 유저가 체인과 상호작용을 하기 위한 API를 제공함.

Batch 트랜잭션

풀노드는 애그리게이터로서 기능을 함. 사용자로부터 서명된 트랜잭션 세트를 수신하여 일괄적으로 체인의 Inbox에 제출함. 이 제출은 L1 트랜잭션으로, 일괄적으로 묶어서 제출하여 비용을 절약한다. 일괄 제출은 허가 없이 이뤄진다.

트랜잭션 압축

풀노드는 트랜잭션을 압축하여 L1의 calldata 공간을 절약한다. 사용자는 트랜잭션을 풀노드에 제출하면 풀노드는 트랜잭션을 압축하여 체인에 제출한다. 여기서 ArbOS는 트랜잭션을 수신하여 압축해제 후, 읽을 수 있는 원래 트랜잭션으로 복구한다. ArbOS는 트랜잭션의 서명을 확인한 후 처리한다.

풀노드는 트랜잭션 제출 시, Batch로 묶고 압축하는 과정을 모두 거친다.

제출 비용

유저를 대신에 트랜잭션을 제출하는데, L1 트랜잭션이므로 비용이 발생한다. 아비트럼은 유저로부터 요금을 징수해서 애그리게이터의 비용을 상환하는 기능을 통해서 비용을 충당한다.

[Sequencer]

시퀀서 모드는 옵션 기능이지만, 대부분 활성화될 것으로 예상한다. 시퀀서는 특별한 풀노드로 트랜잭션 순서를 제어할 수 있는 권한이 부여된다. 또한 유저의 트랜잭션 결과를 즉시 보장할 수 있다. 클라이언트는 풀노드와 통신하는 것과 같은 방식으로 시퀀서와 상호작용한다.

시퀀서 모든 요청자로부터 트랜잭션을 받아 공정하게 처리해야하며, 각 요청자에게 최대한 빠르게 약속된 트랜잭션 결과를 제공한다.

[Validator]

검증자는 시퀀서 Inbox에 있는 트랜잭션을 읽고 처리하여 업데이트된 L2 state 데이터 해시를 롤업 스마트 계약에 제출한다. 검증자가 L2 state 데이터를 롤업 스마트 계약에 제출할 때, 현재 체인의 어떤 블록이 이 새 블록의 상위 블록인지도 지정한다.

유효하지 않은 state 데이터를 제출하는 검증자를 처벌하기 위해서 검증자는 스테이커여야한다.(일정량의 ETH 보관) 악의적인 행위로 체인에 부정적인 영향을 끼치는 것이 판명되는 경우 보유한 ETH는 슬래쉬된다.

https://developer.arbitrum.io/inside-arbitrum-nitro/

 

Inside Arbitrum Nitro | Arbitrum Documentation Center

This document is a deep-dive explanation of Arbitrum Nitro’s design and the rationale for it. This isn’t API documentation, nor is it a guided tour of the code--look elsewhere for those. “Inside Arbitrum Nitro” is for people who want to understand

developer.arbitrum.io

 

반응형
Comments