Skip to content

Conversation

@UdjinM6
Copy link

@UdjinM6 UdjinM6 commented Sep 22, 2018

  • add 5th denom (0.001)
  • always allow OP_RETURN in PS collaterals (i.e. drop deprecated logic)
  • collateral amount is always 1/10 of the smallest denom (i.e. no need to update it manually if we are going to add yet another denom later)
  • bump MIN_PRIVATESEND_PEER_PROTO_VERSION to 7021170212 to avoid conflicts with 70210 (esp. during migration)
  • drop backward compatibility in dsa/dsq serialization (we won't process messages from nodes below MIN_PRIVATESEND_PEER_PROTO_VERSION anyway)

Note: After merging this develop won't be able to mix on current mainnet until migration, you'd have to revert it locally to keep mixing on mainnet.

@UdjinM6 UdjinM6 added this to the 12.4 milestone Sep 22, 2018
@PastaPastaPasta
Copy link
Member

How will the rollout occur? Will some users not be able to mix if they have the new version and the majority of the network doesn't? Based on what you said the upgrade doesn't sound like it would be smooth

@PastaPastaPasta
Copy link
Member

Also, mostly fixes #2198 but doesn't remove the 10 denom. I'd still like to see that change done. I don't think the 10 has enough usage for it to retain its privacy

@UdjinM6
Copy link
Author

UdjinM6 commented Sep 23, 2018

How will the rollout occur? Will some users not be able to mix if they have the new version and the majority of the network doesn't? Based on what you said the upgrade doesn't sound like it would be smooth

Yes, there will be a couple of days when it won't make sense to even try to mix on a newest version. If you reeeeally need mixing you probably should just wait and keep using the old version until majority of the network is upgraded. Probably smth to be highlighted in release notes.

Also, mostly fixes #2198 but doesn't remove the 10 denom. I'd still like to see that change done. I don't think the 10 has enough usage for it to retain its privacy.

I'm not sure about that one, imo 10s still have non-negligible mixing volume https://dashradar.com/charts/mixing-transactions-per-day-by-denomination

@PastaPastaPasta
Copy link
Member

Yesterday there were only 24 mixes using 10 denoms. I would consider that very very low mixing volume

@UdjinM6
Copy link
Author

UdjinM6 commented Sep 23, 2018

Low number of mixing sessions - yes, but low volume - I wouldn't say so.

Full stats for yesterday are like this:
24x10 vs 80x1 vs 185x0.1 vs 312x0.01

For 1 input per session that would be:
240 vs 80 vs 18.5 vs 3.12
(per participant)

Yes, avg number of inputs might be higher for smaller denoms. Let's say it's 5 inputs for all other denoms but 10s:
240 vs 400 vs 92.5 vs 15.6
(per participant)

Which still gives the 2nd place by volume for 10s and it would be the 1st place if avg for 10s would be 2 inputs per session (per participant) instead.

@PastaPastaPasta
Copy link
Member

I don't see how that is relevant to its effective privacy. Low volume was likely bad word choice on my side as the number of mixing sessions is what really matters

@UdjinM6
Copy link
Author

UdjinM6 commented Sep 26, 2018

The problem with removing 10s is basically like this: if you are mixing large amounts and want to spend > 10 DASH via PS later you need 10s because otherwise you are stuck with so many 1s in 1 spending tx that it becomes not-so-private for cluster analysis algos. Having not so many sessions is not that bad imo.

@PastaPastaPasta
Copy link
Member

Agreed, lack of sessions concerns me but I agree with you on the cluster analysis remark

@gladcow
Copy link

gladcow commented Sep 28, 2018

utACK

@UdjinM6 UdjinM6 changed the title Add 5th denom, drop deprecated logic and bump min PS version [DO NOT MERGE YET] Add 5th denom, drop deprecated logic and bump min PS version Oct 5, 2018
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would prefer to not assume knowledge of vecStandardDenominations here and instead use some kind of GetSmallestDenomination, but I guess we can do some clean up later.

(Only because this exposes internals of how we manage PS denoms, and we are directly accessing the internal vector instead of using accessors, which provide an abstraction and allow calling code to not worry about implementation.)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: I'm not suggesting any changes here, just commenting my thoughts for future clean up.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@UdjinM6 Will this change the wire serialization of DSQ (and cause incompatibility between versions)? Or does that not matter since Spork 6 was never activated?

Copy link
Author

@UdjinM6 UdjinM6 Oct 9, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, serialization will change, but we are bumping MIN_PRIVATESEND_PEER_PROTO_VERSION too here (and we don't process PS messages from/to nodes below it), so it should be fine.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 12.4 nodes will reject DSA and DSQ from any 12.3 node, and all 12.3 nodes will not be able to decode DSA and DSQ from any 12.4 node.

I see 2 issues here during the network upgrade:

  1. there may be problems with propagation of DSQ messages through the network,
  2. 12.3 nodes can mix only with another 12.3 nodes only through 12.3 MNs, the same for 12.4 nodes/MNs

The Second issue would not be so big if the First issue didn't make mixing unstable for quite long time. Thoughts?

Copy link
Author

@UdjinM6 UdjinM6 Oct 16, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small correction: 12.4 won't relay any PS message to 12.3 nodes. But yes, migration issues you highlighted are correct - mixing usability will be degraded for a week or so while network is upgrading, especially if you are not using the version which is used by the majority (MNs/mixing participants) atm.

Copy link

@nmarley nmarley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one inline question about dsq serialization, otherwise looks good.

nmarley
nmarley previously approved these changes Oct 9, 2018
Copy link

@nmarley nmarley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK, 👍

@UdjinM6
Copy link
Author

UdjinM6 commented Oct 15, 2018

Rebased to fix merge conflict (due to dropping nInputCount). Also addressed the comment regarding using GetSmallestDenomination while at it. Another thing I have to note (after reviewing old PRs) is that we'll probably need smth like #1372 now that the smallest denom is lower.

@UdjinM6 UdjinM6 changed the title [DO NOT MERGE YET] Add 5th denom, drop deprecated logic and bump min PS version Add 5th denom, drop deprecated logic and bump min PS version Oct 29, 2018
codablock
codablock previously approved these changes Oct 30, 2018
Copy link

@codablock codablock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

nmarley
nmarley previously approved these changes Nov 2, 2018
Copy link

@nmarley nmarley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@UdjinM6 UdjinM6 dismissed stale reviews from nmarley and codablock via eace306 November 4, 2018 11:58
@UdjinM6
Copy link
Author

UdjinM6 commented Nov 4, 2018

Bumped MIN_PRIVATESEND_PEER_PROTO_VERSION to the most recent proto version (70212).

PastaPastaPasta
PastaPastaPasta previously approved these changes Nov 4, 2018
Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

- add 5th denom (0.001)
- always allow OP_RETURN in PS collaterals
- collateral amount is always 1/10 of the smallest denom
- bump MIN_PRIVATESEND_PEER_PROTO_VERSION to 70211
@UdjinM6
Copy link
Author

UdjinM6 commented Nov 5, 2018

Rebased to fix merge conflicts after #2373 . Ready for the final review :)

@UdjinM6 UdjinM6 requested a review from nmarley November 5, 2018 09:47
Copy link

@nmarley nmarley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

Copy link

@codablock codablock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-utACK

@UdjinM6 UdjinM6 merged commit 2624547 into dashpay:develop Nov 7, 2018
@UdjinM6
Copy link
Author

UdjinM6 commented Nov 7, 2018

NOTE: revert this ( 2624547 ) is you want to keep mixing on current testnet/mainnet

thephez added a commit to dash-docs/dash-docs that referenced this pull request Dec 26, 2018
thephez added a commit to dash-docs/dash-docs that referenced this pull request Dec 26, 2018
* P2P - Remove dsa and dsq input count

Related to dashpay/dash#2075, dashpay/dash#2259, and dashpay/dash#2318

* P2P - Update dsq and dstx to include BLS signature

Related to dashpay/dash#2352

* P2P - Update govobj and govobjvote to include BLS signature

Related to dashpay/dash#2352
@UdjinM6 UdjinM6 deleted the bumpps branch November 26, 2020 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants