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. Last year, we developed a prototype of a PRISM Node based on our research and deductions from what we gathered from the on-chain metadata. 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.
In the future (not included in this proposal to keep the scope manageable), we may also consider implementing the Universal DID Resolver and Universal DID Registrar definitions, further promoting the adoption of the PRISM DID specification beyond the Cardano ecosystem.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The DID PRISM method specification by the Atala team stands as a well-thought-out blueprint for DID methods, notably when compared to some others registered with the W3C. Given the uncertainty surrounding Atala PRISM's business model (as they must generate revenue) and the project's future direction, having a single, closed-source node implementation controlled by IOG may seem like a reasonable business decision. However, it does not align with the best interests of the Cardano or SSI community in general.
Furthermore, introducing an additional node would incite competition, stimulate development, and encourage more community members to use, integrate, and be involved in the digital identity ecosystem. This could potentially open an additional revenue stream for StakePool operators, allowing them to utilize their existing infrastructure to run a lightweight PRISM Node on their servers.
It would be reasonable to expect that, after a few months, multiple independent PRISM Nodes (3-5) will be set up. The specific numbers are difficult to estimate as they largely depend on the general adoption of the PRISM identity solution.
How do you intend to measure the success of your project?
The Node will be freely available for community use: We'll be providing the node in an open and accessible format that allows any member of the community to download and run it independently. This offers the chance for more widespread usage and the technology. The adoption of the Node and the creation of additional service-offerings can be measured, either in the interaction with the GitHub repository as well as on chain, as different nodes leave their own fingerprint (through the staking-address) on the chain when writing transactions.
Opportunity for extension and innovation: Other developers and technology enthusiasts are welcome to take our Node, enhance it, and integrate additional protocols on top of it. This opens a myriad of possibilities for future use-cases and extensions. The accessibility and openness of our node allows for ongoing growth and innovation, paving the way for fresh ideas and solutions that we may not have envisioned yet.
Please describe your plans to share the outputs and results of your project?
Blocktrust will keep the Cardano community informed about our progress by providing updates as we achieve each of our milestones, typically on a monthly basis. We'll be communicating through Catalyst progress reports, our dedicated Discord channel (<https://discord.gg/6UXrUY2HUk>), and videos showcasing the latest features of our product.
Occasionally, we may interact with the community in real-time during the Catalyst After Town Hall sessions. These sessions will give us an opportunity to show our progress and collect immediate feedback. We already did that several times in the past.
When it comes to releases, updates can of course found on our GitHub (<https://github.com/bsandmann>) as well on a dedicated website for this proposal under https://blocktrust.dev and our blog.