Service Nervous System | Governance for Dapps

Summary

Enabling NNS-like governance for dapps and services built on the Internet Computer, to enable community governance.

Status
Discussing

What you can do to help

  • Ask questions
  • Propose ideas

Key people involved

David Ribeiro Alves, Lara Schmid (@lara), @johan

Relevant Background

The goal is to support devs that want to create their own governance system and tokens on the IC.

To this end, we want to provide a service where, upon submission of a proposal with some parameters, e.g., a token name, the NNS creates a governance and ledger canister for a new token that runs on the IC. This is what we call a service network system (SNS).
For this, we have to define for example the following things:

  • What the output governance and ledger canister look like (learning from experience of our NNS)
  • Whether we want to refactor our NNS in this process
  • How the SNS and our NNS are related (i.e., does the NNS control all SNSs?)
  • How can people verify that the code on a generated SNS is really what is claimed?

Also, we would like to provide a standard for tokens on the IC. To some extent this might overlap with standards that we define for the SNSs (if we want a standard then the SNSs should comply with it), but this is not yet clear.

8 Likes

I’ve always had a concern with this, that it would become too much of a one-sized-fits-all approach. I don’t know what the API will end up looking like, but I hope it isn’t too restrictive. I think we need to allow room for many varied types of governance, and not to force all applications down the exact same path as the NNS.

9 Likes

Totally agreed.

For example, some services may want to be tokenized but not decentralized—or at least not initially.


A couple questions:

  1. Will SNS mint tokens on behalf of services, i.e. will it create an autonomous token canister?
  2. If so, what token standard, e.g. EXT, will SNS use?
  3. Can the token supply be inflationary, or must it be fixed?
  4. Can the list of canisters to be governed by SNS be expanded over time, or is it a static list?
5 Likes

I suggest that the NNS be able to send a message to the Dapp’s/SNS informing it that there is an issue (if the NNS has been advised) of the following types:

  • Operational issue
  • Security Issue
  • Compliance Issue

The Dapp can elect to reply or ignore.

If it is sufficiently grave issue, the NNS may take unilateral action based on community votes (e.g. to suspend the canister) which has always been the case. However, with an SNS in place for the Dapp, the NNS would inform the SNS that the Dapp has been suspended.

Messages received by the SNS can be processed according to the Dapps own governance model (whatever it may be) and effect changes within the Dapps according to the Dapps own policy.

The SNS should be able to handle a variety issues but also handle compliance issue of the following type:

  • terrorist content;
  • content that incites violence;
  • hate speech;
  • non-consensual sharing of intimate images; and
  • child sexual exploitation content;
  • cyber security issue;
  • money laundering
  • other criminal activity

The NNS may set reply no later than time on a message.

The SNS may also require a vote occur within the NNS time threshold.

1 Like

FWIW, I have updated the main description with more info, including the engineers and researchers working on it so they can engage with folks directly on this thread :wink:

I don’t understand “upon submission of a propsoal”? Can’t I just install a governance and ledger canister the normal way, like any other canister, and – voila – have created my own SNS with my own custom token?

As far as I see, there is nothing that DFINTY “needs” to do to enable this. People can already do it. Of course DFINITY can provide off-the-shelve implementations of a governance and ledger canister, like they are providing cycle wallet and asset canister modules. But that’s “just” convenience – or am I missing something?

7 Likes

Good question, Joachim. I will let David, Lara, or @johan answer.

I understood this to be a combination of “ease for the developer” (“NNS in a box”) so I am not aware of the design intent of why it needs to be a proposal to the NNS. They have much more context.

1 Like

This is pretty key for DAOs. How does the NNS know , for example, content that incites violence? Is this even knowable? For example, in certain parts of the world, blasphemy does incite violence. Do authorities submit a cease-n-desist order? If so, to where?

I think someone will try to lay an information before their court and try to press their issue. I have no idea what jurisdiction would apply but someone will argue their position.
An aggrieved person is going to want to make representation to someone to remedy their issue. I can see pressure being applied on those who can exert influence over the NNS. We have seen this in other venues whereby someone uses threats of litigation, blocking of finances, etc. Depending on the nature of the complaint, the representations could be mild or severe, legal or illegal including intimidation, coercion, and even military action.
I think someone will try to lay an information before their court and try to press their issue…
I do not think the NNS or SNS will resolve the issue of differences of law or clashing of values/ethics/religions/culture. What to do about a complaint should be up to the respective DAO. What is needed however is a method for the NNS to say, this is not our issue but rather one for the DAO to resolve and communicate it to the SNS. The DAO, if it chooses to take action could elect to notify the NNS or not. Doing so should reduce the pressure on the NNS to take action all of the time.
None of this is mandatory. A DAO could run without an SNS. If the NNS becomes involved and there is no SNS, the NNS would have limited actions that it could take.
I have no idea what jurisdiction applies to a Dapp or DAO but somebody is going to take a run at making their view stick if there is money behind the action.

