Giter VIP home page Giter VIP logo

dogeprotocol / go-dp Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 4.0 174.68 MB

Go implementation of the DP Quantum Coin Blockchain

Home Page: https://dpdocs.org

License: GNU Lesser General Public License v3.0

Go 86.31% Java 0.29% Shell 0.44% C 6.40% Makefile 0.10% M4 0.25% JavaScript 4.14% Assembly 0.90% Python 0.01% Dockerfile 0.01% Solidity 0.54% Sage 0.29% PowerShell 0.06% Batchfile 0.28%
bft blockchain crypto post-quantum-cryptography pqc pqcrypto

go-dp's Introduction

Documentation

This repository contains the documentation hosted at DpDocs.org.

Contributing

Thank you for considering to help out with the source code!

  • Please reach out in our Discord Server for any questions.
  • Pull requests need to be based on and opened against the main branch .

License

This documentation content is provided under the MIT license. Website media, assets and those that are specific to the website theme are not covered under this license.

Since the documentation website currently uses a commercial theme, the assets such as media, css have not been checked into Github. These assets are served separately via a CDN. This documentation will be moved to a better open-source friendly theme in the future. Changes to this repository is not immediately reflected in the documentation website. It is a manual process currently and will be automated in the future.

go-dp's People

Contributors

acud avatar arachnid avatar bas-vk avatar blakehartin avatar cjentzsch avatar cubedro avatar debris avatar dogeprotocol avatar fjl avatar gavofyork avatar gballet avatar gluk256 avatar holiman avatar holisticode avatar janos avatar jsvisa avatar karalabe avatar mariusvanderwijden avatar matthalp-zz avatar nolash avatar nonsense avatar obscuren avatar renaynay avatar rjl493456442 avatar steveharrington10 avatar tgerring avatar ucwong avatar vbuterin avatar zelig avatar zsfelfoldi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

go-dp's Issues

Hybrid post-quantum communication scheme (RLPX)

Rationale

Currently, NTRU HRSS is used to secure inter-node communication. As with digital signature schemes, post quantum KEMs haven't been battle tested over time. Like SIKE, it's possible lattice based cryptography might get broken.

Why should this feature exist?
What are the use-cases?

As a mitigation till Kyber/NTRU HRSS or other KEMs are battle tested over time, the RLPX transport layer should switch to hybrid scheme using elliptic curve scheme plus post-quantum scheme (Kyber).

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

Votable governance system for gas limits, block time etc.

Rationale

Using proof-of-stake consensus, a votable system is required for gas limits, block time etc.

Why should this feature exist?
What are the use-cases?

This will allow a governance model for the blockchain, instead of hard-coded parameters and also make it easier to make changes at runtime instead of a hard-fork or requiring client update.

However, post any new voted change, the system should allow a period of at-least 30 days, to give time for validators to update their hardware and network to keep up with gas limit changes.

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

What is the priority?

(On a scale of 1 to 5, with 1 being highest priority)

Proof of Stake consensus Part 2

Rationale

Complete part 2 of proof-of-stake consensus. The part 1 that was released with Testnet T2 is pretty rudimentary and does not handle slashing, proper block winner selection and so on. Automated staking contracts creation is required, it is manual for T2.

Why should this feature exist?
What are the use-cases?

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

What is the priority?

(On a scale of 1 to 5, with 1 being highest priority)

Move to Hybrid-post-quantum crypto for digital signatures

Rationale

Falcon and other PQ crypto hasn't been time tested. Just like SIKE that got broken in a classical computer, it's possible newer vulnerabilities may be found in lattice and other PQ crypto schemes.

Why should this feature exist?
As a mitigation for short term till PQ crypto proves their resilience to classical computers over a period of time, it's advisable to yse hybrid cryptography, such as requiring ECDSA+Falcon (classical+post-quantum) for signatures.

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

Enable dynamic governance model for transaction gas base fee

Rationale

Currently, the base fee for gas is hardcoded.

Why should this feature exist?
What are the use-cases?

A governance model can better help build the platform by allowing gas fee to be voted. The gas fee can be dynamically determined by allowing anyone to specify a smart contract that returns the gas fee and PoS stakes to vote and accept or reject this smart contract.

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

What is the priority?

(On a scale of 1 to 5, with 1 being highest priority)

End to end test system, cloud based

Description

Currently, there is no end to end test system that launches a new testnet, executes various transactions etc. and reports failures.

Impact if not addressed

Without a test system, testnet creation for sake of testing is heavily manual and can take weeks to just setup an environment for each major change.

There needs to be a cloud based system that launches machines, configured ports, firewall rules etc., sets up a private testnet and executes all sorts of transactions and reports. This should preferably be nightly and triggerable from builds.

Priority

On a scale of 1 to 5 (1 being most important)

Block winner selection for PoS

Rationale

Currently, as of T2, the block winner selection is a naive model. Something like RANDAO is required to select a winner as per the stake.

Why should this feature exist?
What are the use-cases?

Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

What is the priority?

(On a scale of 1 to 5, with 1 being highest priority)

'v', 'r', 's' corresponding to ECDSA is broken after post quantum crypto is added

Description

The transaction metadata contains values names 'v', 'r', 's'; these are specific to ECDSA, a carry-over from the Ethereum codebase. These values can be used for public key recovery from the transaction metadata in Ethereum. These variables will be removed in forthcoming testnets because the cryptography scheme used in Doge Protocol is Falcon (for quantum resistance).

Impact if not addressed

Smart Contract tests are broken and contracts might not work as expected

Priority

On a scale of 1 to 5 (1 being most important)
2

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.