DemocracyEarth / wallet

Censorship resistant democracies.
https://democracy.earth
MIT License
1.5k stars 286 forks source link

Mockup request: Jurisdiction editor to specify new regions #246

Closed santisiri closed 6 years ago

santisiri commented 6 years ago

Sovereign currently allows for Nation-States to be expressed as jurisdictions.

Custom made jurisdictions based on cities, regions, trade unions can also be included in the system to enable ambassadors of Democracy Earth to post new ideas that can be restricted to a specific universe of voters.

Mockups for this editor are required.

paula-berman commented 6 years ago

is there any way that students from a university for example can ensure that only relevant members (other students) are participating in their "jurisdiction", so they can be assured of the validity of the polls?

santisiri commented 6 years ago

Universities can certainly be a specific kind of jurisdiction.

We should anyhow think about the data model and make a proper difference between geography: ie Nation - State - Province - City - Neighbourhood - Block - House; and organizational type (public/private, etc).

I'd like to see the mockups and brainstorm with that. Still not clear what road to take imho regarding this feature.

AlexJupiter commented 6 years ago

@santisiri does there need to be a data model for this?

Let's say users of Facebook wanted to vote on a new feature, how would they all be grouped in a data model, apart from simply as verified Facebook users? They would still have to prove their identities (i.e. being users of Facebook) but they would certainly range across a whole plethora of geographies. Another example, what if the Oscars wanted to do their voting with Sovereign?

My point being, I am not sure it is even possible to create a data model. Please tell me if my thoughts are completely off track!

Perhaps it might be better to allow users to define whatever identity requirements they would like for an organisation, and leave it at that? Although I admit, the challenge of proving identities with an ever shifting set of requirements is making my brain hurt.

santisiri commented 6 years ago

Okay, let's try to break this apart @AlexJupiter for the sake of clarity.

As Sovereign is right now, we only have attached to users their jurisdiction in a geographical sense (Nationality). So that could be used to filter down proposals that where written by all those users that belong to Nation X.

A different model is the idea of hashtags (which we now also support). A hashtag like #MeToo or #BlackLivesMatter can very well be an organization in the system. So we could filter down posts with that tag or also even posts with that tag written by members of a certain nationality.

If an organization wants to be represented in the system, it can create an account on its behalf: "University of Cambridge" could simply be a different user in the system. The thing is how we verify this entity or whether we make a distinction between individual users and organizations.

I think that we need to understand also how we play with the rules and possibilities already embedded in the current data model we have, just to keep things simple to implement.

paula-berman commented 6 years ago

I'll make a mockup of the ultra lean approach I've been proposing.

AlexJupiter commented 6 years ago

@santisiri:

As Sovereign is right now, we only have attached to users their jurisdiction in a geographical sense (Nationality). So that could be used to filter down proposals that where written by all those users that belong to Nation X.

Makes sense.

However, I think it's important to understand why a user would join an organisation, and why they would use a hashtag.

My predictions (and please disagree) are:

If these user stories are correct, in this sense, a hashtag can exist independently from an organisation. And even if the #MeToo hashtag is used, this might not be related to that specific organisation. Hashtags quite often take on a meaning of their own and to restrict their usage could be problematic.

From this above reasoning, I suggest that organisations and hashtags are kept very separate. Therefore, a user can be verified to join an organisation, however any user can use any hashtag.

Does that reasoning make sense? 🤔

If an organization wants to be represented in the system, it can create an account on its behalf

Perhaps, but I worry that this could create a centralised authority for the manifestation of that organisation on Sovereign. For example, who is in control of that account? An organisation/group that verified people can join, and then anyone can propose a ballot in, seems a viable alternative as a result.

I think that we need to understand also how we play with the rules and possibilities already embedded in the current data model we have, just to keep things simple to implement.

I get the desire to keep the implementation easy, however from the above reasoning (of which I encourage disagreement), I feel that the implementation of an organisation (implemented very similar to a Facebook Group) is the path forward.

santisiri commented 6 years ago

My inclination to design is to crave for simplicity as much as we can.

Perhaps, but I worry that this could create a centralised authority for the manifestation of that organisation on Sovereign. For example, who is in control of that account? An organisation/group that verified people can join, and then anyone can propose a ballot in, seems a viable alternative as a result.

Any organization is a hub and by consequence a centralized point.

The reason I like marrying the idea of hashtags and organizations is the following: when you look at the dynamics of a liquid democracy, it plays out in the same way a marketplace does. In the marketplace, there is such thing that is analogous to hashtags, we call them brands over there. People connect to brands either to represent their lifestyle or, a more fanatical minority even to directly work for them (influencers, employees, etc).

I would argue that a hashtag is simply a namespace in the same way a domain is on the web. I think that people can own a hashtag and turn it into an organization (and hence establish its membership criteria). The way of owning it can simply be bidding or buying it for a price. Eventually we can use decentralized namespaces like @blockstack does. But also an organization is a messaging device (afterall #hashtags are used for branding all the time), used to communicate an idea. This is all very relevant for political discourse.

Doing facebook groups is redundant, costly, tedious and complex. It's a whole new app inside an app. I won't do it with the resources we have now.

AlexJupiter commented 6 years ago

@santisiri this is very interesting and would you mind answering the following questions on this possible hashtag organisation UX:

In relation to carrying on this discussion, I think it might be useful to outline the requirements of organisations and then conduct some sketching sessions on the back of this. This technique proved effective in the past with our on-boarding redesign (https://github.com/DemocracyEarth/sovereign/issues/238). I can go ahead and organise this, first of all starting on the list of requirements, but what do you think?

Also, I understand that we are still building the blockchain backend, and the space is moving so fast that it's hard to know exact limitations, however do you share the concern that we might end up redesigning key features, like organisations, once we begin to hook in the backend? Perhaps it might be an idea to begin to design the backend and front end in tandem?

As some background information on my above paragraph, it might be useful to refer to the recent articles @virgile-dev shared (here and here) with my thoughts basically summarised in this Tweet.

santisiri commented 6 years ago

Hi @AlexJupiter, amazing articles the three ones you posted. Spot on.

Recently I talked with a colleague where we referred the idea on how sure you can be that a vote has the fingerprint of a human in it. Which is the kind of trust that we want to encode using votes. Votes refer ultimately to human identities (or groups of it) but at the same time in digital space you must be sure that no intermediaries interfered with that input (sybils, bots, replicants, ais, etc). My friend suggested the idea of always including a hash on every transaction (and piece of memory where data gets replicated) that can only be linked to a single human fingerprint. I thought it was interesting how to address the trust problem from the machine perspective also.

I fully agree with the view that we must properly communicate blockchain status. Our best move right now is advancing on the ERC20 token implementation and set of smart contracts @medied is currently working on. In our case the core functions are:

How would a user join an organisation?

If we connect these to hashtags, by simply 'following' them. Then the question would be how would an organisation approve the user and who decides? Which relates to the idea of voting on the participation and quorum requirements. I think we can brainstorm ideas around this.

How would a ballot inside of an organisation be private, so only viewable to those members of an organisation?

Anything private should pay a price for it. Even a minimum fee which in crypto can translate to satoshis, wei. For the time being I haven't put much thought into this yet.

santisiri commented 6 years ago

As referenced on #250, I'll put this as a strategic goal for version 1.0.0 so we keep current milestone with a manual implementation of jurisdictions to test and focused on making sovereign more social-media-like.

santisiri commented 6 years ago

We are now effectively recognizing as jurisdictions: Nation-Sattes, Blockchains and Domain Names.

screenshot 2018-07-20 19 59 28