An Opensource Peer-to-peer Social Network with Zero-Knowledge-Proof based authentication.

Overview

HexHoot

This is an attempt to create an Opensource Peer-to-peer Social Network with Zero-Knowledge-Proof based authentication. The objective is to democratize social networking by eliminating any form of central servers.

The initial target is to release a desktop version that can be installed and run on Linux, macOS and Windows.

About

Internet is supposed to be free; free as in "libre" and not "gratis". There are plenty of implementations of social networks around. Most of them have central servers, run by their makers, that handle all aspects of it.

The issue with having a centralized server is that there is an organization that holds on to all the information created by its users. In many cases, the users who created the content no longer own the content once posted; the ownership is transferred to the company that runs the social network. Furthermore, these platforms can take down any users or content as they choose to, (as some Youtubers have described) like a god.

Even the best efforts to implement a social network in a peer-to-peer manner would have a centralized server to authenticate and verify the user. We would like to change that.

Our goal is to create a social network wherein the users own, control and host their information. There is no central server involved even for authentication; we accomplish this by using Zero Knowledge Proof strategies.

RFA

R - Requirements

A social network that:

  1. Values privacy of the users
  2. Collects no data from the users
  3. Users own and host all the data on their devices
  4. No servers are involved; not even for user authentication.
  5. Has essential features of a modern social network.
  6. Should be less addictive than modern social networks.
  7. Personalizable templates, themes, etc.
  8. Open-source, so that there would be no trust issues.

F - Functionalities / Functional Design

  1. Ability to create and share profiles
  2. Ability to connect two profiles (add as a friend or follow) by scanning a QR code.
  3. Send private messages.
  4. Form groups and send messages.
  5. Write a post and share a photo or video that is viewable to anyone to whom the profile is connected.

A - Architecture

Everything shall be modules, including the engine. Each module will be written in a Model-View-Controller design. Modules shall have a JSON file that informs which other modules the module is dependent on.

For message communication, we could use Hyperswarm (based on Hypercore).

TODO: Architecture diagrams need to be added here

Tasks

The following Trello board captures all the tasks that need to be done, that are actively worked upon and that have been completed.

https://trello.com/b/cvbsEOpe/hexhoot

Try it out

As a prerequisite to using Hexhoot, you would need to install Node.js on your computer. The following link would help you with the same.

https://nodejs.dev/en/download/

After that, you simply have to open your Terminal / CMD, go to the directory where you downloaded this source code and run the following commands:

npm install
npm start

Other Important commands

Build everything:

make

Clean the build:

make clean

Start the application:

npm start

Before submitting

Run the following command to ensure that all the Javascript files follow the coding standards.

make lint

Run the following command to ensure that all the tests are running fine

npm run test

Copyright © 2022 Zenin Easa Panthakkalakath

You might also like...

Clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn from each other in real-time.

Clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn from each other in real-time.

Awesome Clubhouse The clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn f

Nov 9, 2022

Dapp example for airdropping ERC-20 tokens using World ID, preserving privacy for the claimers with zero-knowledge proofs.

World ID Example - Mesha Airdrop This repository contains an example decentralized application (dapp) for World ID. With Mesha Airdrop test airdroppin

Dec 16, 2022

Tell your crush you like them with zero-knowledge

Tell your crush you like them with zero-knowledge

zk-Crush zk-Crush is a way to tell your crush you like them with zero-knowledge. Disclaimer Note this project was mostly meant as a joke, it's not tru

Jan 2, 2023

Zero-Knowledge OTP verification on chain

zkOTP: Zero-Knowledge OTP verification on chain Motivation Inspired by SmartOTP and Modulo's 1wallet, a zkOTP solution can manage access to a smart co

Dec 22, 2022

The zkPass browser extension can proxy three parties TLS and generate zero-knowledge proofs

zkPass Extension zkPass a Chromium extension which can proxy three parties TLS and generate zero-knowledge proofs. Technology Dependence Multi-party c

Nov 1, 2022

2FA with Zero-Knowledge proofs

2FA with Zero-Knowledge proofs

zkAuth 🗝️ 🔗 Zero-Knowledge protected onchain two-factor Authentication This project provides 2FA for EVM blockchains, compatible with the broadly ad

Dec 26, 2022

Simple but Complete & Fast network monitor for your home network

netmon Netmon is an opensource project for protecting and monitoring your home network. Netmon is written to run on a Raspberry PI and is optimized to

Jul 6, 2022

An opensource 360° media viewer written in JavaScript using Electron and Marzipano

An opensource 360° media viewer written in JavaScript using Electron and Marzipano

open360viewer open360viewer is an opensource 360° media viewer. It is based on electron and marzipano. It currently supports opening equirectangular 3

Oct 9, 2022

Opensource Cross-platform Logitech® Litra Glow control

Opensource Cross-platform Logitech® Litra Glow control

Litra Opensource Cross-platform Logitech® Litra Glow control Requirements Linux sudo echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}==

Nov 19, 2022
Owner
Zenin Easa Panthakkalakath
Zenin Easa Panthakkalakath
Privacy preserving governance mechanism using zero knowledge for proof of merkle inclusion.

Zero Knowledge Private Voting V1 Motivation On-chain governance today is fully transparent at the cost of privacy. This means that every proposal and

Blockchain Capital 18 Dec 16, 2022
Privacy preserving governance mechanism using zero knowledge for proof of merkle inclusion.

Zero Knowledge Private Voting V1 Motivation On-chain governance today is fully transparent at the cost of privacy. This means that every proposal and

Blockchain Capital 11 Jun 7, 2022
The classical game of Liar's Dice enhanced with the usage of Zero-Knowledge Proof

Liar's Dice An online multiplayer game showcasing the potential of Aleo's Zero Knowledge Proof platform. Local deployment Prerequisites Setup dnsmasq

Kryha 4 Dec 15, 2022
The classical game of Liar's Dice enhanced with the usage of Zero-Knowledge Proof

Liar's Dice An online multiplayer game showcasing the potential of Aleo's Zero Knowledge Proof platform. Local deployment Prerequisites Setup dnsmasq

Kryha 3 Oct 20, 2022
Peer-to-peer terminal chat based on DStack

peerchat Peer-to-peer terminal chat based on DStack Recording looks ugly, but in terminal it seems to be fine peerchat Usage Commands Usage $ npm inst

DStack 7 Aug 17, 2022
Quiet Peer-to-Peer Donations

Quiet Peer-to-Peer Donations

Arcade City 7 Jun 6, 2022
A peer-to-peer chat app that is serverless, decentralized, and ephemeral

Chitchatter Logo provided by @ramyashreeshetty Chitchatter is a free (as in both price and freedom) communication tool. It is designed with security a

Jeremy Kahn 714 Dec 19, 2022
A boilerplate project to build proof of concept paywalls with lightning service authentication tokens (LSATs)

lsat-workshop-boilerplate A boilerplate project to build proof of concept paywalls with lightning service authentication tokens (LSATs) Install Setup

Buck Perley 2 Oct 13, 2022
Second-challinge - Frontend Mentor - Social proof section

Frontend Mentor - Social proof section Welcome! ?? Thanks for checking out this

Ahmed-Abdalmagid 1 Feb 8, 2022
Suck a DAG out of a peer in the IPFS network.

dagula Suck a DAG out of a peer in the IPFS network. Install npm i dagula Usage import { Dagula } from 'dagula' import { getLibp2p } from 'dagula/p2p

Alan Shaw 11 Nov 2, 2022