Auti.sm, anonymous social network - presented by 0xTsukino

Learn & Share with PSE · 29 Jun 2022 · 53:20

Explores Auti.sm, anonymous social network - presented by 0xTsukino and how privacy-preserving identity systems can prove useful claims without exposing the underlying person or account data.

Speakers

Topics

From Learn & Share with PSE, hosted by Privacy Stewards of Ethereum.

Transcript

um is my mic doing okay can can everyone hear me awesome so um let's get started so hi everyone my name is sukino um i am an and now i'm working in decentralized social media space the project i'm working on is called autism and here's a bit about me since i'm prefer to stay along i can't really tell you my past work experience but i can tell you about how i what i do due to past time so when i'm not working i will probably find me chopping woods in valheim and building a log house sometimes you'll see me fighting space

pirate in no man's sky or watching a movie in vr chat these are all my favorite activities to do during my past time and even when i'm working i try to stay in vr as well so i've been working in in my spaceship using immerse with my oculus request for work as a monitor replacement and it's been pretty fun and this is where you know autism is built so um a little bit about autism first i do get many people asking me why um why the social network's name is called autism and

i do want to you know start with that so autism is basically a broad range of condition characters characterized by challenges with social skills repetitive behavior speech and non-verbal communications these are things that cause people to have difficulty fitting into societies and you probably know someone with autistic traits or you know this is a wide spectrum so you you could see it you know in yourself sometimes you can see a more extreme case but regardless a lot of people with autistic traits do this thing called masking what that

means is that they find ways to camouflage their artistic traits so that they can better fit into society it's basically a social survival strategy that is used to to be seen as more neurotypical by others so that you can achieve you know your goals um so not just autistic people do that everybody kind of do that in some way in some manner for example when we go to work we will appear to be more professionals hopefully we are actually more professionals but at least we want to be seen as more professionals we'll refrain

from cursing and you know stuff like that um when we are hanging out with friends we tend to be a bit more cheerful um it's not realistic for us to be cheerful 24 hours of the day but when we're with our friends we tend to be more friendly three or four so people enjoy our presence so in short everybody kind of do that we change of behaviors based on our environment um and we do it in such a way that others and us can feel safer to collaborate and co-create um you know in each other's presence

is kind of important for you know everyone to to be able to collaborate in a big number um but these kind of like dynamics how does it affect our speech how does it affect our behaviors in the wider society especially since i'm building up social media how does it affect our speech on social media we can kind of take a look by seeing how the greater environment treats speech um and opinions so here's a little um comparison of media media coverage of hong kong protests in 2019

you can see that the tight just from the title itself cnn represent a very different view with a very different picture versus the people's daily focuses on a completely different side of the story it's hard to tell which side is right and which side is wrong when both side is so extreme like this um but often times from news outlet these are the stories you're left with and these are the data you're left with to make decisions about you know the role something closer to home the united states capital attack you can

also see different media coverage by cnn fox news so not just on international events between two different newspapers from two different countries even on news outlet within the same land we are seeing very polarized view um when it's not politics um let's say transgender athletes um we are also have very polarized view when we look at fox news cnn versus usa today you know some is very pro the new regulations of not allowing trans women to compete in sports while others are very against the idea um saying that is a cause for

um fairness in in um spartan ships um so we have all these different outlets um the interesting thing like the and most of the outlet have very polarized view on any topic any speech um it's kind of like you know i use a picture of sharks infested water here basically um the feeling i get when i make a public tweet with my real life accounts um that's what i feel like i feel like i'm swimming in waters with a bunch of sharks i don't know if some shark is going to be hungry to eat me or maybe they'll

look back at my past and be like oh you deserve to be eating today it feels dangerous um so what can we do um here's a famous quote from one of my favorite movies man is leaves himself when he talks in his own person give him a mask and he will tell you the truth when you're using your real life identity you master behavior for whatever reasons um you should sometimes those reasons are good sometimes you know sometimes those reasons are good and you're doing it at real sometimes those reasons are more negative and you're doing it by coercion or by force

um you know or by fear or fear of being canceled fear of being the platform um so with all these i observe a need for the world needing a type of social media somewhat as a public good and the idea of public good is it's kind of like electricity and water once you provide it to a group of people you can really take it back um like street lights if you put a street light on the street anyone who walks in the street will see street lights it's not something that you can take back or you can exclude others from enjoying the street lights and for

