Why did we do this? Well, one big promise of web3 is interoperable, user-sovereign data. Rather than large centralized entities controlling data, users control their own data. One of the reasons this is interesting is that by focusing on user-owned data, we can write applications which work with each other, enabling composition that isn't really possible with web 2.0 business models.
Interoperability in this ecosystem is most often achieved by using IPFS and IPLD, but to keep data sovereign, users need to be able to sign (authenticate) and/or encrypt it. Until now there hasn't been a standard way of doing this, so every application has ended up writing their own protocols. The "IPLD, Object Signing and Encryption Grant" aimed to fix this!
The project is a longer term effort to increase interoperability of data across IPFS/IPLD-based apps and tools. Early work focused on:
- Formalizing specs that define IPLD structures for JOSE standards
- Writing a reference Go implementation, with interoperability considerations with...
Now that the initial funded work has been completed, ETH developers can already start integrating JOSE standards such as JWE and JWS into their IPLD-based dApps! The work was carried out by the talented and engaged Alex Good, who recently wrote an introductory blog post to the new IPLD libraries in Go. Check out Alex's post for details, and then stay tuned for his next post, where he'll go into detail about the work he did to bring JOSE web standards to IPLD!