A Verifiable Stateless Environment Builder
🧐 What is this?
Gemer is a framework that builds a verifiable stateless computing environment. In other words, this allows developers to build fully decentralized applications that truly respect user's privacy with little to no performance impact.
Think about it this way: it's like BitTorrent, but instead of just downloading static files you can run the apps you love on the network. Also like BitTorrent, it can run apps without a centralized server or a cloud. Users can keep their data on their own devices or encrypted storage, without leaking that to the service provider. Even better, if your app's backend is completely WebAssembly-compatible you may be able to port over the entire app on it - with no to minimal impact on performance or user experience. And you get full control over your entire codebase, so update and make changes to your app just like you are used to - no dealing with immutable chunks of code that should run forever on a blockchain (and not being affected by security vulnerabilities that cannot be fixed, unless you design it to be upgradable in the first place).
Even simpler: it's BitTorrent + AWS, or BitTorrent + WebAssembly - depends on whichever way you choose to use or see it.
🛠 What can we build with it?
Well, almost anything you can build with a server or a cloud. Any application that is WebAssembly-compatible and follows a functional and/or stateless programming paradigm, to be exact. It's just much more privacy-focused and respects self-sovereignty, since applications running on Gemer are trustless and decentralized.
People may be able to use Gemer for multiple purposes, but the two most obvious use cases currently for us are (i) reducing computation and data transfer costs for dealing with large-scale datasets, and (ii) enabling uncompromising privacy while retaining great user experiences. For (ii) I am currently working on something called Geemail, which I will give more detail as development progresses.
😮 How is this possible?
We rely on ideas originating from blockchain and distributed network research, and combine them with concepts from traditional virtual machine and compiler architectures. Please take a look at the paper linked below.
⛓ How is this different from a blockchain or a distributed ledger?
When we refer to a blockchain or a distributed ledger that is capable of running Turing-complete Smart Contracts, almost all of them follow the world state model proposed by Vitalik Buterin with Ethereum back in 2013. This means that from a traditional CS standpoint, every time an application's state is updated this is treated as a transaction on a blockchain - which is something that (i) every participant needs to share a single, immutable copy and (ii) require consensus for every transaction (state transition) to maintain (i). While this is great for certain use cases that require public verifiability - including token transfers, votes and decentralized autonomous organizations (DAOs) - this level of trustlessness is often not required for commercial applications that just want to provide the best user experiences for their customers.
Unlike blockchains and other distributed ledgers, Gemer does not follow a single world state model. Instead, this relies on a new approach that we call a "local state" model - which means that not all devices are required to share the same state for a certain level of fault tolerance. Obviously this approach gives up liveness - as described with FLP Impossiblity - and full public verifiability, but provides enough flexibility for developers to easily work with, and extra performance (as different functions may run on multiple devices in parallel). We just need to prove that an execution round is honest by providing a single cryptographic proof representing the root of a callstack graph of a single execution session, with each leaf signed by the corresponding unique device key.
Thus, this is not for running "Smart Contracts" that are required to be fully publicly verifiable - Gemer is for running everything else, which may involve heavy computation logic, in a decentralized way. Gemer may be used alongside with blockchains and distributed ledgers by periodically submitting the cryptographic proof mentioned above for extra fault tolerance - refer to the paper for further information.
📄 Do you have a detailed paper about this?
Sure, there is a paper available here. The file available at this link is constantly being updated, as it is still a working draft.
⁉️ I cannot believe you, show me the code!
I am currently working on a simple proof-of-concept, written in Go. Note that this is strictly for demonstration purposes only, and not production ready by any means. Constructive comments, issues and pull requests are always welcome.
📆 Is there a clear development roadmap?
I am currently working on this on my own, and I obviously have lots of other stuff to do other than this. I am also honestly not that good as a developer - I architect and design things, but do not write "good code" to a level expected from an experienced professional. Thus I cannot give a clear roadmap on when this might be ready for production, unless I take this commercially, get funded and hire more developers.
Thankfully there are a few people who are helping me work on this project, who I cannot disclose publicly at this stage. I will continue updating this page as the situation changes.
💰 Are you doing an ICO, IEO or token sale of any kind?
No. As I mentioned above and with the paper, Gemer is not a blockchain or a distributed ledger, rather a software framework; thus, this technically cannot have its own token. Also, conducting a "public sale" for a token that is supposed to be a neutral representation of value on a public network as a "currency" makes no sense for me personally, based on my understanding of Economics 101.
I am currently primarily focusing on receiving private funding from the traditional venture capital sector, including crypto VCs conducting shares investments, if I ever decide to grow this into an actual commercial product.
🧰 Are you hiring?
I currently do not have the resources to hire someone full-time. However I am very open to potential non-commercial partners (in any sector, including but not limited to developers) who wish to build this together. Please contact me using the links below.
Also, I am currently looking for potential investors to help bring Gemer into the commercial space (and also let me hire commercial developers full-time). Let's get in touch if you are an investor and interested in this project.
✉️ I have a question. Where can I contact you?
👩💻 BTW, who are you?
I am a freelance blockchain platform engineer and an undergraduate university student, from South Korea 🇰🇷 but occasionally happens to be in San Fransisco, US 🇺🇸 or Sydney, Australia 🇦🇺. I happened to be one of the (very few) people who received Satoshi Nakamoto's initial unveiling of the Bitcoin white paper via a mailing list back in October 2008. I was also one of the earliest people to mine a block on the Bitcoin blockchain with 2009-era PC hardware (unfortunately I didn't keep the keys for them), and one of the earliest to participate in Ethereum's ICO (also unfortunately I didn't make a lot of money from all the crypto craze).
I have been following this space ever since the Satoshi Nakamoto days on bitcointalk.org to the current, mostly scammy but interesting crypto and blockchain industry. I decided to work on this project just because I thought we need a more "utopian but realistic" approach to what Satoshi has originally proposed with his paper, as someone who has observed what was originally a utopian engineer's dream slowly turning into one of the largest Ponzi scams in the history of economics (especially after seeing what happened in South Korea during and after 2017's crypto bull market). That's not to say every project is a scam, but I can say for certain that all of this is definitely not what Bitcoin utopians have dreamed of back in the day.
Before working with blockchain and crypto, I have mostly worked with kernel engineering, virtual machines and compilers in both iOS and Android spaces.
For more details about myself, check out my LinkedIn profile.