This repository was archived by the owner on Aug 3, 2026. It is now read-only.
fix: port Shasta hotfix soundness checks to main - #702
Merged
Conversation
* fix: harden shasta guest soundness checks * chore: update devnet SGX verifiers * fix: align devnet shasta preflight
* fix: bind stalled anchor checkpoint to parent state * fix: verify stalled checkpoint parent state linkage * fix: always include Shasta parent checkpoint proof * chore: bump gaiko devnet Shasta chainspec * chore: bump gaiko stalled Shasta replay fix
* fix: bind chain spec name in guest validation * chore: update gaiko submodule
Contributor
There was a problem hiding this comment.
Pull request overview
Ports remaining Shasta hotfix “soundness” validations to main by tightening fork selection and binding additional Shasta-specific inputs (anchor tx calldata, parent SignalService checkpoint storage, and known chain spec identity) so the guest cannot be driven with inconsistent witnesses/config.
Changes:
- Harden Shasta execution/validation by binding manifest anchor block numbers to decoded anchor tx calldata and tightening stalled-anchor bypass constraints.
- Add parent SignalService checkpoint storage-slot derivation + loading path to bind stalled-anchor calldata to parent state witness data.
- Validate recognized chain specs more strictly (including
nameandis_taiko) and update devnet chain spec fork/verifier config.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/src/utils/shasta.rs | Updates Shasta transaction generation validation to pass full GuestInput into manifest checks. |
| lib/src/utils/shasta_rules.rs | Extends input validation to require/validate Shasta anchor tx calldata and adds regression tests. |
| lib/src/protocol_instance.rs | Binds known chain-spec name/is_taiko and implements stalled-anchor bypass binding to parent SignalService checkpoint storage. |
| lib/src/builder.rs | Adds SHASTA-only Taiko fork guard during transaction execution and corresponding tests. |
| host/config/chain_spec_list_devnet.json | Simplifies devnet fork config to SHASTA and updates verifier addresses. |
| core/src/provider/db.rs | Adds helper to eagerly load initial account+storage slot values into the proof DB. |
| core/src/preflight/mod.rs | Loads parent SignalService checkpoint storage slots during Shasta batch preflight and wires anchor tx into guest inputs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
johntaiko
approved these changes
Jun 29, 2026
davidtaikocha
approved these changes
Jun 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test Plan