We have designed client side encrypted storage that sync on multiple devices and allows to hold that data on your server.
We have started as chat application in late 2022 that has completly open-readable database. The idea was simple - server holds zero secrets, like non at all. But we ran into the problem of authentication - there were no auth method what could make quick, synced authorization with completely zero secrets.
So in early 2023 we came to an idea of authentication via proof of ownership by providing proof that next step is made by the same user. Now you can see our job as ulda core https://github.com/ulda-io/ulda-core. Ulda was called as universal liniar data authentication.
But a year later we faced that “None need another extremely secure chat application” and we decided to export our ideas and share ulda as a method in order to gather some feedback from some smarter people. In 2025 we tried to publish our white papers at REKS, CMIS and in the end in Journal of Cryptology. Ulda was never published and then we decided that it would probable a good idea to go and publish at least something somewhere to bring some attraction and hopefully some feedback.
So, we assembled an sdk, that worked via ulda core and gave developers an ability to work in with encrypted and synced storage directly by editing json. We tried to make is simple as possible.
The main idea is that this authorization method allows the entire database to be readable by the entire internet and prevents compromised secrets on the server. Our implementation cannot yet explicitly protect against an infected server or mitm.
Yes, the cse implementation is possible and a bit optimistic, but ulda server allows you to work with the server only by communicating with packages, but then you will have to implement a slightly specific application or solution
This is too bloated to my taste. I've written a similar solution, but mine is a dependency-free single function only library, uses military-grade encryption and has multi-arch, multi-language support too (JS, PHP, Python, Lua, C).
Perhaps our way of presenting the idea wasn't the best, but the core problem that Ulda addresses is authorization. Encryption is essentially a way to demonstrate potential applications for a linear iterative signature.
13 comments
[ 3.7 ms ] story [ 25.6 ms ] threadWe have designed client side encrypted storage that sync on multiple devices and allows to hold that data on your server.
We have started as chat application in late 2022 that has completly open-readable database. The idea was simple - server holds zero secrets, like non at all. But we ran into the problem of authentication - there were no auth method what could make quick, synced authorization with completely zero secrets.
So in early 2023 we came to an idea of authentication via proof of ownership by providing proof that next step is made by the same user. Now you can see our job as ulda core https://github.com/ulda-io/ulda-core. Ulda was called as universal liniar data authentication.
But a year later we faced that “None need another extremely secure chat application” and we decided to export our ideas and share ulda as a method in order to gather some feedback from some smarter people. In 2025 we tried to publish our white papers at REKS, CMIS and in the end in Journal of Cryptology. Ulda was never published and then we decided that it would probable a good idea to go and publish at least something somewhere to bring some attraction and hopefully some feedback.
So, we assembled an sdk, that worked via ulda core and gave developers an ability to work in with encrypted and synced storage directly by editing json. We tried to make is simple as possible.
We hope to bring some attention not to a sdk itself, but rather to authentication method itself. You can read our white paper here: https://github.com/ulda-io/ulda-core/blob/main/MANIFEST.md
Also, if you would like to see our sdk, you can also try it here: https://docs.ulda.io, https://ulda.io.
Thank you very much for your time and we hope for your feedback about authentication method.
Best regards, Mark Shaposhnik Vitalii Radko
The only more tamper-resistant approach would be a browser extension, or a native application. Both have much higher friction.
https://gitlab.com/bztsrc/enigma
It's FOSS (permissive MIT license), so you can use it in ULDA too if you'd like.