ID Verification with Social Media Feedback

Hello!

I’ve been following the Blockstack project for while, and recently created my ID and started using one of the Apps.

Today I tried to verify my ID with my social media accounts and was able to do so successfully with Facebook and Twitter. However, after being verified I deleted the post/tweet and my Blockstack ID reverted to ‘unverified’.

What is the rationale for the verification posts having to be public AND permanent?Can this be changed?

I assume someone may have rationalised that it is free marketing and would help more people learn about the project. It seems contradictory that in order to promote Blockstack every single new user will be required to give up their privacy in order to verify their Blockstack accounts. I keep my Twitter private (changed the settings just for verification purposes) and rarely post on Facebook.

Alternatively I assume that, being a new project, perhaps not many people have actually gone through the verification process and the few that have are super keen early adopters and don’t mind the inconvenience. I’ll add my feedback to improve the User Experience: this makes the verification process clunky and puts me off from proceeding. Most people I know (‘normies’) think in similar ways.

Would love to hear your thoughts and experiences,

AVB

ID verification gives users the possibility to add value to their IDs.

A blockstack ID is a public statement (like a web page). It is the entry point to find information about the owner of this ID, to engage with the owner of this ID, to build a trust relationship with the owner of the ID.

Using existing social networks helps to bootstrap this trust relationship. Peers that know a user by their social accounts probably trust a verified blockstack ID more than an ID that they found by chance. For the verified blockstack ID, they don’t have to guess whether the owner is indeed the user they are looking for.

If you want to stay anonymous, you probably don’t want to use a blockstack id at all and you don’t want to use blockstack apps that publish data in your name (see permissions during login screen).

If you want to share your blockstack ID only with your close friends, you probably don’t want to use any verification and you would just tell your friends your ID.

BTW, you can have as more than one ID.

Just my 2 STXs :slight_smile:

And there is a thread on reddit: https://www.reddit.com/r/blockstack/comments/dqodwn/why_social_media_accounts_linking/

I understand the value about social verification.

My question is simple: is an engineering problem that AFTER you have verified, you can’t delete the post (this should not make any difference, deleting the post doesn’t mean the Blockstack ID and Social Media Account are no longer connected) OR is it a simple way for the Blockstack team to get free marketing?

If an engineering problem, then it should be improved. If a marketing technique then it goes strongly against the principles of privacy the project is meant to stand for.

In regards to privacy, the whole point is that the user chooses what to share with people. In the same way I do not want my email address or phone number to be permanently available to anyone who comes in contact with my Facebook, I want to choose who I give my Blockstack ID to…

Thanks for sharing the Reddit thread, I’ll check it out now

1 Like

IMHO, it does exactly mean that they are no longer connected, because there is no way to prove such connection. You as a user of the social media account have the control to decided for how long this connection is verifiable, same for you as a user of blockstack ID who adds the link to the public profile.

I think, there is no AFTER or BEFORE verification, there is just the question whether the connection is NOW verifiable.

@Satojandro Do you have any suggestion to indicate the disconnection differently than by deleting the post or removing the link to the post from the blockstack profile?

There is a group of issues on github around social proofs: https://github.com/blockstack/blockstack-browser/issues/1779 … maybe they will be removed altogether. Then an app could help users to provide proofs (maybe by using verifiable claims).

It really depends on the assumptions you make, and the information that is available at any one time to validate them. The way that I see it:

  1. To be able to verify your Social a social account, you must have access to it (email, password and possibly 2FA)

  2. There are three possible ways in which you may gain access to an account, all with a different probability and risk level associated with them:

  • You are the rightful owner of the account. [Most likely]

  • You somehow convince someone else to post the verification message on their account and then delete. [Somewhat likely]

  • You hack into someone else’s Social account and verify your Blockstack ID while you have access to it. [Less likely]

  1. The next step would be to ask, in what circumstances do you lose access to your Social account in such a way that it no longer satisfies the verification objectives of the Blockstack ID?
  • The only ways in which you could possibly lose access to your own Social account is if you were to deliberately delete it. (You can always recover access with your email if you forget your password). Deleting the account is highly unlikely if it is your legitimate social media account, although there is the possibility of people getting fake accounts for the purpose of verification. Even then, it costs nothing to keep an account active, and the hassle to deactivate or eliminate one are much higher.

  • The account was never yours, so the other person deletes the post.

  • The hacked user regains access to their account and deletes the post.

