Please describe your proposed solution.
Identity on Cardano
Atala PRISM, a digital identity project by IOG, opened its doors to the first set of PRISM Pioneers about 1.5 years ago. DID PRISM, the DID method developed by the Atala team, is anchored on the Cardano Blockchain - that mean that the DIDs are encoded and saved on-chain. Though the specification has only undergone minor changes over the years, it has only recently been made public (<https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md>), officially enabling the community to create their own node implementation.
Open-Source PRISM Node
The blocktrust team, actively participating in the PRISM community for over a year and a half, consistently builds projects on Atala PRISM, such as the blocktrust identity wallet, the analytics platform, the credential builder, a DIDComm Mediator and more. <u>Last year, we developed a prototype of a </u><u>PRISM Node</u><u> based on our research and deductions from what we gathered from the on-chain metadata</u>. Since the Atala team had not officially published the DID PRISM method specification at the time, we limited our Node prototype to reading from the blockchain, avoiding writing to the chain so as not to create a conflict of interest with the Atala team. The outcome is the blocktrust analytics platform, currently the only way to track PRISM operations on the chain.
Now, the Atala team has chosen to publish the specification while keeping their implementation closed-source (for allowing future revenue streams), paving the way for an open-source PRISM Node implementation based on the latest specifications. Finally having an open-source community driven PRISM Node would obviously be a massive step for the ecosystem.
Capabilities
To achieve this goal, we will leverage our previous experience with the prototype, revise it, and add the ability to not only read but also publish DIDs to the blockchain. To see our current implementation in action, visit Blocktrust Analytics (<https://analytics.blocktrust.dev/>), a platform to explore all PRISM transactions on the blockchain and see the live updates of all PRISM related transactions.
Our Node will have the following features and be fully compatible with the current specification:
- The Node will offer a REST API for common DID operations: Publish DID, Update DID, Deactivate DID, Resolve DID and GetOperationStatus
- All these operations will also be available via gRPC
- An Admin UI will allow creating tenants with Cardano wallet addresses
- Store the private keys for the tenants
- Provide the ability to fund those addresses and unlock the funds. This funding will cover the necessary ADA for uTXO transactions to the blockchain, with the encoded DID operations as metadata payload
- The node will have a UI, offering a graphical overview of the state of processing PRISM operations
- An alternative approach to submit an already serialized transaction will be provided, eliminating the need for funding through the integrated wallet
However, a PRISM Node does not function independently; it requires access to a database with all past and new incoming PRISM operations. In our prototype, we used the Cardano-node and dbsync. For this proposal's rewrite, we'll additionally offer the ability to use TxPiper.io Oura, as well as Blockfrost for streams of new incoming blocks.
Additionally we'll be implementing the Universal DID Resolver and Universal DID Registrar definitions, further promoting the adoption of the PRISM DID specification beyond the Cardano ecosystem.