Skip to content

Repository files navigation

Proof server of NextID

What's this?

A bridge to connect your web2.0 service / cryptocurrency wallet to NextID identity system. So your friends or followers can easily find you on any supported platform.

Which platform can I prove?

Supported

Platformplatform valueidentity valueproof_location valueMisc.
Twittertwittertwitter_usernameProof tweet ID (1415362679095635970)
Keybasekeybasekeybase_usernameN/A (use https://your_identity.keybase.pub/NextID/COMPRESSED_PUBKEY_HEX.txt)
EthereumethereumWallet address 0x123AbC...N/A (Two-way signatures created from persona sk and wallet sk)
Githubgithubgithub_usernamePublic visible Gist ID a6dddd2811af21b671fdGist should contain 0xPUBKEY_COMRESSED_HEX.json file
DiscorddiscordUserName#0000message link (https://discord.com/channels/DIGITS/DIGITS/DIGITS)
DotBitdotbitaddress.bitCustom type Record (nextid_proof_0xPUBKEY_COMRESSED_HEX)Formerly known as DAS (Decentralized Account System)
SolanasolanaWallet address AbCdEfG9...N/A (Two-way signatures created from persona sk and wallet sk)
Mindsmindsminds_usernameProof post ID (LONG_DIGITS in https://www.minds.com/newsfeed/LONG_DIGITS)
DNSdnsexample.comN/A (use dig example.com TXT)
ActivityPubactivitypubusername@server.comID-ish string in "toot"'s detail page linkSupports mastodon, pleroma and misskey instances
TikToktiktokusername in @usernamehttps://www.tiktok.com/@username/video/DIGITS or https://www.tiktok.com/t/SHORTLINK/

Planning

Platformplatform valueidentity valueproof_location valueMisc.
FacebookfacebookUsername in link (i.e. Meta in https://www.facebook.com/Meta)Post ID (460695145492083)
Telegramtelegramtelegramhttps://t.me/some_public_group/CHAT_ID_DIGITS
ENSensmyens.ethN/A (use id.next.proof record in ENS to store proof)
Emailemailmail_address@example.comA public mailing list mbox download URL (?)

How?

Proof Chain

Each NextID identity (named persona) has its own "proof chain":

  1. Every modification of status (add / delete a proof) will become a "link" in the chain.

  2. Every link is signed by persona owner (aka persona private key).

    Furthermore, each link signature payload will contain previous link's sig, so the whole chain cannot be modified other than owner. Kinda like "blockchain".

  3. Every persona proof chain is public. Everyone can download and verify it manually.

So you don't need to trust our hosted server, since we cannot fake a proof modification for any persona.

See HERE for structure of this proof chain file.

FAQ

Can this be decentralized?

TLDR: If it is, the whole system will become weak against "junk proof" attack. For example:

Can an attacker claims himself as @elonmusk (and provides a seem-to-be-normal proof tweet link)?

Of course he can, since this network is decentralized, there is no "gatekeeper", anybody can publish any data in their own namespace.

Well, how should other users trust this claim? They can only fetch this tweet and validate it locally.

The result is:

  1. EVERY user should set fetch methods for EVERY platform available (typically API key) for their own. Since they can only trust their own verification result. This will increase the difficulty of deployment for every single user in this network.

  2. With "junk proofs" growing more and more (they will not disappear or be deleted by someone, decentralized, you know), every user will waste more and more API usage on these unsuccessful proofs. In the end the whole network is flooded.

Presentation

About

ProofService: A DID.

Resources

Stars

62 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages