Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Confidential Transactions #161

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

hushmirror
Copy link

This is a draft DIP for adding Confidential Transactions (CTs) to Dash. I would like to request a DIP number be assigned.

Any and all feedback is welcome, including suggestions for a base58 prefix for CT addresses.

Comment on lines +84 to +86
New Dash CTs will need a new type of address, a confidential address, to send and receive CT transactions. This means that the Dash full node will require new RPCs to create, validate, list and import confidential addresses. A prefix will need to be decided upon for these addresses so they can easily be differentiated from other Dash addresses. These addresses will be new data in wallet.dat and the code which reads and writes wallet.dat will need to also be updated to store and retrieve this data. The code which rescans blockchain history for transactions belonging to the current wallet will also need to be updated, i.e. the `-rescan` CLI option.

These new CT addresses require a different base58 prefix to identify them as different from traditional Dash addresses.
Copy link
Contributor

Choose a reason for hiding this comment

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

Needs more details about ct address calculations - what data is used and how it's used exactly.


These new CT addresses require a different base58 prefix to identify them as different from traditional Dash addresses.

### New RPCs
Copy link
Contributor

Choose a reason for hiding this comment

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

This applies to one implementation only, Dash Core, not sure if we want it here

* Takes no arguments.
* Returns a list of all CT addresses

### Modified RPCs
Copy link
Contributor

Choose a reason for hiding this comment

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

same

Comment on lines +131 to +138
* A 33 byte Pederson commitment to the amount being transferred
* A BP rangeproof that ensures the amount transferred is inside a certain interval between 0 and 2^N - 1
* To support all potential value transfers between 0 and 21M the BP rangeproof needs N equal to 52
* The exact size of the proof depends on the number of inputs and outputs
* An explicit fee, since the fee cannot be computed by the network since the amount is hidden
* A list of input UTXOs
* A list of one or more output addresses
* These may be normal or CT addresses
Copy link
Contributor

Choose a reason for hiding this comment

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

Need exact data structure changes, similar to other DIPs, smth like:

Some structure (e.g. transaction or transaction output etc.)

name type size description
old_field SomeTypeA x bytes some text
new_field SomeTypeB y bytes some text
changed_field SomeTypeC m bytes some text
removed_field SomeTypeD n bytes some text

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.

2 participants