Blog.

Chaos Labs joins Maker SES

Cover Image for Chaos Labs joins Maker SES
Omer Goldberg
Omer Goldberg

This is a repost of the MakerDAO announcment here

We are excited to announce that Chaos Labs, a cloud security and testing platform for smart contract applications, has recently joined the SES incubation program. Chaos Labs is building an agent- and scenario-based simulation platform that will increase the robustness of the Maker testing stack.

Chaos Labs and Maker Collaboration

Introducing Chaos Labs

With DeFi protocols now securing tens of billions in value on mainnet, testing is crucial to help ensure the long-term sustainability and security of the blockchain ecosystem as a whole.

After identifying a significant infrastructure, security, and testing tooling gap, Omer Goldberg founded Chaos Labs. Omer, Yonatan Hayun, Yonatan Haimowitz and the founding team have a strong execution track record, previously building infrastructure software for Apple, Facebook, Instagram, Internet.org, 8200 (IDF cyber units) and Iron Dome (missile interception system).

Chaos Labs enables teams to create high-fidelity agent and scenario-based simulations on mainnet forks, offering a real-world testing environment. By providing a rich library of customizable agents and scenarios, teams can rapidly speed up development and reduce their go-to-market time, helping them stay competitive without compromising on the security of their protocol.

Additionally, Chaos Labs focuses on developer tooling and cloud infrastructure, allowing teams to move fast on stable infrastructure. The platform is currently live for protocols on the Ethereum network and later expanding to additional blockchains such as Terra, NEAR and Polygon.

The Chaos Labs Charter

MakerDAO continues to grow, and so does its protocol and developer ecosystem. As new products are shipped and new teams are welcomed into the developer ecosystem, testing and security infrastructure are critical to ensuring that Maker continues to produce software of the highest quality.

Broadly speaking, the Chaos Labs charter is as follows:

  • Own Maker Testing and Security Infrastructure - build Maker-specific tools to help developers build secure and well-tested software.
  • Improve the overall quality of software being developed in the Maker ecosystem. A better testing environment and infrastructure will result in:
    • A more reliable product
    • Thoroughly tested code will result in a more resilient protocol.
    • Safer and more accessible methods of collaboration, including teams working in parallel
  • Make it easier for engineers to get up and running with a dev environment, thus improving the openness of the Maker developer ecosystem.

Beginning with User Research

As part of our research, we interviewed six teams in the Maker ecosystem, including SES incubation program teams.

Aside from a high-level introduction, the goal of each interview was to understand:

  • The team’s purpose and mission as an incubation team or independent core unit
  • Workflow and development environment
  • Pain points and areas of friction when developing

This gave us deep insights into how new and old teams are experiencing the Maker development ecosystem.

Interviewed Teams

Team Name Description Technologies
Chronicle Labs Oracle Software for Maker Bash, Golang
Bootnode.dev Operational Maker data API based on TheGraph. The Graph Protocol, Graph subgraphs, Data Infrastructure
DUX Governance Portal, https://vote.makerdao.com/ Web, Javascript
Sidestream Unified Auction Services. Web, Javascript
Oasis.app Manager Vaults and Collateral Web, Javascript
Immunefi Bug Bounty Program Bounty Core Unit
Core Protocol Engineering Core Protocol Development Smart Contracts

Identifying different customers and stake holders

During our conversations with different teams, we quickly realized that the Maker ecosystem is complex and focused on various tech stacks. Because of this, we understand that we will need to develop different tools that serve diverse teams. Each project will have a different focus.

Functional Stakeholders vs. Product Stakeholders

During interviews, Chaos Labs identified multiple stakeholders. A core segmentation was between functional stakeholders and product stakeholders. This article defines functional stakeholders as web3 engineers who primarily build smart contracts and core protocol business logic. In contrast, product stakeholders are web3 contributors who PM projects, build the web stack or focus on analytics.

Both groups are crucial, and each has its unique issues due to entirely different development environments. Because of this, it became clear early on that there would be no "silver bullet" fix or improvement for the MakerDAO dev ecosystem. Chaos Labs will need to identify the different areas ready for improvement and sequence the building.