this social platform to achieve the stated goals of being poor social and being pro truth um encouraging people to speak their mind to be themselves um i believe the social networks needs to be and non-friendly um it needs to be decentralized and it's it needs to have non-excludable access once you give access to someone um to speak to we to consume content we can really take it away and this is the idea behind autism um and i'm going to dive into like

different pieces to kind of further explain why i do autism certain ways um before i dig into how it's actually built so decentralized identity is a big piece of this um we want to make sure that once someone um anyone can join um the bar or two entries should be little to none um and they are able to see anyone who joined it's not a closed garden where only twitter can see you know that user base there should be a open garden where everybody can come in and you know check check things out as they please um for this decentralization to work it also needs to be openly verifiable by

anyone um not you know for example in oauth traditional oauth only twitter can verify your username and password or only you know different um web2 authority can you know verify your password and username for decentralized identity we need to make sure that anyone can always verify um you know in an open manner and for that we actually come to the conclusion pretty quick that ethereum address should be used as social identity it is already used on crypto twitter um by many people putting their ens name as their twitter handle

and it is also used by different crosstraining projects um as kind of their d5 identity you can see that once your address is once you create a address in metamask um it works in unit swap for ethereum it works in units well for optimism works in sushi swap for binance um it it just extends across multiple network um and the extensibility is um what we really want to go after and for for me it make make a lot of sense to bury film on top of it um to build autism on top of ethereum as it already solves a lot of the problem for us

and the second part is we need to make sure that data is decentralized what that means is that we are emphasizing on no single point of failure so the network should be operated by as many people as possible um even if i get hit by a bus died next day the network should be able to um be up even though nobody have access to the aws i'm using or the domain names i own people should still be able to prop the number back up just by running additional nodes and for that after looking at different many different solutions um i actually

find gun db to be the most flexible tools for the problem that we are trying to solve and you'll see you know why in in in just a few minutes um but basically what gun db is is a peer-to-peer database that can run in the browser so any person who visits autism will have a local copy of gun db um grabbing to only the you know um requesting only the pieces of data that they um want to see um right now it requests um everything because we have so few data and we are running we're basically serving everyone's content um as the global fees but in the future you can you can only follow certain people and

your local ndp will only have the data of these people instead of the entire network um which you know makes the make this data layer highly um available because it's it has duplicates of copies in of small copies of the database in many many places um all we need to make sure is that there are enough nodes that duplicates all the contents um all the time especially during the early days of the network um so for that i will always be operating a few seat notes that duplicate all valid data um from all the eve address that has drawn autism that way when people request that data it is

always going to be available as network grows it might become unscalable costs might become prohibitively expensive for that we have different ideas around rotating old content onto cheaper um cheaper alternative and lowering the cost of um just maintaining candibi which is still kind of which um for for its limitation it serves a really good purpose of syncing small pieces of data across many many peers um so and the last thing is a non-friendly it is very important for you know the previous reason that i talked about

basically um being decentralized ensures that everybody can have a voice without fear of being excluded without fear of being the platform we gotta go a bit further if we want to encourage people to be themselves well we need to also try to minimize the fear of getting canceled um if we use a real life identity we might not be able to speak of mind by work we have more credibility the challenge of building a non-friendly network is that if everybody remains completely anonymous it's very different difficult to tell the good content from the shows you can look at 4chan um

as you know sometimes you can find gems in 4chan from a non-post most of the time you see a bunch of trolls and a bunch of garbage posts that um you know that drags out the rest of the good content um so how do we solve that problem um and build a non-friend friendly network that is actually pro social um so we have a concept of transferable reputation which has been talked about for quite a while now um the idea is you can transfer product of only part of your identity to this anonymous entity

so that this anonymous entity carries um doesn't have to start from zero basically it can start with a higher reputation without linking back to who the original user is so in real life example is i can always show someone my passport by covering all the important piece of information when you see that at least you know tsukino is a u.s citizen and maybe when i talk about u.s politics i will be more or less credible in your eyes another example would be you can request a official transcript to be sent from a college to grad school applications these are you know examples of relying

to on a third party um to vouch for you that way your your actions or your speech carries additional reputations instead of just being fully anonymous but both of those ways will somewhat link to a real life identity we'll link your actions back to your real life identity in the case of passport like you you will see my face you'll know who i am in the case of transcript you'll definitely see my name you see which school i go to you probably will even see that guy fail at you know english class we can do that in a serial knowledge

manner in the financial world there's tornado cache where we can send money around using tornado as a programmatic mixers that you know that ensures nobody including the operator of the tornado network knows about who the funds come from when you take money out of tornado cash um now can we do that for reputation the answer is yes we have a project called interweb there's already um working and working on solving this problem similar to tornado cash where a bunch of people pull in deposits

so they increase the anonymity sets when people take it out and they will work the same way it encouraged people to join special groups if they meet certain minimum reputations and once they said get big enough it's very difficult to tell um who the member is when the member is creating proof of memberships so um the way that it works with interrupt right now is that if you have a twitter account where the account github account with certain number of followers you might be qualified to um brawn silver and gold tier groups um depending on your number of stars number of votes and number of

likes or followers um depending on which networks you're in and once you're qualified for this group once you join the groups you can then create a serial knowledge proof to prove that you're a member of the group without revealing who you are and once this proof is created the users can submit a post to autism along with the proof to prove that they are they belong to part of this group autism will then be able to use interweb to verify that this proof is indeed authentic and this proof um

actually come from a member of the group that this person is claiming to be in all while intergraph and autism doesn't know who this person actually is all we know is he is a member of the group um of course if there's only two people in the group then it becomes very noticeable but as the group get larger um the enemy set is much higher and it becomes very difficult to tell who created the proof so with all that said this is kind of how i came to the problem of decentralized social media and come to a working solutions on you know how to solve it with different stacks ethereum

can db interrupt and making it as decentralized as possible as open as possible and as friendly as possible to unlock users um so the next 10 or so minutes will be about we will contains a lot of code basically i'm trying to show how to put all these together it's actually quite simple so autism right now runs four seed notebooks at this address so any users can basically npm install gun and then connect to our seat our seat peers that way they can get access to all the autism content once you're connected to gun um

you can then read from the autism registry contract right now living on operation and we are planning to move to optimism at some point and the reason why you need to read events from autism register is that all the users who have joined um autism their address is on this addresser along with their public key um for for gun db that way you can verify the content so once you have these contracts um instantiated and read all the records um updated events from this register you'll be able to see a list of all the public keys that all the public keys and other wallet

address that has already drawn autism and with that information you can then use candibi since you previously connected to the correct signals you say you can use candy b to grab the users and then to start streaming all the messages from my particular users hello sorry yeah so with ldb um once since you're already connected to the main network um you can grab a slice of the users using their public key and then stream all the message from that particular users without getting you know the rest of the data this property is very important

because we want um we want a browser clients to be able to request just the amount of data that they need and to be able to share just the amount of data that they need without you know downloading the entire network which will be unfeasible for for a browser client and the all these state data um are all these data are basically formatted the same way um we i i call it the i call it a generate message format and basically it's it has a few um metal informations and the actual payload of the content

we have a message type subtype um the creator which is the wallet address and the time that is created um after all um for for this is what a generic message look like um for a specific message let's say for a post um these are the additional data they will carry so the type of a post message will be a post and depending on the type the subtitle of the message it can either be original post which is um a blank subtype a reply or a repost and then these are the additional under payload these are the additional information that the post can carry um

and this should um we i design it this way so that it can enable different type of use um so for example with title with with topic and with topic title and content you can basically implement a reddit clones um with with just those few pieces of information with reference which is a reference to the original message id will allow people to implement replies and repost and riff attachment allows people to attach different files different links to the post so this payload is designed to accommodate different usage from different kinds of social network even

though autism is um really just a twitter clone in terms of product definitions well modulation is much simpler um the type is a moderations a subtype can be any type of moderation that a user would do i'll folk them through like block um they are kind of similar um in in categories where a user is applying their you know user modulation on a post and all you need on top of that is just a reference id for for the previous message same thing for connections you can either follow users or blocker users and then all you need to reference is

