Skip to content

Building court multisig over Zodiac [WIP]

PiGallego edited this page Jun 25, 2022 · 1 revision

Zodiac Architecture

Zodiac is an open standard architecture for DAOs. Zodiac is the architecture in which Gnosis Safe is based, so it should be compatible with any implementation built over the same architecture.Repo

Zodiac architecture consists in:

  1. Avatars are programmable Ethereum accounts, like the Gnosis Safe. Avatars are the address that holds balances, owns systems, executes transaction, is referenced externally, and ultimately represents your DAO. Avatars must expose an interface like IAvatar.sol.

  2. Modules are contracts enabled by an Avatar that implement some decision making logic. They should import Module.sol.

  3. Modifiers are contracts that sit between Modules and Avatars to modify the Module's behavior. For example, they might enforce a delay on all functions a Module attempts to execute. Modifiers should import Modifier.sol and must expose an interface like IAvatar.sol

  4. Guards are contracts that can be enabled on Modules and implement pre- or post-checks on each transaction that the Module executes. This allows Avatars to do things like limit the scope of addresses and functions that a module can call or ensure a certain state is never changed by a module. Guards should import BaseGuard.sol.


The Nation3 Court

The Nation3 Court will be a group of individuals with the power to arbitrate agreements in dispute. This individuals, hereinafter referenced as Jurors, will be elected by the DAO. Any action performed by this group must have a delay so the DAO can override or stop all actions in the case of misbehave.


Court x Zodiac

Court could be implemented as a multisig account owned by other contract, the Nation3 DAO, where the signers are mere operators. The owner, in this case Nation3 DAO, manages the signers and can override executions during a grace period and / or suspend all operations.

Safe + Court module

We can work with the most commonly used Avatar implementation, Gnosis Safe, and implement a custom zodiac module that fit our requirements. In this way, the module would be the one with the power to resolve disputes and to be able to execute "settlement" transactions. We can require a majority 7/9 from a list of allowed signers to approve the "settlement". This module would be owned by the DAO and this would manage the allow list and hold the power to override approvals during a delay period.

This approach would work but would demise the meaningless of the Safe to a mere interface to interact with the Court module. The Juror's would continue to be able to manage the multisig by theirselves as well as perform other executions without going through the Courts module.

Externally owned Avatar

Implement our custom Avatar for the Court. In this way, the avatar would be owned by the DAO and so all admin operations can be only performed by the owner. This Avatar could work with a module as described above or implement the Court decision making logic itself.