오는 10월 22일 적용될 Cronos EVM 메인넷 v1.8 업그레이드의 주요 내용을 소개합니다.
이번 업그레이드는 트랜잭션 처리 방식을 개선하고, EVM 병렬 실행을 더욱 발전시키며, 주요 프레임워크를 업그레이드합니다. 또한 이더리움 Osaka 하드포크를 적용하고, 40개 이상의 버그를 수정하며 Cronos의 이더리움 API 호환성을 한층 높입니다.
애플리케이션별 멤풀(Application-Side Mempool)
지금까지 대기 중인 트랜잭션은 CometBFT의 컨센서스 레이어가 관리했습니다. v1.8부터는 Cronos가 멤풀 관리를 애플리케이션 레이어로 옮겨 더 빠르게 처리할 수 있도록 합니다.
이번 변화가 중요한 이유는 트랜잭션이 블록에 포함되기 전에 검증되는 방식 자체가 달라지기 때문입니다.
• 커스터마이징 가능한 검증: 애플리케이션 측 멤풀을 통해 트랜잭션 검증 로직을 직접 설정할 수 있어, 블록 생성 전에 더 유연한 검증이 가능합니다.
• 더 빠른 블록 생성: 커스터마이징이 가능해지면서 중복 검증 과정을 줄일 수 있어 블록 생성이 더 빨라집니다. 또한 트랜잭션의 승인 후 검증 과정이 블록 생성과 병렬로 처리될 수 있습니다. 추가적인 직렬화 과정 없이 컨센서스 및 블록 생성과 동시에 검증이 진행되는 방식입니다.
• 중복 작업 감소: 트랜잭션 승인과 블록 생성 과정에서 발생하는 중복 검증을 줄여 전체 연산 효율을 높입니다.
애플리케이션 측 멤풀은 옵트인 방식입니다. 기존 멤풀 설정은 별도의 변경 없이 그대로 사용할 수 있습니다. 노드 운영자는 애플리케이션 측 멤풀을 사용하려면 마이그레이션 가이드를 참고해 설정을 변경해야 합니다.
EVM 병렬 실행(Parallel EVM Execution)
이전 Cronos 버전에서 처음 도입된 Block-STM 병렬 실행 엔진이 v1.8에서 크게 개선됐습니다. 이제 Cronos SDK 레이어와 더욱 긴밀하게 통합돼, 성능을 유지하면서 높은 동시성을 확보할 수 있습니다.
Block-STM은 하나의 블록에 포함된 여러 트랜잭션을 동시에 처리합니다. 서로 충돌하지 않는 트랜잭션은 병렬로 실행되며, 충돌이 발생하는 경우에는 시스템이 자동으로 이를 감지해 영향을 받은 트랜잭션만 순차적으로 다시 실행합니다.
이 방식은 노드의 CPU 코어를 최대한 활용하면서도 RPC 노드와 아카이브 노드 등 모든 노드에서 동일한 결과가 나오도록 보장합니다. 이를 통해 Cronos에서 가능한 최고 수준의 블록 실행 성능을 제공합니다.
EVM API 호환성 90% 이상
Cronos는 현재 80개 이상의 이더리움 API 메서드를 지원하며, EVM API 호환성은 90%를 넘어섰습니다. 이를 통해 Etherscan 스타일의 개발자 도구, 지갑, 블록 탐색기, 인덱서, 개발 프레임워크 등 다양한 이더리움 기반 도구를 별도의 수정 없이 사용할 수 있습니다.
이는 지속적으로 진행 중인 작업이며, Cronos 팀은 남아 있는 호환성 문제를 계속 해결해 나가고 있습니다.
Osaka 하드포크 적용: go-ethereum v1.16.9
기반이 되는 EVM 엔진이 go-ethereum v1.16.9로 업그레이드됐으며, 이를 통해 Cronos에서 Osaka 하드포크가 공식적으로 활성화됩니다.
이번 업그레이드를 통해 Cronos는 이더리움의 최신 실행 레이어 변경 사항을 계속해서 따라가게 됩니다.
실험적 기능: libp2p 네트워킹 지원
v1.8에는 기존 P2P 인프라를 대체하기 위한 장기적인 목표의 일환으로 실험적인 libp2p 네트워킹 지원이 추가됐습니다. 이를 통해 P2P 지연 시간을 줄이고 네트워크 복원력을 높이는 것을 목표로 합니다.
현재 통합 작업은 완료됐지만 아직 최적의 성능을 낼 수 있도록 조정 중입니다. 이 기능은 향후 버전에서 계속 발전할 예정입니다.
핵심 프레임워크 업그레이드
주요 의존성도 최신 버전으로 업그레이드됐습니다.
• Cronos SDK는 v0.54.3으로 업그레이드돼 성능이 개선되고 새로운 기능이 추가됐습니다.
• IBC-Go는 체인 간 상호운용성을 개선한 최신 버전 v11로 업그레이드됐습니다.
• CometBFT는 최신 컨센서스 엔진 버전인 v0.39로 업그레이드됐습니다.
• RocksDB는 v10.9.1로 업그레이드됐으며, 메모리 프로파일을 실험적으로 조정할 수 있는 새로운 기능이 추가됐습니다. 이를 통해 RPC 노드나 아카이브 노드 등 다양한 노드 유형에 맞춰 성능을 최적화할 수 있습니다.
이와 함께 기존 인텐트 기반 처리 방식을 애플리케이션 측 멤풀로 대체해, 블록 처리 과정에서 발생하던 연산 부담을 줄였습니다.
버그 수정 및 보안 개선
v1.8에는 장기적인 안정성을 높이고 성능 저하를 방지하기 위한 40개 이상의 버그 수정이 포함됐습니다. 주요 변경 사항은 다음과 같습니다.
토큰 매핑 강화: 토큰 매핑 요청 시 유효한 컨트랙트 코드가 존재해야 합니다. 또한 자동 매핑은 이제 더 이상 숫자로만 구성된 토큰 심볼을 허용하지 않습니다. 소스 도메인 매핑도 크로스체인 전송에서 SRC1 토큰 매핑 등록을 허용하지 않도록 제한됩니다. 잘못된 Cronos EVM 주소는 이제 거부됩니다.
EVM 정확성 개선: calldata가 많은 트랜잭션의 가스 비용을 수정하고, EIP-1559 잔액 검사를 블록 실행 과정에 새롭게 적용했습니다. 또한 체인 상태를 변경하지 않는 가스 없는 트랜잭션의 경우 가스 소진 오류가 발생하지 않도록 개선했습니다.
접근 제어: SendCroToIbc는 이제 승인된 컨트랙트만 사용할 수 있도록 제한됩니다. 메시지 수와 메시지당 가스도 IBC grpc 쿼리에서 제한됩니다.
인프라: IBC 콜백 응답이 수정됐으며, 원격 버전 CLI 명령어가 이제 정상적으로 종료 코드를 반환합니다. 사용하지 않는 프리컴파일 기능도 제거됐습니다.
주요 변경 사항
검증자와 노드 운영자는 이번 업그레이드와 함께 적용되는 다음 변경 사항을 반드시 확인해야 합니다.
• SendCroToIbc는 이제 승인된 컨트랙트만 사용할 수 있습니다. 현재 CRO-to-IBC 훅을 사용하는 컨트랙트는 승인 목록에 포함돼 있는지 확인해야 합니다.
• Interchain Accounts(ICA)가 제거됐습니다. ICA를 사용하는 체인은 영향을 받을 수 있습니다.
• MsgTurnBridge는 더 이상 지원되지 않습니다.
• calldata가 많은 트랜잭션의 최소 가스 비용이 조정됐으며, 일부 dApp에서 반환되는 가스 추정값에 영향을 줄 수 있습니다.
• 거버넌스 파라미터의 범위가 강화돼 거버넌스 제안에 영향을 줄 수 있습니다.
• post-proc-before-cop 설정은 이제 eth_sendRawTransaction에서만 적용됩니다. 노드 운영자가 JSON-RPC를 통해 트랜잭션을 전송하는 경우 업그레이드 후 이 설정값이 권장 설정과 일치하는지 확인해야 합니다.
다음 단계
노드 운영자가 업그레이드를 준비할 수 있도록 전체 v1.8 마이그레이션 가이드에는 업그레이드 절차, 검증자 권장 설정, RPC 노드 설정, 아카이브 노드 설정과 함께 새로운 설정 옵션에 대한 자세한 설명이 포함돼 있습니다.
• 릴리스 노트: https://github.com/crypto-org-chain/cronos/releases/tag/v1.8.0
• 전체 변경 내역: https://github.com/crypto-org-chain/cronos/releases
• v1.8.0 릴리스 및 마이그레이션 가이드: https://github.com/crypto-org-chain/cronos/releases/tag/v1.8.0
Cronos 팀은 Cronos 생태계를 위해 더 빠르고 안정적인 인프라를 구축하고, 성능과 복원력, 안정성을 지속적으로 개선해 나갈 예정입니다.

