maxonrow / maxonrow-go

Maxonrow Blockchain
https://www.maxonrow.com/
5 stars 6 forks source link

Governance with masking multisig account design #100

Open yenkhoon opened 4 years ago

yenkhoon commented 4 years ago

reference: https://docs.google.com/document/d/1JG9oKD0utwBqWXjya0nu-Lu3PvIO6ZIeuujH2ytrmZw/edit

b00f commented 4 years ago

@yenkhoon had some points about multi-sig wallet and grouping the signer. I put his email here:

I have a simplest approach here, we can create a multisig account with existing issuer, provider and middleware. Threshold is 3. We doesnt need any masking, upon validating signatures for kyc transaction, we can query from kyc module for the correct wallet role.

Masking is awesome, we could set the role for each signer. In the transaction level, im not so agree. Because to me, anyone who wanna do a transaction in blockchain must be a signer, in this case when we create transaction then i choose which group account to be sign with? I prefer to stick with each person who wanna do a transaction must be a signer, instead of giving an option. Let's say someone is naughty, they keep on creating transaction and choose the different group account

Defining the rol for signers is not a good idea which make account dependent to KYC module and it is against simplicity design pattern. We need to make multi-sig wallet as much as possible independent to other modules also simple to use.

Masking is a good idea but inject some codes inside multisig wallet and better we avoid it.

With some small changes in signature verification (implementing recursive verification) we could simply have nested multisig wallet without any changes in current design. Here is the changes I made to support nested multisig wallet: https://github.com/maxonrow/maxonrow-go/pull/99