Code Monkey home page Code Monkey logo

kng-web3's Introduction

VIT Isn't TWINT

VIT is a private initiative to create an open-source competitor to TWINT. Our primary objective is straightforward: acquiring all the world.

kng2-web3 ๐Ÿ˜ธ (AKA. King Kong II for Web3)

The purpose of this project is to provide a simple and intuitive API for our VIT Wallet. This API facilitates spending, swapping, and lending, and is specifically designed for certain tokens such as XCHF, USDC, (BTC), and ETH (on the Optimism network).

But the main feature provides a solid solution to protect you Digital Identity.

APIs (checked for v0.01)

config.option

  • aavePoolProviderAddress
  • aavePoolProviderABI
  • aaveContractAddress
  • aaveTokenAddress
  • rocketPoolContractAddress
  • uniswapRouterAddress
  • USDC_CONTRACT_ADDRESS
  • RPL_CONTRACT_ADDRESS
  • XCHF_CONTRACT_ADDRESS
  • salt
  • allowedTokens
  • networks

Tools

  • tools.config: Secure configuration for the project.
  • tools: Utilities (Secure Session Storage , Converters, ...).

Core

  • core.identity: Manage and secure an identity associated with the device (DOING)
  • core.AES: Simple AES encryption wrapper available natively on the browser.
  • core.POW: Simple Proof-of-Work API.
  • core.SSS: Shamir's Secret Sharing Wrapper.
  • core.XOR: Shuffle operations to avoid clear content.
  • core.entropy: API related to Mnemonics and seed.
  • core.derivation: API related to key derivation.

Tx

  • evm.transaction: Interact with the ETH network to sign/send/read/list transactions (TODO).
  • btc.transaction: Interact with the BTC network to sign/send/read/list transactions (TODO).
  • transaction: high level api for transactions that include black/white-addresses.
  • paymaster: paymasters allow users to sponsor transactions or accept xCHF (ERC20 tokens) for gas payment (TODO).

DeFi

  • defi.aave: Interact with the Aave protocol to lend USDC.
  • defi.rocketpool: Interact with the Rocket Pool to stake ETH.
  • defi.uniswap: Interact with Uniswap to swap XCHF <=> USDC.

Others

Digital Identity

Digital identity is a new reality, it appears complex or wird because we have no practice on that subject. The goal of VIT is to provide a few solutions to protect your identiy without the needs of a trusted thirdparties.

A Digital Identity is simply a 32-bytes large number, often represented as a mnemonic of 12/15/24 words (to facilitate human memorization of words instead of numbers). With this large number, you are able to generate an infinite number of Wallets and public identities.

Okay, but what it means for a day-to-day life? With this secret large number, you can generate multiple digital identities: one for cash transactions, one to collect funds for a birthday, some for social networks, some are publics, some are privates.

To achieve that goal, we built a simple and deterministic API as a frictionless solution to manage your own private mnemonic.

Use Horcruxes/SSS to recover your identity

To increase the security of your identity, we break the Mnemonic phrase (the secret large number) into 3 separate pieces (called Horcruxes). You need at least two pieces to reconstitute your identity. You decide where you want to store each Horcrux. We recommend you keep them in separate places/locations. We provide a few alternatives (do not keep all of them on trusted third parties):

  • One Horcrux is stored on the device.
  • One or two Horcruxes are stored on printed paper and kept in separate places/locations.
  • One is stored on our Vault SmartContract, a digital and secure place.

Preparing content

Before storing Horcruxes on your devices or on public ledgers, we use our API to protect the content.

  • Secret-Leafs (A/B) are generated client-side with the preimage of a pseudo, password, and POW.
  • The POW element is the puzzle result of user sha256(username, password). It's a simple way to protect against DoS attacks.
  • The POW element is a PBKDF2 of username and password, it's a simple way to protect against DoS attacks.
  • Users can also choose to store the pseudo/password form fields on a third-party service.
  • Public-Leafs (A/B) are derivated images of Secret-Leafs (A/B), These values can be used for specific online features, such as storing a Horcrux in a public blockchain.
  • Public-Leaf0 is the result of sha256(leaf1, leaf2). This publicKey (leaf0) will be used as address to store a Horcrux.

This how identity is used to prepare Horcruxes of our Identity.

Horcrux

We propose the usage of Shamir Shared Secret (SSS) to protect your Mnemonic without the problem of single point of security. We decide to use as source of SSS the entropy that produce the Mnemonic. Shamir split entropy in 3 separate pieces (called Horcruxes). Your need at least two pieces to reconstitute deterministicaly the same Mnemonic. We recomend you keep them in separate places/locations:

  • Use printed paper.
  • And use our Horcrux SmartContract. ๐Ÿ‘‡

kng-web3's People

Contributors

evaletolab avatar

Watchers

david hodgetts avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.