I think the easiest way to get around the privacy issues, in a way that achieves a good balance with the verification needs, is to require the social accounts to be periodically verified (say every 6 months or so?). That way the post can be deleted, or Social accounts remain private, while ratifying that the circumstances that led to the original verification have not changed.

P.S - I’m not a hater. I’m genuinely really interested in implementing blockstack sign in into my app, precisely due to the verification functionality. I’m just thinking though my personal and my users’ user experience and suggesting some improvements :slight_smile:

@Satojandro You have to look at the verification as an outsider, not as the id and social account owner. What information is available at any one time to validate them:

Let’s say you know @ muneeb on twitter then you can search his twitter feed for the verification method and you can find the blockstack id that he published to be his. You can use his blockstack id to send him some BTC or mumble with him. The risk that you send your BTCs to the wrong person is as big as the verification post was published through by a hacker. If muneeb published friedger.id as his blockstack id then it is his decision that you should send friedger some BTCs. However, you have the chance to verify whether friedger on Blockstack indeed wants to act as muneeb (and receive muneebs BTC and message on mumble) by inspecting friedgers blockstack profile. If there is a link to the @ muneeb twitter account then muneeb and friedger are the same person (in the sense that they agreed to act as the same person, they might be still two different physical persons).

If there is no verification post in muneebs feed (because it was deleted) you don’t have a chance to find out his blockstack id or verify it. There is NO trusted party in the middle that stores the verification status for you (not for 6 months, not for a day). Therefore, it is necessary to keep the verification post public as long as you want other users to verify your social accounts.

I think the best way to provide a private solution is by a service where other users can ask for a social verification proof and you as the owner of the account owner have to approve the request. You could whitelist your friends, you could charge for the proof, you could provide a different proof for each requester, … you are in control. However, you have to publish to the general public which verification service you are using or we are back to a centralized solution that stores your proofs for 6 months and you have to trust this centralized solution that the proof is indeed the correct proof.

Remember that the blockstack id is a public, globally unique id. It is made to publish data about and for the owner of this id. Choose your apps carefully when the app is asking for permission to publish data for you!

PS: I was not offended :slight_smile: I am just a community member learning about all this as well.

1 Like

I really appreciate you taking the time to bring me up to date and explain some of the processes and the rationale behind them. Unfortunately, I am not following your logic and the dashboard interface and functionality do not seem to follow that logic either. [See attached screenshot]

For starters, your scenario of someone (a stranger?!) scrolling through someone else’s feed to get their blockstack ID and send them Bitcoin is far fetched at best. “People would have no other way to get your Blockstack ID otherwise” - yes, they can simply message you and ask you for it. Once again, it goes back down to basic privacy. It is great if someone who, for whatever bizarre reason, doesn’t want to send you a DM on Twitter but wants to track you down on Blockstack and send you Bitcoin can find you. However, for most people it simply opens them up to creeps, stalkers and hackers. You wouldn’t post your mobile number or home address publicly for anyone to access. It completely undermines the whole point of building a trusted ID online.

Second, in regards to “it not being possible to store your verification status” so users must scroll through your old tweets to verify you themselves. That is both extremely poor UX but also entirely undermines the point of having a Blockstack ID with social verification built in.

  1. The green circles show how the current Blockstack ID saves your social media handle. I have blacked out my Facebook and Twitter ones, but they are there. It can be contrasted to the ‘empty’ Github of Hackernews account.

  2. The blue circles show that once a handle has been entered, there are to options: Verified or Unverified. This can also be contrasted the ‘empty’ +1 and star standard display.

  3. Finally, the orange circle shows how there is a computation that aggregates the sum of your ‘verified’ or ‘unverified’ accounts.

My two accounts were briefly Verified before I deleted the tweets. My entire argument is that the Verified logic should be changed from “Verified: Current Post Content (ongoing)” to “Verified: Post Content Match (Yes/No), Timestamp it, Reset Yes/No field every X period requiring new verification”.

