메인 콘텐츠로 건너뛰기
kona-client는 OP Stack의 결함 증명(fault proof) 프로그램입니다. Kona 프로젝트의 일부로 빌드되는 Rust 프로그램으로, 분쟁 대상인 output root를 결함 증명 VM 내부에서 검증할 수 있도록 L2 상태 전이를 실행합니다.

개요

kona-client는 L1 데이터로부터 L2 체인의 분쟁 구간을 파생하고, 해당 블록을 재실행한 뒤, 그 결과를 주장된 L2 output root와 비교합니다. 네트워크 접근 없이 샌드박스에서 실행됩니다. kona-client가 사용하는 모든 체인 데이터(L1 헤더, 트랜잭션, 영수증, blob, L2 상태)는 동반 호스트 프로세스인 kona-host가 제공하는 preimage oracle ABI를 통해 전달됩니다. kona-client는 동일한 입력이 동일한 출력뿐 아니라 동일한 실행 트레이스를 생성하도록 만들어졌습니다. 이 결정성이 결함 분쟁을 해결 가능하게 만듭니다. 분쟁 게임(dispute game)을 위해 kona-client는 빅엔디언 64비트 MIPS(MIPS64) ELF 바이너리로 컴파일되어 cannon FPVM 내부에서 실행됩니다. 이 조합은 CANNON_KONA 분쟁 게임(게임 유형 8)을 뒷받침하며, 이는 Upgrade 19 이후 무허가 결함 증명에서 인정되는(respected) 게임 유형입니다. 모든 정직한 참여자가 동일한 실행 트레이스를 계산하므로, 분쟁을 이분 탐색하여 단일 MIPS 명령어까지 좁히고 그 하나의 명령어를 L1에서 증명할 수 있습니다. kona-client는 레거시 CANNON(게임 유형 0) 및 PERMISSIONED_CANNON(게임 유형 1) 게임의 기반이었던 Go 결함 증명 프로그램 op-program을 계승했습니다. op-program은 지원이 종료되었으며 (op-geth 및 op-program 지원 종료 참조), 현재 유지 관리되는 결함 증명 프로그램은 kona 바이너리입니다. 운영 주체: 프로덕션에서는 아무도 직접 호출하지 않습니다. op-challenger는 결함 분쟁이 실행 트레이스 단계에 도달하면 cannon을 실행하고, cannon은 체인의 절대 prestate가 커밋하는 kona-client ELF를 실행합니다. 체인 운영자는 결함 증명을 구성할 때 해당 prestate를 고정하며, 개발자는 테스트를 위해 kona-host를 통해 kona-client를 네이티브로 실행할 수도 있습니다.

시작하기

  • 절대 prestate 및 preimage 파일 생성: 특정 kona-client 빌드에 대한 온체인 커밋먼트인 절대 prestate를 빌드하고 검증합니다. op-challenger는 분쟁 시점에 이 prestate의 preimage를 실행합니다.

사용 방법 가이드

구성 및 플래그 레퍼런스

  • kona-client에는 구성 레퍼런스 페이지와 운영자용 플래그가 없습니다. 입력값(L1 head, 분쟁 대상 output root, 체인 구성)은 결함 증명 프로그램 사양에 정의된 대로 preimage oracle을 통해 부트스트랩 데이터로 전달됩니다.

릴리스

소스 및 사양 링크