kona-client 또는 그 변형을 원하는 검증 가능 백엔드에서 실행할 수 있도록 해 주는 데이터 소스 trait을 구현하는 과정을 안내합니다. 시작하기 전에, OP Stack STF 이해하기에서 다루는 두 가지 구성 요소인 derivation 파이프라인과 실행 엔진에 익숙해져 있어야 합니다.
백엔드 Trait
이 문서의 FPVM 백엔드 섹션에서 다룬 것처럼,kona-client에는 PreimageOracle ABI를 통해 데이터를 가져오는
kona-derive 및 kona-executor 데이터 소스 trait의 구현이 포함되어 있습니다.
하지만 이러한 데이터 소스 trait을 커스텀 구현하면, zkVM이나 TEE와 같은 다른 검증 가능 환경 위에서
kona-client를 실행하는 것도 가능합니다.
op-succinct는 커스텀 백엔드와 커스텀 프로그램 모두의 훌륭한 예시입니다.
sp1_lib::io를 기반으로 kona-derive와 kona-executor의 데이터 소스 trait을 모두 구현하여
다음을 수행합니다.
kona-client를 그대로 실행하여 단일 블록의 derivation과 실행을 SP-1에서 증명합니다.kona-derive와kona-executor를 사용하여 Span Batch 하나 분량의 L2 블록 전체를 도출하고 실행합니다.
커스텀 kona-derive 소스
시작하기 전에, 다음 trait의 커스텀 구현을 만들어야 합니다.
이들을 구현하고 나면, 데이터 소스를
PipelineBuilder에 전달하기만 하면 파이프라인을 간단히 구성할 수 있습니다. 플랫폼에 따라 수신 데이터의 검증 요구 사항이 다르다는 점에 유의하십시오. 예를 들어, zkVM을
대상으로 하는 프로그램은 수신 데이터가 실제로 유효하다는 제약을 걸어야 하지만, 결함 증명 프로그램은 이 검증을 host의 온체인 구현에 맡길 수 있습니다.
kona-client의 예시는
단일 증명 구현에서 확인할 수 있습니다.
kona-mpt / kona-executor 소스
시작하기 전에, 다음 trait의 커스텀 구현을 만들어야 합니다.
이들이 준비되면 다음과 같이
StatelessL2Builder를 구성할 수 있습니다.
모두 결합하기
kona-derive와 kona-executor 모두에 대한 커스텀 백엔드 trait을 구현하고 나면,
최종 바이너리는 kona-client의 바이너리와 비슷한 형태가 될 것입니다.
또는 더 넓은 범위의 블록을 증명하려는 경우, op-succinct의 range 프로그램이
연속된 여러 블록에 걸쳐 파이프라인과 executor를 실행하는 좋은 예시를 제공합니다.