Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the definition of Receipts #308

Merged
merged 4 commits into from
Oct 15, 2024

Conversation

robinbryce
Copy link
Collaborator

  • Emphasise the role of Receipts in the abstract definition of Transparency
  • Specifically acknowlege that signed proofs for other purposes are not excluded.
  • Emphasise that the specific cryptographic proof is a transparency service implementation detail.

The effort to both reduce the definition and also foreshadow the role of receipts and non-exclusivity of the proof types, seems to be about a net 0 line count change.

This interpretation seems at odds with blocking on COSE-Receipts, but to me consistent with the definition of transparency in the document.

* Emphasise the role of Receipts in the abstract definition of
  Transparency
* Specifically acknowlege that signed proofs for other purposes are not
  excluded.
* Emphasise that the specific cryptographic proof is a transparency
  service implementation detail.

The effort to both reduce the definition and also foreshadow the role of
receipts and non-exclusivity of the proof types, seems to be about a net 0 line count
change.

This interpretation seems at odds with blocking on COSE-Receipts, but to
me consistent with the definition of transparency in the document.
@robinbryce robinbryce linked an issue Oct 15, 2024 that may be closed by this pull request
they can be built on different verifiable data structures, not just binary merkle trees.
A Receipt consists of a Transparency Service-specific inclusion proof for the Signed Statement, a signature by the Transparency Service of the state of the Append-only Log after the inclusion, and additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts demonstrate the inclusion of Signed Statements in the Append-only Log of a Transparency Service and have a specific abstract role in Transparency as defined in this document.
A Receipt combines a signature by the Transparency Service of the state of the Append-only Log after the inclusion with additional metadata (contained in the signature's protected headers) to assist in auditing.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Receipt consists of a Transparency Service-specific inclusion proof for the Signed Statement, a signature by the Transparency Service of the state of the Append-only Log after the inclusion, and additional metadata (contained in the signature's protected headers) to assist in auditing.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, we should stick with the Original text here, which was much crisp and clear!

Can i please ask, why the need for this re-alignment? What is the ask ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean Line 232 can be replaced with the original text from left!

Rest all re-alignment can be taken from your PR

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, the ask was this issue: #276 it was specifically asking if a Receipt was just an inclusion proof or something else.

On that issue we discussed fore shadowing the definition of transprency, which defines receipts as, essentially, signed inclusion proofs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand the concerne was that the lack of clarity on that made it unclear whether or how other proof types, specific to the implementation, should be described. In this pr I'm just saying 'not receipts'

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think reducing the entire defintion to just

"Receipts demonstrate the inclusion of Signed Statements in the Append-only Log of a Transparency Service and have a specific abstract role in Transparency as defined in this document."

And nothing else, would address the original issue. Receipts can't both be an abstract notion and also a specific prescription imo

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this comment.
A SCITT Receipt is a specific data structure, defined in CDDL, that profiles a COSE Receipt.... But SCITT Receipts have never supported proof types other than inclusion.

If the goal is to make sure they never do, we can use MUST language, we don't need to redefine receipt.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yogeshbdeshpande a "less is more" update based on your review I think

Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See my comments please!

1. align Receipt definition with definition of transparency
2. Explicitly acknowlege other signed proof types, but make it clear
   they are "not receipts", per the issue ietf-wg-scitt#276 's query
Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, LGTM!

Copy link
Collaborator

@OR13 OR13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My comment is nonblocking

A Receipt combines a signature by the Transparency Service of the state of the Append-only Log after the inclusion with additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts can be based on Signed Inclusion Proofs, such as those described in COSE Signed Merkle Tree Proofs {{-COMETRE}}; they can be built on different verifiable data structures, not just binary Merkle trees.
The cryptographic proof of inclusion for a Receipt is a Transparency Service-specific detail.
It is natural that Transparency Services support signed proofs for purposes other than demonstrating inclusion in an Append-only log; however, those are not Receipts.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The draft referenced above says they are.

It defines receipt as a signed "proof" of some type for some verifiable data structure.

It provides specific examples for inclusion and consistency.

It doesn't prevent other verifiable data structures or other proof types (such as proofs of non inclusion) from being used or called receipts.

I think it is fine for a SCITT Receipt to be only a signed inclusion proof, or only an inclusion proof in a specific verifiable data structure... Assuming that's what the SCITT WG wants SCITT Receipts to be.

This text closes the door to using the term SCITT Receipt to describe a signed consistency proof. Why is this the right thing to do for SCITT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feedback seems important. Is there a reason we want to close that door?

Receipts demonstrate the inclusion of Signed Statements in the Append-only Log of a Transparency Service and have a specific abstract role in Transparency as defined in this document.
A Receipt combines a signature by the Transparency Service of the state of the Append-only Log after the inclusion with additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts can be based on Signed Inclusion Proofs, such as those described in COSE Signed Merkle Tree Proofs {{-COMETRE}}; they can be built on different verifiable data structures, not just binary Merkle trees.
The cryptographic proof of inclusion for a Receipt is a Transparency Service-specific detail.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The COSE proof types are verifiable data structure specific, I think you mean that the "verifiable data structure" is a transparency service specific detail, and that correspondingly there is no interoperability unless the same data structures are chosen.

they can be built on different verifiable data structures, not just binary merkle trees.
A Receipt consists of a Transparency Service-specific inclusion proof for the Signed Statement, a signature by the Transparency Service of the state of the Append-only Log after the inclusion, and additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts demonstrate the inclusion of Signed Statements in the Append-only Log of a Transparency Service and have a specific abstract role in Transparency as defined in this document.
A Receipt combines a signature by the Transparency Service of the state of the Append-only Log after the inclusion with additional metadata (contained in the signature's protected headers) to assist in auditing.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with this comment.
A SCITT Receipt is a specific data structure, defined in CDDL, that profiles a COSE Receipt.... But SCITT Receipts have never supported proof types other than inclusion.

If the goal is to make sure they never do, we can use MUST language, we don't need to redefine receipt.

Copy link
Collaborator

@SteveLasker SteveLasker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From discussion during editors meeting:
LGTM

A Receipt combines a signature by the Transparency Service of the state of the Append-only Log after the inclusion with additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts can be based on Signed Inclusion Proofs, such as those described in COSE Signed Merkle Tree Proofs {{-COMETRE}}; they can be built on different verifiable data structures, not just binary Merkle trees.
The cryptographic proof of inclusion for a Receipt is a Transparency Service-specific detail.
It is natural that Transparency Services support signed proofs for purposes other than demonstrating inclusion in an Append-only log; however, those are not Receipts.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feedback seems important. Is there a reason we want to close that door?

Receipts are based on Signed Inclusion Proofs, such as those as described in COSE Signed Merkle Tree Proofs {{-COMETRE}};
they can be built on different verifiable data structures, not just binary merkle trees.
A Receipt consists of a Transparency Service-specific inclusion proof for the Signed Statement, a signature by the Transparency Service of the state of the Append-only Log after the inclusion, and additional metadata (contained in the signature's protected headers) to assist in auditing.
Receipts are signed proofs of verifiable data-structure properties.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By removing the reference to the draft-ietf-cose-merkle-tree definition of receipti, are we separating the definition in SCITT as unique? If so, for what purpose?

@SteveLasker SteveLasker merged commit b468e21 into ietf-wg-scitt:main Oct 15, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Receipts
8 participants