No description
Find a file
Darren Tapp 55aa78cd1e Security Analysis (#55)
* This adds two sections to dip 0008.  The first section considers the security of Chain Locks and provides the calculations needed to evaluate the security.  The second added sections provides mitigations of situtaions when
attackers do not own the collatoral of the masternodes.

* Update dip-0008.md

* Fix hyperlinks

* Update dip-0008.md

* Update dip-0008.md

correction of word.

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* Update dip-0008.md

Need to make sure it's always big choose small.

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* Fixes inconsistantcy in gifs

* Update dip-0008/quorum_attack.py

fix tpyo

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008.md

Changing titles, todo change table.

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* Clarify table

This handles the edge case of witholding a ChainLock correctly, it takes 161 nodes to withold a ChainLock.
Also makes table clearer to read.

* Clarify malicious chainlock

Based on suggestions from AndyFreer a second paragraph is added to explain what can go wrong.

* Update dip-0008.md

Add line break.

Co-Authored-By: UdjinM6 <UdjinM6@users.noreply.github.com>

* Apply suggestions of thephez

The calculations were updated to refelct the fact that 161 masternodes are needed to withhold a chainlock
in a previous commit.  This commit updates the text and displayed formulas to reflect this fact.

We also alert the reader that we assume that all uncompromised nodes are behaiving as expected.  We include the effect of relaxing this
assumption, however the calculations are left to the reader.  The python function provided makes it easy.

* Fix two typos

* Update dip-0008.md

one missed 160->161

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008.md

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Correct C size in sumation formula

* Update dip-0008/quorum_attack.py

correct spelling

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

correct spelling

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

correct spelling

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

correct spelling

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

correct spelling

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

* Update dip-0008/quorum_attack.py

Co-Authored-By: thephez <thephez@users.noreply.github.com>

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Co-authored-by: thephez <thephez@users.noreply.github.com>
2020-01-02 13:43:01 -05:00
dip-0001 add dip-0001 content 2017-07-12 22:16:50 -07:00
dip-0006 A few (mostly trivial) updates (#54) 2019-11-11 07:59:14 -05:00
dip-0008 Security Analysis (#55) 2020-01-02 13:43:01 -05:00
dip-0009 Add DIP9 - Feature derivation paths (#48) 2019-05-21 12:12:29 -04:00
dip-0001.md fix broken image path in dip-001 (#33) 2018-12-03 08:02:24 -05:00
dip-0002-special-transactions.md DIP2 - Update state of implemented special txs (#45) 2019-05-08 10:12:27 -04:00
dip-0002.md Status update (#46) 2019-05-08 18:23:03 -04:00
dip-0003-masternode-types.md Add DIP3 2018-04-30 16:51:36 -04:00
dip-0003.md A few (mostly trivial) updates (#54) 2019-11-11 07:59:14 -05:00
dip-0004.md Status update (#46) 2019-05-08 18:23:03 -04:00
dip-0005.md DIP5 - Correct markdown table layout (#38) 2019-01-09 15:50:31 -05:00
dip-0006.md A few (mostly trivial) updates (#54) 2019-11-11 07:59:14 -05:00
dip-0007.md A few (mostly trivial) updates (#54) 2019-11-11 07:59:14 -05:00
dip-0008.md Security Analysis (#55) 2020-01-02 13:43:01 -05:00
dip-0009.md Add DIP9 - Feature derivation paths (#48) 2019-05-21 12:12:29 -04:00
dip-0010.md A few (mostly trivial) updates (#54) 2019-11-11 07:59:14 -05:00
LICENSE add LICENSE 2017-07-12 21:53:49 -07:00
README.md Changed Status from 'Proposed' to 'Final' (#53) 2019-07-31 09:18:30 -04:00

Dash Improvement Proposals (DIPs)

DIP stands for Dash Improvement Proposal. Similar to Bitcoin's BIPs, a DIP is a design document providing information to the Dash community, or describing a new feature for Dash or its processes or environment. The DIP should provide a concise technical specification of the feature and a rationale for the feature.

Because Dash is forked from the Bitcoin codebase, many of the BIPs can be applied to Dash as well (a list of the BIPs updated to include Dash-specific details can be found here). The purpose of the DIPs is not to duplicate those which exist as BIPs, but to introduce protocol upgrades or feature specifications which are unique to Dash.

Contributions

We use the same general guidelines for introducing a new DIP as specified in BIP 2, with a few differences. Specifically:

  • Instead of the BIP editor, initiate contact with the Dash Core development team and your request should be routed to the DIP editor(s). The DIP workflow mimics the BIP workflow.
  • Recommended licenses include the MIT license
  • Markdown format is the preferred format for DIPs
  • Following a discussion, the proposal should be submitted to the DIPs git repository as a pull request. This draft must be written in BIP/DIP style as described in BIP 2, and named with an alias such as "dip-johndoe-infinitedash" until the editor has assigned it a DIP number (authors MUST NOT self-assign DIP numbers).

Dash Improvement Proposal Summary

Number Layer Title Owner Type Status
1 Consensus Initial Scaling of the Network Darren Tapp Standard Final
2 Consensus Special Transactions Samuel Westrich, Alexander Block, Andy Freer Standard Final
3 Consensus Deterministic Masternode Lists Samuel Westrich, Alexander Block, Andy Freer, Darren Tapp, Timothy Flynn, Udjinm6, Will Wray Standard Final
4 Consensus Simplified Verification of Deterministic Masternode Lists Alexander Block, Samuel Westrich, UdjinM6, Andy Freer Standard Final
5 Consensus Blockchain Users Alexander Block, Cofresi, Andy Freer, Nathan Marley, Anton Suprunchuk, Darren Tapp, Thephez, Udjinm6, Alex Werner, Samuel Westrich Standard Proposed
6 Consensus Long-Living Masternode Quorums Alexander Block Standard Final
7 Consensus LLMQ Signing Requests / Sessions Alexander Block Standard Final
8 Consensus ChainLocks Alexander Block Standard Final
9 Applications Feature Derivation Paths Samuel Westrich Informational Proposed
10 Consensus LLMQ InstantSend Alexander Block Standard Final

License

Unless otherwise specified, Dash Improvement Proposals (DIPs) are released under the terms of the MIT license. See LICENSE for more information or see https://opensource.org/licenses/MIT.