メインコンテンツまでスキップ

부드러운 소개

이 문서는 Arbitrum Nitro의 설계와 그 이유에 대한 심층 설명입니다. 이는 API 문서도 아니고 코드의 가이드 투어도 아닙니다. 그런 것들은 다른 곳에서 찾아보세요. “Arbitrum Nitro 내부”는 Nitro의 설계를 이해하고자 하는 사람들을 위한 것입니다.

이 문서의 본문은 Nitro 기술의 주요 사용 사례이자 Arbitrum One 체인에서 사용되는 Arbitrum Rollup을 설명할 것입니다. Arbitrum Nova 체인에서 사용되는 AnyTrust라는 변형 사용 사례도 있습니다.

왜 Arbitrum을 사용해야 하나요? 왜 Nitro를 사용해야 하나요?

Arbitrum은 Ethereum을 위한 L2 확장 솔루션으로, 독특한 이점의 조합을 제공합니다:

  • 신뢰 불필요한 보안: Ethereum에 뿌리를 둔 보안으로, 어느 한 당사자라도 올바른 Layer 2 결과를 보장할 수 있습니다.
  • Ethereum과의 호환성: 수정되지 않은 EVM 계약과 수정되지 않은 Ethereum 거래를 실행할 수 있습니다.
  • 확장성: 계약의 계산 및 저장을 메인 Ethereum 체인에서 벗어나게 하여 훨씬 더 높은 처리량을 허용합니다.
  • 최소 비용: 시스템의 부모 체인 (L1) 가스 발자국을 최소화하도록 설계 및 엔지니어링되어, 거래당 비용을 최소화합니다.

다른 일부 자식 체인 (L2) 시스템은 이러한 기능 중 일부를 제공하지만, 우리의 지식으로는 동일한 기능 조합을 동일한 비용으로 제공하는 다른 시스템은 없습니다.

Nitro는 Arbitrum의 주요 업그레이드로 다음을 포함합니다:

  • 고급 Calldata 압축, 부모 체인 (L1)에 게시되는 데이터 양을 줄여 Arbitrum의 거래 비용을 더욱 낮춥니다.
  • 일반 실행 및 오류 증명에 대한 별도의 컨텍스트, 부모 체인 노드의 성능을 높여 수수료를 낮춥니다.
  • Ethereum L1 가스 호환성, EVM 작업의 가격 책정 및 회계를 Ethereum과 완벽하게 일치시킵니다.
  • 추가 L1 상호 운용성, 부모 블록 번호와의 더 긴밀한 동기화 및 모든 Ethereum 부모 체인 (L1) 프리컴파일에 대한 완전한 지원을 포함합니다.
  • 안전한 재시도 가능, 재시도 티켓이 생성되지 않는 실패 모드를 제거합니다.
  • Geth 추적, 더 넓은 디버깅 지원을 위해.
  • 그리고 많은, 많은 다른 변화들.

큰 그림

가장 기본적인 수준에서, Arbitrum 체인은 다음과 같이 작동합니다:

Original napkin sketch drawn by Arbitrum co-founder Ed FeltenOriginal napkin sketch drawn by Arbitrum co-founder Ed Felten

사용자와 계약은 메시지를 인박스에 넣습니다. 체인은 메시지를 하나씩 읽고 각각을 처리합니다. 이는 체인의 상태를 업데이트하고 몇 가지 출력을 생성합니다.

Arbitrum 체인이 당신을 위해 거래를 처리하길 원한다면, 그 거래를 체인의 인박스에 넣어야 합니다. 그러면 체인은 당신의 거래를 보고 실행하며 몇 가지 출력을 생성합니다: 거래 영수증과 당신의 거래가 시작한 모든 인출.

실행은 결정론적입니다 -- 이는 체인의 행동이 인박스의 내용에 의해 고유하게 결정된다는 것을 의미합니다. 이 때문에, 당신의 거래 결과는 거래가 인박스에 들어가자마자 알 수 있습니다. 어떤 Arbitrum 노드라도 결과를 알려줄 수 있습니다. (그리고 원한다면 당신이 직접 Arbitrum 노드를 운영할 수도 있습니다.)

이 문서의 모든 기술적 세부 사항은 이 다이어그램과 연결되어 있습니다. 이 다이어그램에서 Arbitrum의 전체 설명으로 가기 위해서는 다음과 같은 질문에 답해야 합니다:

  • 누가 인박스, 체인 상태, 출력을 추적합니까?
  • Arbitrum은 체인 상태와 출력이 올바른지 어떻게 확인합니까?
  • Ethereum 사용자와 계약이 Arbitrum과 어떻게 상호작용할 수 있습니까?
  • Arbitrum은 Ethereum 호환 계약과 거래를 어떻게 지원합니까?
  • ETH와 토큰은 Arbitrum 체인으로 어떻게 전송되고, 체인에서 어떻게 관리됩니까?
  • 어떻게 내 자신의 Arbitrum 노드나 검증자를 운영할 수 있습니까?

Nitro의 설계: 네 가지 큰 아이디어

Nitro의 본질과 주요 혁신은 네 가지 큰 아이디어에 있습니다. 여기서 각 아이디어를 간단히 요약하고, 이후 섹션에서 더 자세히 설명하겠습니다.

큰 아이디어: 순서 지정 후 결정적 실행: Nitro는 두 단계 전략으로 거래를 처리합니다. 먼저, 거래는 단일 순서로 정리되고, Nitro는 그 순서에 대해 약속합니다. 그런 다음 거래는 결정적 상태 전이 함수에 의해 그 순서대로 처리됩니다.

큰 아이디어: Geth가 핵심: Nitro는 인기 있는 go-ethereum ("Geth") Ethereum 노드 소프트웨어의 핵심 코드를 컴파일하여 Ethereum의 데이터 구조, 형식 및 가상 머신을 지원합니다. 이렇게 Geth를 라이브러리로 사용함으로써 Ethereum과의 높은 호환성을 보장합니다.

큰 아이디어: 실행과 증명의 분리: Nitro는 동일한 소스 코드를 두 번 컴파일하여, 한 번은 Nitro 노드에서 실행을 위해 네이티브 코드로, 속도에 최적화된 상태로, 또 한 번은 WASM으로 증명에 사용하기 위해, 이식성과 보안에 최적화된 상태로 컴파일합니다.

큰 아이디어: 상호작용 사기 증명을 통한 낙관적 롤업: Nitro는 Arbitrum이 개척한 상호작용 사기 증명을 포함하여 낙관적 롤업 프로토콜을 사용하여 부모 (L1) Ethereum 체인에 거래를 정산합니다.

이제 Arbitrum Nitro의 기본 개념, 큰 그림, 네 가지 큰 아이디어를 다루었으므로, Arbitrum 프로토콜을 통한 거래를 따라가는 여정을 시작할 것입니다. 다음 섹션에서 거래 수명 주기가 시작됩니다.