the name of the person you're following which is the ethereum address and profile similar manners you can and and what now you basically get to just this data format is highly customizable um and highly flexible so that different use case may be built on top of this data layers um with very little new codes to be needed to be written all these content will turn into a content hash which will become the message id of the um of the post um that is pretty important because um when

the users um sign a particular post what they're assigning is actually the content hash of the post um to prove that they are the original poster well they are the you know they are the person behind their identity um so that is kind of yeah that is basically the simple um a very sim simplified way to put together um a autism note so that you can start getting all the content getting other posts there are no more than 25 lines of code in there um to do that um so that basically wraps up how the network is built and i kind of want to go into a

few more um loose topics that um that i i find interesting and challenging when when working on this decentralized social network one of them is threat moderations um two main point of um centralization that you know that give the moderator a lot of powers are are basically site moderations and discovery um in terms of moderation right now autism has different um moderation at different level at the post level just for a threat we give the power to the original poster to moderate as much as they want or as

little as they want so basically a original poster can set different modulation policy for their threats they can pick from a few options where only people that you follow can reply or only people that you mentioned can reply or people that you block can never reply and with this the power of moderating the default view of your thread is in the hand of the original poster we do want to give an alternative to the consumer of the content so for example this post is set up so that only people mentioned can reply to this post

but you see this you know blue taco right here on the right hand side that people can basically turn off on third moderation for a second and be able to see all the posts including any kind of um trash post um blog post that has um that that the original producer has blocked um and this you can get a somewhat unmoderated view of a threat even if the threat is moderated um i find that to be quite important um for for users to be able to see everything optionally um if they if they choose to

otherwise it will turn into kind of a wall of blocking each other um very fast um so something that is not some moderation is not in the hand of the users and it's not as easy to get around so for example in node operator and a ui operator will have to choose to ignore content update from any particular addresses that breaks law like if you operate autism the website um even though i'm anonymous users the person operating the domain has a real-life antenna identity attached to

it and they are subject to any um you know negality within their local areas so any low operators and ui operators they must um well put we we have ways for them to come comply and conform to the local economy gallery if you know if they want um now for that we need to come up with different alternatives for users who who could need to get around x so let's say like you're from a area is where um you know most low social content is blocked or you know post about um political events is blocked um

how can you consume contents if all the no operator in your local areas conform to the law which expanding all the contents that you can see in that case we can we can rely less on the centralized discovery service that we want and we can use something like a desktop apps for for users to also run a full gun db note on top of a local ui that way all data is local um circumventing any needs for autism ui that's kind of like a you know kind of extreme measure like yeah since since we can't rely on a no

operator we're gonna become a full operative by itself download the entire network that way you know nothing is hidden from us it works but it also is very um heavy very costly kind of inflexible not not that many people would would be able to use that um i think as the network grows it's important for us to be able to incentivize other users or other node operators to run nodes in different local areas and in different parts of the world this allows us to have you know this allows to work with as many um locally as possible

um while you know achieving our state ago which is to allow um encourage people to be themselves um encourage more truth um to be spoken um in this network um another part of um and under centralized park is discovery um that on autism so right now we basically index all messages from gun db um into a sql database for every post based on your reputation we assign a score to the post and when you request a global fees we rank each post based on the score and serve it to you

accordingly um this is how you know transferable reputation is used this is how um you know people with more followers their posts will rank higher than people with less followers um there are interesting things we can play with with this model um but the thing about this is it's still centralized it relies on our back-end on a hosted api for you to query the message hash of all the other posts um we want to decentralize as much of that as possible i think a lot of that is needed for making the ux smooth um so the user doesn't have to wait for enough content

to be download before seeing some some sort of post ranks that make sense but we we should have different ways to decentralize it one naive way um would be to allow users to subscribe to the views of others um so people already kind of do that on twitter where they create the custom list um or they um you know follow the follower um follow the person follow the followers of the person that you're following if that makes sense basically you follow the second orders of followers um kind of to expand the amount of content so you can

discover um in twitter and with um with autism you can do something similar where some of the discovery is pushed to the users instead of um the centralized api but some sort of global ranking still kind of makes sense and still help the networks other things that we can do is implement more local data indexing even in the browser clients um like we can use something like absurd sql which put a sqlite database directly in your browser um with that we can allow the users to download just enough data