I think I should have been more explicit in my questions.

Let’s use a simple hypothetical example of someone writing an article on denying holocaust in a dapp similar to wordpress governed through DAO. While this article would be personally offensive to me, there’s likely not much that I would be able do about it. On the other hand Germany attaches criminal penalties to publicly denying the holocaust and likely classifies it as hate speech.

(i) where does a complainant (country of Germany)post a complaint in context of a DAO ?
One answer could be that the author of this article is not identifiable. Even in that case, what happens if the country of Germany demands that the article be taken down? Who does it post the demand to?

(ii) how does the DAO even begin to judge the validity of a complaint?
In context of DAO, one could , I suppose, vote on a proposal to take down the content. But is it even a legitimate proposal? Should every demand be treated equally? What if there are countries that do not restrict public distribution of such articles?

While the DAO might or might not have SNS, we are just punting the question to NNS. NNS will need to go through the same issues.

This seems so basic that I think that I am just missing something.

I think you understand correctly, IC cannot be controlled by governments but people. In theory this shouldn’t be a problem because governments are elected by people :slight_smile:

Due to the distributed nature of IC not a single government allowed to decide what content should be removed. However people across countries are able to vote to remove content which against common sense like child porn or something.
This is a good thing if you think about democracy and freedom topics which can’t be removed by autoriter governments.
People of Germany have the option to follow a specific neuron in the related topic, for example their prime minister’s. Then they’re done, they did their part, voted.

Governments which want to remove content which doesn’t match the majority of people of the world’s will still can block the entire network like does with TOR.

1 Like

Good points you made. A mechanism to allow voting at the SNS level is important. Likewise, a method for the NNS to punt the issue to the DAO’s SNS would seem useful if nothing but to free the NNS of being stuck in the middle of a item which should be addressed by the DAO.

I just want to express the hope that Application governance will not be a simple clone of NNS governance (token holder voting liquid democracy) but rather a more abstract system that separates concerns and which can allow applications to experiment with different approaches:

  1. Different ways of determining who is involved in governance. (Not necessarily tokens)
  2. Different decision making mechanisms e.g. different types of voting, Bicameralism , other decision making methods such as Futurachy or Sortition and so on.
  3. Forkful and non forkful execution of governance decisions. For example if a large minority disagrees with governance decision then that could result in a fork of an application.
  4. Delegation of decisions to other governance bodies. (For example moderation and removal of very evil and illegal content might be a shared service.)

We are in the very early stages regarding blockchain governance so I would design for maximum flexibility so that developers can explore the solution space.

7 Likes

Hi all,
I am Lara and, as Diego pointed out in the summary, part of the team that is working on SNSs.

Thank you very much for all your interesting inputs!

We are currently catching up with our regular work on NNS, but know that we are reading this thread and we will be both answering and providing updates soon.
So please feel welcome to keep sending questions and suggestions!

4 Likes

SNS will tremendously aid dapps development.

What is the time line of SNS? On July 28, 2021, Dominic tweeted “Expected in 2-3 months”. Should end-of-Nov, 2021 be a reasonable time line to expect?

2 Likes

Without knowing the details, so at a conceptual level, I think this could be very useful. I am not aware of the advantages of having custom governance and seems to me that having an out-of-the-box solution would save a lot of engineering capacity.

2 Likes

I’m creating an open internet service now and the SNS would really be a time saver, not having to write my own governance model. I hope this is not too far away!

Hi fojo95, There’s a talk coming up in the next few weeks on this, keep an eye on https://dfinity.org/conversations/

3 Likes

That’s right!

Lara Schmid (Researcher on Models & Verification) will be providing a Community Conversation on the latest for this pproject.

I will confirm soon, but it is looking like it will be next week: Week of September 27th.

4 Likes

I think these are great points you make; but, I’m concerned that trying to address all of these before the first release of the SNS might delay deployment. I’ve heard a few projects express their intent to become open internet services and I’d hate to hold up that progress.

I imagine alot of this flexibility can be added in over time or developers may be able to build/deploy their own governance solutions.