2

I read on ConsenSys and Ethereum MultiSigWallet. I got that "The purpose of multisig wallets is to increase security by requiring multiple parties to agree on transactions before execution. Transactions can be executed only when confirmed by a predefined number of owners"

Could any one provide a nice explanation to the two terms with simple application ?

0

Let me try to put this in a simpler way:

When MultiSigWallet is deployed it takes an array of owners and the number of confirmations required for executing a transaction.

function MultiSigWallet(address[] _owners, uint _required){ //Logic }

The purpose of multisig wallets is to increase security by requiring multiple parties to agree on transactions before execution

  • Each transaction begins with a call to submitTransaction(address destination, uint value, bytes data)
  • submitTransaction() in turn calls addTransaction() and confirmTransaction()
  • addTransaction() - It adds the transaction into mapping (uint => Transaction) public transactions
    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

bool executed, will be set to true,
iff the confirmation count becomes equal to required

Transactions can be executed only when confirmed by a predefined number of owners

Since confirmTransaction() calls executeTransaction() which in turn verifies if the confirmation count is equal to required, if yes, then the transaction is executed

A simple application could be:

  • An employee submits an application for attendance regularization i.e. he/she is claiming that he/she was on time and that the time recorded by the attendance recorder system is incorrect.
  • In this case, the employee cannot add the record directly, i.e. it requires required number of confirmations before the time can be corrected.
  • The employees immediate manager approves it (MultiSigWallet's confirmTransaction())
  • The payroll department to approves it (MultiSigWallet's confirmTransaction())
  • Say, the required number of confirmations was 2, then, as it is met, the employee's attendance time has been regularized.

Here, we have seen that the employee cannot update the time (added security) and for a transaction to execute successfully it required minimum number of confirmations (manager and the payroll dept)

Hope it helps.

| improve this answer | |
0

The purpose of multisig wallets is to increase security by requiring multiple parties to agree on transactions before execution

The normal addresses are governed by a public private-key so one person has the right to spend. Now consider the case where we require the agreement of multiple parties to spend funds. For eg, a corporate account, who can own the keys, only CEO? So this problem can be solved by multisig wallets. So the company can have a multisig wallet with CEO, CTO and CFO as participants and any of the 2 can agree to spend funds out of companies multisig wallet. So no one has full control over the private wallet.

Transactions can be executed only when confirmed by a predefined number of owners

Multisig wallets are designed so that you can define no of signers ( CEO, CTO, and CFO in the above case) and also no of signatures required to spend funds from multisig wallet ( 2 in the above case). So any 2 of 2 signers can agree to spend funds and can move funds out of multisig wallet. The number of signatures required to move funds is always less than or equal to no of signers.

| improve this answer | |
  • Comments are not for extended discussion; this conversation has been moved to chat. – eth Feb 9 '19 at 20:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.