W3C home > Mailing lists > Public > public-credentials@w3.org > December 2020

Re: Verifiable Requests?

From: Daniel Hardman <daniel.hardman@evernym.com>
Date: Sun, 20 Dec 2020 07:31:39 -0700
Message-ID: <CAFBYrUq3b7BddnfTE+6XOYzXf4CvRoBQXdxCSC3wAFE5_FJyAQ@mail.gmail.com>
To: David Chadwick <D.W.Chadwick@kent.ac.uk>
Cc: Credentials Community Group <public-credentials@w3.org>
> I prefer to have the validation software algorithm work out the path and
> then tell the human verifier what this is, rather than relying on the
> holder('s wallet) to explain this to my code. As my previous message
> indicated, the wallet's explanation could be wrong. So I would prefer
> not to rely on it (it also introduces an attack vector for a malicious
> wallet).

I was imagining that any party receiving a proof would ask the binary
question, "Does this validate in a way that satisfies my request?" using
only the content of the evidence itself to answer. That, I believe, is
foundational. Thus, a malicious wallet could not lie about whether their
evidence is adequate, no matter how they explain it.

What this leaves is the possibility that a malicious wallet could provide
valid, satisfying evidence -- but lie in their explanation of which
acceptable path through the branching logic it took: "I gave you a passport
and three utility bills" when the truth is it gave a driver's license and
three utility bills instead (either of which was acceptable to the
verifier). I had been thinking that the risk of this kind of lie was
unimportant. But I suppose cybersecurity history tells us that any
opportunity to lie will eventually be manipulated by malicious people in
some surprising way that causes mischief -- so perhaps you are right.

I think the reason this explanation construct resonated so much for me is
that when we use ZKPs, and the prover combines fields from multiple
credentials into one verifiable presentation, we are already seeing
situations where software can evaluate the correctness of the evidence just
fine, but it takes a paragraph of text to explain what variant of
acceptable evidence was presented. So the need for explanation is real.
You're proposing that the explanation be generated, and I can see why
that's safer. But the challenge is that I can't generate a human-friendly
description of the evidence, because its pieces don't exist anywhere along
the interaction conducted via software. The request doesn't actually
contain human-friendly phrases like "Show me your driver's license or your
passport" -- it contains stuff that would mystify a mere mortal, like
"(issuer_did = X and schema = Y) OR (issuer_did = A and schema = B)" -- so
the best generated explanation we can give, from the data itself, looks
algebraic and uses terms that the verifier may not understand.

Received on Sunday, 20 December 2020 14:32:07 UTC

This archive was generated by hypermail 2.4.0 : Sunday, 20 December 2020 14:32:09 UTC