paint-brush
How Decentralized Interaction Protocols Work: Analyzing VC, ZKP, and Āut’s Interaction Treeby@ileolami
139 reads

How Decentralized Interaction Protocols Work: Analyzing VC, ZKP, and Āut’s Interaction Tree

by IleolamiOctober 9th, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

VC, ZKP, and Āut's interaction tree represent fundamentally different approaches to tracking and verifying interactions in a decentralized web.
featured image - How Decentralized Interaction Protocols Work: Analyzing VC, ZKP, and Āut’s Interaction Tree
Ileolami HackerNoon profile picture

How are identities verified and interactions enabled in Web3?” I wondered. I've always thought about this. At first, I considered whether wallets are the enablers of these interactions since they connect us to blockchain networks and verify our identities.


One day, while studying, I came across verified credentials, ZK proofs, and Āut’s interaction tree during the Optout Writing Challenge. I thought, “What are these concepts?” “Are they another momentum or layer two protocols?” or “Extra security?” Like a raccoon digging for holes for food, I put on my research armour.


I shouted, “Yes, I’ve found it!” A sound of celebration echoed in the living room. That was how I felt when I discovered the answer to these puzzles. They represent fundamentally different approaches to tracking and verifying interactions in a decentralised web.


This article aims to answer all your questions on your mind. You'll learn about the technical foundations behind these concepts, compare their designs, understand how each system works, explore their use cases, and discover why developers choose one over the other when building decentralised systems.

What is Decentralized Interaction Itself?

Normally, web2 interactions are primarily facilitated through centralized networks and nodes(computers) using transport layer protocols. These protocols are crucial components of networking because they provide a way to transmit data packets from one network node to another. Transport protocols serve various purposes, such as streaming video, navigating the internet, and executing transactions. The two core protocols are TCP and UDP.

Transport-Layer-Protocols-Diagram

Despite enabling smooth communication between devices, these protocols have limitations, such as being controlled by centralized authorities and being prone to downtime. These are the issues that decentralized webs are currently addressing.


Decentralized webs(Web3 and Web5) ensure privacy, trust, and freedom. It operates in a highly decentralized way, meaning that nodes in this web communicate and share data securely, following established rules within the ecosystem.


Decentralized interaction protocols can be likened to traffic lights that direct cars on the roads, preventing accidents and gridlocks. They are the guiding lights that facilitate secure, standardized interactions across the vast network of nodes in the Web3 ecosystem.

Reasons for Decentralized Interaction Protocols

  1. Security: Just as there are policemen at intersections to verify cars, these protocols enhance security so that data distributed across multiple nodes is resilient to attacks or manipulation.


  2. Privacy: Another key feature of the decentralized web is privacy. These protocols allow users to have authority over their data. By using cryptographic techniques, users can verify information without revealing sensitive details. These techniques work similarly to JSON Web Token (JWT).


  3. Trust: The decentralized Web as a whole operates on trustless mechanisms through consensus mechanisms and smart contracts that ensure openness and fairness.


  4. Censorship Resistance: Anyone can interact here; there are no forms of restriction or control. The only thing that can stop you from interacting is bad networks.


  5. Interoperability: These protocols enable different blockchain networks to communicate, interact, exchange, and share data, allowing a more connected and versatile ecosystem, such as tools like Bridges, etc.

Verifiable Credentials (VC)

You would probably agree that verifying identity is one of the toughest challenges. According to Intro to Degree Mills, there are over 3,300 unrecognized universities, and more than half of the Ph.D awarded in the US are fake. On social media platforms, we see imposters daily who pretend to be someone else. They use other people's photos, lie about their age, and some even fake their nationality.


To solve this problem, enter Verified Credentials (VC). Verified Credentials are digitalproven, and cryptographically encrypted versions of both physical and digital credentials.


Schools, companies, and associations can issue their degrees, IDs, licenses, and more as verifiable credentials that can be stored in a digital identity wallet, which is a digital version of a physical wallet that people can carry around as a mobile application on their phone, computer, or even a cloud-based server.

Design Principles

Procedure

How are these VCs issued? To issue a VC, there are three parties involved in this process: Issuer, Holder, and Verifier.

  1. Issuer: The organizations that have the authority to issue VCs and cryptographically sign the credential(s) e.g., an Institution issuing a bachelor's Degree certificate or an Association issuing a Certification or License.


  2. Holder: The owner of the credential.


  3. Verifier: The person or organization validating or authenticating the credential e.g., the US embassy verifying migrant passports on the blockchain the same way smart contracts are verified.


    illustration from dock.io

