How to Recognize PrivateSend Transactions

The change history of PrivateSend denominations

  • have never changed

    Votes: 0 0.0%
  • changed once

    Votes: 1 100.0%

  • Total voters
    1
  • Poll closed .

tiger-HZX

New Member
Apr 28, 2019
9
0
1
20
Hi there,
Since the Dash was launched from 2014, up to now, there are more than one million blocks, if I want to recognize the privateSend transactions in those blocks, What should I do?

I have thinking about this, I think a PrivateSend trx(DarkSend trx) have following attributes:
  • 1. trx fees are zero.
  • 2. the number of input addresses are equal to the number of output addresses.
  • 3. every input value and every output value are in denomination set {10.0001, 1.00001, 0.100001, 0.0100001, 0.00100001}
if a trx satisfies three conditions aforementioned, Then, we can regard it is a PrivateSend trx. it doesn't matter that In current implementation, Dash masternode combines identical inputs from multiple users.

But there is still a question, Dash-doc on github says "Protocol version 70213 added a 5th denomination", so can anyone tell me what is the denomination format before 70213? What is the changing history of denominations?

Any useful information will help me a lot. Thx~
 

thephez

Member
Dash Core Team
Jan 23, 2016
113
49
78
Technically there is nothing on-chain to clearly indicate a tx was a PrivateSend-related one. You can manually construct a tx that looks identical to certain PrivateSend ones. And prior to v0.12.3 (release last summer), you could do it for any of them (including the 0-fee dstx).

Since 0.12.3, your assumptions are correct, although incomplete. There is also a limit on minimum/maximum number of inputs and possibly some other things that I am forgetting. I would recommend reading through the PrivateSend section of dash-docs (some recent updates in there) to start. Basically, there is not a "one-size fits all" approach for the entire history of the chain

Regarding denominations, you can find the code here. Basically the 100 DASH denomination was eliminated at some point and the 0.001 denomination was added in v0.13.
 

tiger-HZX

New Member
Apr 28, 2019
9
0
1
20
Technically there is nothing on-chain to clearly indicate a tx was a PrivateSend-related one. You can manually construct a tx that looks identical to certain PrivateSend ones. And prior to v0.12.3 (release last summer), you could do it for any of them (including the 0-fee dstx).

Since 0.12.3, your assumptions are correct, although incomplete. There is also a limit on minimum/maximum number of inputs and possibly some other things that I am forgetting. I would recommend reading through the PrivateSend section of dash-docs (some recent updates in there) to start. Basically, there is not a "one-size fits all" approach for the entire history of the chain

Regarding denominations, you can find the code here. Basically the 100 DASH denomination was eliminated at some point and the 0.001 denomination was added in v0.13.
Thx a lot. You give me very helpful information. There are another question, is the number of inputs and the number of outpus are always equal in a PS tx in dash chain from 2014 to now?
I hope my question do not make you feel tired or bothered you.

I ask for help, because I want to do some data analysis about dash block chain. Firstly, I want to find the first PrivateSend tx, but I found the format of PS tx may changed, so I go to Dash Forum for help.

Thank you for replying me.