
FlowpendID connect
FlowpenID is a data privacy focused identity provider. It aims at giving users full control on their data and allow Dapps and Apps to show they respect their users rights to privacy.
Demo
About
The problem it solves Today most identity provider focus on gathering, creating and handling users data in order to help application focus more on their core business. Most of the time however an identity provider will focus on guaranteeing the security of the data access to but the services around the data itself is left to the applications. The users control is not always the design of the provider. This is however addressed with different known specfication such as openID connect but they still leave the control of the data to the centralised party Our goal project is to leverage existing proven solution and protocols when it comes to identity and private data management with the transparency and ownership required to handle them. Our project aim at using certified identity service provider based on the openid connect specification and bringing the ownership and transparency known in blockchain to end users. We want to provide a fully secured infrastructure with enterprise grade certification (iso27001, openID certified...) with the ability for a user to decide who can access or "keep" their data thanks to flow child account system. We would like to create an easy login provider that would also allow user and application to set their personal data with contract leveraging zero knowledge proof to share their age for exemple. We also would like to use specification such as the financial grade API available in order to allow open banking data exchance thanks to the core system we would create. Part of the focus will be made in order to not give any kind of lockin system into our services. Companies should be able to use contract provided by us or use their own but end user should be able to see if the contract are audited thanks to the way the flowchain json format is built. We know that this is ambitious but we would like to solve the data ownership that exist in most application today as the data is appliation focused instead of user focused!
How it's made
Challenges we ran into While developping this system we had to think of a good infrastructure that would be highly scalable, cheap but also would leave full control to both applications and the applications users. We read a few documentation about the walletless implementation and thought that the system was already existing but we learned the hard way over the week that it was not fully operational :p. We knew there was a lot to build but understanding cadence concept and bringing the requirement of data sharing with certified openID connect server didn't leave us a lot of time. We dealt with cadence contract mostly using the emulator and we are running a bit out of time to fully integrate it in the backend services as the documentation was a bit lacking for some part. Digging around the different documentation and questions on discord helped us uncovered more nice feature of flow blockchain and is comforting us in the choice of this blockchain as a base to provide users with their data sovereignty but 5 days and just 48 hours more is not enough at all to be able to build a decent good contract. We copied a lot of the current child template existing in order to build ours but we don't feel that it's good enough right now. I can't classify this as a bug but we know we need more time to really build that link and unlink experience for the end users Also in order to keep the backend light and fast we decided to use markojs and not react which gave us a lot of trouble to get fcl working on the front end but also wagmi (this isn't part of flow but it did make us lose a lot of time xD)