Parallelized Architecture for Scalably Executing Smart Contracts (PArSEC)
PArSEC is the result of the DCI’s research on flexible technical architectures for centralized digital currency at scale. PArSEC supports a wide class of smart contract runtimes, including the Ethereum Virtual Machine. It supports flexible research and testing: the system can support clients easily updating their contracts’ logic, or even switching to different smart contract runtimes, without having to understand and alter the core architecture of the underlying transaction processor. Our research focused on smart contracts because they provide the highest degree of expressivity and functionality to users. In addition to a research paper and executive summary, PArSEC is free and open source software, publicly available on GitHub. We invite researchers and policymakers to work with us to develop the system further.
Outputs
PARSEC: Executing Smart Contracts in Parallel
This is a technical white paper from the collaboration with the Federal Reserve Bank of Boston and the MIT Digital Currency Initiative in 2023
This paper presents PARSEC, a high-performance distributed platform for executing smart contracts at scale. Our design is generic and supports a wide class of smart contract runtimes. We implement and test two such runtimes: an expressive Lua-based runtime that we design, as well as one integrating the Ethereum Virtual Machine (EVM). Our EVM integration is a drop-in RPC replacement compatible with standard tooling. PARSEC achieves linear scalability for non-conflicting workloads, and our evaluation shows up to 118K ERC-20 transactions per second on 128 hosts. We achieve this by observing that smart contract semantics do not require materializing a linear transaction history: a more permissive form of ordering, serializability, suffices and supports a parallel implementation. This work is part of Project Hamilton, and extends our previous work on high-performance, centralized transaction processors for digital currency.
Authors:
James Lovejoy, Federal Reserve Bank of Boston
Anders Brownworth, Federal Reserve Bank of Boston
Dr. Madars Virza, MIT Digital Currency Initiative
Dr. Neha Narula, MIT Digital Currency Initiative
Parallelized Architecture for Scalably Executing smart Contracts (PArSEC)
This is the code base for PArSEC, the collaboration with the Federal Reserve Bank of Boston and the MIT Digital Currency Initiative in 2023
This directory houses the architecture-specific code for a generic virtual machine layer capable of performing parallel executions of smart contracts.
The architecture is composed of two layers:
A distributed key-value data store with ACID database properties
This back-end data store is not constrained to any type of data and is agnostic to the execution later.
A generic virtual machine layer that executes programs (i.e., smart contracts) and uses the distributed key-value data store to record state
This computation layer defines the data models and transaction semantics.
We have implemented the Ethereum Virtual Machine EVM and a Lua based virtual machine as two working examples.
This architecture enables parallel execution of smart contracts which can be scaled horizontally where keys are independent.
Unmodified smart contracts from the Ethereum ecosystem can be deployed directly onto our EVM implementation.
Read the PArSEC Architecture Guide for more details.
Parallelized Architecture for Scalably Executing smart Contracts (PArSEC)
This is the executive summary of the PArSEC technical paper from the collaboration with the Federal Reserve Bank of Boston and the MIT Digital Currency Initiative in 2023
Many central banks are exploring how public money might be transformed into a digital asset. Today nearly all central banks are conducting research into or are actively experimenting with the issuance of central bank-issued digital currency, or CBDC.
The benefits of digitizing money have so far included increasing the speed, efficiency, and convenience of payments, as seen in the digitization of commercial bank and private money. Yet digitalization may offer additional functionality for money that is not currently available with our existing payment systems. With this effort, we sought to explore an architecture that examined the tradeoffs of including more complex functionality, specifically supporting smart contracts. Smart contracts are electronic agreements that self-execute according to predefined rules.
They enable users of the system to engage voluntarily in pre-specified contractual financial transactions. Researchers and policymakers have identified understanding the potential tradeoffs of including more complex functionality, like programmability and smart contracts, as a priority for CBDC design.
Automating some money-based functions may unlock future innovations in the financial services industry, but many questions remain regarding which use cases might be most impactful, and how to make the appropriate trade-offs around security and resilience. In our research we exclusively address technology questions. The accompanying paper presents our latest research on this flexible technical architecture that can execute a wide variety of smart contracts at scale.
Authors:
James Lovejoy, Federal Reserve Bank of Boston
Anders Brownworth, Federal Reserve Bank of Boston
Dr. Madars Virza, MIT Digital Currency Initiative
Dr. Neha Narula, MIT Digital Currency Initiative
A Framework for Programmability in Digital Currency
Programmability is a key feature of the PArSEC system. To ensure the accessibility of this critical new research, MIT Digital Currency Initiative has developed "A Framework for Programmability in Digital Currency.” This document provides a common vocabulary for practitioners and policymakers, dispelling common misconceptions about programmable money and highlighting different choices in programmability and the tradeoffs and risks of each choice.
The framework presents a taxonomy for what we describe as the different “levels” of programmability, from application programming interfaces (APIs) to stateful smart contracts. The authors conclude that programmability can be enabled at different locations in digital currency systems and that further research is needed to understand if and how to apply programmability in future systems.
Authors:
Nikhil George, MIT Digital Currency Initiative*
Thaddeus “Tadge” Dryja, MIT Digital Currency Initiative*
Dr. Neha Narula, MIT Digital Currency Initiative
*At the time the work was conducted