Cryptographic Proof

As earlier mentioned, these credentials are signed cryptographically. The verifier verifies these credentials on the blockchain using the issuer's public cryptographic key that matches the one that signed the credential.

Decentralized Identity(DID)

DID is a representation of someone on a decentralized web. In a simple term, DID can be likened to your social URLs. e.g., www.github.com/ileolami


A typical DID looks like this - did:dht:cm1yqfjzfdtauh33nauwf3sqsijqziwrydicr8dbtho3cucb9nno. You can easily share this DID with people or organizations to access your VCs.

Another interesting part of DID is that you can create as many DIDs for VCs as possible and point them to one Central DID e.g.

A flowchart illustrating the DID and VCs system

  • DID 1: Educational and professional certificate
  • DID 2: Job experience
  • DID 3: Health records
  • DID 4: Social details
  • DID 5: Account details


You can use a specific DID for a specific registration.

Digital Wallet

It's important to note that VCs should not be stored directly on the blockchain because the information can be accessed by everyone. So, it is recommended that only DIDs should be stored on Blockchain while VCs should be securely stored on identity wallets such as Dock.


Private and Public keys

Each DID comes with a private and public key.

  • Private key: it allows people to prove ownership, grant permission to share specific data, and sign documents.


  • Public key: This can be shared and used for authentication and verification purposes.

JSON Expression

VCs are expressed in a JSON format which is comprised of:

  • Context

  • Issuer

  • Issue timestamp

  • Expiry timestamp

  • Type

  • Subject

  • Subject identity attributes

  • Cryptographic proof to ensure the integrity and authenticity of the VC


    {
    	"verifiableCredential": {
    		"@context": [
    			"https://www.w3.org/2018/credentials/v1",
    			"https://www.w3.org/2018/credentials/examples/v1"
    		],
    		"id": "0892f680-6aeb-11eb-9bcf-f10d8993fde7",
    		"type": [
    			"VerifiableCredential",
    			"UniversityDegreeCredential"
    		],
    		"issuer": {
    			"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
    			"name": "Acme University"
    		},
    		"issuanceDate": "2021-05-11T23:09:06.803Z",
    		"credentialSubject": {
    			"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
    			"degree": {
    				"type": "BachelorDegree",
    				"name": "Bachelor of Science"
    			}
    		},
    		"proof": {
    			"type": "Ed25519Signature2018",
    			"created": "2021-05-17T15:25:26Z",
    			"jws": "eyJhbGciOiJFZERTQYjY0Il19..nlcAA",
    			"proofPurpose": "assertionMethod",
    			"verificationMethod": "https://pathToIssuerPublicKey"
    		}
    	}
    }
    

Application and Use Cases

Web5

One of the decentralized webs that relied heavily on this protocol is Web5. Interaction on Web5 through VCs provides authenticity and trust, ensuring that people sharing information or interacting are not fake or malicious.


VCs demonstrated core decentralization by allowing users to have control over their data, unlike the traditional web which has control over users' data and has the authority to use their data with or without the user's consent.


The interoperability of VCs in Web5 also allows various platforms to easily understand and validate them because VCs use a common data model and schema (JSON format).


Health Care System

VC enhances seamless interaction between patients and health practitioners including hospitals and tracks patients’ records easily.

For example, if a patient who was once diagnosed with blood cancer in Hospital A in Chicago can easily continue his/her treatment in Hospital B in Los Angeles, and if he/she doesn’t feel comfortable with the hospital, he/she can easily restrict the hospital from accessing his/her health record.

Social Media Platform

VCs can be utilized for the validation of users before creating an account on these platforms, unlike traditional social media platforms that can’t verify users’ credentials.

Zero Knowledge Proofs(ZKP)

The concept of Zero-knowledge Proof can be traced to the work of Researchers Shafi Goldwasser, Silvio Micali, and Charles Rackoff in a published academic paper titled “The Knowledge Complexity of Interactive Proof Systems” in 1985.


This concept is based on proving something to be true without revealing the information itself. For example, Mr. A proves rightly to Mr. B that the word “LANGUAGE” makes up “LG” without revealing the entire word. The authors showcase this technique by solving some quadratic residue problems.


The goal behind this concept extends far beyond a simple invention; it aims to create a secure and safe way for individuals to interact. It ensures sensitive information can be verified without being revealed and still maintain trust.


In a nutshell, Zero Knowledge Proof(ZKP) is a cryptographic method such as (cryptographic hash functions) that allows multiple parties to verify a statement’s truth without revealing information beyond the statement itself.

