Beginning back in the early ‘90s with MCC’s ESS and other nascent efforts a new possibility for the development of distributed and decentralized applications was emerging. This was a virtual machine environment, running as a node in a connected network of such VM-based environments. This idea offered a rich fabric for the development of decentralized, but coordinated applications that was well suited to the Internet model of networked applications. The model of application development that would sit well on top of such a rich environment was a subject of intensive investigation.

Here we provide a brief, and somewhat idiosyncratic survey of several lines of investigation that converge to a single model for programming and deploying decentralized applications. Notably, the model adapts quite well to the blockchain setting, providing a natural notion of smart contract. As such, this summary can be taken as the design rationale for the RChain architecture, and the rholang model of blockchain-based smart contracts.