You are correct in that I am thinking from an App Developer and User perspective. That is how I see the ecosystem will grow: new users will be attracted to the App and the ecosystem will grow around the App. If the verification system is broken, they will simply go away. People do not need Blockstack to send Bitcoin, and it may only be a lot further down the line that people will seek each other out to engage though Blockstack. At the moment there is no shortage of fully developed engagement and payment options (centralised and crypto).

Most importantly, changing the verification requirement does not mean that users that want to broadcast their IDs to the world and promote the ecosystem that way can’t do it. They most certainly can still post and leave it up. It simply means that now the user has the choice to maintain it up or delete it.

1 Like

@Satojandro I agree with you that the UI of the Blockstack browser suggests that it is required to associate social accounts with the blockstack id. Probably, that is the biggest UX problem. I just ignore the incomplete profile message.

I also agree that users will come through apps. What do you mean by the App? Do you mean the Blockstack Browser app? - I also think that the ecosystem does not end with blockstack but that apps will include more decentralized identity providers.

I don’t see how proving an social account temporarily adds any value? On https://explorer.blockstack.org/name/muneeb.id I see only the accounts that are currently verified and the explorer app does not have any possibility to know whether a social account was verified in the past.

1 Like

I was just thinking about this. When reading the below article and if Blockstack will become part of one of these “alliance” like DID Alliance (Distributed Identity) http://didalliance.org . Too many different ID systems kinda defeats the purpose. I’m very curious what @muneeb thinks about this.
https://www.businesswire.com/news/home/20191107005544/en/Alliance-Brings-Trust-Accountability-Digital-World-Launch

1 Like

I meant individual Dapps. For instance, my app currently has 150 users and growing. If I were to migrate to the Blockstack ecosystem I bring them all with me and continue my marketing and growth hacking activities in such a way that all the new users being onboard to Blockstack are a byproduct of users being onboard to my app. (There is probably a loose use of App/dApp, autocorrect also doesn’t help. Apologies if it is confusing at some point).

Once again, someone’s social media account is permanent. Regardless of whether they are on the Blockstack ecosystem or not, the vast majority of people have the same Facebook or Twitter account for a long time. That only rarely changes when someone decides to quite the network altogether.

It is illogical to require someone to permanently verify the social media as there is little to no indicator that once you prove you are the owner of the account once, the same account could somehow have another owner later in the future.

Even if the user does indeed change their Social Account, they can update the information themselves.

The small number of salient cases where a social account gets compromised in order to be used as verification for Blockstack can be managed (in my opinion). Some of the ways are:

  • Not allow for the same social verification to be used twice. So my FB account can only be linked to one account at one. Even if my FB gets hacked, it is already affiliated to my current Blockstack.
  • Report Blockstack profiles that are affiliated with hacked accounts. That can simply prompt the user to verify again (assuming they do not have on-going access to the hacked account).

Just to quickly sum up my experience: Verified both FB and Twitter (both kept private), deleted the posts (required to be public), now my Blockstack ID says ‘unverified’ which is untrue, and my FB, Twitter and Blockstack ID are still mine and I can’t foresee any reasonable scenario any of them will change. Linking them once, and perhaps requesting to confirm the verification every so often, is simple, much better user experience, and I think it meets the purpose intended for the verification feature :smiley:

1 Like

@Satojandro You are not verifying your social accounts to blockstack or any other authority. You are publishing your post for everybody to be able to verify it themselves.

“unverified” is a wrong wording in the blockstack browser. It should probably be “unverifiable (for others)”.

If you don’t want to use a public post for verification you could ask an authority to confirm it for you, e.g. Blockstack PBC. They could provide you with a “stamped” certificate that you own a social account. (The certificate could expire and you would renew it.) Then you can use the certificate to prove ownership of your social accounts. - This is what the verifiable claims are about. I really would like to see these added to Blockstack! But currently, we are stuck with the public posts on twitter and facebook.

1 Like

An identity on the big social sites is one thing, and I agree they don’t usually change for most users. But people can have more than one ID, and in the case of financial transactions they arguably should have. There’s more motivation to keep ones financial identity private than ones social ID. It’s like having multiple bank accounts. You’d not usually disclose that information publicly except for receiving payments. I think it’s good that we can create multiple Blockstack ID’s.

