One of the main objectives behind the P2P Models project at the technical level is the development of a framework to build the infrastructure for collaborative economies that do not depend on central authorities. The framework should offer small modular and functional components that act as building blocks to form these economies by creating and configuring DAOs.
A DAO or Decentralized Autonomous Organization, is a type of organization where the form of governance, which involves activities such as allocation and distribution of resources, interaction among participants, consensus and voting mechanisms, among others, is codified using smart contracts that reside in the blockchain.
One of the main challenges facing DAO governance models today is scalability. As a DAO grows in membership and operational complexity, there is an increasing need for delegation of responsibilities and division of labor for better management of the organization. It is not feasible for all members to be informed and participate in each and every process of the organization as this entails a very high cost of time and effort, which can lead to bad decisions that put the functioning of the DAO itself at risk.
One possible solution is to form small sub-groups composed of members of the organization with a number of permits that allow them to carry out a reduced set of tasks and activities of the DAO. These groups are what we identify as “committees” and are managed through the application.
The Committees application was a project that started as a thesis as part of my degree carried out under the direction of David Llop and Samer Hassan, and later being developed within the P2P Models project. The idea behind the application arose when I read this post on Aragon’s blog.
The application acts as a manager of these groups called committees, allowing them to be created, deleted and modified. To better understand its operation and what could be achieved with it, it is necessary to first identify the technologies and frameworks we used, because the application is closely related to the Aragon framework.
Application Technology Stack
In this image we can see the set of technologies involved in the development of the application. The one that stands out from all the others is Aragon.
Aragon is a framework composed of a set of modules and tools that allow us to develop and create DAOs on the Ethereum network.
The following modules were used in the development of the app Committees:
- aragonUI: A library of UI graphic components made with React that we can use to create the user interface of our applications.
- aragonOS: A framework built on Solidity oriented to the development of the applications’ smart contracts. It consists of a set of smart contracts that allow us to:
- Version the smart contracts of our application, manage a system of permissions on our application with which we can regulate access to the various features of it, and so on
- Manage the updates of each of the DAO applications, tracking the versions of these. Versioning allows us to incorporate future functionalities into our applications or to solve possible bugs. This functionality constitutes one of the most attractive and innovative characteristics of Aragon since we can version code files that in principle are immutable once they are deployed on the network. The way Aragon approaches this problem is through this design pattern
- Scale the permissions. This consists of the concatenation of permissions that several entities have, making these transversal. Expanding the design possibilities of the DAO governance model by allowing a more transversal permitting system.
- aragonPM: A decentralised package manager that controls and monitors the different versions of both the smart contracts and the front end component of the applications or the different packages that make up the Aragon client.
- aragonAPI: In charge of communication between the remaining components. It is made up of a set of APIs whose most important functionalities are:
- Communication between the front end and the smart contracts, both those of aragonOS and those of the application itself, allowing the functions exposed by them to be invoked
- Communication between the smart contracts and the front end so that changes in the status of the blockchain can be received and modify the user interface
- Abstract the application from the creation, signature and sending of the transactions made to the blockchain.
- aragonCLI: A command line offered by Aragon to create and manage DAOs, abstracting the user from tasks related to the preparation of the infrastructure, such as: configuration and assembly of the IPFS nodes, deployment of the smart contracts in the blockchain, among others.
One of the main challenges facing DAO governance models today is scalability. One possible solution is to form small sub-groups composed of members of the organization with a number of permits that allow them to carry out a reduced set of tasks and activities of the DAO
Apart from these modules, Aragon also offers a series of default applications that we can include in our DAOs. Among them, there are four in particular that are used in Committees:
- Token Manager: This application allows us to create (mint), eliminate (burn) and transfer tokens within the organization, as well as to configure different properties of the token in question, such as whether it is transferable or accumulative.
- Voting: Normally associated with a Token Manager, it allows us to create votes within the organization in which the token holders of the token associated with the Token Manager can participate. If approved, they execute a series of actions on other entities.
- Vault: An application that stores any type of asset that follows the ERC-20 standard, as well as allowing them to be extracted or for new ones to be deposited.
- Finance: This application allows us to manage the organization’s assets by allowing us to track the organization’s income and expenses, make payments or transfer assets. Each Finance application is associated with a Vault application where the assets being managed are stored.
In the current DAO landscape, at least two other major projects in the field that have shown great progress in development can be identified: Colony and DAOStack. These are projects that were considered as a basis for the development of Committees. However, at the time they were in very early stages of development and did not have sufficiently extensive nor explanatory technical documentation, which is why they were discarded.
Aragon has shown increasing development over the last few years. We can summarize the reasons why this framework was chosen below:
- Structured framework that offers a series of modules and tools tested with a wide range of functionalities that facilitate the development of decentralized applications once how to use them is understood.
- Already developed applications that have been completely audited and can be used in our own developments.
- Extensive documentation that grows every day.
- Active developer community.