project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Identi3

Identi3 is a safe, versatile and convenient way to store your user web2 browsing data the web3 way;

Identi3

Created At

ETHNewYork 2022

Winner of

🏊‍♂️ Worldcoin — Pool Prize

🔟 IPFS/Filecoin — Top 10

Project Description

Identi3 is a web identity and data management protocol to change the ownership and management of user data and authentication on the web.

If you have ever used chrome, internet explorer, firefox or similar, you have probably heard of Cookies. “Cookies are text files with small pieces of data — like a username and password — that are used to identify your computer as you use a computer network.”

Different sites on the internet use cookies to track and monitor user data as they browse the internet. This sounds quite intrusive to the end-user however cookies are an essential part of user experience on the internet.

Identi3 changes the way we use the internet today. Users can take control of their own data and use it as they please.

Cookies are often used to perform functions like keep users logged in to a specific website domain or remember different interactions between you and the server you are communicating with. This is commonly known as Cookie-based authentication. They will maintain authentication in a session for the user. These cookies are stored in your browser in Cookie storage. One of three main types of browser storage, local storage, session storage and cookie storage.

Authentication tokens are extremely useful when users browse the internet and their favorite and most used sites. Apps like google chrome often store and maintain cookies in your chrome/google user profile meaning you can access these cookies in devices that you log into with that same profile. This is very useful however with this method, the browser is in charge of ensuring the security, usability and persistence of these cookies. Cookies used for authentication are also restricted to the specific user profile that has generated the cookie from the server and often the device and browser that the user was using.

Identi3 allows users to take control and management of their own cookie and web data. Users no longer need to rely on browsers to ensure security, persistence and versatility of their data. With Identi3, users can export their cookies and browsing data, encrypt that data, and use Ceramic to maintain this data in the peer to peer hypermedia protocol, ‘IPFS’. Users can use Identi3 to use any device or browser, in any location in the world, without logging in and risking their account security to access their favorite apps and accounts through authentication tokens that are securely managed by Identi3.

How it's Made

How does it work ? When a user logs into their browser they will download the Identi3 extension. They will use wallet connect to connect to this extension and begin their browser session. When connecting using WalletConnect, Ceramic 3ID Connect will be used to create a CAIP-10 stream which will create a DID (Decentralised Identifier) for that user and link the wallet connected to that stream.

Once this process is complete, the user will be able to begin their first browsing session. As users browse the web, cookies will be stored as normal in cookie storage. These cookies will consist of authentication based cookies, browsing experience cookies and other types of cookies.

When the user has completed their browsing session, the extension will get all cookies from the browser cookie storage based on the time counter of the session duration. These will then be formatted into the different types of cookies available and presented neatly to the user. The user can select which cookie they would like to export for future use with their Identi3. They may select to export Nike.com, Figma.com and dework.xyz auth tokens.

Once the user has selected the tokens they would like to export, they will select to export and close the session. When doing this, Identi3 will then use ‘Lit Protocol’ to encrypt these authorization tokens using the wallets associated with the Ceramic DID. The encrypted tokens will then be stored in JSON format in a TileDocument Stream(CIP-8) in Ceramic. This tile document will utilize the users DID as a controller allowing them to read and write to the stream.

Instead the user will be prompted to store the cookie data in a JSON document using CIP-8 "Tile Document'' streamcode, as well as provide accessors to the contents and metadata of a given version of the stream. This Title Document Stream can only be created and updated using an authenticated DID which is controlled by the users blockchain wallet they have used to sign the action.

WalletConnect What is WalletConnect ? “WalletConnect is an open protocol to communicate securely between Wallets and Dapps (Web3 Apps). The protocol establishes a remote connection between two apps and/or devices using a Bridge server to relay payloads. The connection is initiated by one peer displaying a QR Code or deep link with a standard WalletConnect URI and is established when the counterparty approves this connection request.” https://docs.walletconnect.com/ Where is it used? WalletConnect is used in the initial login phase for our application. When the user opens the extension WalletConnect displays a QR code and deep link to allow the user to connect their wallet app. The extension will then post a session request to the bridge server. Using their IOS wallet app (Worldcoin, Argent, Metamask, etc.) users will scan this QR code or enter the deep link which will get the session request from the bridge server. Once connected the wallet will post the session status to the bridge server which will then post the session status to the Dapp or extension in our case. Why is it important? WalletConnect is a crucial part of our application development. Our extension allows users to have control of their own data and remove the reliance on browser cookies and storage to increase user security and experience. By using WalletConnect for our application, we remove the need for users to have browser based wallet extensions and use a single trusted device for the single source of truth, their mobile phone.

WorldCoin What is WorldCoin ? WorldCoin calls itself a Privacy-Preserving Proof-of-Personhood Protocol (PPPoPP). “They have built a new device called the Orb. Originally to be used to verify personhood to provide an airdrop of the Worldcoin Token, It solves the problem of proof of personhood through biometrics: the Orb captures an image of a person’s eyes, which is converted into a short numeric code, making it possible to check whether the person has signed up already.” Where is it used? Our application aims to use WorldCoin Wallet and verification to prove personhood on their decentralized identifier. When a user uses WorldCoin Wallet to connect their wallet using WalletConnect to our extension, we can verify that the Ceramic DID is connected to a human and not a robot. This information will be stored in a tile document stream on Ceramic which is an encrypted JSON file controlled by the DID and stored on IPFS. When that DID connects to a Dapp or protocol, they can verify proof of personhood through the tile document stream by referencing a list of verified World IDs and confirming a match. Why is it important? Identi3 is designed for users across the internet to store and manage their own data in a safe and secure way. By using WorldCoin for verification of personhood it will be incredibly useful to applications and protocols requesting access to use those cookies or web tokens to be able to verify that the user they are communicating with is a real person and not a robot. WorldCoin allows us to do this using a privacy preserving proof so that we can tell the application that this person is a person without needing to give away private or sensitive information to the server.

background image mobile

Join the mailing list

Get the latest news and updates