Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multisig decision contract #19

Open
chancehudson opened this issue Jan 14, 2019 · 0 comments
Open

Multisig decision contract #19

chancehudson opened this issue Jan 14, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@chancehudson
Copy link
Member

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.

@chancehudson chancehudson added the enhancement New feature or request label Jan 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant