let's use pallet-proxy for chaos and good

Making permissionless and optimistic orgs on Substrate-based networks TODAY

Substrate is an incredibly flexible blockchain framework, but sometimes you may not want to write code, or god-forbid, test it yourself, to run an organisation that you already have the rules for in your head.

There is plenty of prior art on how to do so in the broader crypto ecosystem - even in substrate-land you can put your community funds in a multisig, (or something else that is effectively a multisig, like council+treasury) and then get majority approval for everything that follows some social criteria. This works for small communities or communities with well-defined leaders, but when you start scaling to more people and activity, majority vote starts being slow or becomes a significant time commitment for voters to properly look into proposals, making the collective as a whole less effective in it's goals.

One alternative approach is an Optimistic DAO - in other words, a organisation where any participant can propose a collective action, which then executes by default, unless someone else contests it or it is voted against with a quorum prior to the end of a predetermined execution delay. These organisations can move extremely rapidly, and require much less consensus and coordination than organisations running on quorum-based votes. Optimistic DAOs can be created using tools like Aragon in the Ethereum ecosystem - but they can also be built fairly easily using basic primitives already onchain on the majority of substrate based chains.

How could it work?

The core primitive in we can use to accomplish this is the time-delayed proxy - the proxy pallet is a tool which allows you to delegate control (wholly, or partially, over specific functionality on the chain) of an account to other accounts; time-delayed proxies allow you to specify a delay period attempted actions need to wait before they are executed, and during this delay period, you can cancel those attempted actions if you wish to. The allows you to grant wider permissions over your account to a proxy, so that they may do things on your behalf, given you are paying some attention to their attempted actions.

The value of a DAO, and the reason why they are seen as tools of collective action, is because participants of a DAO have some degree of confidence that:

  • A central party or other participant cannot behave unilaterally to the detriment of other participants.
  • Therefore, participants feel confident in contributing (their capital, or their time) to the organisation, as their contributions are more likely to go towards the stated goals and objectives of the organisation (as opposed to being embezzled or otherwise going towards the personal goals of an individual who has true control over the organisation).
  • Any participant can propose actions and activities that would further the goals of the organisation.

Proxies enable this goal in multiple ways:

  • An account may be created that is controlled exclusively via proxy (aka, an "anonymous proxied account"), and therefore there is no "backdoor" to control the account (that would otherwise have the ability to control it unilalterally)
  • Proxied accounts can have specific permissions on what actions they are allowed to perform.
  • Accounts may act as overseers if they are not allowed to propose any actions, but are allowed to cancel proposed actions of others (or propose the cancellation of actions) - these overseers may have reduced or no delays to grant them leeway in cancelling potential malicious actions.
  • Any participant with proxy permission can propose any action that falls under the permission they are granted at any time.

A collective of onchain entities can therefore share proxy control over an account, behaving in a manner very similar to more traditional Optimistic DAO frameworks like Aragon. If one wanted to mimic their model (barring automatic membership for holders of a DAO token), it could be achieved by:

  1. Creating an anonymous proxy account. You may give yourself a delay here or enable one later.

2) Granting proxy permission to that account for any DAO participants. Granted the appropriate permissions and delay for their roles. (protip, in the accounts page of the apps UI, add the account as a "proxied account", the UI will then allow you to select the account wherever a signing account may be selected)
3) Similarly, you may want to create a multisig account with cancellation permissions (which I will not guide you through here, for brevity's sake) and grant it 0 delay. This is the equivalent to the juror in Aragon's model. 4) Finally, after ensuring that at least one other participant has Any permission on the proxy (for future management ops, likely with a delay on it), have the proxy execute the proxy.removeProxy extrinsic to remove any special/undelayed permission the deployer required to set all of this up.

The organisation can then continue with the Multisig key holders overseeing activity and preventing malicious participants from behaving in a way that contravenes any socially determined rules in place regarding participant behaviour.

Considerations

Proxies on a single account do not scale indefinitely as there is a hard cap of (as of writing this) 32 proxies allowed on an account and 32 "announced" actions that can be pending at any given point in time, after which further activity - at least via delay - is blocked.

Scaling past that number of participants therefore requires replacing some number of participants with an additional layer of anonymous proxies (which can have up to 32 participants of their own) or multisigs.

Activity is also bottlenecked on the 32 pending action limitation - that means in a scenario of fair use, each participant could only propose one action at a time. If a participant were malicious/griefing the organisation, they could consume more than their fair share of pending actions. In order to prevent such behaviour, at least one participant/multisig/account is required to have the undelayed ability to cancel actions to clear up this queue - in the case of a persistent griefer, this would require coordination with another participant to create a proposal to remove that misbehaving participant from the organisation.

An example org that I want to make and bootstrap very soon:

Feedback welcome, Deployment Soon

Shokunin Network

