Add predicate: EIP-712 Payload Attestation (secp256k1 typed-data receipt over exact bytes) - #590
Open
0rkz wants to merge 2 commits into
Open
Add predicate: EIP-712 Payload Attestation (secp256k1 typed-data receipt over exact bytes)#5900rkz wants to merge 2 commits into
0rkz wants to merge 2 commits into
Conversation
…ipt over exact bytes) Signed-off-by: 0rkz <paperm2m@gmail.com>
Signed-off-by: 0rkz <paperm2m@gmail.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What: A predicate type carrying an EIP-712
PayloadAttestation— a secp256k1 typed-data signature over the exact bytes of a served payload with a signer-declared validity deadline — inside a Statement v1, so receipts produced in the Ethereum/x402 ecosystem can be consumed by in-toto/DSSE policy tooling without re-signing. Type URI is under our own domain (https://payperbyte.io/attestation/eip712-payload-attestation/v1), so this PR only asks for directory listing/vetting, not a namespace grant.Why existing predicates don't fit: none carries an independently verifiable third-party typed-data signature whose key is recovered from the signature itself; SLSA Provenance/SCAI/Simple Verification Result describe builds or evaluations, not "which key signed exactly these bytes and until when". The predicate deliberately nests the EIP-712 signature as content (DSSE signs the Statement; the nested signature verifies on its own terms).
Policy questions it answers: is
publisheran accepted key for this resource; doeskeccak256(bytes)equal the signedpayloadHash; is the receipt within itsdeadline; under which EIP-712 domain was it signed.Scope: authenticity + tamper-evidence of exact bytes — explicitly not correctness/truth of the payload (stated normatively in the spec).
Example: complete Statement with a real, re-verifiable signature (ephemeral example key); verification sketch included.
Disclosure: authored by BYTEDev Inc (PayPerByte/ForeSeal), whose HTTP receipt uses this struct in production; the predicate is generic and not tied to our service.