Skip to content

Commitments as a more generic variant of receipts  #33

@Gozala

Description

@Gozala

We have been finding that receipts right now fail to provide desired accountability, specifically receipts are like universal commitments that running certain task produces certain result and are effectively public.

In our system we are discovering that what we actually want is to issue commitments to a user that submitted a task e.g. when user uploads data we want to issue commitment that we will serve it to the authorized user from certain URL. That is commitment to a specific user, specifically sub of the invocation. This implies that sub can re-delegate our commitment to other actors that can exercise / verify our commitment e.g. by trying to load that content from the URL in the commitment. Crucial piece here is that commitment is to the user not to everyone in the world, because user will be billed for all the reads from the URL so ultimately they get to decide whether to make our commitment open to public or delegate it to a selected set of principals.

Argument could be made that described commitment is perhaps not what receipt is supposed to be, although I am getting more and more convinced that receipts are just limited subset of commitments where that have no ongoing costs e.g. computing hash of some byte array produces receipt and it does not really matter who invoked it as once computed it is done and there are no ongoing costs. However that could be modeled as commitment to "everyone" simply by making audience of the commitment be "did:key" with well known private key so anyone could hold issuer accountable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions