Scalable, Secure, Sustainable
Rholang is a new language for writing smart contracts that run on the RChain virtual machine. The language is a reflective higher-order process calculus, based on Milner's asynchronous polyadic pi calculus. As such, it is inherently concurrent, which makes it better suited to distributed programming than languages based on Turing machines or Church's lambda calculus, which are inherently sequential.
Download the SDK
Getting Started Tutorial
Subscribe to Newsletter
In mid June of 2016, an attacker exploited flaws in a wallet contract and drained $50M worth of Ethereum. The problem wasn't with Ethereum itself, but in the way the wallet contract was written. Ethereum's contract language Solidity is untyped, which means that the code itself is the only expression of programmer intent. Rholang will have a spatial-behavioral type system that will enable proving correctness and security properties about the code. While a spatial type describes a class of data structures that are organized in the same way, a behavioral type describes a class of programs that behave in the same way. A behavioral type is a second, coarser way to express programmer intent. The compiler can check whether these two independent expressions of intent are consistent, reducing the number and severity of bugs. The type system has already been used to show how to prevent the kinds of bugs in the faulty wallet contract.
Review of the ERC20 contract in Rholang