Skip to content

EPIC: Event-based decryption triggers #630

@ylembachar

Description

@ylembachar

This issue consolidates the specification and implementation tasks for event-based decryption triggers in Shutter. See internal discussion for design rationale and background.

Specification

EventTriggerDefinition (ETD)

  • Contract address + event signature (topic0)
  • 0–3 indexed argument matches (topic1–3)
  • 0–n conditions for non-indexed arguments
  • Encoded format for keypers, with planned human-readable JSON schema (ABI-based)

Condition Matching

  • Comparisons on number arguments (lt, gt, eq)
  • Equality checks on bytes32 and complex byte types

TTL (Time-to-Live)

  • Each ETD has an expiry block to avoid indefinite keyper load
  • Initial version: fixed lifetime (e.g. ~1 week)
  • Long term: paid extensions to extend TTL
  • ETDs re-checked each block until TTL expires or decryption succeeds

Tasks

  • Implement keyper logic
  • Implement contract logic
  • Integration tests (end-to-end with keypers + contracts)
  • Update Shutter API docs (WIP)
  • Update specs
  • Announce / after rolling-shutter release
  • Deployment to internal keypers (via shutter-deployment to both Chiado and Mainnet)
  • Update Shutter API to include ETDs with only an allowed list of contracts at first and the possibility to add contracts
  • Define and add metrics
  • Demo
  • Launch
  • Add pricing to add custom contracts (timing TBD)

Additional info:

  • Handle safe vs. eager evaluation (HEAD vs. confirmed blocks) - low priority
  • Handle incomplete threshold cases - handled via republishing of key shares until key generated

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions