What does a "role contract" mean to you?
This is a term that gets thrown around a bit on the form and within DA docs, but I’ve noticed that the implication is sometimes different. I’m curious if we have consensus on a well defined concept. Please no peaking into other users answers before adding one, at least not for the first round.
My shortest take: a delegation contract (1) signed by a party representing a root of trust on the ledger and (2) enumerating choices controlled by the party granted the role.
@Leonid_Rozenberg, I think yours is a pretty comprehensive yet very concise take on the definition of a role contract. I love it.
At the risk of compromising the conciseness I would suggest a couple of clarifications to your definition.
-
signed by a party representing a root of trust on the ledger
I would suggest changing this to “signed by a party representing a root of trust for something on the ledger”. Without this clarification I could interpret this part of your definition as “a party representing the root of trust for everything on the ledger”, which is not what the definition intends to convey.
-
enumerating choices controlled by the party granted the role
In my mind the party granted the role is the delegating authority (that root of trust from #1). And the purpose of a role contract is to grant parties other than the role party the authority to execute actions that require the role party’s signature. As an example, a “Bank” role contract would have an OpenNewAccount choice controlled by a party representing bank’s customer. Here, the Bank party’s authority required to open a bank account is delegated to a bank’s customer for the purpose of opening a new account.
Also, the role contract does not just enumerate the choices, but codifies them, which I think is significant.
Yes, our descriptions are similar. I think the “something” is implied, since one cannot know ahead of time what will be created on the ledger. Also, our assignments of who is the role are reversed, but I think it is natural to think of it from the perspective of the party receiving the delegation, as the delegator might create multiple contracts. A bank could create role contracts for its customers and employees.