Hello @friedger

Thank you for explaining how the “verifiable” process works.

What do you think of @Satojandro’s suggestion using a timestamp, and adding a 2nd level of trust such as “Verified on X date”.

Benefits I see:

  1. Users who have verified and deleted their posts would not go back to the initial status “UNVERIFIED”: you took action to satisfy the requirement and you get a 0 result which seems like an awful User Experience (break of trust and no explanation in real time)

  2. Even if timestamped, 3 social media accounts which would be timestamped verified and if consistent, it would definitely add up to the trust level to this particular BlockStack Id.

  3. If I can delete the post on my social media, I don’t need to tell the people from the social media about my blockstack id

Looking forward to read your thoughts.

Bests,
Rapha

:fire:

1 Like

@raphasierra.id.block

  1. “UNVERIFIED” is just a text label that the app (blockstack browser) decided to show you based on the data that you published. There is no advantage or disadvantage in having this status. If you want create your own version of the blockstack browser and just remove this label.

  2. There is no authority that can verify your social media accounts. Blockstack does not lookup the accounts and timestamps them. There is no code that does it. Such code would need to constantly scan all blockstack user profiles and watch for changed social proofs. We as a community could come up with such a verifier that does this exactly. But would we trust this verifier? Maybe if it is a crowed based verifier…?

  3. Just don’t post it in the first place.

1 Like

Hello @friedger and thanks for your kind answer,

It’s a small detail but it’s the first experience users get with the BlockStack: if users take an action by posting the post but then delete it, and get “unverified” as a result, without an explanation, it doesn’t build trust. User experience is a must, we’re in 2020…

Have a great week,

Bests,
Rapha

:fire:

2 Likes

@raphasierra.id.block Fully agree! Ideally, I would like to see a verifiable claim provider here… but I am just a community member.

Feel free to comment on the epic on github about the whole social account verification as well!

1 Like

Then the entire UX/UI on the Blockstack ID is misleading and not very helpful at all. ‘Verified’ makes it clear that a verification has occurred in the past, it even has a check mark (as you would check an item on a to-do list). If the expected process is: you go and verify yourself - sifting through hundreds of old posts on someone’s social accounts - what we already verified ourselves (the Blockstack platform is able to read the public post, that’s how the status on the Blockstack ID is determined) the entire design needs to change. Are there any teams working on this?

I truly can’t comprehend how you can say that ‘no one can verify this’ or ‘this code doesn’t exist’ when there MUST be some sort of code that reads the public post and provides the True/False result to determine whether the Text Label shown is verified or unverified. Blockstack is meant to be a BLOCKCHAIN? This simple process can easily be open source so we can trust it. A timestamp of each verification process should be the cornerstone of a blockchain…?

Honestly, the poor grasp of user experience design, and a refusal to look at things in a pragmatic way to make them useable turned me off from this project for weeks. Literally faster to build your own custom solution than to battle out endlessly what ought to be an extremely simple issue (and the frustration of endless number of users experiencing the same issue). I may miss out on Blockstack app mining rewards, but I suspect rewards will have to increase signficantly to retain developers in such an ecosystem…

1 Like

I hear you Alejandro @Satojandro

I agree with you that user experience is key, and that if this seems like a small detail, we must pay attention to details because the devil is in the details.

Any inconvenience to the user, and a small frustration can break the trust necessary for users to give this a chance.

The wording “unverified” after a user’s action is not acceptable. Creating an open source code with a “timestamp logic” seems reasonable, unless there is a specific reason against it? @friedger maybe there is?

Whatever reason evoked should not go against user experience: if necessary, the front end can be changed, an explanation can be provided and the overall user experience should always be a priority.

I am 100% convinced that the success of an App will have to do with how well we will be able to integrate user feedbacks.

If you’re building a new App, and you’re not willing to go above and beyond to satisfy your users, especially at the beginning, you’re not doing it right.

I’d love to hear more about the app you are building. Would you be open to make a quick call?

Maybe that is a misunderstanding here. Social Account verification in the blockstack browser does not happen on a blockchain, it just happens locally on your device.

There is code that verifies social accounts and it is open source but there is no blockchain transaction created for that.

1 Like