hiero-ledger / hiero-ledger/hiero-consensus-node
CLPR-5.2: HieroTSS Verifier (Hiero-to-Hiero)
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
## Story CLPR-5.2: HieroTSS Verifier (Hiero-to-Hiero)
**Parent Epic:** CLPR-5: Hiero Verifier Contracts
**Repo:** hiero-ledger/hiero-consensus-node
### Objective
Implement the HieroTSS verifier contract that validates TSS signatures and Merkle paths from Hiero peer ledgers. Expected to be the first production verifier.
### Acceptance Criteria
- **AC-1:** Verifies TSS signature over state root hash using the tracked TSS public key.
- **AC-2:** Verifies SHA-384 Merkle paths: recomputes root from leaf values and sibling hashes. Final root must match signed state root.
- **AC-3:** Extracts verified `ClprQueueMetadata` and `ClprMessagePayload[]` from proven Merkle leaves.
- **AC-4:** Handles TSS public key rotation: tracks current key, accepts transitions when proven by outgoing key.
- **AC-5:** Parses the Hiero-specific proof bytes protobuf (block proof + Merkle paths + queue metadata + messages).
- **AC-6:** Reverts on: invalid TSS signature, Merkle path mismatch, malformed proof bytes.
- **AC-7:** Gas-efficient: minimize storage reads, use memory for intermediate computations.
### Dependencies
- CLPR-5.1 (IClprVerifier interface)
- CLPR-4.2 (produces the proof bytes this verifier validates)
- TSS infrastructure (key format, signature scheme)
### Risk
**High** — TSS signature verification in EVM may require precompiles. SHA-384 is not natively cheap in EVM.
Contributor guide
Research direction
Start by reading the CLPR-5.1 IClprVerifier interface and CLPR-4.2, which produces the proof bytes. Then review the TSS infrastructure for its key format and signature scheme, along with the Hiero-specific proof bytes requirements. Done means satisfying AC-1 through AC-7, including key rotation and reversion on invalid signatures, Merkle paths, or malformed proofs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- blockchain, cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100