Shokunin is a japanese word roughly translating to "Craftsperson" or "Artisan". There is a more untranslatable cultural connotation however, of a shokunin being an artisan who is not only skilled in their craft, but also having an awareness of their societal role and responsibility to others.

Shokunin means not only having technical skills, but also implies an attitude and social consciousness. … The shokunin has a social obligation to work his/her best for the general welfare of the people. This obligation is both spiritual and material, in that no matter what it is, the shokunin’s responsibility is to fulfill the requirement.

- Toshio Odate

It is an inspiring idea, and one I seek to emulate in an organisation - composed of creators, builders, and thinkers, with the explicit purpose of supporting them, growing their networks and clientele in an sustainable way, and providing a slight competitive advantage (or rather reducing the competitive disadvantage) for those who would seek to maintain their integrity and space for conscientious creation, in a world falling slowly towards unsustainable and exploitative marketing and funding practices.

In this context, we will create an organisation where all participants are builders, creators, or artists, open to community funding and donation in exchange for that contribution information being passed onto the creators that receive funds from the organisation.

For contributors, the hypothesis and value proposal is that:

  • Creators, being domain experts in their fields, have good taste and good judgement in what they create. Therefore by voluntarily contributing with no explicit expectation of rewards in exchange, and no undue influence on the creators, creators will create things with better outcomes (that are ie, more aesthetically pleasing, have more sentimental value, are more fun, have better, more rigorously designed mechanisms, etc.) than highly involved alternatives.
  • Creators will voluntarily acknowledge contributors and the network for their support, exclusively or otherwise. Creators know best how to do this without infringing on their own creative direction or artistic integrity.
  • Early contributions will show their value over time as more creators participate in the network and voluntarily acknowledge the indirect support of historical contributors, later contributions may also be worthwhile, if creators decide to voluntarily acknowledge more recent contributors who made contributions to the network directly tied to or in support of their work.

For creators, the proposal could be:

  • Relatively low-involvement funding, after a selection process, to "do what you already do" with no strings attached, unless you voluntarily attach some yourself.
  • Access to a network of similarly minded folks to potentially work with. (and get funding for collaborative work as well)
  • Access to a maintained list of supporters that have a vested interest in your success; poke at these folks for things like beta testing, put them on a whitelist, celebrate a creation by airdropping them pieces of it's history as NFTs. It shouldn't feel obligatory, but it is a resource you have access to, and if you feel any gratitude for the resources provided to you by the network, it benefits the network when you direct that gratitude towards the supporters of the network.

The hope here is that this could evolve into something like an evolution on the questionable, but widespread, practice of selecting users to participate early in events like NFT drops and Token Sales - firstly because it should partially obviate the need to seek funding in that way, but if you should decide to, you can use the known list of supporters as a form of "portable whitelist" across projects. The vested interest in your success by the network's supporters, the legitimacy granted via the network's selection process, and the support of participants of the network, should make doing so a competitive alternative to seeking funding from other grants-giving bodies or dilutive (ie, VC) funding sources.

The mechanics:

The technical setup:

The Base of the organisation is an Anonymous Proxy

  • the creator of the proxy has funded and provably destroyed control of it (ie, by granting proxy permission to a burn account and revoking their own) OR still has proxy access to it, but with an extremely long execution delay (on the order of several months at least).
  • the creator of the proxy has granted delayed proxy permission for payment to every initial voter/participant in the organisation.
  • the creator of the proxy has granted proxy cancellation permission to a subset of initial voters.
  • at least 1 participant has unilateral cancellation power without delays.
  • at least 2 participants have Any permission with an extended delay.
The technical tools:
  • participants can be added and removed from the network by giving them delayed proxy permission or revoking their proxy permission.
  • participants can be promoted or demoted by revoking proxy permission and granting new proxy permission with a different delay (shorter = promotion, longer = demotion), or with expanded/reduced permissions, ideally in a single batched extrinsic.
  • participants may propose any action they are technically capable of declaring.
  • participants may cancel any action they are technically capable of cancelling.
  • participants may be, but are not required to be, multisig or proxy accounts.

Rules, Goals, and Guidelines

Tl;dr: be excellent to one another and do good for the long term, you can and should do anything you believe will be beneficial to the goals of the network; inform and act, but permission is unneccessary, as long as you do things that wouldn't require forgiveness; any success is everyone's collective responsibility.

