Skip to content

Multisig decision contract #19

@chancehudson

Description

@chancehudson

Overview

Common Theory should include a Decision contract that allows for collective decision-making regarding payments.

Decision contracts should be deployed on a per-group basis. Any group of individuals wanting to use a multi-signature Decision contract will need to pay for deployment of the contract. This is in contrast to the Syndicate contract, which exists as a singular entity.

Example

John, Mary, and Ann want to begin working on a software project together. Any liquid ether for this project can be sent to a deployed Decision contract, and any ether over time can be sent as a Payment through the Syndicate contract.

John, Mary, and Ann can now collectively vote to do the following:

  • Send ether from the Decision contract
  • Create Syndicate payments using Decision contract ether
  • Fork Syndicate payments owned by the Decision contract
  • Settle and withdraw Syndicate payments owned by the Decision contract

Visual Representation

image

The above is a rough visual representation of potential paths for transfer of funds.

Functionality

The Decision contract should include the ability to vote on the following:

  • Instant fund transfer
  • Creation of Syndicate Payment
  • Forking of Syndicate Payment
  • Settling of Syndicate Payment

Any action should require 0 negative votes and at least 75% voter participation.

Previous Implementations

Proposal system with timed vote cycles: 3372d9e

This implementation attempted to use inline assembly to allow voting for execution of any function in any contract. The new Decision implementation should be more tightly coupled to Syndicate functionality to reduce the complexity that arises from generalizing too far.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions