Savi Protocol
SCF #29 Activation Award DAO Tool $30,000 View in SCF

Digital Ownership

Web3 consumer applications use SAVI to protect and permission data to third party Data aggregators / AI models. 

Team

hikikomori_vm

node.cm

sreecha

Technical Architecture Doc

https://gist.github.com/vaibhavgeek/ec1b82626afd392ff9bd0cc9ab7ab10d

Project URL

https://savi-keygen.now.sh/

Code URL

https://github.com/SAVI-Protocol

Video URL

https://www.loom.com/share/479c54a68fe146d8b4f57fec1dfe862e?sid=ac6adff9-87b3-4573-be6e-fe29803812c0

Pitch Deck URL

https://docs.google.com/presentation/d/1fffr9xX3_9sdHRbuAzTy8TEby-S9qrRa/edit?usp=sharing&ouid=100281291599292715322&rtpof=true&sd=true

Project Categories

Product Type [If Tools for organizing and governing projects and products]

Section

read

Requested Budget in USD ($)

30000

Total Expected Roadmap

SAVI Protocol is exclusive DATA DAO Solution for Stellar Ecosystem. We intend to create protocol to promote data ownership. 

Launch Testnet - August' 2024 

Onboard 20 Dapps on SAVI - December 2024

Hackathons and consumer Applications on Soroban/SAVI - March 2025

Section

read

Section

read

Product & Architecture

Abstract

SAVI proposes a model where data owned by stellar wallet can be encrypted, stored publicly and can only be accessed parties intended to. This public key cryptography architecture solves three major problems,

-   Removing Third parties as data guardian.      
-   Allowing data creators to retain ownership, thus earn from their data.        
-   Solve double spend problem for data. 
   

How does the SDK work?

The dapp creator can integrate the SDK by listing out accesscontrol condition as,

const acc:AccessControlType = {
    contractAddress:"CAWHPCYDI6CP6DB2ZGZKYQYUP3BUZPDMBG3HUXREYVVPDRKVZ5ETYAQC",
    methodName:"is_user_registered",
    methodParams:["GCJTZ3O5ZDWAJUKG52VS42OXX324DLARMHQFV7YO7NAFIQL3KS2ONHRS"],
    result:"true"
}

Where the contract address and method name is the stellar contract address and function that will be called, with methodParams being function parameters. During decryption, if the call results in output the same as the result it will decrypt the data otherwise the decryption will be denied.

In order to encrypt the message/content,  

import { decrypt_Key, encrypt_key } from "savi-keygen";

const acc = {
  contractAddress: "CAWHPCYDI6CP6DB2ZGZKYQYUP3BUZPDMBG3HUXREYVVPDRKVZ5ETYAQC",
  methodName: "is_user_registered",
  methodParams: ["GCJTZ3O5ZDWAJUKG52VS42OXX324DLARMHQFV7YO7NAFIQL3KS2ONHRS"],
  result: "true",
};

const data = "https://drive.google.com/file/d/1Y4un4qzygjdGHMKqlTOvhl7kDd828Fxb/view?usp=sharing";
console.log(await encrypt_key(acc, data));

This will result in following result


{
ID: 'e7a241debad56609ee660a5d2ef258a1aceb7357ff210ac66d7280b3add02a9a',
encrypted_data: 'U2FsdGVkX1/I5za3bFgBWBMEdQxskzAA45lm7dtdCQ4='
}

In order to decrypt the message/content,the hash along with encrypted data needs to be sent to the SDK in order to decrypt it.

import { decrypt_Key, encrypt_key } from "savi-keygen";

await decrypt_Key(acc,ID,encrypted_data)

Technical Architechture 

Savi uses (Decentralised Key Generation) DKG on multiple nodes to ensure that the no node has access to a private key signing the data to encrypt it. We are using the ED25519 signature scheme. This is the same scheme used by stellar to sign the transactions on chain.

These nodes have three major functions,

  • Generate signature to be used for encrypting the data
  • Check for access control conditions
  • Call scripts post decryption of data, and only share the results with Third Party. [Future Scope]

    
