Our submission consists of two projects under the name of Xycloo [which we look forward to creating as a company soon also with the help of the requested budget, which is why this application comes from an individual (Federico De Ponti) and not a company]. Our projects will all help the network grow its user base by bridging the Stellar blockchain and traditional services with innovative approaches as will be later discussed.
These projects are:
- sTeX, a blockchain-based, live, and collaborative LaTeX editor.
- Stensitive: store sensitive data on Stellar through your wallet (cross-wallet compatibility).
By voting our submission you are also voting to finally start Xycloo as a legal company. Xycloo will commit to building and shipping other projects through the Stellar Network, for example, AgoraBet which will however not be part of our submission due to stellar’s submission rules [7.1.3] (https://communityfund.stellar.org/rules-and-guidelines).
Now that we’ve introduced our proposals, let’s see what each project entails, how they use Stellar, and why we’ve decided to work on them, but before that, we’d like to share info about why our previous SCF project (smartartists) has stopped its development: with the announce of on-chain smart contracts, many features that smartartists aimed to offer on layer 2 will be available in layer-1 contracts, thus we are stopping further development until we see how on-chain contracts will look like.
Now, let’s start!
After a fair bit of time spent using a variety of different LaTeX editors, which all excel in their own way, we realized that they have a few glaring issues and limitations, which unfortunately can hinder or slow progress on large papers, especially when working in a team.
We think it’s time for LaTeX users to be able to write, compile, and store their documents online: the core is designed to interact with the Stellar network to do this, all while the users see a modern and fast editor, packed with features that greatly improve usability, such as carefully designed auto-completion and a real-time compiler. Additionally, we felt as though collaboration felt somewhat clunky on some editors, so we implemented a way for other users to see changes in real-time.
It is also worth noting that users will not necessarily have to deal with actions which can disrupt their workflow (especially for users who aren’t familiar with Blockchain), such as dealing with Stellar wallets, transaction signing, etc. They will rather use sTeX as any other standard username/password authentication and authorization mechanism.
The app relies on a serverless Cloudflare worker that provides an easily maintainable REST API, which powers our client-side, where you’ll find a VSCode-like editor with LaTeX-specific auto-completion. Real-time compiling is possible thanks to swiftlatex.
We are aware of existing alternatives to sTeX: the TeX community seems to specifically use Openleaf. While we think that Openleaf features many functionalities and is an incredibly robust product, there are some features that make sTeX an extremely valid alternative:
- Real-time compiler.
- Improved document-sharing.
- Modern design.
- VSCode-like editor (as well as all its functionalities).
Storing sensitive data efficiently and securely on Blockchain is possible thanks to Stensitive, the only thing you’ll need is a Stellar wallet. How does it work? Isn’t data on blockchain open by design?
This is all possible thanks to the nature of a transaction’s signature: unique and unpredictable depending on the user’s secret key and the signed transaction’s body. By this definition, encrypting data with a transaction’s signature as the encryption key allows the data to be only decrypted by signing the transaction again to re-obtain the signature. This process obviously assumes that the transaction used to retrieve the signature to encrypt the data is never submitted to the network.
Stensitive, which will be open-source, uses the above approach and ports it to a simple npm & hex package.
Further technical details are described in our whitepaper.
As described in our Whitepaper, given the design of Stellar transactions and signatures, if the user chose to use this approach to store sensitive data, that data won’t be compromised unless:
- The user’s stellar account is compromised
- The user submits a transaction with the same signature as the encryption signature (this should not be possible unless the user modifies the code of one of the packages, since the transaction used to get the encryption signature has invalid time bounds by default)
- The user’s wallet is compromised
On its own, Stensitive is not an app, but rather only a way of bridging wallet transaction signing and sensitive data encryption. Yet, we have developed (and will continue developing) modules and apps that make it easier to start using the above-described encryption technique. Specifically, as of now (May 12), we have developed:
- The stensitive npm package (mainly for web usage)
- The stensitive hex package for elixir (for CLI usage)
- A LaTeX document editor that manages its document’s contents with stensitive. The editor is a demo of how the sTeX editor will somewhat look like (strictly the editor, stensitive won’t be implemented in sTeX which is supposed to be more user-friendly).
We are unaware of other technologies that achieve the same result as stensitive on a public blockchain network.