Components Of Zero Knowledge Proof

Compared to VC, zero-knowledge proof eliminates the need for the verifier to verify the credentials from the issuer but only the Prover and verifier are involved in this interaction proof system.


  • Prover: The person who is responsible for providing the actual mathematical proof to convince the verifier of a statement’s validity.


  • Verifier: the person who must examine this evidence and either accept or reject it.


  • Communication process: There are multiple rounds of communication between the prover and verifier until such information is proven valid.


A typical interaction between the prover and verifier is below:

Diagram illustrating a cryptographic interaction between a Prover and a Verifier.

Types of Zero Knowledge Proof

ZKP can be categorized into two main types which are:

  1. Interactive ZKPs: This involves multiple rounds of communication between the prover and verifier.


  2. Non-interactive ZKPs: This only involves one round of communication where the prover only sends the verifier one message.


Then there are subtypes of Non-interactive ZKPs which are:

  • Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs): This only requires a brief interaction between the prover and the verifier.


  • Zero-Knowledge Scalable Transparent Arguments of Knowledge (zk-STARKs): It offers both transparency and the ability to handle larger-scale computations, which is crucial for scalability.


  • Bulletproofs: Prove that a value lies within a specific range without revealing the value itself. Through the use of advanced mathematical concepts, bulletproofs can make proofs smaller, thus reducing transaction sizes and verification times.

Principles of Zero Knowlege Proofs

Before there is an actual interaction in ZKPs, it must satisfy the following principles:

  1. Completeness: If a statement is true, an honest prover should easily be able to convince a verifier of this.


  2. Soundness: If a statement is false, a dishonest prover should not be able to trick a verifier.


  3. Zero-knowledge: Neither party can extract additional private information about the other; they only know the contents of the statements provided.

Application and Use Case

ZKPs are already in use in some cases such as:

ZK Rollups

ZK rollups are Layer-2 solutions that bundle multiple transactions off-chain and submit a concise proof of their validity to the main blockchain. This proof, generated using zero-knowledge cryptography, verifies that the off-chain transactions are legitimate without revealing their details. Some of these ZK rollups are StarkNet, Scroll zkEVM, zkSync Era, and Linea.

ZK Compression

ZK Compression is a new primitive built on Solana that enables developers to build applications at scale. It is used on the Solana network to optimize data storage and transaction processing. This technology leverages zero-knowledge proofs to compress data, ensuring that only essential information is stored on-chain while maintaining the integrity and security of the transactions.

Security and Authentication

Participants in governance activities can use ZKP to prove that they possess some attributes or hold some assets such as participation in governance activities without revealing the actual values of these attributes. Similarly, users can interact with ZKPs to selectively disclose information related to their identities.

Voting System

ZKPs can be used to prove participants’ eligibility to vote without revealing their history or voting preferences.

Āut’s Interaction Tree

From the above two, you can deduce that you have to prove yourself to be known, from a security standpoint is not a bad thing to do. Even before you are assigned a task or appointed, you must go through a series of interviews and assessments to show that you are capable of the responsibilities.


Why must we undergo a series of verifications when there are better ways? This brought about the concept of Āut’s interaction Tree.

The word ĀUT in the context of Āut’s interaction tree means “SELF”. It is of the advocate of:

My self

  • outside the system
  • outside conventions
  • outside the status quo


Āut’s interaction Tree represents a distinctive approach to identity and interaction verification, it is designed to track and enable persons to interact in a context-agnostic manner within a decentralized web without going through a series of verification in order to prove themselves.

It gives individuals the autonomy to shape their world in their best dimension through their āutID(similar to DID).

Design Component of Āut’s Interaction Tree

ĀutID

ĀutID is a self-sovereign Identity with unique features:

  • Pseudonymous: ĀutIDs are Pseudonymous (nickname + avatar), and Self-Sovereign (all data added comes from you at the time of creating your profile). This allows a purely role-based, meritocratic ID, that is universal while giving the holder an arbitrary degree of anonymity and privacy.


  • Portable: ĀutIDs keep track of anyone's contribution to a Community directly at the contract level.


  • Non-Transferable NFT: Once claimed, an Āut ID cannot be transferred (or sold) to another person or wallet. Rather, it allows the users to own their identity and grow it with them.


  • DAO-Bound: To claim universal, NFT ID, users need to join their first Web3 Community - this makes ĀutID the first DAO-bound, skill-based ID standard. Not so that you could "look rare," but so that you will be unique, and uniquely own your own Identity.


  • Role & Commitment: At the time of claiming their ĀutID, new Members of a DAO claim their Role & state their Commitment to that Community. This way, they can immediately be active, participate, and contribute to it. The ratio between Commitment and Interactions (Contributions) will determine each Member's Local Reputation.

