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

Add multisig transactions. #123

Closed
destenson opened this issue Jun 25, 2016 · 4 comments
Closed

Add multisig transactions. #123

destenson opened this issue Jun 25, 2016 · 4 comments

Comments

@destenson
Copy link

destenson commented Jun 25, 2016

I would like to propose that Ethereum add the concept of multi-signature transactions (in addition to multisig wallet contracts). A multi-signature transaction would be a transaction that requires the valid signature of all parties involved before it is actually committed to the blockchain as a valid transaction. A requester or recipient could be any valid address, not just multi-signature wallet contracts. The transaction can be initiated by either the payer or the payee.

Requests for payment can be initiated by party A with a valid signature (or all required signatures if initiated by a multisig contract) & when party B also signs the request, the actual transfer of funds from B to A will occur like a normal transaction. This will add invoicing as an intrinsic feature to Ethereum.

Outgoing payments to a third-party can also be multisig. In that case, the request is for acceptance of payment, and the transfer is completed when the recipient signs the transaction. Since the transfer is not valid until all parties sign, this allows the funds for the transaction not to be committed until the recipient accepts the payment. If funds are not available when the transaction is adequately signed, it will be rejected by the blockchain due to insufficient funds. A signatory can also rescind their signature before the transaction is accepted by all parties. This allows a fund transfer to be cancelled before payment is accepted. This is a feature that is missing from all major cryptocurrencies.

@vbuterin
Copy link
Contributor

IMO this does not need to be implemented as a protocol change and generally it violates the "we have the no features" maxim to an unnecessary extent; all of its functionality can be achieved through the tools given by #86.

@destenson
Copy link
Author

I hadn't considered that implementing this feature would violate a general principle of the Ethereum Project. Furthermore, if you and others are convinced that the feature set for the user I described will be available after #86 (e.g. cancelling transactions, invoicing, making some transactions only valid after both ends sign, etc.), then this issue can be closed.

@vbuterin
Copy link
Contributor

vbuterin commented Jul 2, 2016

The #86 solution to "invoicing" would be for users to individually create user account contracts whose validation code specifies a restriction that for transactions with a particular big flag turned on, they must contain a second signature that satisfies the validation code of the recipient. The #86 solution for cancellation would be to use a multisig similar to the current standard multisig contract as the validation code, but allowing an unauthorize function.

@destenson
Copy link
Author

@vbuterin, I keep forgetting that Ether is not a cryptocurrency. And since this functionality can be implemented without changing Ethereum, I see no reason to keep this issue open. Thanks for clarifying.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants