Ethereum Group System - Bringing Unixlike groups and permission to ETH adresses and people (proof of concept)

Hello! I'm no Solidity developer, but I still wanted to get this idea out there to see if it was viable. Hopefully it'll catch fire and it can become a reality as I haven't seen such a thing proposed yet.

Here we go:

  • How do you prove to the world that you're an employee at Microsoft?
  • How do you prove that you've earned a degree at Harvard?
  • How can we achieve smart contracts having different outcomes depending on the people/addresses they're interacting with?
  • How does a company prove it has achieved an ISO certification?
  • How can we achieve a worldwide identity system in which you can display what others think about you?

The answer to all these scenarios could be having your address or ENS name added to a certain group.

Imagine being added to the microsoft-employees group and being able to prove at an AMA that you are who you say you are (say goodbye to having to send a photo-proof to the mods).

Imagine having your address added to the harvard-physics-graduates group, thus being able to prove in an internet forum that you indeed have a solid grasp of what you're debating.

Or, for example, imagine being able to use a charity-faucet because your local charity has granted you access to the needs-aid group. The faucet's contract could automatically verify that you belong to a group in the whitelist, thus granting you permission to do certain things.

All in all this leads to true identities that can't be forged and that have actual value. Of course I can create as many addresses as I wish, but they'll only gain value as they get approved into different reputable groups.

And, of course, in a decentralized system anyone will be able to create their own groups in an ENS-like manner, but only reputable groups will end up having value to the world. Still, small private groups also have uses: you could create a group of your family name and each member would be able to prove each other that they belong to said family.

I believe groups could have a very important impact in the Internet 3.0 and they would constitute a solid identity/reputation system based on what others think about you instead of what you say about yourself (which is the current Uport proposal).

The only thing I'd like to point out is that users should be able to accept belonging to a group. I'm sure a tagging system would have its uses as well, but both parties accepting membership to a group (inviter and invitee) has the advantage of 'undeniable proof of acceptance': the person can't deny voluntarily belonging to the group, thus giving more trustworthy information about that user's identity / profile.

Furthermore the groups system is perfectly compatible with privacy as it allows you to create as many identities as you want (for example, one for the internet and one for the real world) but each of them having real value and providing real information depending on the reputation of the groups in which you have been accepted.

Finally, when it comes to the system's contract design, an option I believe is important is being able to query to which groups an address belongs to. For an identity / permission system this is possibly much more important than being able to do the inverse query of listing the addresses that belong to a group. Possibly both approaches are possible, but my experience with Ethereum is still very very limited.

There are many many things to still be laid out about a group system, such as revocation, multi-sig group management, automatic expiration dates and how contracts would query the group database and find out to which groups a user or address belongs.

So far I haven't seen this system yet proposed in Ethereum, which is why I wanted to share this idea with you as I don't have the ability to execute it myself.

Please let me know your opinions!

Thanks, Daniel.

Edit: I just realized I should have titled this post "Concept" instead of "Proof of concept", as it is no proof just a concept proposal. Sorry about that!

Posted Jun 17, 2017, 10:23 AM UTC · edited

197
Loading comments…