into the sqlite database inside the browser and do the queries locally so that it doesn't have to rely on central servers or if we want to do it somewhat in optim optimistic way we can request from the centralized api first get all the message hash as um as the users as the clients is streaming data and inserting it into global sqlite database um in the background once they finish it can like alert the users if there's any discrepancy between the two calculations which is you know um like if there's no discrepancy then everything is fine if there's some discrepancy it means the

operator of the discovery api is probably not being truthful or you know has blocked some contents that away from the users so discovery and moderations those are kind of the things that we are playing with um some of the ideas that is in the work if anyone has any ideas please hit me up another problem for scaling the network is data archiving so as the network grows the size of gandhi be will come unscalable um so let's say everybody put like 10 gigabyte five movies in their gun db is going to be

um the neighbor is going to become very slow very fast so to lower the cost of operating a functional network we need to find ways for users to rotate all content away from gdp onto cheaper alternatives so some ideas that i'm working on is we can enforce a absolute size limits on the amount of data that any ethereum address can store in gun db um and anything above that limit will just not propagate or not accept the update so deck size limit can actually be fairly small like if we limit that size limit to four megabyte

which is enough storage for um for 500 words tweets um if they are just words or links um like that is actually plentiful for most users like some users might use more and they will need to think of ways to rotate um old storage onto cheaper alternative but for this a lot of like existing users um i don't think their usage has been up to four megabytes yet and um like existing twitter users i don't think they have used four megabytes of data yet and this is this will drastically put a bound on the size of the gandhibi node that will

won and make the cost of running it much more cheap much cheaper and much more predictable other solutions would be to integrate with data archive solutions such as ipfs and dropbox for user managed storage users can find ways to pin their own ipf hash or to use their own dropbox to always to put their existing content to offload the existing content that will free up the 4 megabyte on their gandhibi that they can use for any current data syncing um the reason why gandhi be still prefer on top of

ipf and dropbox is because we we want that fast peer-to-peer sync um to to be able to happen in the browser and on on notes across multiple different device ipf and dropbox definitely have different tradeoff and sometimes they have a cost um associated with it um for those these are user managed archive solutions that um you know the cost of archiving is offloaded to users dropbox actually gives you two gigabyte free um uh you know you just didn't give them your email address um a more fun and off you know offhand like it's more fun than kind of

outdated ideas that i'm kind of brainstorming is that we can allow different we can allow any users to archive permanently archival posts on on an l2 let's say optimism the way that it would work would function similar as giving someone a reddit award um right now if you get someone on reddit or what they get clouds um they don't really get anything else um i think it somebody would actually give them money um for for this um it can be a data archive reward or or archive reward where you can give someone this um reactions to the post

your post is actually um permanently archived on an l2 and the cost to the person archiving it is the guest fees as opposed to where the reward where you're paying whether the network and you know where to give clouds to the poster this is you know much more decentralized where you're paying gas fees to do a thing and this action still give the original poster the same amount of clout um and the last thing that i am also thinking about is different use for

interweb and for semaphore proof um so i think the benefit of using ethereum is that we have a lot of unchained reputation already on the network we can see who are the airdrop recipient of the union swap token we can see who owns a a penguin or apes we can see who are the big ethereum whales there's a lot of reputations that we can unchain reputation that we can use to build groups like a self-managed with autism message we i we can custom make a new message type for inviting and accepting a group the idea

is that the some admin of of a dow say unit swap can create a autism profile they can invite all the members of the unit swapped out and the new swap dial member can accept by creating and submitting their seminar proof to the network based on the order that they are submitted we can then insert them into a center for group into the tree and then we can use this tree in the same manner that we use interrupt today and we can also do the same thing as interweb where we periodically update it to um to a smart contract to increase

redundancy so with um with i with this um we want to expand on the current features of um anonymous of interweb integrations um that is possible in autism right now right now all you can do is to join as anonymous users if you fit um any of the interweb groups in the futures we want to allow users to create to self-organize their own sample group to invite their own members and they can create different reputation batch um and give to a long address so i um say if i am um

if i if i'm a verified user on twitter um it means i'm you know prominently recognizable i think that's you know the way twitter puts on their policy is that if you must be permanently recognizable on some view to people verify um so say i'm a verified user and you know i belong to the go interrupt twitter group i should be able to create an unknown users from a brand new wallet i should be able to create a batch and give it to that wallet due to that new users and that new users now um you know have its own wallet address have its own yes as name and doesn't have to start with zero like people know this is someone

