Network Working Group I. Schrock
Internet-Draft EMILIA Protocol, Inc.
Intended status: Informational J. D Kintzele
Expires: 22 February 2027 J Diesel NY, LLC
21 August 2026
GRACE: Evidence-Bound Grid Curtailment Admission, Observation, and
Single-Use Settlement
draft-schrock-kintzele-grid-curtailment-00
Abstract
This document defines GRACE, an application profile for one bounded
grid.curtailment action. The profile binds an exact action to a
finite participation envelope, distinct human approvals when
required, one-attempt executor admission, an authenticated actuator
acknowledgment, separately authenticated meter observations, an
Action State Signed Statement, and one-time admission to a settlement
effect. Missing or ambiguous post-invocation evidence is preserved
as indeterminate and cannot authorize blind retry.
GRACE verifies signed inputs and deterministic computations. It does
not establish physical meter truth, baseline correctness, tariff
eligibility, actual payment, complete mediation, or a physical grid
deployment. An optional hybrid artifact-signature profile combines
Ed25519 with ML-DSA-65 and requires both signatures to verify.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 22 February 2027.
Schrock & Kintzele Expires 22 February 2027 [Page 1]
Internet-Draft GRACE Curtailment August 2026
Copyright Notice
Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. Terminology and Roles . . . . . . . . . . . . . . . . . . . . 3
3. Trust and Deployment Inputs . . . . . . . . . . . . . . . . . 4
4. Curtailment Action . . . . . . . . . . . . . . . . . . . . . 4
5. Participation Envelope and Containment . . . . . . . . . . . 5
6. Human Authorization . . . . . . . . . . . . . . . . . . . . . 5
7. Executor Admission and Refusal Semantics . . . . . . . . . . 5
8. Dispatch Acknowledgment . . . . . . . . . . . . . . . . . . . 6
9. Meter Statement and Compliance Computation . . . . . . . . . 7
10. Outcome Binding . . . . . . . . . . . . . . . . . . . . . . . 7
11. Action State Signed Statement . . . . . . . . . . . . . . . . 8
12. Single-Use Settlement Admission . . . . . . . . . . . . . . . 8
13. Proof-of-Curtailment Bundle . . . . . . . . . . . . . . . . . 8
14. Artifact Signature Profiles . . . . . . . . . . . . . . . . . 9
15. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9
16. Security Considerations . . . . . . . . . . . . . . . . . . . 9
17. Implementation Status . . . . . . . . . . . . . . . . . . . . 10
18. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
19. Normative References . . . . . . . . . . . . . . . . . . . . 10
20. Informative References . . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
A curtailment instruction can cross several administrative and
technical boundaries before it changes electrical load.
Authentication of the dispatcher alone does not answer whether the
exact event fit a customer-approved participation envelope, whether
the required people approved it, whether the executor admitted it
only once, or whether later measurement refers to the same action.
Schrock & Kintzele Expires 22 February 2027 [Page 2]
Internet-Draft GRACE Curtailment August 2026
GRACE keeps those questions separate. It defines an exact action, a
bounded envelope, pre-dispatch authorization and admission checks,
separately authenticated execution and measurement claims, outcome
reconciliation, and single-use settlement admission. Each relying
party selects and pins its own issuers, keys, policies, adapters,
clocks, and state stores.
The profile does not define a demand-response tariff, a baseline
methodology, a physical meter, a scheduler, or a payment rail. Those
systems remain authoritative for their own claims. GRACE binds their
signed inputs to one action and records the result of deterministic
verification.
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
BCP 14 is indexed by the RFC Editor at [BCP14].
2. Terminology and Roles
Participation Envelope A customer-approved, finite set of power,
energy, count, duration, notice, and time-window bounds. The
current profile identifier is EP-FLEX-ENVELOPE-v2.
Curtailment Action The closed EP-GRACE-CURTAILMENT-ACTION-v1 object
that identifies one requested power-reduction event.
Admission The executor-side decision that the exact action may enter
effect custody once. Admission is not evidence that the effect
occurred.
Actuator The deployment-pinned adapter that attempts the physical or
scheduler operation and signs an acknowledgment.
Meter A separately pinned observation source. A meter statement is
a signed source claim, not proof of physical truth or calibration.
Settlement Effect A deployment-supplied downstream operation invoked
only after the required evidence reconciles. GRACE controls at-
most-one invocation attempt for one entitlement key. It does not
define or prove payment.
Schrock & Kintzele Expires 22 February 2027 [Page 3]
Internet-Draft GRACE Curtailment August 2026
3. Trust and Deployment Inputs
A conforming deployment MUST independently configure the accepted
action and envelope versions, approver roster and threshold, WebAuthn
relying-party identifier and origins, actuator and meter keys, source
roles and control-domain identifiers, validity and freshness policy,
Action State signing key, execution store, settlement store, and
settlement adapter. Presenter-supplied trust anchors or policy
values MUST NOT influence acceptance.
Every protected effect path for which a deployment claims GRACE
enforcement MUST pass through the same admission boundary. An
implementation that can be bypassed may still emit evidence, but it
MUST NOT claim complete enforcement.
4. Curtailment Action
The action MUST be a closed JSON object [RFC8259] that can be
serialized with JCS [RFC8785]. Unknown, duplicated, missing, or non-
canonicalizable members are a refusal. Its required members are:
{
"@version": "EP-GRACE-CURTAILMENT-ACTION-v1",
"action_id": "grace:event:...",
"action_type": "grid.curtailment",
"effect_class": "power_reduction",
"facility": "facility:...",
"target_delta_kw": "18000",
"window": {
"not_before": "2026-07-15T20:15:00.000Z",
"not_after": "2026-07-15T21:45:00.000Z"
},
"issued_at": "2026-07-15T20:00:00.000Z",
"expires_at": "2026-07-15T21:45:00.000Z",
"baseline_method_hash": "sha256:...",
"control_mode": "human_on_the_loop",
"envelope_id": "grace:envelope:...",
"requested_by": "ep:agent:grid-coordinator"
}
target_delta_kw MUST be a positive decimal string with at most three
fractional digits. Timestamps MUST be UTC RFC 3339 timestamps with
millisecond precision. issued_at MUST precede window.not_before.
expires_at MUST equal window.not_after. control_mode is either
human_on_the_loop or human_in_the_loop. The baseline-method digest
commits to the program-selected method; it does not validate that
method.
Schrock & Kintzele Expires 22 February 2027 [Page 4]
Internet-Draft GRACE Curtailment August 2026
The verifier MUST derive the action digest and CAID [EP-CAID] from
the exact controlled-action projection. A supplied identifier MUST
NOT replace that derivation.
5. Participation Envelope and Containment
The action names one EP-FLEX-ENVELOPE-v2 envelope. The relying party
MUST obtain that envelope from its pinned authority and MUST verify
that it applies to the facility, program, and evaluation time. The
bounds object contains positive max_event_mw, max_period_mwh,
max_events, max_event_hours, min_notice_minutes, and a participation
window.
Before dispatch, the executor MUST compare power with power, energy
with energy, count with count, and duration with duration. The
action's MW cannot exceed max_event_mw. Its MW multiplied by window
duration cannot exceed the remaining period MWh budget. One more
event and its duration must fit the remaining event and event-hour
budgets. Its notice and window must fit the envelope.
A required bound or present spent-accounting value that is missing,
negative, or unparseable is a refusal. An omitted spent value
asserts zero prior settled usage; deployments that cannot make that
assertion MUST return indeterminate rather than use zero.
6. Human Authorization
The relying party selects an ordered approver roster and a threshold
using the action-bound authorization evidence in [EP-RECEIPTS]. Each
accepted approval MUST be a Class-A WebAuthn [WEBAUTHN] signoff over
a context that binds the controlled action digest, presentation
digest, policy digest, initiator, approver, roster index, threshold,
validity window, relying-party profile, app, platform, credential,
and device key.
The verifier MUST require user verification, the pinned relying-party
identifier and origin, distinct approvers, distinct device and
credential identifiers, initiator exclusion, the exact roster index,
and the selected threshold. The quorum semantics are those of
[EP-QUORUM]. A valid signature that does not match the relying
party's current roster, policy, action, presentation, or ceremony
window is a refusal.
7. Executor Admission and Refusal Semantics
The executor applies the Action Evidence Boundary [EP-AEB] in this
order:
Schrock & Kintzele Expires 22 February 2027 [Page 5]
Internet-Draft GRACE Curtailment August 2026
1. Validate the closed action and require it to be active.
2. Derive and verify action-to-envelope containment.
3. Derive the expected outcome policy and require its digest to be
inside the human-approved policy bytes.
4. Verify the human authorization against the pinned profile.
5. Require the pinned actuator, meter, Action State signer,
execution store, settlement store, and settlement adapter.
6. Atomically reserve the exact execution idempotency key before
invoking the actuator.
The execution idempotency key MUST bind the action identifier and
action digest. The shared store MUST be durable, atomic, and
ownership-fenced. Concurrent reservation failure is refuse_replay.
Storage unavailability is a refusal before invocation.
If invocation begins and the result is lost, malformed, or raises an
exception, the executor MUST return execution_indeterminate, preserve
or burn the reservation, set retry_safe to false, and MUST NOT
blindly invoke the effect again. Authenticated reconciliation is
required.
Pre-invocation failures use a mechanism-named refusal such as
refuse_action, refuse_action_not_active, refuse_outside_envelope,
refuse_outcome_policy, refuse_authorization, or
refuse_adapter_unavailable. Post-invocation evidence failures use
effect_unconfirmed and are not retry authorization.
8. Dispatch Acknowledgment
The dispatch request binds the complete action, action digest,
envelope digest, human-authorization digest, idempotency key, and
operator. The actuator acknowledgment MUST bind the event
identifier, action digest, dispatch-request digest, idempotency key,
actuator identity, status, and dispatch time, and MUST verify under
the pinned actuator key.
An accepted acknowledgment is the actuator's authenticated claim that
it dispatched the request. It is not independent measurement and
does not establish that electrical load changed.
Schrock & Kintzele Expires 22 February 2027 [Page 6]
Internet-Draft GRACE Curtailment August 2026
9. Meter Statement and Compliance Computation
The meter statement MUST bind the meter identifier, event identifier,
action digest, exact action window, unit, baseline MW, ordered
sequence of timestamped load intervals, measurement class,
observation time, and signer key identifier. It MUST verify under a
separately pinned meter key.
The meter statement MUST NOT contain baseline_method_hash. Program
and tariff rules remain in the authorized action and relying-party
policy. This separates a signed measurement-source claim from the
rule used to interpret it.
The reference computation subtracts average interval load from the
signed baseline MW, divides the delivered MW by ordered MW, and marks
the event compliant at a profile-selected threshold. A deployment
MUST pin the computation and threshold it uses. The result states
what follows from the accepted inputs. It does not prove the
baseline was economically correct, the readings were physically true,
or the event qualifies under a tariff.
10. Outcome Binding
The action's human-approved policy binds source-routed predictions
for an executor observation and an independent-observer meter
observation. Each Outcome Observation [EP-OUTCOME] MUST bind the
authorization record, action digest, CAID, consumption nonce,
operation identifier, facility, observation window, source role,
source class, and observed effect.
The relying party MUST pin source keys, roles, classes, control
domains, status and validity, distinctness requirements, observation
windows, and maximum attestation delay. A declared control domain is
relying-party policy input, not proof of organizational independence.
Settlement admission requires a reconciled outcome with the profile-
selected in-bounds result. Missing, stale, invalid, wrong-window,
same-domain, or otherwise insufficient observations produce
effect_unconfirmed. They MUST NOT be converted to success, failure,
or retry authorization.
Schrock & Kintzele Expires 22 February 2027 [Page 7]
Internet-Draft GRACE Curtailment August 2026
11. Action State Signed Statement
After outcome reconciliation, the profile emits a COSE_Sign1
[RFC9052] Action State Signed Statement using [ACTION-STATE] format
version 2 and media type application/agent-action-capsule+json. The
statement binds the action, operator, developer, authorization
digest, dispatch-request digest, meter digest, constraints evaluated,
disposition, and confirmed effect.
The capsule identifier is derived from canonical capsule bytes. The
JSON wrapper, COSE payload, protected headers, key identifier, and
statement digest MUST cross-check. The current reference output is
an unregistered_signed_statement. It is not a SCITT transparency-
service registration or proof of ledger inclusion.
12. Single-Use Settlement Admission
The one-time entitlement key is the injective serialization of
[envelope_id, event_id, meter_payload_digest] under profile EP-GRACE-
SETTLE-v1. Every member is required. The meter digest MUST be a
lowercase SHA-256 digest of the accepted signed meter body.
Only a compliant computation and an in-bounds reconciled outcome may
reach the settlement adapter. The settlement store MUST reserve the
entitlement atomically before invocation. A duplicate is
settlement_already_consumed. If invocation begins and its result is
unknown, the implementation MUST commit or preserve the reservation
and MUST NOT issue another settlement attempt under the same
entitlement.
This is at-most-one admission to the configured settlement effect in
one authoritative state domain. It is not exactly-once physical
payment, global double-spend prevention across independent
authorities, tariff eligibility, or evidence that funds moved.
13. Proof-of-Curtailment Bundle
The EP-GRACE-PROOF-OF-CURTAILMENT-v1 bundle is a signed, offline-
verifiable summary. It binds the action and action digest, envelope
digest, baseline-method digest, authorization digest, dispatch-
request digest, actuator-acknowledgment digest, meter-payload digest,
Outcome Binding result digest and outcome, deterministic compliance
result, Action State statement digest, and settlement admission
result.
Bundle verification establishes integrity and binding relative to the
verifier's pinned trust and policy inputs. It does not independently
establish any source claim as real-world truth.
Schrock & Kintzele Expires 22 February 2027 [Page 8]
Internet-Draft GRACE Curtailment August 2026
14. Artifact Signature Profiles
The baseline profile signs canonical artifact bytes with Ed25519.
The optional EP-GRACE-ARTIFACT-SIGNATURE-v2 profile uses a fixed
required algorithm list, in order: Ed25519 and ML-DSA-65 [FIPS204].
Its signing bytes commit to the complete artifact and the required
algorithm list.
A v2 verifier MUST require exactly one signature under each
independently pinned key and MUST accept only when both signatures
verify. Missing algorithms, reordered or narrowed requirements, key
substitution, malformed signatures, or an unavailable ML-DSA verifier
are refusals. A v1 verifier MUST NOT silently accept a v2 artifact.
Hybrid signing provides cryptographic migration evidence. It does
not make a software-held key hardware-backed, FIPS validated,
deployed, or operationally independent. A deployment claiming the
hybrid profile MUST identify and protect both actual signing keys.
15. Privacy Considerations
Curtailment records can reveal facility identity, capacity, operating
schedules, energy consumption, human approvers, device identifiers,
and commercial program terms. Implementations SHOULD minimize
portable fields, disclose raw intervals only to parties that require
them, use digests when independent recomputation is not required, and
apply retention and access policies appropriate to critical-
infrastructure data.
Selective disclosure or encryption cannot repair an overbroad signed
source object. Deployments SHOULD separate public verification
material from restricted operational evidence and preserve enough
binding information to detect substitution.
16. Security Considerations
The principal attacks are action substitution, envelope overflow,
stale approval, initiator self-approval, duplicate approvers,
dispatch replay, lost acknowledgment, actuator-key substitution,
meter-key substitution, market-rule smuggling into meter data,
observation-source collapse, wrapper substitution, signature-leg
stripping, and duplicate settlement admission. The preceding
sections require fail-closed checks for each.
Schrock & Kintzele Expires 22 February 2027 [Page 9]
Internet-Draft GRACE Curtailment August 2026
Key compromise remains a trust-root failure. Historical signatures
can establish what a key signed; they do not prove who controlled the
key or that the signed claim was true. A separately keyed meter
under the same operator's control may improve fault isolation but
does not create organizational independence.
GRACE cannot prove that the selected baseline is fair, a meter is
calibrated or untampered, a scheduler has no bypass, a declared
control domain is honest, a payment rail moved funds, or an
authority's upstream population is complete. Deployment claims MUST
state those acceptance roots.
17. Implementation Status
This section records implementation evidence and may be removed
before publication as an RFC.
The public EMILIA repository [GRACE-IMPLEMENTATION] contains a
TypeScript reference circuit for exact action construction, two
distinct Class-A approvals, bounded admission, a COSA-labeled
simulated actuator, a separately keyed simulated meter, Outcome
Binding, an Action State Signed Statement, and one-time settlement
admission. The adapters are marked simulation: true. The circuit is
not evidence of a physical grid event, production COSA integration,
utility adoption, meter truth, or an actual payment.
At the repository revision identified in the companion validation
record, 80 targeted tests pass across four files. They cover the
curtailment and mobile-grid state machines, production route
boundary, and an 11-case Ed25519 plus ML-DSA-65 hostile signature
matrix. Six declared vertical vectors [GRACE-VECTORS] cover the
accepted path and refusals for missing independent outcome signature,
self-approval, inactive action, replay, and meter-rule smuggling.
These are same-team reference results, not an independent
implementation or interoperability claim.
18. IANA Considerations
This document has no IANA actions. The grid.curtailment and EP-
GRACE-* identifiers are profile-local strings and are not entries in
an IANA registry.
19. Normative References
Schrock & Kintzele Expires 22 February 2027 [Page 10]
Internet-Draft GRACE Curtailment August 2026
[ACTION-STATE]
Mih, S. W., "An Agent Action Capsule Profile for SCITT",
Work in Progress, Internet-Draft, draft-mih-scitt-agent-
action-capsule-02, July 2026,
.
[BCP14] IETF, "Key words for use in RFCs to Indicate Requirement
Levels", .
[EP-AEB] Schrock, I., "Action Evidence Boundary: Binding Verified
Authorization Evidence to Agent Execution", Work in
Progress, Internet-Draft, draft-schrock-action-evidence-
boundary-04, August 2026,
.
[EP-CAID] Schrock, I., "Canonical Action Identifier: Stable Identity
for Material Agent Actions", Work in Progress, Internet-
Draft, draft-schrock-canonical-action-identifier-02,
August 2026, .
[EP-OUTCOME]
Schrock, I., "Outcome Binding for High-Risk Agent
Actions", Work in Progress, Internet-Draft, draft-schrock-
ep-outcome-binding-00, July 2026,
.
[EP-QUORUM]
Schrock, I., "Multi-Party Quorum Authorization for High-
Risk Agent Actions", Work in Progress, Internet-Draft,
draft-schrock-ep-quorum-03, July 2026,
.
[EP-RECEIPTS]
Schrock, I., "Authorization Receipts for High-Risk Agent
Actions", Work in Progress, Internet-Draft, draft-schrock-
ep-authorization-receipts-12, August 2026,
.
[FIPS204] National Institute of Standards and Technology, "Module-
Lattice-Based Digital Signature Standard", FIPS 204,
August 2024, .
Schrock & Kintzele Expires 22 February 2027 [Page 11]
Internet-Draft GRACE Curtailment August 2026
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, .
[RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", STD 90, RFC 8259,
DOI 10.17487/RFC8259, December 2017,
.
[RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON
Canonicalization Scheme (JCS)", RFC 8785,
DOI 10.17487/RFC8785, June 2020,
.
[RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE):
Structures and Process", STD 96, RFC 9052,
DOI 10.17487/RFC9052, August 2022,
.
[WEBAUTHN] World Wide Web Consortium, "Web Authentication: An API for
accessing Public Key Credentials - Level 2", April 2021,
.
20. Informative References
[GRACE-IMPLEMENTATION]
EMILIA Protocol, "GRACE Reference Implementation", 2026,
.
[GRACE-VECTORS]
EMILIA Protocol, "GRACE Mobile Grid Vertical Composition
Vectors", 2026, .
Authors' Addresses
Iman Schrock
EMILIA Protocol, Inc.
United States of America
Email: team@emiliaprotocol.ai
Schrock & Kintzele Expires 22 February 2027 [Page 12]
Internet-Draft GRACE Curtailment August 2026
Justin D Kintzele
J Diesel NY, LLC
United States of America
Email: jkintzele@jdieselny.com
Schrock & Kintzele Expires 22 February 2027 [Page 13]