Glow, is a Domain Specific Language (DSL) for developing secure decentralized applications (DApps) on the blockchain, developed by Mutual Knowledge Systems, Inc.
Unlike existing languages, Glow covers much more than the “smart contract” of a DApp, as Glow’s compiler also generates crucially matching client code, and a logical model of your DApp so you can prove it correct.
Formal methods are not an afterthought in Glow, but are built into the language and its implementation.
Furthermore, Glow’s logic is designed to deal with the inherently adversarial aspect of DApps that existing formal tools overlook, self-verification in the code structure. Behind Glow is an architecture that in the future will allow the correctness of Glow itself to be demonstrated, and may later become a full DApp operating system.
Mutual Knowledge Systems, Inc. is developing Glow as an open source platform, with an ambitious business model to become the go-to company for all blockchain developments. Glow’s code is Apache 2 licensed.
Its design goals are:
Security: every newly implemented function is thoroughly audited so that a programmer using the Glow language, or its associated toolset, does not have to worry about the security of user-to-user interactions.
Ease of use: DApps must become mainstream, and the Glow development team always aims to make it obvious what a DApp does or does not do, so that users can make sure that it really fits their expectations.
Portability to any blockchain: applications written in Glow can run on any blockchain. There is no need to learn all the tools specific to a single blockchain, as the same DApp will be able to use the resources of multiple blockchains at once, and serve users where they are and where they are going to be.
In other words, what normally requires a huge amount of lines of code, and many experts in various fields, has been automated and abstracted by Glow.
The Plutus language and toolchain are difficult for most developers to use, since Plutus is a modern language created by IOHK.
Plutus provides a secure and complete programming environment based on Haskell, the leading functional programming language for Cardano, both on-chain and off-chain.
Glow simplifies DApp development, and for that it needs the EVM (Ethereum Virtual Machine), and so the team proposes to port Glow directly to Plutus, using the PAB.
The PAB is a Haskell library, a key off-chain component of the Plutus Application Framework (PAF), that allows developers to create and test DApps locally, before deploying them in a live production environment, and thus helps build UTXO transactions.
The Ethereum Virtual Machine is one of the key pieces in the operation of the Ethereum blockchain. Its function is to allow the execution of programs or smart contracts in order to deploy on the blockchain a series of added functionalities.
Glow was released in beta on the Cardano test network (using EVM emulation) in February 2021. Since then a proof of concept has been developed to run a simple smart contract (buy_sig) written in Glow directly in Cardano via the PAB.
Now, the team is set to extend this proof of concept to support the full Glow language, and improve the usability of the tools for the end user.
In order to run the high-level DApps written in Glow, directly in Cardano through the PAB, new developments need to be implemented to the proof of concept.
First, it must be ensured that Glow is able to send transactions to the Cardano blockchain while running the DApp. This will be necessary to deploy code on the blockchain and share data with other users. It will be done by extending parts of the runtime to send transactions to Cardano through the PAB.
Subsequently, it will be necessary to monitor and respond to events on the blockchain while executing contracts. It will also be done by extending the runtime to fetch data from the Cardano blockchain via the PAB.
Finally, the blockchain code must support interpretation of all Glow consensus primitives. This prototype supports a minimal subset, so it must be extended and thoroughly tested.
The duration of this project will be 14 weeks total (less than 4 months), in this order:
- 4 weeks to update the Glow runtime code to interface with the PAB,
- 3 weeks to update the GlowRuntime code to observe the Cardano Blockchain for consensus events,
- 4 weeks to update the interpreter for the consensus code, and.
- 3 weeks to run the integration tests.
Thus, after three months the PAB will be ready for testing. After six months, it will be ready for commercial deployment, and after 12 months, it will have a significant number of smart contracts deployed.
Users will be able to install Glow and the necessary PAB dependencies with nix.
Users will be able to run standard Glow contracts (buy_sig, rps, etc.) on Cardano with the PAB.
This project requires two Senior Engineers, whose total cost is USD 21,000 per month, totaling USD 63,000 in requested funds.
Mutual Knowledge Systems, Inc. is a company whose mission is to evolve a new decentralized Internet, developing tools on programming languages, with formal methods and distributed systems. This gives a unique advantage to write, audit or rewrite applications, so that they remain intact under attack.
You can see the full team here.
The company has built Glow on Cardano testnet’s KEVM, with a proof of concept for the PAB.
If you want to see the original proposal on Catalyst: Glow on the PAB