Zenith EVM란 무엇인가요?
Zenith EVM은 Zenith가 운영하는 레퍼런스 EVM 환경입니다. 고성능 Ethereum 실행 클라이언트인 Reth를 기반으로 구축되었으며, 표준 Ethereum RPC 인터페이스를 제공합니다. 즉, 개발자는 Zenith EVM을 Ethereum 호환 체인과 동일한 방식으로 사용할 수 있으며, Solidity, Hardhat, Foundry, MetaMask 등 기존 툴링을 활용해 스마트 컨트랙트를 배포하고, 기존 EVM 애플리케이션을 변경 없이 또는 최소한의 수정만으로 그대로 이전할 수 있습니다.
Zenith EVM은 Canton 서브넷 및 Canton 네이티브 애플리케이션과 원자적으로 결합 가능합니다. 사용자는 래핑된 EVM 페이로드를 포함하는 네이티브 Canton 트랜잭션을 제출할 수 있어 크로스체인 원자적 작업이 가능합니다. 예를 들어, Canton 네이티브 자산과 Zenith EVM에 존재하는 EVM 네이티브 자산 간의 원자적 스왑을 실행하고, 트랜잭션의 양쪽 레그가 모두 성공적으로 실행된 후 사용자에게 최종성이 확인됩니다.
상호운용성은 Canton을 넘어서도 확장됩니다: Zenith EVM은 Chainlink 또는 LayerZero와 같은 상호운용성 솔루션을 통해 더 넓은 Ethereum 생태계와 연결될 예정입니다.
기술 개요
Zenith EVM은 고성능 모듈형 Ethereum 실행 클라이언트인 Reth를 기반으로 구축되었습니다. 즉, Zenith EVM은 실행 레이어에서 완전히 Ethereum과 동등합니다:
- 동일한 EVM 런타임을 실행합니다.
- 완전히 호환되는 Ethereum RPC 인터페이스를 제공합니다.
- Ethereum mainnet과 동일한 라이브러리 및 스마트 컨트랙트 표준을 지원합니다.
원자적 결합성
Zenith EVM과 Canton 간의 원자적 결합성은 Zenith가 Daml로 구현한 external_call() 프리미티브를 통해 가능합니다. 이 함수는 Daml 컨트랙트가 EVM 실행 환경을 결정론적으로 호출할 수 있도록 합니다.
이는 네이티브 EVM 실행 결과를 Canton에 확인하고, Daml 컨트랙트에서 EVM 상태 루트를 검증하는 데 사용됩니다.
external_call() 프리미티브는 Canton의 네이티브 2단계 검증 프로세스를 따르며 추가적인 신뢰 가정을 도입하지 않습니다.
- 제출자는 해석 과정에서 함수를 실행하고, 결과(및 선택적으로 해시 + 메타데이터)를 트랜잭션 뷰의 일부로 포함합니다.
- 각 검증자는 동일한
external_call()을 로컬에서 재실행합니다. - 어떤 검증자가 다른 출력을 얻으면 검증이 실패하며, 이는 기존 Daml 프리미티브와 동일한 결정론 규칙을 반영합니다.
최종성
Canton과 Zenith EVM 애플리케이션에 걸친 트랜잭션의 경우, 최종성까지의 시간은 Canton 내부 트랜잭션과 거의 동일합니다: Zenith EVM은 수백 밀리초 범위의 거의 눈에 띄지 않는 지연만을 추가합니다.
Zenith EVM에서 개발하는 방법
Zenith EVM은 내부적으로 Reth를 기반으로 하기 때문에, 개발자 경험은 Ethereum에서 개발하는 것과 사실상 동일합니다. 대부분의 경우, 유일하게 필요한 변경 사항은 표준 Ethereum 노드 대신 Zenith EVM 엔드포인트를 가리키도록 RPC 구성을 업데이트하는 것입니다.
RPC 구성
Zenith EVM은 표준 Ethereum RPC 엔드포인트를 제공합니다. 툴링을 연결하려면 기존 RPC URL을 해당 환경에 제공된 Zenith EVM RPC 엔드포인트로 교체하세요. 워크플로우의 나머지 모든 것은 동일하게 유지됩니다.
툴링
모든 표준 Ethereum 개발 도구는 Zenith EVM과 즉시 호환됩니다:
- Foundry: 평소와 같이 컨트랙트를 컴파일, 테스트 및 배포합니다.
- Hardhat: Zenith EVM 네트워크 구성을 추가하고 정상적으로 배포합니다.
- MetaMask: 제공된 RPC URL과 체인 ID를 사용하여 Zenith EVM을 커스텀 네트워크로 추가합니다.
개발자 관점에서 Zenith EVM은 Ethereum처럼 동작하면서도 Canton 환경 내에서 원자적 결합성과 결제를 가능하게 합니다.
스마트 컨트랙트 배포
컨트랙트 배포는 Ethereum에서와 정확히 동일하게 작동합니다.
Solidity로 컨트랙트를 작성하고, 선호하는 툴체인으로 컴파일한 후, Zenith EVM RPC 엔드포인트를 사용하여 Zenith EVM에 배포하세요. 기존 컨트랙트는 Ethereum 또는 EVM 호환 체인에서 변경 없이 또는 최소한의 수정만으로 그대로 이전할 수 있습니다.
Canton과 Zenith EVM 간의 트랜잭션 흐름
앞서 설명한 바와 같이, Zenith는 Canton 서브넷과 네이티브로 조합 가능한 EVM 호환 실행 환경으로 Canton을 확장합니다. 모든 EVM 활동은 Canton을 통해 라우팅되며 Canton MainNet에서 정산됩니다.
다음은 Canton과 Zenith EVM에 걸친 트랜잭션의 고수준 흐름을 설명합니다:
1. Canton을 통한 트랜잭션 제출
사용자는 Canton을 통해 네이티브 트랜잭션을 제출합니다. Zenith EVM과의 상호작용이 필요한 경우, Canton 트랜잭션에는 다음이 포함됩니다:
- 서명되고 래핑된 EVM 트랜잭션 페이로드.
- 해당하는 Daml 작업.
2. Daml에서 EVM으로의 호출
Zenith EVM을 포함한 각 Zenith 환경은 Canton에 자체 Daml 컨트랙트를 보유합니다.
Daml 컨트랙트가 트랜잭션을 처리할 때, 다음을 수행합니다:
- 수신 요청을 등록합니다.
external_call()함수를 호출합니다.- EVM 페이로드를 로컬에서 실행 중인 EVM 환경으로 전달합니다.
external_call() 프리미티브는 Daml 컨트랙트가 결정론적으로 로컬에서 실행되는 서비스를 호출하고, 동일한 원자적 트랜잭션 내에서 결과를 수신할 수 있도록 합니다
3. 네이티브 EVM 실행
Canton 참여자는 이중 역할로 운영됩니다:
- Canton 도메인의 노드로서.
- Zenith EVM의 시퀀서/운영자로서.
EVM 트랜잭션은 Reth 기반 EVM 런타임에서 네이티브로 실행됩니다.
실행 보장 사항은 다음과 같습니다:
- 순차적, 단일 스레드 EVM 시맨틱스 (Ethereum과 일관성 유지).
- 충돌하는 트랜잭션 거부로 인한 상태 경합 없음.
- 새로운 EVM 상태 루트를 생성하는 상태 전환.
4. 재실행을 통한 결정론적 트랜잭션 검증
external_call()은 Canton의 네이티브 2단계 검증 모델을 따릅니다:
- 제출자는 해석 과정에서 함수를 실행하고 그 결과를 트랜잭션 뷰에 포함시킵니다.
- 동일 도메인 내의 다른 모든 Canton 참여자들이 동일한 호출을 로컬에서 재실행합니다.
- 검증자 중 하나라도 다른 출력값을 얻으면 검증이 실패합니다.
이를 통해 Canton의 기존 실행 모델과 일관된 결정론적 크로스 환경 실행이 보장됩니다.
5. 정산 및 최종성
EVM 실행이 성공적으로 완료된 후:
- EVM 트랜잭션 출력값이 Daml 컨트랙트로 반환됩니다.
- 새로운 EVM 상태 루트가 Canton에 게시됩니다.
Canton 레그와 EVM 레그 모두 동일한 트랜잭션의 실행 트리의 일부이기 때문에:
- 실행은 원자적입니다: 두 단계 모두 성공하거나 전체 트랜잭션이 실패합니다.
- 최종성이 사용자에게 확인됩니다.
Canton 위의 컴포저블 EVM 애플리케이션
Zenith는 Canton에 네이티브 EVM 실행을 제공하여, 개발자가 Canton 네이티브 컨트랙트 및 서브넷과 원자적으로 컴포저블한 Solidity 애플리케이션을 배포할 수 있도록 합니다.
Solidity, Foundry, Hardhat, MetaMask 등 익숙한 Ethereum 툴링을 사용하면서도 Canton의 프라이버시 모델과 결제 보장의 이점을 누릴 수 있습니다. Zenith EVM 환경에 배포된 애플리케이션은 Ethereum과 동등한 실행 시맨틱스를 유지하며, 상태 루트는 Canton MainNet에 정산됩니다.
이를 통해 다음과 같은 새로운 설계 가능성이 열립니다:
- EVM 기반 DeFi 애플리케이션이 규제된 Canton 네이티브 자산과 직접 컴포즈.
- Canton 참여자가 운영하는 엔터프라이즈급 퍼미션드 EVM 환경.
- Daml과 EVM 전반에 걸쳐 원자적으로 실행되는 크로스 도메인 트랜잭션.
스마트 컨트랙트를 개발하거나, 기존 EVM 애플리케이션을 마이그레이션하거나, 크로스 환경 컴포저빌리티를 탐색하고 계신다면, 기술 가이던스, 통합 지원, 아키텍처 논의를 통해 기꺼이 도움을 드리겠습니다.
문의하기를 통해 협업하거나 Zenith가 Canton에서 귀하의 애플리케이션을 어떻게 지원할 수 있는지 알아보세요.