1 min read

Authority functions

Every software system has to plan for authorities. Who should have access? How will they prove who they are? What will they be allowed to do?

Blockchains deal with these issues in a fairly unique fashion. Everyone has access because everything is public. People prove who they are with cryptography. They can do anything as long as it doesn't impact someone else without their permission.

That last one is actually pretty nuanced in its implementation. Without getting too technical, "doing things" means signing transactions. Your signature works just like in the real world: the check can be cashed, the contract can be executed, etc.

So I can use my signature to do things, but I don't want to have to physically sign everything. Sometimes, it would be convenient if another person or robot could do things for me. I just want to give them authority to act on my behalf.

Ethereum (and every other general purpose chain) handles this with smart contracts. You have to explicitly implement the specific rules of things you want to authorize and then the people you're authorizing need to know how to use your contract.

Koinos offers a new paradigm. You deploy an authority function for your existing wallet. People interact with it like a normal user owned wallet because it is. They don't need to know specific contract entry points. When someone else tries to use your wallet without your signature, the blockchain will call you authority function to see if it's allowed.

You can write whatever logic you want here because it's just a specific kind of smart contract. You can authorize anyone to do anything, specific people, specific actions, or broad rules (anyone can do anything as long as I make a profit by the end of the transaction).

Ultimately, you can accomplish the same goals with either design. The Ethereum approach is well tested. Koinos's system could result in new ideas that aren't possible in the other model. Time will tell.

-Luke

P.S. This topic is not new, but Julian recently published an improvement proposal for koinos that highlighted some ways to make this system better in specific cases. Worth a read: https://peakd.com/@jga/improve-security-koinos