BlockchainCommons / BlockchainCommons/Research

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

Open
#158 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Wolfram Language
Stars
141
Forks
40
PR merge metrics
No merged PRs in 30d

Description

## 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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.