Skip to content

Question: Where should signature context predicates be applied? (BCR-2026-006 + BCR-2024-009) #158

@ChristopherA

Description

@ChristopherA

Question

BCR-2026-006 defines signature context predicates (signingAs, signatureContext, delegatedBy, delegationChain) for expressing the capacity and context in which a signature is made.

BCR-2024-009 defines a pattern for attaching metadata to signatures using double-signing: the outer signature signs both the original content and the metadata on the inner Signature object.

Where should signature context predicates be applied?

Option 1: Assertions on the signer XID

{
    Digest(document) [
        'signed': Signature
    ]
} [
    'signingAs': "CEO"
    'onBehalfOf': XID(corporation)
]
  • Simpler structure
  • Metadata is separate from the signature itself
  • Currently shown in BCR-2026-006 examples

Option 2: Metadata on the Signature object (per BCR-2024-009)

{
    Digest(document) [
        'signed': {
            Signature [
                'signingAs': "CEO"
                'onBehalfOf': XID(corporation)
            ]
        } [
            'signed': Signature
        ]
    ]
}
  • Cryptographically binds context to the specific signature
  • Requires double-signing pattern
  • Matches established BCR-2024-009 pattern

Option 3: Either pattern with guidance

Document when to use each approach based on use case requirements.

Context

This affects how BCR-2026-006 examples should be written and what guidance we give implementers.

/cc @wolfmcnally

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions