Commit graph

73 commits

Author SHA1 Message Date
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
UdjinM6
41fc2c9413 A few (mostly trivial) updates (#54)
* Drop quorumMinMemberAge from LLMQ init phase

* Clarify that "hash" is "SHA256" in multiple cases

* Switch few quotes to apostrophes
2019-11-11 07:59:14 -05:00
Sidem
5660fcdd27 Changed Status from 'Proposed' to 'Final' (#53)
* Changed Status from 'Proposed' to 'Final'

* Update status for dips 6, 7, 8 and 10 to Final
2019-07-31 09:18:30 -04:00
Nathan Marley
aa804d2e23 Fix rendering of code block and use fenced blocks (#50)
The fences aren't actually necessary, but make it easier (IMO) to delineate the
code block and not worry about number of leading spaces.
2019-05-28 08:38:11 -04:00
thephez
26cf7c9f92
Add DIP9 - Feature derivation paths (#48)
* DIP9 - Add DIP and assignment documents

* DIP9 - Add to Readme
2019-05-21 12:12:29 -04:00
Alexander Block
5a4cfba25a Multiple updates to DIP8 (#44)
* Update DIP8 to use "blockHeight" instead of prevBlockHash in request ids

This prevents conflicting CLSIGs on temporary chain splits. The code was
already using the block height, but the DIP was never updated.

* Add "Used LLMQ type" section to DIP8

* Describe safe transactions in DIP8

* Update dip-0008.md

* Review suggestions from thephez
2019-05-21 12:09:31 -04:00
thephez
a984d416e3
DIP10 - Add DIP and update Readme (#49)
LLMQ InstantSend
2019-05-21 11:16:50 -04:00
strophy
49435ff650 Typo (#47) 2019-05-17 09:14:40 -04:00
thephez
05e479a51d
Status update (#46)
* DIP2-4 Change status from Proposed to Active

* DIP2-4 Change status to Final

* DIP6-8 Change status from Proposed to Active
2019-05-08 18:23:03 -04:00
thephez
b49c1724d2
DIP2 - Update state of implemented special txs (#45) 2019-05-08 10:12:27 -04:00
Alexander Block
e7e5939cbd Update list of implemented/supported LLMQ types (#43)
* Move "Current LLMQ types" into its own section

Shouldn't have been a sub-section of the "Finalization phase" section.

* Update/fix DIP0006 Table of Contents

* Update "Current LLMQ type" table to contain all relevant parameters
2019-05-06 08:51:37 -04:00
Alexander Block
745adcee3f Multiple updates regarding LLMQs (#42)
* Add description of new LLMQ merkle roots to DIP4

* Rename deletedMNcount -> deletedMNsCount

* Add quorumType to parameter description and DIP6 P2P messages

* Remove quorumMinMemberAge from parameter description

This was never implemented

* Rename badVotesThreshold -> quorumDkgBadVotesThreshold

* Update testing LLMQ type to LLMQ_5_60

* Better describe active LLMQs in DIP6 and DIP7

* Bump CbTx version

* Handle review comments
2019-04-29 08:20:26 -04:00
UdjinM6
60ade37fee
Describe new algo for quorum connections (#40) 2019-02-19 17:04:24 +03:00
Alexander Block
9e97430850 Remove attemptNum from CLSIG and fix description of sig verification (#39) 2019-01-24 13:43:27 -05:00
thephez
145063f010
DIP5 - Correct markdown table layout (#38)
Fixes SubTxCloseAccount payload detail table
2019-01-09 15:50:31 -05:00
thephez
67743489a4
[DIP6] Add llmqTypes details to qfcommit (#37)
* [DIP6] Add llmqTypes details to qfcommit

Closes #36

* [DIP6] Update LLMQ Types table

* [DIP6] Remove LLMQ_NONE from table
2018-12-27 10:21:02 -05:00
strophy
67ddbb06e4 Add DIP8 to summary table (#34) 2018-12-03 08:09:23 -05:00
taw00
eec6205fba fix broken image path in dip-001 (#33) 2018-12-03 08:02:24 -05:00
thephez
283c6c9938
Add DIP8 - ChainLocks (#32) 2018-11-29 09:06:48 -05:00
Alexander Block
0afc096282
[DIP6] Use height in special TX payload to make commitment TXs unique (#31)
* Use quorumVvecHash instead of quorumHash to make null commitments unique

quorumHash is required to identify to which quorum the commitment belongs,
so we should not change the meaning of it. Instead, use quorumVvecHash
to make null commitments unique.

* Include "height" in commitment special transaction payload

* Mention validation of the commitment payload

* Add version field and change height field to uint32_t
2018-11-27 10:42:21 +01:00
Alexander Block
3eef1d603a Add confirmedHash to SML entries (#30) 2018-11-14 08:15:42 -05:00
Alexander Block
432c4a977e Add description of collateralOutpoint and signing of ProRegTx (#28)
* Add description of collateralOutpoint and signing of ProRegTx

* Add note about magicString being handled by "signmessage"
2018-11-13 14:20:30 -05:00
Nathan Marley
c5b35976ee
add size fields for following var len fields (#29) 2018-11-10 13:54:08 -02:00
Nathan Marley
19c4993976
swap vector type with generic list symbols (#27) 2018-11-10 13:51:29 -02:00
Alexander Block
52aee60048 Update DIPs regarding use of BLS12-381-reversed (#25)
* Update bls_signature_scheme.md with BLS12-381-reversed

* Update DIP3/DIP4 to use BLS operator keys

* Update DIP5 to use BLS keys for user keys

Also add the "Size" column to all serialization specs to align with other DIPs.

* Update BLS primitives serialization size in DIP6/7

* DIP3 - Correct PubKeyOperator type

* DIP4 - Correct PubKeyOperator type

* Remove trailing e from integere
2018-11-09 12:42:42 -05:00
Anton Suprunchuk
b1b56aaefd Add mention of merkleHashCount and merkleFlagsCount to the DIP4's simplified masternode list diff (#26) 2018-10-26 16:17:14 -04:00
Nathan Marley
da7f9a83c3
Merge pull request #24 from dashpay/thephez-patch-1
Correct appendix reference
2018-10-26 10:36:48 -05:00
thephez
7e878784bd
Correct appendix reference 2018-10-25 16:23:49 -04:00
Kamuela Franco
e19f4a5c4e Update ProUpRegTx to include inputsHash (#22) 2018-10-25 10:24:39 -04:00
Alexander Block
d65b356abf
Merge pull request #21 from dashpay/UdjinM6-patch-1
Separate creation/movement of MN collateral and DMN registration process
2018-10-24 13:07:49 +02:00
InhumanPerfection
fff7f42acb
hash is null but no 1000 at n
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-23 16:05:07 +03:00
Alexander Block
827c5a09ec
Update dip-0003.md
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-23 12:41:53 +03:00
Alexander Block
6b1942914b
Update dip-0003.md
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-23 12:39:14 +03:00
thephez
c4288307d5
new on-chain system
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-19 22:16:29 +03:00
thephez
ce81f999b1
2
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-19 22:16:11 +03:00
thephez
4b09024d20
1
Co-Authored-By: UdjinM6 <udjinm6@gmail.com>
2018-10-19 22:16:04 +03:00
UdjinM6
b8812fcacf
empty->null 2018-10-19 17:03:21 +03:00
UdjinM6
e17602f9f9
integrated hybrid solution from codablock 2018-10-19 14:47:24 +03:00
Nathan Marley
8933d05c68
Merge pull request #20 from dashpay/thephez-patch-1
Remove extraneous semicolon
2018-10-16 22:35:39 -07:00
UdjinM6
0f1ce92f94
Separate creation/movement of MN collateral and DMN registration process
I propose to change DIP3 in a way that splits funds handling and DMN registration.

Pros:
1. no need to move collaterals;
2. no need to update HW wallet firmware to support.

Cons:
1. the logic is going to be slightly more complicated;
2. the process of MN registration is going to be split between using HW wallet and Core;
3. `ProRegTx` payload size is going to be slightly higher (+32 bytes).
2018-10-16 05:00:05 +03:00
thephez
23b4c1eff5
Remove extraneous semicolon 2018-10-11 08:02:40 -04:00
Nathan Marley
da784d71c7
Merge pull request #19 from dashpay/DIP5_SigFieldName
DIP5 - Standardize Sig field names with DIP3
2018-10-10 17:02:06 -07:00
Nathan Marley
56f4208a59
Merge pull request #18 from andyfreer/master
DIP-0005: Removing non-alphanumeric characters
2018-10-10 17:01:46 -07:00
thephez
c3bb33cfa0
DIP5 - Standardize Sig field names with DIP3 2018-10-09 09:09:27 -04:00
andyfreer
c880f6efc9 DIP-0005: Removing non-alphanumeric characters
This change proposes to remove non-alphanumeric characters for the first mainnet release of DIP 0005 Blockchain Users, with the option to add them in later.

The reasoning is based on securing future compatibility when integrating with global name based systems outside of the Dash protocol:

 - Periods (.) are compatible with email but will complicate DNS records using BU names, for example user evan.duffield.xyz.tld requires 2 subdomains for a single BU, whereas evanduffield.xyz.tld requires 1 subdomain per BU
 - Underscores (_) are not compatible with DNS.  They could be translated to hyphens (-) but this would complicate the implementation and is not a clean solution
 - We could implement hyphens (-) but this would break email compatibility
 - Adding these non-alphanumeric characters at mainnet release is making assumptions for the benefit of aesthetics (more choice of characters for users) - but I do not believe this outways the benefits to securing future compatibility with global name based systems we probably want to integrate with in future
 - It is a lot easier to not launch with these special characters and play safe, and add them in later (via HF) if required.  Obviously, BU names are digital assets with a value themselves, so we cannot remove characters later (which would invalidate existing names and essentially seize/liquidate that property)
2018-10-08 17:07:24 +01:00
Kamuela Franco
0d09d80194 Clarify word choice (#17)
DIP-3 updated
2018-10-01 09:19:28 -04:00
Nathan Marley
96d36a768d
Merge pull request #16 from nmarley/small-cleanup
small cleanup of new DIPs 6, 7
2018-09-19 12:29:04 -07:00
Nathan Marley
d8149aebd3 remove h1 titles from new DIPs 6, 7 2018-09-14 10:09:21 -07:00
Nathan Marley
5beafe61fa add new DIPs 6, 7 to table in README 2018-09-14 10:07:02 -07:00
Nathan Marley
4d19d4a78d
Merge pull request #15 from nmarley/dip6-typo
fix typo in dip6 (make 'connection' plural)
2018-09-11 08:14:14 -07:00