  A decentralized identity system that can provide users with self-sovereign
digital identities to facilitate complete control over their own data is
paramount to Web 3.0. The accounting system on blockchain is an ideal archetype
for realizing Web 3.0 decentralized identity: users can create their accounts
without registering with a central agent. Such an identity system is endowed
with anonymity property: nobody knows the account's owner because the
relationship between an account and the owner is invisible. Thus, user privacy
is well protected even though the account's data is public. However, a
disadvantage of such complete anonymity is that users can create multiple
accounts without authentication to obfuscate their activities on the
blockchain. In particular, the current anonymous blockchain account system
cannot accurately register the social relationships and interactions between
real human users, given the amorphous mappings between users and blockchain
identities. Mistrust can be a major hurdle to the large-scale deployment of Web
3.0. This work proposes ZKBID, a zero-knowledge blockchain-account-based Web
3.0 decentralized identity scheme, to overcome endemic mistrust in blockchain
account systems. ZKBID links souls (blockchain accounts) to humans (users) in a
one-to-one manner to truly reflect the societal relationships and interactions
between humans on the blockchain. With ZKBID, the users are accountable for
their accounts anonymously, preserving privacy. ZKBID authenticates users using
face match and then maps authenticated users to accounts. Zero-knowledge proofs
encode the face match results, and user-account mappings employ linkable ring
signatures to preserve anonymity. We implemented ZKBID and built a blockchain
test network for evaluation purposes. Our tests demonstrate the effectiveness
of ZKBID and suggest proper ways to configure ZKBID system parameters.
