ID Verification with Social Media Feedback

#1

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

#2

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:

#3

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

#4

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

#5

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).

#6

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:

#7

@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.

#8

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.

#9

@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
#10

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
#11

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:

#12

@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.