Growing Developer Ecosystem

Maker has a vibrant ecosystem of motivated contributors. These contributors have diverse technological experiences. As the migration of developers from web2 to web3 continues, MakerDAO is onboarding many very talented engineers. Allowing these new engineers to ramp up with tools and languages they are familiar with (Javascript, for example) helps reduce the ramp-up time. This is especially helpful when we consider that not all devs are smart contract-focused and often have no bandwidth/motivation to learn new frameworks to accomplish the same tasks. For example, a Javascript engineer who is improving a user interface would then need to configure a blockchain development environment. More on this below.

Insights and Themes

Chaos Labs has segmented the findings into two core themes:

  1. Opportunities around smart contract development environment
  2. Tooling for Oracle and Subgraph Development to streamline workflows

In this article, we will focus on opportunities for the smart contract development environment.

Current State of Maker Smart Contract Development Environment

Currently, Nix is used as the Maker development environment. Nix utilizes its own package manager to manage dependencies.

What is Nix?

Nix is a cross-platform package manager that utilizes a purely functional deployment model where software is installed into unique directories generated through cryptographic hashes. It is also the name of the tool's programming language. A package's hash takes into account the dependencies, which aims to eliminate dependency hell. This package management model advertises more reliable, reproducible and portable packages.

As one of the more mature projects in the DeFi ecosystem, Nix was initially an excellent environment for Maker. Furthermore, Nix worked well with Maker's modular architecture, allowing different components in the system to be developed with varying versions of the solidity compiler without worrying about dependency management.

Ramping Up on the Nix Environment is a Challenge

Getting started with Maker tooling requires a significant investment of time and effort, creating a relatively high starting cost. This can lead to less-than-ideal experiences for new developers, who may be inexperienced with these tools.

A unique development environment that is new to most engineers and lacking up-to-date, robust documentation can create a challenging development experience. Ultimately, this leaves developers with the challenge of building their feature while also taming their tools. Since pinpointing bugs is challenging, developers are unsure if bugs are introduced in their business logic or interfacing with the Maker development environment.

Missing the open source wave

With the rising popularity of web3, the open source community is beginning to thrive and move fast. We're seeing the development of excellent open-source repositories such as hardhat, ethers.js and more with a solid and active contributor community.

In contract, while Nix is very powerful, it has a small open-source community. Maker is currently missing an opportunity to leverage the power of the open-source community.

Next Up: Proof of Concept

Chaos Labs + Maker Development Environment

Based on the interviews conducted with various SES teams and core protocol engineers, we propose building a supplementary Maker development environment based on a mainnet fork. We considered Ganache and Hardhat for a local mainnet fork. For the proof of concept we’ve selected Hardhat due to its current popularity and vibrant open-source community.

We will build a Maker-specific dev environment and portal as part of our proof of concept. This portal will offer features, customizations and flows aimed at streamlining the Maker development experience.

The Maker Portal will:

  • Allow devs to configure protocol state easily via account impersonations and contract whitelisting
  • Have an interface to interact with core MCD APIS directly
  • Allow developers to effortlessly test the impact of spells (AKA executive votes)
  • Allow teams to configure oracle price feeds (e.g., to trigger mass liquidations)

These features will help Maker developers in their day-to-day workflows and alleviate many of the issues mentioned above. Additionally, they will welcome more contributors to the ecosystem by lowering entrance barriers. However, this is just the tip of the iceberg! Chaos Labs is excited to deliver value to the Maker developer ecosystem by building infrastructure that will allow the Maker community to continue growing and innovating without compromising on quality or execution speed.

Conclusion

  • Chaos Labs combines talent previously working at Apple, Facebook, Instagram, Internet.org, 8200 (IDF cyber units) and Iron Dome (missile interception system) to improve security and testing infrastructure in the Maker ecosystem.
  • Chaos Labs development platform will result in higher quality software, faster time-to-market, and easier developer onboarding.
  • Based on its user research, Chaos Labs selected the Maker Development Portal as a sound proof of concept.
  • Once the proof of concept has been evaluated, the core unit's mission, vision and strategy will be pinned down, and the Maker Improvement Proposals will be written up for the community to consider.