roots-id / cardano-watcher

A KERI watcher for Identifiers witnessed by Cardano blockchain and more
Apache License 2.0
1 stars 0 forks source link

Cardano Watcher

A KERI watcher for Identifiers witnessed by Cardano blockchain and more.

This project was funded by Project Catalyst, a decentralized innovation engine for solving real-world challenges based Cardano blockchain; it's tracked under Idea #112426.

Motivation

The KERI protocol is a fully decentralized identity protocol for persistent self-certifying identifiers called Autonomic Identifiers (AIDs). The primary root-of-trust are the self-certifying identifiers that are strongly bound at issuance to a cryptographic signing (public, private) keypair that can be later rotated using an end-verifiable Key Event Log (KEL) mechanism.

The indirect mode of the protocol depends on witnessed key event receipt logs (KERL) as a secondary root-of-trust for validating events. Those receipts are produced by a set of witnesses assigned by the controller of the AID and the security and accountability guarantees are provided by KA2CE or KERI's Agreement Algorithm for Control Establishment.

A special case is when a blockchain is used to validate and anchor the key events to the ledger since the consensus mechanism of the ledger provides the accountability guarantees of the KEL. A Proof of Concept of a Cardano Witness was developed by RootsID and can be found here. Furthermore, Cardano Foundation is developing a wallet that use Cardano as a witness of key event from identifiers.

This project is about watchers that are entities that keep a copy of a KERL for an identifier but are not designated by the controller thereof as one of its witnesses. An identifier watcher is part of the trust basis of a validators that need protection against duplicity events and malicious activity. The watcher is an observer that acts as a Jury when divergence, inconsistent or suspicious activity is detected. Hence, the goal of the watcher is to detect dishonest identity controllers or malicious third party may have exploited vulnerabilities on the controller of the identifier.

In this case we are developing a Cardano Watcher that is primarily focused on "watching" Key Events Logs that were achored to the Cardano Blockchain but also the design considers event produced by non-blockchain witnesses and other functionalities needed by verifiers.

Project resources

Getting started

This project consists of a backend app developed in Python and a frontend app developed in React.

Backend

Frontend