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

Claim and attestation as two separate concepts #98

Closed
davux opened this issue Nov 29, 2017 · 11 comments
Closed

Claim and attestation as two separate concepts #98

davux opened this issue Nov 29, 2017 · 11 comments

Comments

@davux
Copy link

davux commented Nov 29, 2017

My understanding of the VC concepts is still basic as I joined recently and I might not be getting everything properly, but there is a thought I would like to share, in the hope it is aligned with the work made so far.

A verifiable claim is a claim with an embedded signature. If two entities attest the same claim, then they would both need to issue the claim separately, meaning there would be redundancy. Also, you cannot issue a verification without divulgating the claim itself.

What about separating conceptually a claim from its attestations? One way to think of it is signing the hash of a claim rather than the claim itself, for instance. As a doctor, I could be certifying the medical condition of a patient somewhere, while letting the patient decide whom to share their actual condition with. The attestation would only make sense to those with whom the claim was shared.

That would imply introducing a new "attester" role. An attester is not necessarily authoritative, it's just someone that says a given claim is true, provided you already know the claim. An attestation would simply mean "I'm stating that claim with fingerprint XXX is true about subject with fingerprint YYY".

Here I'm not discussing the advantages of using an attestation separated from the claim in the different real-life use cases. I'm simply suggesting the idea that those might be separated conceptually.

What do you think?

@agropper
Copy link

agropper commented Nov 29, 2017 via email

@davux
Copy link
Author

davux commented Nov 30, 2017

I'm not familiar with exactly how HIE of One works (I've only watched that 2-minute video), but one way of sharing and verifying a prescription would be for the physician to:

  1. Generate the plain (i.e. unsigned) JSON object for the prescription and share it with the patient
  2. Post a blockchain transaction containing a hash of that JSON object
  3. Let the pharmacy get the JSON object by any way (QR code, email, it doesn't matter as long as they obtain the JSON), calculate its hash on their own and check on the blockchain that the physician has signed it

Am I making sense?

To clarify again, just in case: I'm not suggesting that this is the only way of doing it right. Claims with an embedded signature are perfectly OK. I'm merely saying that conceptually you can think of a claim as something separate from an attestation, as the latter can sometimes exist independently from the former. For that reason I'm proposing to separate the two concepts in the Data Model.

@agropper
Copy link

agropper commented Nov 30, 2017 via email

@alexandermuehle
Copy link

In 3, how does the pharmacy check that the physician signed the JSON object? Adrian

By posting a blockchain transaction containing the hash of the JSON object he essentially already signed the JSON object. By verifying the transaction that the physician made a pharmacy would check if he indeed signed the object.

@dlongley
Copy link
Contributor

@alexandermuehle,

By posting a blockchain transaction containing the hash of the JSON object he essentially already signed the JSON object. By verifying the transaction that the physician made a pharmacy would check if he indeed signed the object.

For blockchains with signed transactions (and where the physician controls the key). Fit-for-purpose blockchains (those that aren't financial blockchains that have been adapted for other use cases) may put the signature elsewhere.

@alexandermuehle
Copy link

@dlongley

For blockchains with signed transactions

I'm assuming that's what @davux meant with "blockchain" transaction. What he is proposing are essentially public attestations/proofs. I'm not so sure that's a good idea but it's popular in other SSI projects.

@dlongley
Copy link
Contributor

I think this is related to #118.

@David-Chadwick
Copy link
Contributor

This may have been addressed in PR #141

@msporny
Copy link
Member

msporny commented Apr 6, 2018

outcome of F2F meeting: #141 isn't being merged

@msporny
Copy link
Member

msporny commented Apr 7, 2018

Discussion at F2F meeting: You could accomplish this by doing something like proof.proofPurpose: "Attestation". However, none of the implementers have implemented anything like this as they don't have a use case that requires this particular mechanism or have chosen to model their data differently.

The group plans to close this issue in 7 days as there are no spec changes in scope that we could make to address your issue. The way to address it is via the signature suite, and that is out of scope for the group.

@dlongley dlongley closed this as completed May 1, 2018
@agropper
Copy link

agropper commented May 10, 2019 via email

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

No branches or pull requests

6 participants