Hubs

These are communities created by individuals based on their preferences. For example, here is Maca's hub below.

maca's hub

Interaction

Each Community has its internal dynamics and a division of Roles among its Members (i.e., dev, curator, DAO operator, etc.), as seen in Maca’s hub. Therefore, interaction is tracked and measured according to the task or contribution completed by a member in relation to their role.

For example, if you join Maca’s hub as a builder, your interaction will be tracked by building a dashboard or helping other members debug a codebase.

Smart Contract

The question in your head is “Where is the security in all of these?” Āut interaction tree operates on trustless technologies which are smart contracts and consensus mechanisms. This ensures that all interactions on-chain are fair and transparent including āutID, and membership checker are all handled by smart contract. This way, developers can also define how they want their interaction to be tracked and measured.

Interoperability

It is interoperable with other decentralized interaction protocols such as VC or ZKP. For example, David can store his VCs within his āutID profile, allowing him to present his credentials when interacting within Maca’s Hub as a Builder, either for employment.

Application and Use Cases

Decentralized Autonomous Organisation

Initially, Āut interaction tree is built for DAO, it gives individuals a sense of belonging and participation to interact and contribute according to their capacity and interests. It allows members to engage in roles and tasks that align with their skills and commitments, fostering a collaborative and meritocratic environment within the decentralized organization.

Open Source Platform

Individuals can create an open source-based community platform e.g., OnlyDust, and use āut’s interaction tree to track and measure the contributors’ interaction, roles, and commitment to each project.

Social Media Platform

Individuals can interact and share content based on their personas and with their audience who resonate with them.

From a Developer Standpoint

As a developer in the web3 space, I choose Āut’s interaction tree. Here are my reasons:

  1. Time Pace: Āut’s interaction tree allows fast development, deployment, tracking, and interaction. Compared to VC and ZKP, which have to go through extensive and overwhelming verification processes before verifying individuals.


  2. Trustlessness: Āut’s interaction tree lets you define the critical need for interaction through the use of smart contracts and consensus mechanisms. Users will be able to see if they measure up to it or not compared to VC and ZKP. It eliminates the need for intermediaries and enhances user trust.


  3. Interoperability: Āut’s interaction tree is designed to be interoperable with other interaction protocols. For example, ĀutID can add/edit their socials such as GitHub, Twitter, Discord, Telegram, ENS, and Lens.


  4. Autonomous: The emphasis on “Self” gives users authority over their data and interactions. Developers can build apps that align with the principles of a decentralized web without relying on centralized authorities.


  5. Flexible: Āut’s interaction tree removes rigidity because developers can easily implement it in their applications, unlike ZKPs that use complex cryptographic methods. In terms of user experience, users can easily find another member by searching for their name instead of long, hard-to-remember IDs.

Practical Example

How to Create a Hub

  1. Go to Hub Launchpad.


  2. Click on Launch New Project.

    launch new project

  3. Connect any wallet of your choice.

    connect wallet

  4. Add the Name of your hub, image, and description.

project name, image and description

  1. Choose the suitable market for your hub.

    market choice

  2. Add roles for members.

    roles envisioned

  3. Select the minimum level of commitment.

commitment level

  1. Review Your project info, and click on confirm.

project info

Note: a gas fee will be required for this.

How to Join a Hub

  1. Go to Hubs.


  2. Connect your wallet.

    hubs landing page


  3. Choose any hub of your choice based on Market or Archetype.


  4. Select your role.

    available roles


  5. Import your wallet first.

    list of wallets


  6. Add your nickname and profile photo.


  7. Select your role, level of commitment, and click on Join community.


    list of available roles


    level of commitment

Gas fee will be charge for this action

Conclusion

As a developer, it is better to carry out further studies on these interaction protocols and choose the one that is best suited for your applications, goals, and user preferences that still align with the principles of the decentralized web.

For more features visit the Āut lab doc and interaction repo for integration into your project.

Further Studies

What are Transport Layer Protocols?

Web3 Protocols: Unraveling The Backbone of Decentralization

Verifiable Credentials: The Ultimate Guide 2024

Verifiable Credentials Data Model v1.1

Verifiable Credentials

What are the Best ZK-Rollup Projects? (2024)

Zero-Knowledge Proof (ZKP): Working Mechanism and Use Cases

Deep Dive on ZK on Solana vs Ethereum

Āut’s Interaction Tree Doc