no_std Rust 프로그램과 크게 다르지 않습니다. 커스텀 엔트리포인트가 제공되며, 프로그램은
커스텀 타깃으로 컴파일된 후 FPVM에서 실행됩니다.
결함 증명 프로그램은 3단계로 구성됩니다.
- 프롤로그(Prologue): 프로그램이 메모리에 로드되고 초기 상태가 설정되는 부트스트래핑 단계입니다. 이 단계에서 프로그램의 초기 상태가 FPVM의 메모리에 기록되고, 프로그램의 엔트리포인트가 설정됩니다.
- 실행(Execution): 프로그램이 FPVM에서 실행되는 주요 실행 단계입니다. 이 단계에서 프로그램의 엔트리포인트가 호출되고, 프로그램은 종료될 때까지 실행됩니다.
- 에필로그(Epilogue): 프로그램의 최종 상태를 FPVM의 메모리에서 읽어 오는 마무리 단계입니다. 이 단계에서 프로그램의 최종 상태를 검사하고 상태 전이의 속성을 검증합니다.