Technology

Toward Ethereum Equivalence #1 — Klaytn v1.8.0 소개

클레이튼 2.0 라이트 페이퍼에 명시된 것과 같이 클레이튼은 Ethereum Equivalence를 지원하려합니다. Klaytn v1.8.0은 이를 향한 큰 변화이고, 클레이튼에서도 이더리움 개발도구를 쉽게 사용할 수 있게 됩니다. 한편, 이 변화는 기존의 Klaytn 위에서 운영 되던 서비스에도 영향을 미칠 수 있기에 총 4편의 미디엄 포스팅 시리즈, Klaytn Docs 업데이트, 그리고 변화를 미리 경험할 수 있는 임시 테스트 네트워크를 제공하려합니다.

v1.8.0이 메인넷에 가져올 주요 변화

1. London EVM 지원

클레이튼에서 이더리움 London EVM 이 지원하는 모든 기능을 사용할 수 있습니다. 이더리움의 London 하드포크는 기능적인 측면에서 EVM이 변경된 가장 마지막 하드포크입니다. 즉, 클레이튼에서 현재 Ethereum EVM과 동일한 기능을 모두 사용할 수 있게 됩니다.

다만, London EVM 지원 과정에서 Precompiled Contract 주소의 변경이 있어 기존 클레이튼 개발자들이 주의해야할 부분이 있습니다. 이에 대해서는 Toward Ethereum Equivalence #2를 통해 상세히 공유하도록 하겠습니다.

2. 이더리움 API 형식 지원 (eth namespace)

클레이튼에서 이더리움 개발도구를 사용할 수 있게 됩니다. 클레이튼은 이더리움과 데이터 표현 방식이 달라 이더리움 개발도구의 호환성 문제가 있었습니다. Klaytn v1.8.0 이후에는 klay namespace를 이용하여 API를 호출하는 경우(예, klay_getBlockByNumber)는 기존과 동일한 결과를 출력하지만, eth namespace를 이용하여 API를 호출하는 경우(예, eth_getBlockByNumber)에는 이더리움 데이터 형식으로 변환하여 출력합니다. 이를 통해 Hardhat, Truffle 등 다양한 개발도구를 클레이튼 위에서 사용하실 수 있습니다.

다만, 클레이튼과 이더리움의 구조적 차이에서 발생하는 일부 데이터에 대해서는 출력 값에 일부 보정이 발생할 수 있습니다. 예를들어, 클레이튼은 PoW 합의를 수행하지 않기 때문에 블록 헤더 Difficulty 필드에 다른 보정된 값이 들어가게 됩니다. 주요한 차이에 대해서 Toward Ethereum Equivalence #3을 통해 상세히 공유하도록 하겠습니다.

3. 이더리움 트랜잭션 타입 지원을 위한 신규 클레이튼 트랜잭션 타입 도입

이더리움의 트랜잭션 타입(AccessList 트랜잭션DynamicFee 트랜잭션) 형식을 지원합니다. 이더리움은 2021년 트랜잭션 타입이라는 개념을 도입하였습니다. 그런데, 클레이튼에서는 2019년 메인넷이 시작될 때부터 트랜잭션 타입이 포함되어 있었고, 이번에 이더리움에서 추가된 트랜잭션 타입과 호환성 문제가 발생하였습니다. Klaytn v1.8.0 에서는 이런 충돌문제를 해결하는 변화가 추가됩니다.

다만, 클레이튼은 고정 가스비 정책을 사용하는 등 가스비 관리방식이 다르기에 이더리움 트랜잭션 타입 사용으로 인한 가스비 비용 절감 효과 등을 발생하지 않습니다. 이와 관련해서는 Toward Ethereum Equivalence #4를 통해 상세히 공유하도록 하겠습니다.

v1.8.0 경험을 위한 임시 테스트 네트워크 제공

현재 QA 절차 진행 중인 Klaytn v1.8.0-rc 버전의 테스트 네트워크 하나를 공개합니다. 생태계 개발자들이 신규 버전의 변화도 미리 경험할 수도 있고, QA 과정에도 쉽게 참여하실 수 있습니다.

HTTP Endpoints

Websocket Endpoints

  • wss://api1.eth-compatible-temp.klaytn.net:8652
  • wss://api2.eth-compatible-temp.klaytn.net:8652

Faucets

주의사항

  • 이 네트워크는 Klaytn v1.8.0 을 미리 경험하기 위한 임시 테스트 네트워크입니다.
  • 이 네트워크는 Cypress 메인넷에 Klaytn v1.8.0 변경이 모두 적용된 이후 공지없이 종료될 수 있습니다(예상일정: 4월 중순).
  • 이 네트워크는 어떠한 서비스 수준 협약(Service Level Agreement)를 제공하지 않으며, 공지없이 업데이트되거나 잠시 중단될 수 있습니다.
  • 사용 중 버그 리포팅이나 문의사항은 Klaytn Discord (#report-a-bug #dev-support #개발자-지원)에서 전달부탁드립니다.

v1.8.0과 관련된 주요 일정

Klaytn v1.8.0은 다음과 같은 일정으로 진행될 예정입니다. 위에서 설명된 변화 중 “이더리움 API 형식 지원” 부분은 각 EN이 Klaytn v1.8.0으로 업그레이드하면 바로 적용되며, 그 이외는 하드포크 수정사항이 반영되는 블록번호 이후 적용될 예정입니다. 정확한 하드포크 블록번호는 차후에 미디엄 또는 릴리즈노트 등을 통해 공유될 예정입니다.

일정

  • 3/7 — Caver v1.8.0 배포
  • 3/16 — Klaytn v1.8.0 배포
  • 3/24 (예정) — Baobab 테스트넷 v1.8.0 하드포크 작동
  • 3/31 (예정) — Cypress 메인넷 v1.8.0 하드포크 작동

관련 미디엄 포스팅 목록