CashID Adoption

3 190
Avatar for jimtendo
4 years ago

CashID is a Cryptographic Identity protocol designed by Jonathan Silverblood inspired by an earlier spec known as BitID.

Essentially, it allows you to use your BCH Cryptographic Keys as a way to authorize actions against services - as well as send additional metadata to these services.

One of the most common use-cases for this would be Registering or Signing into a service. The below is an example of how this might look in practice (if using an OIDC flow).

If you would like to try out the OIDC flow, the following link 'should' work (choose "Use WebApp" if you do not have an Identity Manager installed).

https://cashid.infra.cash/oidc/auth?client_id=cashid&redirect_uri=https%3A%2F%2Foidcdebugger.com%2Fdebug&scope=openid%20name%20family%20nickname%20email%20country&response_type=id_token&response_mode=form_post&nonce=1vbcn6p4us2

Why CashID?

CashID offers a few advantages over traditional Social Login services:

  • All your information is stored on your Device(s). There is no need for Social Intermediaries - thus mitigating some of the concerns around services like Facebook mining your data.

  • It allows Password-less Authentication into services and quick Registration.

  • CashID ultimately returns a BCH Address (this is your ID).
    In future services that support it could allow users to receive payments and/or communications directly to the user's CashID Address.
    (In my opinion, this also provides a very good foundation for decentralised Media Services, but I'll delve more into that in a future post when I have more time.)

  • All payloads are cryptographically signed by your Private Key - another user (unless they have your Private Key) cannot pretend to be you.

  • A single CashID Account 'can' be used across several services (one consistent identifier across services).
    (This is optional - a user could create a new Identity per service if desired.)

Adoption

Support for CashID in both Wallets and Services is still lacking. For the past few weeks, I've been working on a few projects to try to ease integration of CashID into services as well as make it easier to integrate into existing Wallet Applications.

As a stop-gap while we wait for Wallet Support, I've also been working on an Identity Manager WebApp.

Links to the projects along with a short description are below:

  • cashid-js
    This is a NodeJS/Javascript Library that contains three classes:
    1. CashId (Common Utility Functions for CashID)
    2. CashIdServer (To ease implementation for Services)
    3. CashIdClient (To ease implementation into Wallets)
    https://github.com/developers-cash/cashid-js

  • cashid-gateway
    This is a Node App that provides an OIDC Gateway for CashId. This leverages the above and is intended to provide an easy bridge for existing Services that already support OIDC to easily integrate CashId.
    https://github.com/developers-cash/cashid-gateway

  • cashid-webapp
    An Identity Manager Web Application that can be used until we have better native Wallet Support for CashID.
    (Please backup your mnemonics if not used for testing purposes. All keys are stored in your browser's Local Storage so they will not be recoverable if something goes wrong.)
    https://cashid.app
    https://github.com/developers-cash/cashid-webapp

NOTE THAT ALL OF THE ABOVE ARE UNSTABLE AND LACK PROPER DOCUMENTATION. ADDITIONALLY, THE API'S ARE LIKELY TO CHANGE SO PLEASE DO NOT TRY TO USE THESE YET. WILL COMMIT LATEST FOR PROJECTS NEXT WEEK.

I plan on doing a write-up on the above when I get back next week to get some feedback on the sensibility of the API's and what else would be required to ease adoption/integration of CashID into both wallets and services.

For now, as I'm short on time, I'm just going to leave these placeholders here:

  • cashid-js
    LINK NEXT WEEK

  • cashid-gateway
    LINK NEXT WEEK

  • cashid-webapp
    LINK NEXT WEEK

If anyone has any thoughts/ideas/suggestions in the meantime, please feel free to reach out on Telegram.

https://t.me/jimtendo

References

CashID Protocol Spec:
https://gitlab.com/cashid/protocol-specification

25
$ 8.74
$ 5.00 from @JonathanSilverblood
$ 1.00 from @emergent_reasons
$ 1.00 from @ErdoganTalk
+ 4
Avatar for jimtendo
4 years ago

Comments

Thanks Jim! Will definitely try this out!

$ 0.00
4 years ago

I started to like CashID even more than before with bitcoincashresearch.org - the site is hoping to use CashID to allow accounts to be portable. Any site doing that will have a Theymos defense mechanism: as long as the database gets published regularly, the whole site including all the accounts can be duplicated without releasing any private information and without users needing to have any special knowledge.

$ 0.00
4 years ago

Great work @jimtendo .. don't hesitate to reach out for help with testing, bugs, whatever .. would ❤️ to see CashID in EVERY wallet by end of 2020 🙏

$ 0.00
4 years ago