/DNA-Protocol

Alternative technology to the traditional blockchain

Primary LanguageJavaScriptApache License 2.0Apache-2.0

DNA PROTOCOL

Quick Start :

npm install

cd ./financial

npm install

node api.js

Download the DNA SIGNING TOOL and the DNA WALLET GENERATOR below to get started

Introduction to the DNA PROTOCOL :


THE DNA PROTOCOL IS IN CONSTANT DEVELOPMENT MAY HAVE SOME SECURITY PROBLEMS AND ERRORS PLEASE TEST THE DNA PROTOCOL AND OPEN AN ISSUE IF YOU HAVE ANY PROBLEM

The DNA PROTOCOL is an alternative to blockchain technology in finance. The DNA PROTOCOL aims to make transactions in a faster way than on the blockchain, cheaper than on the blockchain and secure as on the blockchain, in other words it is BLOCKCHAIN ​​2.0. The DNA PROTOCOL, generates the coins when making transactions, for each validated transaction (Explained below) 0.4 coins will be generated


How it works


The DNA PROTOCOL works inspired by DNA, that does not mean that the process that occurs in the DNA PROTOCOL is a process that emulates how DNA works correctly. The DNA PROTOCOL requires three modules to function.

  • Encoder
  • Decoder
  • Validator

And needs a core component to stay secure: THE CHAIN HASH

When you are going to start your node you need to paste your DNA Wallet address in the user field in ./financial/network.js, also you need to set the root nodes for your node to download the chain data.

Encoder :

The encoder encodes the transaction as a "DNA sequence" and generates the sequence with the matching "nucleotide" to mantain the transaction secure (security sequence or strand)

Decoder :

The decoder decodes all the transactions in a strand and return an array with the transactions in the following format

[ EMMITER AMOUNT RECEIVER TIMESTAP VALIDATOR, ...]

Validator :

Validates the transaction by comparing the security sequence and the transaction sequence, if the length is the same and each nucleotide in the transaction sequence matches with its corresponding nucleotide in the security sequence the transaction is valid

The Chain Hash

What is the Chain Hash:

The Chain Hash is the SHA256 hash of all the data stored on the chain, this component is the principal component that maintains the network secure against attackers

How the Chain Hash manatins the network secure against attackers :

The Chain Hash is the identifier of the network, every single node with the same hash will be sinchronyzed and will belong to the same network as the others.

Example and explanation :

Suppose we have three nodes Alice, Bob, and Jacob. Initially, Bob, Alice and Jacob will have the same string hash, for example: 2. Alice wants to insert a malicious transaction and modifies the source code of her distribution to avoid consensus validation (if the consesus does not approve the transaction, it will insert from anyway), when Alice inserts the malicious transaction into her chain and Bob and Jacob don't, Alice will have a completely different chain hash, say 21, now Alice will belong to another network. The next time Alice tries to insert a transaction with Jacob and Bob as validators, they will not insert the transaction into their chains because Alice's chain hash is not the same as Jacobs and Bobs. Resuming Alice will isolate herself in her own malicious network

Inserting a transaction

  1. Validate the transaction locally, if the transaction is valid
  2. Broadcast it to another random nodes, if the majority of the nodes approves the transaction, this will be inserted in all the nodes

Consensus validation :

  1. Validates the transaction signature
  2. Check if the emitter has the required balance to send the transaction
  3. Check if the transaction is valid (security and transaction strand validation)
  4. Check if the nodes are in the same network (same Chain Hash)

Starting your own network

You can modify the source code and run your own network, to generate the first coin you need to make a transaction of 0 value, this will generate the first 0.4 coins and give them to the validator node, then you can start transacting, foreach transaction validated nw coins will be generated

Additional Resources

Credits

Sergio Valdés Valdés : Creator of the DNA PROTOCOL