Skip to content

Create claim module #27

Closed
Closed
@aaronc

Description

This is to replace or at least complement the current esp module with something more generic, offloading the responsibility of whether a claim is valid to other logic.

Use Cases and Rationale:
The claims model is a generic way to represent who said what and why. The what is contained in the data graph - the claim itself, and who is managed by the claims module which allows many entities to assert the same claim. Many times claims are going to be signed by trusted third parties. So what creates the audit trail if that is not contained in the claim? This is where evidence fits in - oftentimes there might be off-chain data that is even just scanned paper documents which represents what the claim means or somebody has done thorough investigation and produced a report. These can all be linked to a claim via evidence which is the "why the claim is true" and the claim signature effectively who said what and why.

Claims themselves will now to be stored in the data module which will eventually abstract "graph descriptors" that include what the graph schema and subjects (i.e GeoAddress's or sdk.AccAddress's. The claim module just includes a very basic apparatus for signing claims.

A claim signature includes three basic pieces of data:

  • the claim itself (a DataAddress)
  • the signer(s) ([]sdk.AccAddress)
  • any supporting evidence ([]DataAddress) - on or off chain graphs, and importantly off-chain raw data which could be photographs, PDFs, etc.
  • event/claim time - the time which the ecological claim refers to e.g. when a farmer received organic certification.
  • blockchain time - the time the claim signature was recorded on (and off) chain

One important piece of behavior:
Given an existing claim that is already signed
When somebody tries to sign the same claim
Then new evidence and/or signatures will be recorded if any

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions