Steem multi-authority permissions and how Active authority works, Part 2

Few weeks ago I have talked about how multi-authority works on Steem post, let's call it Part 1 since these two posts are closely related. First part was about posting authority which helps one account to give permission to other for posting and voting. In this post, I want to dive deeper to give some practical use cases of active authority and private key permissions. This features are advanced but with right use cases there can be quite great applications on top of Steem.

What's multi-authority

Analogy I have used in past post is:

You can share any of the permissions with other accounts on Steem.
Just like, you can rent out room in your house or have more than one passcode to access safe/vault or joint ownership of property/house...

First post also gives you small example how to add/give permission to other account so that you can have joint vault/business account.

steem.api.getAccounts([accountname], function(err, response){
     if (response) {
       var account = response[0];
       var activeAuth = account.active;

       //adding permission
       activeAuth.account_auths.push(['youraccount', activeAuth.weight_threshold]);

       steem.broadcast.accountUpdate(wif, accountname, undefined, activeAuth, undefined, 
            undefined, account.json_metadata, function(err, result) {
         // youraccount got active authority for accountname
       });
     }
});

Now let us take a look what can be done with active authority. As you may know, active authority gives ability to transfer funds, change/update account data, give access to other accounts by adding them to specific authority etc. So you have to be absolutely certain before doing any of these actions, that you trust a person you are adding.

Use of active authority

Using authority is just matter of creating transaction on behalf of other account. Steem already recognizes who is performing action and if they have authority to do so.

transfer operations (powerup, power down), escrow operations (release, transfer, approve), account_update operations (account metadata, permissions, etc.) are possible with active authority.

var operations_array = [
    ['transfer', {
                        from: "accountname",
                        to: "good-karma",
                        amount: "0.001 SBD",
                        memo: ""
         }]
]
//wif is private active key for youraccount

steem.broadcast.send({ operations: operations_array, extensions: [] }, 
             { active: wif }, function(err, res) {
    //youraccount transfer fund on behalf of accountname account.
});

Note: above transaction is being created and broadcasted by youraccount but funds transferred from accountname, pretty cool huh...

Another use case:

One of the common practice nowadays is to lend/delegate SP to another account, above same technique can be used to create market around it with minimum 3rd party trust. All your funds stay in your account. You can use/create automated system where you can lease for certain period of time and system can take care of payments and release of delegations (notify clients). Even better, you can use multi-signature feature to establish 100% trust where clients will have to confirm, approve transactions.

Active permissions and authority should be used with utmost care, you don't want to loose your funds. It is really not easy to hack Steem accounts, let alone take control over it. But without careful use (revealing private keys) loosing liquid funds are not that difficult and it takes only couple seconds to do that, keeping most value powered up always helps...

That's how active authority works in a nutshell!

Before you give permission and authority to any other accounts, beware or make sure you trust them.

Sharing authority is safest and convenient way, rather than sharing your private key directly to a friend, colleague, family, etc. Always know how your private keys are being used and who has access to them. Use them with caution!

Steem on!


vote witness good-karma

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now