probably with um some kind of expert opinion or his opinion matters to the popular um these are you know fun new primitives that i think um i i that i'd expect some people will use in surprising ways that i haven't imagined um some of the groups off the top of my head that um we'll create um once this feature is live are groups for different nft owners um good for different whales of um specific tokens we can use airdrop snapshot of um of um

big airdrops that that happened in the past years um we can even use a2 stickers and create a segment for group just for if two sticker that the company self-managed yeah the ideas and is i i particularly want to integrate chat with autism sooner because i think the ability to send chat message as a dow member or some kind of um some kind of these um chamfer group um without leaking kudo original owners is very powerful not like we don't know how people use it but with person to dial

communication or even dial to dial communications um well i believe you know it's interesting and people will find um will surprise us in the ways that use it so with that said um that is my presentation that leaves about 13 minutes or 23 minutes yeah 30 minutes for questions i will leave this slides up here with my link you can go to this link and see my profile you can tweet or not tweet you can you know post directly at me or if you want you can also tweet directly at me on twitter and that's the best way to get my attentions if if not a discord message

thank you i think justin said rap3d storage gave us one tetraborate free i gotta look into that so you might have already mentioned it a

little bit but um i guess uh what would you say was the biggest challenge in orchestrating all of this from kind of scratch what was the biggest hurdle um i i say the technical part is actually not that challenging like i'm building on top of a lot of existing ideas existing solutions that people have already built all i'm doing is kind of i'm just gluing different pieces of puzzle together um i think finding the white trade-off between um okay there's actually a few things um

finding a white trade-off between where to where is okay to be more centralized and where it's not okay to be more centralized um and being very measured about that line is kind of tricky we don't want to centralize certain parts that we cannot decentralize in the future we also don't want to an intensely centralized park that give us too much power that we cannot give away in the future um these are situations that um i personally don't want to get into um as myself and i don't want that for the network as well um

and there's one one challenge um another challenge is refraining from coming up with some kind of tokens for the network like i think i pay a lot of attention to d5 in the past a lot of other projects also experiment with similar similar type of social network but they put a token on top um which might not be bad like token by itself is not bad but like token that doesn't need to exist is like it take away from the network now if the token doesn't work the network

becomes less credible and people don't want to use it i kind of find it to be important to keep the two things separate the network itself should be to serve a purpose as a public good and you know we can think about things um like token in the future when it makes sense instead of just coming up with some kind of use case push for a token launch and then you know after things go while that's not um that's not why we built it um and the third challenge is kind of building in the dark um meeting berries and meeting um the pse team last year um is really helpful um

before that i spent a lot of time just building by myself um not knowing if like not knowing if people give a about what i do um i i would just keep coding as a non anonymous because i i don't really want to tell people that i'm building this to my real life friends because i prefer to stay anonymous um and you know that the feelings of being in the dark not knowing if what you do matters sucks a lot and you know being able to you know for example do a presentation like this talk to like my people from pse you know you know make me realize that yeah there are a lot of people basically doing the same

thing building and then non-building and the dot not knowing what they do matters but we all have each other um that's kind of the few challenges that i have awesome super insightful thank you and and thank you for the presentation awesome yeah i can have a question so

use this uh gun db as a peer-to-peer network um i'm just wondering for the ephemeral nodes like the browsers do they persist anything between the sessions or they do they uh download everything fresh for every session they persist um between sessions so i believe none db use index db locally and they are also wanting on a worker threat to to make it you know faster so yes is it the decision persists and the data persists between sessions cool yeah that's all i want to ask yeah i'll be around for a bit longer um

feel free to hit me up on discord um if not now anytime anytime um especially if you have ideas around um you know any part of autism or any kind of feedback please hit me up i'm more than happy to jam um if you have vlchat we can do a hangout session in vrchat um you know watch a movie together and talk about autism and privacy in vr chat you know open insight thank you

ceramic network and referee storage thank you justin i will definitely take a look at both of them thanks for sharing um your problem statement at the beginning it helped um you know set the stage to understand the project more thanks thank you so much

talk to you guys later thank you you