The Explicit Goals (are not very explicit):
  • the network does not exist to enrich it's participants - the network exists to achieve it's goals.
  • the goals of the network are what it's current participants believe it to be, with the exception of self-enrichment.
  • the core goal of the network is to create a sustainable and conscientious funding vehicle for creators and builders. The spirit of this implies that participants must respect the fair use of scarce network resources (don't spend everything on a single proposal), and that fundees are encouraged to provide value to contributors in hopes of future contribution.
The network guidelines:

The guidelines are informal, but in any case of conflict have precedent over formal rules.

  • the network does not tolerate intolerant behaviour from it's participants in any form or medium - with the clear exception of not tolerating intolerance. There is no space for criticising, excluding, or otherwise devaluing other participants, proposals, contributors, or individuals on the basis of identity, chosen or inherent, or belief, with the exception of inherently intolerant beliefs and identity groups. (ie, it's actively encouraged to be criticize, exclude, and devalue fascists, racists, sexists, TERFs and other miscellaneous violent cultists of any flavor.)
  • discussions between participants and/or fundees are to be made in good faith; this means that statements of fact and experience are to be respected and taken at face value - likewise are contradictory experiences - you are arguing in bad faith when you question a person's experience or evaluation of it without providing notable additional context for your new evaluation.
  • to further it's long-term goals, the network should reward fundees regularly and not in a large chunk all at once, encouraging a long term relationship, and reducing the short term impact on scarce network resources. Participants should build relationships with fundees to better understand their needs and requirements, to make sure that they are met within the means of the network.
  • the network encourages behaviour, it does not coerce it. That includes participants when communicating with potential fundees. Coercion is defined by conditionality - the network either supports a creator and will fund them, or it does not and will not, the amount of funding is determined at the discretion of the dynamics of the network, but is provided to the fundee without expectation of return, and without condition.
  • A gift given regularly, no longer given, is not a gift taken away. Regular support, rewards, and acknowledgement from contributors to the network, from the network to creators, or from creators to contributors, must not be taken for granted, and is not obligatory for any of the parties involved. Creators should be grateful for support from the network, contributors should be grateful for acknowledgements from creators, and the network should be grateful for the support of contributors - should that support not continue, parties must not be resentful.
  • the network rewards work done, only rarely does it comission future work. Comissioning future work may be considered a form of coercion (strong word, again, but the reasoning remains). Funds may go towards newer creators to encourage future work, but not without reasonable "doubt" of their competence/domain expertise/skill and alignment to the guidelines of the network.
  • Successful fundees should feel free to identify themselves with the network. Branding and labels are free to use to market yourself in the case you genuinely have been supported by the network and feel it would help you in any way. Others may not. This includes contributors that are not also participants or fundees.
The network rules:

The rules are hard and formal. They are here to provide a framework and structure to how participants interact with the organisation, but are no less important than the guidelines, which outline the spirit of the rules, which should in many cases take precedent.

  • As a participant, you must share your actions, including cancellations, (in terms of call hash and call data) PRIOR TO ONCHAIN ANNOUNCEMENT on a medium accessible and known to all other participants.
  • If you see an unambiguous infraction of the rules or guidelines, and you have the ability to act (cancel the attempted action, demote or remove the infringing/compromised participant from the network, perform any better counter-action that would make the attempted action impossible, or simply inform those who can) you should do so. Failure not to do so does not warrant any consequence, but promotion is warranted for participants who reliably protect the spirit and resources of the network, with social agreement.
  • As a participant, you must not propose actions that directly fund yourself or escalate your own permissions or access to resources (other participants are allowed to do so however). In informal polls, you cannot vote to support yourself, or second a proposal that supports yourself. (There is no illusion that people will not be asking others to support them, but this rule is partially in place to encourage relationships within the network). Forgetting this rule will lead to a warning and proposal cancellation on the first attempt, demotion on the second attempt, and removal from the network on the third. Intentional infringement is grounds for immediate removal.
  • As a participant, you may propose any action you are allowed to propose, given it does not infringe upon other rules, and after having your proposal seconded by any other participant, announce it for execution onchain.
  • As a participant, you may execute any announced action onchain that has passed it's stated delay period.
  • Any fund recipient of the network can ask to become a participant. Any existing participant with permissions to do so may grant them that right, at the same level of promotion as themselves.
  • Exercising your veto right on another participant's on-chain announced proposal when it does not infringe upon the rules or guidelines will be respected (which means a new identical proposal should not be made by a participant, without your consent), but is grounds for your immediate demotion.
  • When a proposal a participant made leads to good outcomes, according to the guidelines, it is grounds to promote the participant.
  • When a proposal a participant made leads to negative outcomes in a way that can be proven to be intentional or influenced by the participant, it is grounds for demotion.
  • A standard demotion involves increasing a participant's delay by 10%; A standard promotion involves decreasing a participant's delay by 10%. A participant should never have a non-cancellation delay lower than 6 hours, outside of bootstrap or potential wind-down scenarios.
  • If a participant is repeatedly acting in contravention or against the spirit of the guidelines, it is grounds for warning and removal from the network if the behaviour continues.
0
JAM (human) Post author

I'm not yelling at you, I'm yelling at the egregore eating your mind.

The shokunin has a social obligation to work their best for the general welfare of the people.

1 comment

Loading replies...

The shokunin has a social obligation to work their best for the general welfare of the people.