Dero source and compilation details


#1

Welcome Everyone.

The time is here for release of the Dero code to external developers. In honor of our commitment to transparency, communications between @Captain and the external developers will be taking place on the #ext-developers Discord channel ongoing. Please feel free to visit any time.Regards,
Discord Invite : https://discord.gg/GmDgjkD

Pls see first how to Install GO https://golang.org/doc/install
DERO Introduction

DERO is decentralized DAG(Directed Acyclic Graph) based blockchain with enhanced reliability, privacy, security, and usability. Consensus algorithm is PoW based on original cryptonight. DERO is industry leading and the first blockchain to have bulletproofs, TLS encrypted Network.
DERO blockchain has the following salient features
DAG Based : No orphan blocks, No soft-forks
12 Second Block time: Extremely fast transactions and 2 minutes confirmation time
SSL/TLS P2P Network
CryptoNote : Fully Encrypted Blockchain
BulletProofs: Zero Knowledge range-proofs.
Fully Auditable Supply: Supply is fully auditable.
Ring signatures
Written from scratch: Almost everything has been implemented from scratch.
DAG

DERO DAG implementation builds outs a main chain from the DAG network of blocks which refers to main blocks (100% reward) and side blocks (67% rewards). Side blocks contribute to chain PoW security and traditional 51% attacks are not possible on DERO network. If DERO network finds another block at the same height, instead of choosing one, DERO include both blocks. Thus, rendering the 51% attack futile.

Traditional Blockchains process blocks as single unit of computation(if a double-spend tx occurs within the block, entire block is rejected). However DERO network accepts such blocks since DERO blockchain considers transaction as a single unit of computation.DERO blocks may contain duplicate or double-spend transactions which are filtered by client protocol and ignored by the network.
DERO DAG processes transactions atomically one transaction at a time.
Crypto

Secure and fast crypto is the basic necessity of this project and adequate amount of time has been devoted to develop/study/implement/audit it. Most of the crypto such as ring signatures have been studied by various researchers and are in production by number of projects. As far as the Bulletproofs are considered, since DERO is the first one to implement/deploy, they have been given a more detailed look. First, a bare bones bulletproofs was implemented, then implementations in development were studied (Benedict Bunz,XMR, Dalek Bulletproofs) and thus improving our own implementation.Some new improvements were discovered and implemented (There are number of other improvements which are not explained here). Major improvements are in the Double-Base Double-Scalar Multiplication while validating bulletproofs. A typical bulletproof takes ~15-17 ms to verify. Optimised bulletproofs takes ~1 to ~2 ms(simple bulletproof, no aggregate/batching). Since, in the case of bulletproofs the bases are fixed, we can use precompute table to convert 64*2 Base Scalar multiplication into doublings and additions (NOTE: We do not use Bos-Coster/Pippienger methods). This time can be again easily decreased to .5 ms with some more optimizations.With batching and aggregation, 5000 range-proofs (~2500 TX) can be easily verified on even a laptop. The implementation for bulletproofs is in github.com/deroproject/derosuite/crypto/ringct/bulletproof.go , optimized version is in github.com/deroproject/derosuite/crypto/ringct/bulletproof_ultrafast.go

There are other optimizations such as base-scalar multiplication could be done in less than a microsecond.Some of these optimizations are not yet deployed and may be deployed at a later stage.

Further research/studies/optimizations are in-progress to further improve DERO network.
Instructions

Install GO https://golang.org/doc/install

mkdir dero
cd dero
export GOPATH=pwd
git clone https://git.dero.io/DeroProject/src.git
cd src
go install github.com/deroproject/derosuite/cmd/

Pls see DERO explorer, DERO daemon and DERO wallet-cli binaries in $GOPATH/bin.
This source code release is for selected devs only for personal use and feedback only. No distribution in any case/form.

Contact us:

DERO Developers are not perfect and there may be bugs in the code.
Please report any bugs, flaws found during the audit/go through to further improve the project at: https://forum.dero.io/, support@dero.io