1.  Generate Signature used for encrypting the data,
    We will be deploying our own OP Stack chain, changing the standard for each transaction and replacing that signature generation given custom data. The idea is to use Clef with OP stack (go-eth nodes with custom signer), amd the nodes use Shamir’s Key Generation to create private key and thus the ED25519 signature to encrypt the message.
    ![enter image description here](https://i.imgur.com/KZXHRiw.png)

2.  Check for access control conditions
The access control conditions will also be encrypted, and the hash needs to be provided during the decryption process. The node during decryption will check if the required conditions are met or not. If met, it will share the decrypted data.

4.  Call script post data decryption
SAVI intends to allow calling of different scripts on the nodes itself once the encrypted data is decrypted. Thus sharing only the result, increasing the privacy for the user and preventing misuse. This will be covered in future scope of the project.

![enter image description here](https://i.imgur.com/CGi4ShK.png)

Other Chain Description

Lit Protocol - Uses ECDSA for generating signature, primarily for EVM chains, does not support soroban. VANA.ORG - Technical architecture not documented yet, chain agnostic, does not support soroban.

Deliverables List

Initial SDK Development and Basic Encryption/Decryption - $3,000 

Date: Jul 8 - July 14, 2024 (6 days) [Stellar Residency at Bangalore]
   -   Develop the core SDK with basic encryption and decryption functions
    -   Implement AES encryption for the MVP stage
    -   Create basic access control condition structure
    -   Implement the access control condition checking mechanism
    -   Integrate with Stellar blockchain for contract address and method calling
    -  Develop functions to interact with Stellar smart contracts

Research and publish whitepaper with OP Stack Nodes - $4,000

Date: Jul 14 - July 30th, 2024 (15 days)
   -   Publish whitepaper outlining the DGK (Decentralized Generative Key] consensus mechanism
    -   Include detailed algorithmic map of work to be established for core protocol. 

Decentralized Key Generation (DKG) Implementation  - $10,000 

July 30th - August 10, 2024 (10 days)
   -   Implement Shamir's Secret Sharing algorithm for DKG
    -   Set up multiple nodes for distributed key generation using OP Stack
    -   Transition from AES to ED25519 signature scheme

OP Stack Testnet Launch - $5,000 

August 10th - August  15, 2024 (5 days)
   -   Modify transaction standards for custom signature generation
    -  Integrate Clef with OP stack for secure key management
    -  Deploy OP Stack chain


Testing, and Documentation - $5,000 

August 15th - August  25th, 2024 (10 days)
 -   Integrate all components into a cohesive system
 -   Develop website to showcase Savi
 -   Conduct thorough testing and bug fixing
 -   Prepare documentation and deployment guidelines

Demo Application Development with React -$3,000 

August 25th - August  30th, 2024 (5 days)

 -   Develop a DATA DAO to showcase Savi
 -   Create written react tutorial to showcase SAVI Protocol
 -   Create video tutorial to showcase SAVI Protocol 

Team bio

Vaibhav Maheshwari 

Vaibhav Maheshwari has 5 years of experience in Blockchain technology and is currently founder of Kleo Network (https://www.kleo.network). He has worked in low level language (Go) with his work with GigIndia previously. 

Chiranjeev Mishra

Chiranjeev is a Blockchain Developer with over two year of experience in blockchain industry, His problem-solving skills and innovative thinking have led to him winning in multiple hackathons. He also has developed a comprehensive Account Abstraction stack for Axir Wallet, incorporating both ERC-4337 and ERC-7579 standards and adding features like passkey, social recovery (guardian signers) this gave him a lot of exposure to encryption standards and FHE aswell.

Sreecharan S

software developer, designer, and a computer enthusiast exploring the details of programmable systems and how to stretch their capabilities. Been into programming since the age of 12 and have been into web3 for the past 4 years. I love to ship cool stuff and participate in hackathons. Currently interning at Nethermind - where I work on blockchain monitoring bots and security audits. In my free time, i volunteer for local web3 chapters. I am also currently the president at DAO Community, an vibrant blockchain community in my uni aimed at educating, creating awarness and increasing web3 adoption