scrtlabs / Grants

Repository for grant proposal submissions
41 stars 22 forks source link

xdv protocol #20

Open molekilla opened 3 years ago

molekilla commented 3 years ago

Open Grant Proposal: XDV Protocol - Secret Network specialist engineer

Name of Project: XDV protocol and node

Proposal Category: app-dev

Proposer: @molekilla

Do you agree to open source all work you do on behalf of this RFP and dual-license under MIT and APACHE2 licenses?: yes

Project Description

XDV Protocol objective is to make any document or metadata, linked data or linked tokens, verifiable within decentralized blockchain stores like Filecoin, decentralized content network like IPFS or hybrid decentralized content network with blockchain features like Swarm Bee. Verifiable Documents can be a verified credential as proposed by the Verifiable Credentials model, an ERC-721 standard NFT (Non Fungible Token), a PKCS#11 or PKCS#12 signed document verifiable with government mandated smart cards or as simple as any binary data signed with a DID that can be authenticated and verified with a proof (eg proof of residence from a KYC Know Your Customer or proof of humanity).

Previous Work

XDV initially focused on wallets and having those wallets be able to sign documents with government mandated smart cards. A second feature came later where the document was anchored to a blockchain. XDV worked with Swarm V1, which eventually shutdown and went to focus on Swarm Bee. XDV project team moved to IPFS while the new Swarm Bee blockchain was under construction.

One feature requested was to preserve privacy, encryption or zero knowledge technologies were required. After looking for previous work, we stumble upon Ceramic blog and found How to Store Signed and Encrypted Data On IPFS.

We took that paper as base layer for our implementation with a few twists:

Another previous work that we manage to create innovation around it is did-jwt. We forked did-jwt and created did-jwt-rsa, which is a DID JWT that signs and verifies RSA Signatures. By accomplishing that, we practically gain DID compatibility with PKCS#11/PKCS#12, which in most governments around the world are required for legal document signing.

And then we asked ourselves, what if you could do a RSA Signature enabled blockchain? We found out that there is actually one project, NDID blockchain from Thailand, which is developed with Tendermint.

Enter XDV: The need for custom tailor made protocol

Initially, Substrate was the top pick, but after much research about market conditions (right now is pretty difficult to find Rust engineers) and current team knowledge, we went with Cosmos SDK and Starport. By June 2021 we explored an initial IPLD Cosmos SDK PoC but after thinking about the infrastructure cost to deploy and operate a blockchain it was decided to keep using Tendermint/Cosmos but with a robust chain platform, for that Secrets Network fits most of the tech use cases and supports WASM using CosmWasm and Rust.

Most of the APIs required to build XDV Protocol are in Go but also in Rust. A first protocol draft must contain the basic primitives, and further protocol versions must be able to build on previous work.

Considering that signature is just one of the many use cases, and that disparate data sources and structures will be more common in the future, XDV Protocol lingua franca is based in IPLD Schemas from Protocol Labs.

Thus, the current XDV Protocol Specification:

A Layer 2 Solution Approach

L2 is required, as most of the SDKs for these use cases are in Go.

Primitives

XDV Data Queries

HTLC / Atomic Swaps

There are many NFT platform that need metadata decoupling and lack proper way to cross chain swap metadata. Here we'll try to use time lock contracts to swap metadata uri betweens chains.

Main use case

Cross chain NFT metadata uri token swap

A NFT chain has no EVM presence, but metadata uri is stored in XDV Protocol. They need to be able to peg the ERC-721 compatible token and swap metadata uri while keeping the merkle tree proof / CID in XDV Protocol.

With XDV Node, using Flow go sdk, we could link to metadata of a NFT, link to a metadata store in Secret network bincode storage, and swap to Secret , Ethereum or BSC. The original token is locked, and newly minted links to XDV CID.

This allows for better privacy features like anti forgery protection or government mandated PKI RSA signatures.

Deliverables

M1

Secret Network contract client side tooling

Estimate: 1 month Description: Take existing Cosmos client that uses XDV Universal Wallet and refactor to use Secret Network client tooling. Help with integration and tests of BSC Smart Chain contracts and Secret Network BSC Bridge

Deliverable: Must deliver the client side tooling required by the Filecoin grant backend counterpart

M2

Integration with DID

We will need DID technology, the current XDV uses did:key/did:ethr with did-jwt and did-jwt-rsa packages. This deliverable will be the very basic did:scrt experiment for further enhance grants.

did:scrt must be similar to did:ethr

Estimate: 1 month,objetive is to only be did:ethr compatible Deliverable: Pass the did:ethr specs

M3 - XDV Data Query Client Side

Build client side tooling to create smart data contracts

Estimate: 1 month Deliverable: Deploy jobs or contracts

M4 - Developer documentation

Documentation

Estimate: 1 month Deliverable: https://docs.xdv.digital/protocol

Development Roadmap

Roles

Rogelio Morrell: Lead Architect and Developer Edgar Sucre: Architect and Developer Vacant: Lead Blockchain Engineer

Total = 4 months

4 deliverables = $40, 000

Maintenance and Upgrade Plans

Yes, we will practically based our business around this open source blockchain and it will be maintain for the foreseeable future.

Team

Team Members

IFESA / IDAO

Team Member LinkedIn Profiles

Team Website

Relevant Experience

Rogelio Morrell, PAID Network Lead Architect, Ikonic.gg NFT Lead Architect, XDV Inventor, created XDV Universal Wallet, XDV Workflow Contracts and did-jwt-rsa.

Edgar Sucre, Crypto Exchange Alliance, renamed to Fluid Finance, Lead Architect.

Team code repositories

IFESA Repos

https://github.com/Electronic-Signatures-Industries/

XDV Node

https://github.com/Electronic-Signatures-Industries/xdv-node

Additional Information

None

molekilla commented 3 years ago

looking partial or full funding, thanks

secretchaingirl commented 3 years ago

Hello @molekilla and thank you for your very detailed grant proposal!

Could we setup a date/time to discuss? You can reach me on these channels:

Discord: laura | SecretChainGirl#8516 Telegram: @secretchaingirl Email: laura@secretchaingirl.foundation

I look forward to chatting with you and your team.

laura

molekilla commented 3 years ago

Adding pendings from yesterday

Benefits for Secret Network

  1. A metadata storage based on IPLD and implemented using rust-ipld. Work has already been started and it is most of PoC that was developed in Cosmos Stargate. rust-ipld is very basic, for now Secret Network smart contracts will work as decentralized storage.
  2. Usage of Secret Network bridges, which should give XDV more engineering freedom with the extensive cryptographic features found in Secret Network. It will allow us to use EVM integration with XDV Protocol more easy to buid.
  3. Avoid not invented here, eg x/Compute and Oracles will allow us to build our Smart Data Contracts proposal, which we see as kind of decentralized hadoop.
  4. SNIPs all the way, of course use existing SNIPs to extend XDV protocol where possible. Eg implement use cases with SNIP NFT using Lootboxes.

Proposal Diagram - Milestones

swimlanes-82b47934f843ac85a0d0fce836a97df9

secretchaingirl commented 3 years ago

Thank you for that additional info @molekilla! To recap our chat today, you're going to add: